用户设备事件的匹配与归因

文档序号:1510746 发布日期:2020-02-07 浏览:3次 >En<

阅读说明:本技术 用户设备事件的匹配与归因 (Matching and attribution of user equipment events ) 是由 索菲斯·阿提拉·毛奇卡希 德米特里·阿瑞尔·加斯金 埃里克·J·格洛弗 余侃 严文昶 于 2018-05-07 设计创作,主要内容包括:一种方法包括从设备接收第一事件数据,该第一事件数据包括标识该设备的第一标识符(ID)、web浏览器元数据以及与应用状态相关联的数据。该方法包括生成第一角色,该第一角色包括第一ID和标识第一用户动作的第一事件标识符。该方法包括接收第二事件数据,该第二事件数据包括设备元数据和标识该设备的第二ID。该方法包括基于第二事件数据生成第二角色,该第二角色包括第二ID和标识第二用户动作的第二事件标识符。此外,该方法包括基于浏览器元数据与设备元数据之间的匹配来确定第一角色和第二角色与设备相关联,并向设备传输被配置成将设备路由至应用状态的响应。(A method includes receiving first event data from a device, the first event data including a first Identifier (ID) identifying the device, web browser metadata, and data associated with an application state. The method includes generating a first persona including a first ID and a first event identifier identifying a first user action. The method includes receiving second event data, the second event data including device metadata and a second ID identifying the device. The method includes generating a second role based on the second event data, the second role including a second ID and a second event identifier that identifies a second user action. Further, the method includes determining that the first role and the second role are associated with the device based on a match between the browser metadata and the device metadata, and transmitting a response to the device configured to route the device to the application state.)

用户设备事件的匹配与归因

相关申请的交叉引用

本申请要求于2018年5月7日提交的美国申请序列第15/972,707号的优先权,该美国申请要求于2017年5月8日提交的美国临时申请第62/502,816号的优先权的权益。上述申请中的每一个申请的公开内容通过引用将其全部内容并入本文。

技术领域

本公开内容涉及提供跨多个计算平台的分析和链接功能。

背景技术

软件开发人员可以开发用户可以在各种不同的平台例如不同的计算设备和操作系统上访问的网站和应用。示例网站/应用可以包括电子商务应用、社交媒体应用和业务审查应用。在一些情况下,网站和应用可以包括相似的内容。一些软件开发人员可能希望说服用户下载和使用他们的应用,因为他们的应用可以提供比他们的网站更定制/高级的用户体验。出于类似的原因,开发人员可能希望将用户从其他位置例如他们的网站或其他网站引导至他们的应用。开发人员可以获取关于对他们的网站和应用的获取和使用的分析,以便更好地了解他们的应用如何在不同平台上被获取和使用。

发明内容

在一个示例中,本发明涉及一种方法,该方法包括从用户设备接收响应于用户设备的web浏览器上的第一用户动作而生成的第一事件数据。第一事件数据包括标识用户设备的第一设备标识符(ID)、web浏览器元数据和与应用状态相关联的数据。该方法还包括基于第一事件数据生成第一角色数据对象,该第一角色数据对象包括第一设备ID和标识第一用户动作的第一事件标识符。该方法还包括从用户设备接收响应于安装在用户设备上的应用上的第二用户动作而生成的第二事件数据。第二事件数据包括设备元数据和标识用户设备的第二设备ID。该方法包括基于第二事件数据生成第二角色数据对象,该第二角色数据对象包括第二设备ID和标识第二用户动作的第二事件标识符。该方法还包括基于web浏览器元数据与设备元数据之间的匹配来确定第一角色数据对象和第二角色数据对象与用户设备相关联。此外,该方法包括向用户设备传输包括路由数据的响应,该路由数据被配置成将所安装的应用路由至与第一事件数据相关联的应用状态。

在一个示例中,本公开内容涉及一种方法,该方法包括在计算设备上生成第一数据对象,该第一数据对象包括与用户设备上的web浏览器应用相关联的第一设备标识符(ID)和web浏览器元数据。该方法还包括生成第二数据对象,该第二数据对象包括与用户设备上安装的应用相关联的第二设备ID和设备元数据。该方法还包括基于web浏览器元数据和设备元数据确定匹配分数。匹配分数指示第一设备ID和第二设备ID可能与用户设备相关联。该方法还包括从用户设备接收响应于web浏览器应用上的用户动作而生成的web事件数据。web事件数据包括第一设备ID并且包括与应用状态相关联的数据。该方法还包括从用户设备接收由安装的应用生成的应用事件数据。应用事件数据包括第二设备ID。此外,该方法包括:响应于接收到应用事件数据并确定匹配分数指示第一设备ID和第二设备ID可能与用户设备相关联,向用户设备传输包括路由数据的响应,该路由数据被配置成将所安装的应用路由至与web事件数据相关联的应用状态。

在一个示例中,本公开内容涉及包括一个或更多个存储设备和一个或更多个处理单元的系统。一个或更多个存储设备被配置成存储第一数据对象和第二数据对象。第一数据对象包括与用户设备上的web浏览器应用相关联的第一设备标识符(ID)和web浏览器元数据。第二数据对象包括与用户设备上安装的应用相关联的第二设备ID和设备元数据。一个或更多个处理单元被配置成执行计算机可读指令,计算机可读指令使一个或更多个处理单元基于web浏览器元数据和设备元数据来确定匹配分数。匹配分数指示第一设备ID和第二设备ID可能与用户设备相关联。一个或更多个处理单元被配置成从用户设备接收web事件数据,该web事件数据是响应于web浏览器应用上的用户动作来而生成的。web事件数据包括第一设备ID和与应用状态相关联的数据。一个或更多个处理单元被配置成从用户设备接收通过所安装的应用生成的应用事件数据,该应用事件数据包括第二设备ID。响应于接收到应用事件数据并且确定匹配分数指示第一设备ID和第二设备ID可能与用户设备相关联,一个或更多个处理单元被配置成向用户设备传输包括路由数据的响应,该路由数据被配置成将所安装的应用路由至与web事件数据相关联的应用状态。

附图说明

根据详细描述和附图,将更加全面地理解本公开内容。

图1示出了包括与用户设备、伙伴设备和外部数据系统进行通信的归因系统的环境。

图2示出了伙伴经由伙伴接口系统与归因系统集成。

图3是示出了用户设备、外部数据系统和归因系统的部件之间的示例交互的功能框图。

图4示出了描述用户设备与归因系统的部件之间的交互的方法。

图5示出了事件处理系统、链接系统和角色系统的更详细的示例。

图6A示出了示例系统链接数据对象。

图6B示出了示例角色数据对象。

图7示出了用于生成并更新角色数据存储装置中的角色数据对象的示例方法。

图8是示出了生成并更新角色数据存储装置中的角色数据对象的功能框图。

图9示出了用于匹配角色数据对象并将角色数据对象内的事件归因于另一角色数据对象中的先前事件的示例方法。

图10是示出了匹配两个角色数据对象的角色匹配模块的功能框图。

图11示出了描述用户设备和归因系统如何处理用户对系统链接的选择的方法。

图12示出了描述当在用户设备上打开应用时用户设备和归因系统的操作的示例方法。

图13示出了描述在用户访问伙伴的网页的情况下用户设备和归因系统的操作的示例方法。

图14示出了描述在事件数据包括多个设备ID的情况下角色系统的操作的示例方法。

图15示出了描述在应用安装事件被归因于链接选择事件的情况下归因系统的操作的示例方法。

图16示出了描述在应用打开事件被归因于链接选择事件的情况下归因系统的操作的示例方法。

图17示出了用于基于与所访问的网页相关联的应用的安装状态来修改所访问的网页的行为的示例方法。

图18示出了彼此匹配的多个角色。

图19示出了描述基于所确定的匹配分数的用户设备的路由的示例方法。

在附图中,附图标记可以被重复使用以标识相似和/或相同的元素。

具体实施方式

本公开内容的角色系统100接收由用户设备102(例如,移动计算设备)生成的事件数据300。当用户浏览网站和/或使用安装在用户设备102上的应用(例如,本机应用)时,用户设备102可以生成事件数据300。例如,当用户打开/关闭应用、查看网页和/或选择应用中或网页上的链接(例如超链接)时,可以生成事件数据300。角色系统100可以跟踪随时间推移在用户设备102上发生的事件,并且将某些事件的发生归因于先前的事件。例如,角色系统100可以将应用的安装归因于先前用户选择链接例如网页上的超链接或横幅广告。作为另一示例,角色系统100可以将购买网站和/或应用上的物品归因于先前选择的链接。角色系统100提供的归因功能可用于可能希望监视其应用/网站的性能并且可能为某些事件(例如,应用安装和/或物品购买)的发生付费的各方例如企业、广告商和应用开发人员。此外,本文描述的其他计算系统(例如,事件处理系统104)也可以使用角色系统100提供的归因功能,以向用户设备102提供各种功能,例如响应于用户对web链接的选择而将用户设备102路由至应用状态。

角色系统100接收的事件数据300可以包括设备标识符(下文称为“设备ID”),设备标识符标识生成事件数据300的用户设备。例如,设备ID可以包括可以用于在其他用户设备中标识(例如,唯一地标识)用户设备的一串字母、数字和/或符号字符(例如,标点符号)。角色系统100可以使用各种设备ID来跟踪事件(例如,应用安装、应用打开和链接选择)并且将事件归因于先前事件。

某些设备ID可以与用户设备上的web浏览器相关联(例如,由web浏览器设置)。与web浏览器相关联的设备ID在本文中可以被称为“web ID”。示例web ID可以包括浏览器cookie(储存在用户本地终端上的数据)ID,其可以被称为web cookie、因特网cookie或超文本传输协议(HTTP)cookie。

某些设备ID可能与用户设备上安装的除web浏览器以外的应用相关联。在一些情况下,设备ID可以是已安装的应用可以访问的操作系统生成的ID。附加示例设备ID可以包括广告ID,广告ID可以根据用户设备上的操作系统(OS)而不同。示例广告ID可以包括可以在运行

Figure BDA0002328637190000051

的设备上使用的苹果公司的广告标识符(IDFA)或者可以在运行

Figure BDA0002328637190000052

OS的设备上使用的谷歌公司的谷歌广告ID(GAID)。另一示例设备ID可以是硬件设备ID(例如,唯一的设备序列号)。尽管本文描述的示例设备ID可以包括web设备ID、广告ID和硬件ID,但是本公开内容的技术可以适用于可以用于唯一地标识用户设备的其他类型的ID。

角色系统100将事件数据300存储在角色数据对象中(例如,在图6B的600处),角色数据对象在本文中可称为“角色”。每个角色可以包括指示一个人在一段时间内如何使用一个或更多个用户设备的数据(例如,事件列表)。例如,单个角色可以包括指示人如何在单个用户设备(例如,智能电话)上使用web浏览器和多个应用的数据。在更具体的示例中,单个角色可以包括指示人如何与伙伴的网站和应用进行交互的数据。角色系统100可以为从其接收事件数据300的每个用户设备存储一个或更多个角色。

角色系统100响应于接收到与和现有角色中包括的设备ID相同的设备ID相关联的事件数据来更新现有角色。角色系统100可以为与新设备ID(例如,其他角色中未包括的新设备ID)相关联的每个事件生成新角色。由于单个用户设备可以生成多个设备ID(例如,webID和/或广告ID),因此角色系统可以为单个设备存储多个角色。例如,关于图8,角色系统100可以存储与同一用户设备相关联的两个角色,其中一个角色与web ID(例如,浏览器cookie ID)相关联,并且另一角色与另一类型的设备ID(例如,广告ID)相关联。与web ID相关联的角色可以表示用户在用户设备上的web浏览(例如,在伙伴的网站和/或其他网站上浏览)。与广告ID相关联的角色可以表示用户在用户设备上的应用使用(例如,跨除了web浏览器以外的多个应用的使用)。例如,与广告ID相关联的角色可以表示伙伴的应用和/或其他应用在用户设备上的使用。

角色系统100可以包括标识属于同一用户设备的不同角色(例如,具有不同设备ID的角色)的匹配功能。例如,角色系统100可以基于包括但不限于用户设备的因特网协议(IP)地址、OS名称、OS版本、设备类型、屏幕分辨率和用户标识数据(例如用户名)的数据来匹配两个角色。在一个示例中,角色系统100可以将来自匹配角色的角色数据(例如,事件数据)组合成单个角色。在另一示例中,角色系统可以更新一个角色中的数据以指示另一角色可能来自同一用户设备。例如,角色系统可以参考第二角色来更新第一角色以指示第一角色和第二角色可能来自同一用户设备。在本文中可以将对另一角色的参考称为“角色参考”。取决于可能来自同一用户设备的角色的数目,角色可以包括一个或更多个角色参考。在一些实现方式中,角色系统100可以基于与(例如,基于匹配分数)确定不同角色属于同一用户设备相关联的确定度来组合角色和/或在角色中包括参考。角色系统100可以使用组合的/参考的角色数据来做出本文描述的各种决策,例如归因决策。例如,角色系统可以确定事件可归因于先前的事件。在该示例中,角色系统可以更新一个或更多个角色以指示后续事件可归因于先前事件。在更具体的示例中,角色系统可以在后续事件的角色中包括指示事件可归因于另一角色中的先前事件的数据。在本文中可以将指示归因的对另一事件的参考称为“归因参考”或“事件参考”。事件之间的参考也可以包括相关联的匹配分数。也可以在除事件级别以外的级别处例如在设备ID级别或角色级别处分配匹配分数。例如,可以在web ID与设备ID之间分配匹配分数(例如,参见图18)。

与同一用户设备相关联的不同角色可以各自包括一个或更多个事件的数据。例如,与web ID相关联的角色可以包括一个或更多个web事件的数据,并且与不同设备ID(例如,广告ID)相关联的角色可以包括一个或更多个应用(app)事件的数据。在具体示例中,角色系统100可以包括用于与网站(例如,伙伴的网站)相关联的web浏览的角色,并且包括与浏览应用(例如,不同的伙伴应用)相关联的不同角色。针对同一用户设备的角色可以保持独立,直至角色系统100确定角色应该彼此组合或包括对彼此的参考。

在一些实现方式中,角色系统100可以修改彼此匹配(例如,可能来自同一用户设备)的角色,然后在稍后当更多数据可用来指示角色与同一用户设备相关联时组合匹配的角色。例如,角色系统最初可以基于使用设备/浏览器元数据(例如,IP地址、OS名称、OS版本、设备类型、屏幕分辨率)和用户标识数据而确定的匹配,在角色中包括角色参考。稍后,角色系统可以接收指示角色来自同一用户设备的事件数据。例如,角色系统100可以接收包括多个设备ID(例如,web ID和广告ID)的事件,该事件指示与多个设备ID相关联的角色来自同一用户设备。在该示例中,角色系统可以组合与设备ID相关联的两个角色,而这两个单个的角色先前可能包括对彼此的角色参考。在本文中可以将基于包括多个设备ID的事件的两个角色(例如,两个设备ID)之间的匹配称为“强匹配”。

角色系统100可以从各种不同的源接收事件数据。在一些实现方式中,角色系统100可以从事件处理系统104(例如,参见图5)接收事件数据。事件处理系统104可以从用户设备接收事件数据300、将事件数据300发送至角色系统100以记录(例如,在角色中),以及提供对接收到的事件数据300的响应302。在一些情况下,事件处理系统104可以利用角色数据来基于由用户设备生成的过去事件向用户设备提供响应,如以下示例所示出的。如果用户选择用于访问用户设备尚未安装的应用中的内容的链接,则角色系统100可以记录对链接的选择,并且事件处理系统104可以重定向用户以下载/安装该应用。在打开新安装的应用之后,应用可以将事件传输至事件处理系统104,该事件也可以被记录在角色系统100中。角色系统100可以匹配两个角色,并且基于该匹配,事件处理系统104可以将打开的应用引导至由先前选择的链接所链接到的内容。在该示例中,应用的打开和应用的安装可以归因于对链接的选择。

在一些实现方式中,事件处理系统104可以与链接系统106(例如,图5)通信,该链接系统106生成并存储用于在用户可选择链接例如广告链接和/或至共享内容的链接中使用的数据。例如,链接系统106可以生成和存储系统链接数据对象(例如,图6A中的602处),该系统链接数据对象包括链接系统统一资源标识符(下文中称为“系统URI”)和链接数据。系统URI可以(例如,使用域/路径)指示系统链接数据对象的网络位置。系统URI可以包括在应用中或网站上的用户可选择链接(本文称为“系统链接”)中。示例用户可选择链接可以包括超链接、图形用户界面(GUI)按钮、图形横幅或图形覆盖。响应于对系统链接的选择,用户设备可以访问事件处理系统104,事件处理系统104又可以***系统106以准备对用户设备的响应。例如,响应于从用户设备接收到系统URI,事件处理系统104可以检索与接收到的系统URI相对应的链接数据并基于检索到的链接数据执行各种功能。在一个示例中,事件处理系统104可以基于链接数据重新引导用户设备(例如,以下载应用或至默认位置)。在另一示例中,事件处理系统104可以将链接数据(例如,折扣码、用户推荐名称等)传递给用户设备,以便用户设备可以基于链接数据动作。角色系统100可以将对系统链接的选择记录在角色中,并尝试将系统链接选择与包括在同一角色或不同角色中的其他事件匹配。

在一些实现方式中,一方(例如,企业)可以拥有/操作角色系统100、事件处理系统104和链接系统106。在这些实现方式中,一方可以经由伙伴接口系统108向各个伙伴提供角色系统100、事件处理系统104和链接系统106的功能。由一方操作以供一个或更多个伙伴使用的角色系统100、事件处理系统104、链接系统106和伙伴接口系统108可以统称为“归因系统110”(例如,参见图1)。

示例伙伴由伙伴计算设备112(下文中称为“伙伴设备112”)表示,伙伴可以使用该伙伴计算设备112来与伙伴接口系统108进行通信。示例伙伴可以是具有移动应用和/或网站的企业。伙伴(例如,企业)可以与归因系统110集成以便向他们的应用/网站添加链接和/或归因功能。伙伴可以与伙伴接口系统108进行通信,以便与归因系统110集成并从归因系统110检索数据。例如,伙伴可以使用由伙伴接口系统108提供的仪表板(例如,基于web的仪表板接口)和/或应用编程接口(API)与伙伴接口系统108接口。尽管示出了单个伙伴设备112,但是与多个不同伙伴相关联的多个伙伴设备可以与伙伴接口系统108进行通信。

伙伴可以以多种方式与归因系统110集成。例如,伙伴可以检索应用模块部件114和web模块部件116,伙伴可以修改应用模块部件114和web模块部件116并将其包括在他们的应用和网站中。应用模块部件114和web模块部件116可以包括提供用于与归因系统110(例如,事件处理系统104和链接系统106)进行通信的特性的计算机代码。作为另一示例,伙伴可以出于他们的目的经由伙伴接口系统108配置归因系统110的操作。例如,伙伴可以配置归因的时间限制(例如,两个事件之间的最大时间量),所述时间限制可以被称为“归因时间窗口”。可以基于用例(例如,安装归因、app打开归因、广告归因等)进行归因的配置(例如,时间限制)。伙伴还可以生成系统链接以包含在他们的应用/网站和/或其他应用/网站中。

伙伴可以从伙伴接口系统108检索指示他们的应用、网站和链接如何执行(例如,用户如何使用应用、网站和链接)的数据。示例数据类型可以包括但不限于指示哪些事件归因于其他事件的归因数据、app安装数据、app使用数据和网站使用数据。其他数据类型可以包括地理数据(例如,使用伙伴的应用、网站和/或链接的用户的位置)。伙伴可以检索与单个事件相关的数据和/或多个事件的聚合数据。

尽管角色系统100、链接系统106、事件处理系统104和伙伴接口系统108可以由一方操作以供一个或更多个伙伴使用,但在一些情况下,可以由不同方操作归因系统110的各个系统。例如,可以由第一方(例如,企业)独立于其他系统(例如,事件处理系统104、链接系统106和/或伙伴接口系统108)来操作角色系统100。在这些情况下,可以由一个或更多个附加方操作事件处理系统104、链接系统106和伙伴接口系统108。此外,在这些情况下,角色系统100可以向其他方提供服务,例如记录事件数据、提供匹配数据、提供归因数据和/或提供归因于本文的角色系统的任何其他功能。

图1至图19示出了可以与多个伙伴设备112、多个用户设备102和多个外部数据系统118进行通信的归因系统110的特征。图1至图5示出了伙伴设备112、用户设备102、外部数据系统118和归因系统110之间的交互。图6A示出了可以由链接系统106生成并存储的示例系统链接数据对象602。图6B示出了可以由角色系统100生成并存储的示例角色600。图7至图8、图14和图18示出了在角色系统100中生成并更新角色。图9至图10示出了角色系统100的匹配和归因功能。图11至图13、图15至图17和图19示出了描述用户设备102和归因系统110针对诸如链接选择事件、应用打开事件、应用安装事件和网页查看事件的各种事件的操作的示例方法。

图1示出了包括经由网络120与伙伴设备112、用户设备102和外部数据系统118进行通信的归因系统110的示例环境。网络120可以包括各种类型的计算机网络,例如局域网(LAN)、广域网(WAN)和/或因特网。

该环境包括一个或更多个数字分发平台122。数字分发平台122可以表示被配置成将应用分发至用户设备102的计算系统。示例数字分发平台包括但不限于谷歌公司的谷歌

Figure BDA0002328637190000091

数字分发平台和苹果公司的APP

Figure BDA0002328637190000092

数字分发平台。数字分发平台122可以包括一个或更多个伙伴应用124,伙伴应用124中的每一个可以包括app模块114和/或系统链接126。数字分发平台122还可以包括由除了伙伴以外的各方开发的多个应用128。用户可以从数字分发平台122下载应用124、128并将这些应用安装在用户设备102上。

该环境包括多个服务器130(例如,web服务器)。服务器130可以将网站(或web应用)提供给用户设备102。在一些实现方式中,服务器130可以将伙伴网站131提供给用户设备102。伙伴网站可以包括由伙伴配置的web模块116以及一个或更多个系统链接126。服务器130还可以提供其他网站132(例如,除了由伙伴操作的网站以外)。在一些情况下,其他网站132可以包括系统链接126。

用户设备102包括操作系统134和多个应用例如web浏览器应用136和附加应用138。示例附加应用可以包括但不限于电子商务应用、社交媒体应用、企业审查应用、银行应用、游戏应用和天气预报应用。使用web浏览器136,用户设备102可以经由网络120访问服务器130上的各种网站。用户设备102还可以经由网络120从数字分发平台122下载应用并安装应用。

该环境包括一个或更多个外部数据系统118。外部数据系统118可以表示向归因系统110提供事件数据300(“外部事件数据300-4”)的计算系统。可以由除了伙伴以外的各方和归因系统110的操作者提供外部数据系统118。在一些实现方式中,可以由(例如,向伙伴、归因系统110和其他方)提供数据管理和分析服务的企业来操作外部数据系统118。外部数据系统118可以收集关于用户如何使用伙伴的应用124和网站131的附加数据(例如,除了归因系统118以外)。在一些情况下,伙伴可以使用外部数据系统118来存储事件数据以及/或者提供分析。示例数据管理提供者可以包括纽约州纽约市的mParticle公司和加利福尼亚州旧金山的Segment公司。

外部事件数据300-4可以包括与针对伙伴的网站131和/或应用124而发生的事件相关联的数据。此外,或者可替选地,外部事件数据300-4可以是与在不由伙伴操作的网站132和应用128上发生的事件相关联的数据。在一些情况下,外部事件数据300-4可以包括归因系统310(例如,经由app/web模块116、114)否则未获取的事件数据。例如,外部数据系统118可以经由由其他方(例如,外部数据系统118的操作者)并入伙伴的网站/应用中的模块接收附加的事件数据。角色系统100可以以与处理从用户设备接收的事件数据类似的方式处理从外部数据系统118接收的外部事件数据300-4。

图2示出了伙伴经由伙伴接口系统108与归因系统110集成。伙伴接口系统108包括伙伴接口模块200、app模块部件114和web模块部件116、伙伴配置数据存储装置202和伙伴分析数据存储装置204。伙伴接口模块200提供用于与伙伴接口系统108接口的功能。

伙伴接口模块200可以提供用于与归因系统110集成的接口。伙伴接口模块200提供的示例GUI可以被称为伙伴仪表板(未示出)。伙伴仪表板可以包括基于web的接口,该基于web的接口包括帮助伙伴对归因系统110进行配置并从归因系统110检索数据的各种GUI元素。示例GUI元素可以包括但不限于各种数据可视化、电子表格、表格、图表、选择元素(例如下拉框和菜单)以及文本输入框。

伙伴可以经由伙伴接口模块200(例如,伙伴仪表板)以本文描述的任何方式与归因系统110集成。例如,伙伴可以经由伙伴接口模块200例如经由伙伴仪表板或经由归因系统110的操作者提供的网站来检索应用模块部件114和/或web模块部件116。应用模块部件114可以包括可以被包括在伙伴的应用124中的软件库和功能/方法。可以调用这些功能/方法以向应用提供本文针对归因系统110所描述的的各种功能。例如,应用可以调用这些功能/方法来请求系统链接、处理对系统链接的选择、将事件数据(例如,应用打开事件)传输至归因系统110以及处理从归因系统110接收的数据。伙伴的应用中包括的集成/修改的应用模块部件114可以被称为“应用模块114”或“app模块114”。伙伴可以将包括应用模块114的应用124上载至一个或更多个数字分发平台122。

web模块部件116可以包括可以被包括在伙伴的网站131中的软件库和功能/方法。可以调用这些功能/方法(例如JavaScript)以向网站131提供本文针对归因系统110所描述的的各种功能。例如,可以调用这些功能/方法来请求系统链接、处理对系统链接的选择、将事件数据(例如,网页查看事件)传输至归因系统110以及处理从归因系统110接收的数据。伙伴的网站131中包括的集成/修改的web模块部件116可以被称为“web模块116”。

伙伴还可以对归因系统110针对伙伴应用124、伙伴网站131和伙伴链接126将如何表现进行配置。例如,伙伴可以通过配置哪些事件可以归因于其他事件(例如,哪些事件被认为是可归因事件)来(例如,使用伙伴仪表板)配置归因系统110。例如,伙伴可以选择包括应用打开事件、应用安装事件、商业事件(例如,购买事件和/或添加到购物车事件)和/或伙伴限定的其他自定义事件的可归因事件集。伙伴还可以为事件配置归因时间窗口。伙伴配置可以存储在伙伴配置数据存储装置202中。链接系统106、角色系统100和事件处理系统104可以根据存储在伙伴配置数据存储装置202中的伙伴配置数据以特定于伙伴的方式进行操作。

伙伴可以从伙伴接口模块200请求创建系统URI。例如,伙伴可以使用由伙伴接口模块200提供的伙伴仪表板和/或另一接口(例如API)来请求将系统URI包括到系统链接126中。使用伙伴仪表板,伙伴可以指定要与系统URI相关联的各种操作和数据。例如,伙伴可以指定链接分析数据、路由数据和其他数据。链接系统106可以基于伙伴指定的操作和数据来生成并存储系统链接数据对象602(例如,图6A)。例如,链接系统106(例如,图5的链接生成模块)可以生成系统URI并将该系统URI与基于伙伴指定的操作和数据生成的链接数据相关联。链接系统106可以将系统链接数据对象(例如,图6A)存储在链接数据存储装置(例如,图5)中。

伙伴接口模块200可以将系统URI返回给伙伴。伙伴可以将系统URI包括在伙伴的应用124/网站131或另一方的应用/网站中,例如广告网络中。例如,伙伴可以将系统URI包括在用户可选择系统链接126(例如,超链接、图形横幅或图形覆盖)中。如本文所描述的,用户设备102(例如,web浏览器136)可以使用系统URI来访问事件处理系统104。

伙伴接口系统108包括分析数据存储装置204,分析数据存储装置204存储指示用户设备102如何与伙伴的系统URI、伙伴的网站131和/或伙伴的应用124进行交互的伙伴分析数据。伙伴分析数据存储装置204中包括的示例数据可以包括指示哪些事件归因于其他事件的归因数据、应用安装数据、应用使用数据以及网站使用数据。其他类型的数据可以包括地理数据(例如,使用伙伴的应用、网站和/或链接的用户的位置)。伙伴可以检索与单个事件相关的数据和/或多个事件的聚合数据。伙伴设备112可以经由伙伴仪表板访问(例如,查看/下载)伙伴分析数据。

图3是示出用户设备102、外部数据系统118和归因系统110的部件之间的示例交互的功能框图。图4示出了描述如图3所示出的用户设备102与归因系统110的部件之间的交互的方法。图3的用户设备102、事件处理系统104、链接系统106和角色系统100可以根据图4的方法如下进行交互。首先,在框400至框402中,用户可以对用户设备102采取动作,该用户设备102生成被传输至事件处理系统104的事件数据300。在本文中可将用户设备102响应于用户动作而生成并传输事件数据300称为“事件”。在框404中,事件处理系统104接收事件数据300并确定如何处理事件数据300(即,确定如何处理事件)。

在框406中,角色系统100记录并处理事件数据300。例如,角色系统100可以通过生成新的角色以及/或者更新现有的角色来记录事件数据300。在一些实现方式中,角色系统100可以对生成/更新的角色执行匹配操作,以确定传入事件与先前事件是否由同一用户设备生成。在角色系统100确定传入事件与先前事件是由同一用户设备生成(例如,发生角色匹配)的情况下,角色系统100可以将传入事件归因于先前事件。例如,角色系统100可以将应用的安装归因于先前用户对系统链接(例如,到应用状态的链接)的选择。

在框408中,事件处理系统104处理事件并响应用户设备102。例如,事件处理系统104可以基于与角色系统100的通信来处理事件并响应用户设备102。在一个示例中,如果角色系统100将传入事件归因于先前事件,则事件处理系统104可以以取决于先前事件的方式来处理传入事件。在应用的安装归因于先前用户对系统链接的选择的示例中,事件处理系统104可以根据先前选择的系统链接的系统URI路由新安装的应用。

在一些实现方式中,事件处理系统104可以基于与链接系统106的通信来处理事件并响应用户设备102。例如,如果事件处理系统104接收到系统URI(例如,指示点击系统链接126的事件数据),则事件处理系统104可以从链接系统106检索与系统URI相关联的链接数据。然后,事件处理系统104可以根据链接数据响应用户设备102。例如,事件处理系统104可以根据链接数据路由用户设备102(例如,重定向web浏览器136)。

取决于本文描述的各种因素,事件处理系统104向用户设备102提供的响应可以不同。在一些情况下,事件处理系统104可以响应于接收到的事件来路由用户设备102(例如,web浏览器和/或应用)。在一些情况下,事件处理系统104可以响应于接收到的事件而将数据传送至用户设备102。在一些情况下,事件处理系统104可以发送事件接收的确认。在其他情况下,事件处理系统104可以避免向用户设备102提供响应,或者返回默认响应。

如图3所示出的,在一些实现方式中,角色系统100可以从一个或更多个外部数据系统118接收外部事件数据300-4。角色系统100可以以与从用户设备102接收的其他事件数据相似的方式来处理外部事件数据300-4。例如,响应于接收到外部事件300-4,角色系统100可以生成/更新角色并对角色执行匹配操作。角色系统100还可以将外部事件归因于经由事件处理系统104接收的其他事件。此外,角色系统100可以将经由事件处理系统104接收的事件归因于外部事件。在一些实现方式中,在外部事件中不存在设备ID的情况下,角色系统100可以使用用户名和app名称/ID的配对来匹配与外部事件相关联的角色。

在一些实现方式中,事件数据300可以包括标识用户的用户标识数据。用户标识数据可以包括用户名/登录名。在一些情况下,用户名可以包括电子邮件地址。用户标识数据可以针对网站/应用标识用户。在一个具体示例中,用户名和app ID对可以针对与app名称/ID相关联的应用/网站唯一地标识用户。

在一些实现方式中,角色可以包括指示事件源的源数据。如本文所描述的,可以响应于用户动作例如用户与链接、网页或应用状态进行交互来生成事件数据。例如,在用户查看网页或应用状态的情况下,或者在用户与网页或应用状态中包括的系统链接或其他GUI元素进行交互的情况下,可以生成事件数据300。存储在角色(例如,基于每个事件)中的源数据可以描述与事件数据的生成相关联的网络位置和/或环境(例如,链接被查看或选择的位置)。取决于所生成的事件数据的类型,确定源数据的方式可以不同。示例性源数据可以指示事件数据是否是从横幅查看/选择、共享事件、***式广告查看/选择、一般页面查看、营销链接、电子邮件内、短消息服务(SMS)消息内、一般广告中和/或社交媒***置中(例如,Facebook公司的

Figure BDA0002328637190000141

上的帖子,或Twitter公司的

Figure BDA0002328637190000142

上的帖子)生成的。在一些实现方式中,源数据可以标识与链接相关联的广告活动名称(例如,由伙伴生成)。在一些实现方式中,源数据可以由伙伴配置并存储在链接数据(例如,参见图6A)中和/或app模块114/web模块116中。在一些情况下,源数据可以指示事件数据是来自app模块114/web模块116,还是来自系统链接126和/或来自外部事件数据300-4。在一些情况下,源数据可以包括app名称/ID。源数据还可以包括指示用户如何访问其中发生事件的网页或应用状态的参考数据(例如,HTTP引用者(referer)数据)。源数据可以帮助确定哪些事件归因于先前的事件。

图5示出了事件处理系统104、链接系统106和角色系统100的更详细示例。由用户设备102生成的事件数据300可以被表征为应用事件数据300-1(“app事件数据300-1”)或web事件数据300-3。事件的特性可以取决于事件数据是经由用户与web浏览器的交互生成的还是与其他应用的交互生成的。web事件通常可以源于web浏览器并且可以与web ID(例如,cookie ID)相关联。例如,web事件可以指由伙伴的网站131的web模块116生成的事件。app事件通常可以源于除web浏览器以外的应用并且可以与设备ID(例如,除web ID以外的设备ID,例如广告ID)相关联。例如,app事件可以指由伙伴的应用124的app模块114生成的事件。本文描述的另一类型事件是生成链接数据300-2的链接选择事件。可以通过选择伙伴的网站/应用上或另一网站/应用中的系统链接126来生成链接选择事件。取决于用户设备102如何处理链接选择,链接选择事件可以被表征为app事件或web事件。例如,取决于用户设备102如何处理链接选择事件,链接选择事件可以与web ID或另一设备ID(例如,广告ID)相关联。在一些情况下,事件处理系统接收到的事件数据可以作为HTTP请求或HTTP安全(HTTPS)请求被接收。

web事件可以与和app事件不同的类型的设备ID相关联。例如,web事件数据300-3可以包括web ID(例如cookie ID),而app事件数据300-1可以包括不同类型的设备ID(例如广告ID)。因此,随着时间的推移,不同类型的设备ID可以与同一用户设备相关联。此外,在一些情况下,用户可以改变用户设备使用的设备ID。例如,用户可以从用户设备删除web ID(例如,cookie ID),这可能使得随着时间的推移用户设备将传输不同的web ID。作为另一示例,用户可以改变用户设备上的广告ID,这可能使得随着时间的推移用户设备将传输不同的广告ID。

出于各种原因,用户设备102可以生成不同类型的设备ID。在一些情况下,用户设备102可以根据指定哪些设备ID可由特定应用访问的各种限制(例如,隐私/许可限制)来操作。例如,在一些情况下,出于隐私原因,可以限制web浏览器访问或报告硬件设备ID和/或广告ID(例如,由于在操作期间web浏览器可能不需要访问这样的设备ID)。作为另一示例,web ID(例如,cookie ID)可以特定于浏览器应用,因此如果用户设备具有多个web浏览器应用(例如,苹果公司的Safari浏览器和谷歌公司的Chrome浏览器),则浏览器应用中的每一个都可以使用它们自己的cookie ID域。作为另一示例,在浏览器应用内访问的不同网站可以使用不同的web ID。此外,在一些情况下,HTTP和HTTPS连接可以被视为不共享相同webID的单独域。

事件处理系统104包括接收并处理app事件的app事件响应模块500(下文中称为“app响应模块500”)。在一些实现方式中,app响应模块500可以将app事件响应302-1传输至用户设备102。事件处理系统104包括接收并处理web事件的web事件响应模块502(下文中称为“web响应模块502”)。web响应模块502可以将web事件响应302-3传输至用户设备。取决于本文描述的各种因素,例如用户设备102被配置成如何处理对系统链接126的选择,app响应模块500和/或web响应模块502可以处理链接事件(例如,通过发送链接事件响应302-2)。

用户设备102可以响应于各种不同的用户动作(例如,根据app模块114)来传输app事件数据300-1。例如,用户设备102可以响应于以下来传输app事件数据300-1:1)打开应用(称为“app打开事件”),2)用户关闭应用(称为“app关闭事件”),3)用户将物品添加至购物车或用户购买物品(通常称为“应用商业事件”),4)用户在应用安装之后打开应用(称为“app安装事件”),5)用户在应用重新安装之后打开应用(称为“app重新安装事件”),6)用户请求由链接系统106创建系统URI并将其传输回用户设备(例如,以便共享内容),7)用户访问应用的状态(例如,app页面),8)用户执行应用模块114已由归因系统的操作者配置以进行报告的动作,以及9)用户执行应用模块114已由伙伴配置以向归因系统110报告的任何其他动作(即,由伙伴限定的自定义事件)。例如,伙伴可以限定自定义事件以指示特定的应用状态(例如,应用页面)或特定的内容片段被查看或共享。

app模块114可以被配置成生成各种不同的app事件。因此,上述app事件的列表仅是可能的app事件的示例列表。在一些实现方式中,app模块114可以被配置成生成上述app事件或不同的app事件。

由用户设备102传输并由app响应模块500接收的app事件数据300-1可以包括但不限于:1)设备ID(例如广告ID、硬件ID等),2)指示与app事件数据300-1相关联的应用的应用名称/ID(本文称为“app名称/ID”或“app ID”),3)标识app的用户的用户标识数据(例如,用户名),4)指示事件数据源的源数据,以及5)设备元数据(例如,用户代理数据),例如IP地址、OS标识数据(例如,OS名称、OS版本)、设备类型和屏幕分辨率。app事件数据300-1还可以包括指示事件的类型的事件标识符。例如,事件标识符可以指示app事件是app打开事件、app关闭事件、app安装事件、app重新安装事件、商业事件(例如,添加至购物车事件或购买事件),还是可由开发人员在app模块114中定义的自定义事件。在app事件是由用户选择链接(例如,系统链接126)引起的app打开事件的情况下,用户设备可以传输附加的app事件数据,例如致使用户设备打开应用的URI(例如,系统URI)。在一些情况下,如本文参照图11的方法描述的,app事件数据300-1还可以包括与URI相关联的web ID(例如,附加至系统URI)。

app响应模块500可以响应于接收到app事件数据300-1来执行各种不同的操作。例如,app响应模块500可以:1)给接收到的app事件数据300-1加时间戳(或使用接收到的时间戳),2)确定app事件的源,3)将app事件数据300-1传递给角色系统100以由角色系统进行记录,4)请求角色系统100确定app事件是否可以归因于任何先前事件,以及/或者5)(例如,基于角色系统100中包含的数据和/或app事件数据300-1)确定app打开事件是安装事件还是重新安装事件。在app响应模块500接收到系统URI的情况下,app响应模块500可以获取与系统URI相关联的链接数据。在app响应模块500接收到链接生成请求的情况下,app响应模块500可以请求由链接系统106生成系统链接数据对象602。链接系统106可以生成系统链接数据对象602,并且app响应模块500可以将系统URI传输回用户设备102。

用户设备102可以响应于各种不同的用户动作(例如,根据web模块116)来传输web事件数据300-3。例如,用户设备102可以响应于用户访问网页(称为“网页查看事件”)来传输web事件数据300-3。访问网页可以是web会话(例如,站点上的第一网页访问)或随后的页面查看的开始。用户设备102还可以响应于以下内容来传输web事件数据300-3:用户向购物车添加物品或用户购买物品(通常称为“web商业事件”)、用户请求由链接系统106创建系统URI并将该系统URI传输回用户设备102(例如,以便共享内容)、用户执行web模块116已由归因系统110的操作者配置来进行报告的动作以及用户执行web模块116已由伙伴配置来向归因系统10报告的任何其他动作(即,由伙伴定义的自定义web事件)。例如,伙伴可以定义指示特定网页或特定内容被查看或共享的自定义事件。

由用户设备102传输并由web响应模块502接收的web事件数据300-3可以包括但不限于:1)web ID,2)网站名称/ID,其可对应于角色系统中的app名称/ID或app ID,以及3)设备/浏览器元数据(例如,用户代理数据),例如IP地址、OS标识数据(例如,OS名称、OS版本)、设备类型和屏幕分辨率。可以从web浏览器136发送的用户代理中提取设备/浏览器元数据。web事件数据300-3还可以包括标识网站的用户的用户标识数据(例如用户名)、指示web事件数据300-3的源的源数据和指示事件类型的事件标识符。例如,事件标识符可以指示web事件是网页查看事件、商业事件、链接创建事件、共享事件还是由开发人员在web模块116中定义的自定义事件。

web响应模块502可以响应于接收到web事件数据300-3来执行各种不同的操作。例如,web响应模块502可以:1)给接收到的web事件数据300-3加时间戳(或使用接收到的时间戳),2)确定web事件的源,3)将web事件数据300-3传递给角色系统100以由角色系统100进行记录,以及/或者4)请求角色系统100确定web事件是否可以归因于任何先前事件。在web响应模块502接收到链接生成请求的情况下,web响应模块502可以请求由链接系统106生成系统链接数据对象602。链接系统106可以生成系统链接数据对象602,并且web响应模块502可以将系统URI传输回用户设备102。在web浏览器136不包括web ID的情况下,web响应模块502还可以在用户设备102上设置web ID。

用户设备102可以响应于用户选择系统链接126(例如,点击或轻击系统链接126)来传输链接事件数据300-2。取决于用户设备102是如何配置的,用户设备102可以以各种方式处理用户对系统链接126的选择(例如,参见图11)。在某些情况下,对系统链接126的选择可以使得应用被打开,在这种情况下,在app打开事件中将对系统链接126(例如,系统URI)的选择传递至app响应模块500。在其他情况下,对系统链接126的选择由web浏览器136处理,web浏览器136使用与系统链接126相关联的系统URI访问web响应模块502。尽管未示出,但在一些实现方式中,事件处理系统104可以包括处理传入链接事件的链接处理模块。

在其中web浏览器136响应于用户对系统链接126的选择来访问web响应模块502的实现方式中,链接事件数据300-2可以包括web ID和设备/浏览器元数据。设备/浏览器元数据(例如,用户代理数据)可以包括IP地址、OS标识数据(例如,OS名称、OS版本)、设备类型和屏幕分辨率。

web响应模块502可以响应于接收到链接事件数据300-2来执行各种不同的操作,包括但不限于:1)给接收到的链接事件数据300-2加时间戳(或使用接收到的时间戳),2)确定链接事件数据300-2的源,3)将链接事件数据300-2传递给角色系统100以由角色系统100进行记录,4)***数据存储装置504以检索用于接收到的系统URI的链接数据,5)基于检索到的链接数据将用户设备102路由至一定位置(例如,用于下载应用的数字分发平台122、默认站点或其他站点),以及6)在web浏览器不包括web ID的情况下设置web ID。

链接系统106包括链接生成模块506和链接数据存储装置504。链接生成模块506可以响应于链接生成请求来生成系统URI和链接数据。链接数据可以由事件处理系统104使用以路由用户设备以及跟踪与对系统链接126的选择相关联的用户分析。

伙伴或用户设备102(例如,app模块114/web模块116)可以从链接生成模块506请求系统URI。在该请求中,伙伴(或用户设备102)可以指定要与系统URI相关联的操作和数据。还指定要与系统URI一起包括在系统链接数据对象602中的操作和数据的对系统URI的请求在本文中可以被称为“链接生成请求”。链接生成模块506可以响应于链接生成请求生成系统URI。链接生成模块506可以将系统URI 604和相关联的链接数据606作为系统链接数据对象602(参见图6A)存储在链接数据存储装置504中。链接数据存储装置504可以针对每个伙伴存储多个链接数据对象602。

系统URI 604可以包括域名(例如,example.com或www.example.com)和路径(例如,example.com/path_segment1/path_segment2/)。域名和路径可以用于经由网络120访问与系统URI 604相关联的系统链接数据对象602。例如,web浏览器136可以生成使用系统URI 604来访问事件处理系统104的链接事件。事件处理系统104然后可以基于与接收到的系统URI 604相关联的链接数据606来处理链接事件。在一些情况下,系统URI 604的方案可以是使用http的web统一资源定位符(URL)或者诸如ftp的其他方案。

用户设备102可以以各种不同的方式处理与系统URI 604相关联的系统链接126。在一些实现方式中,用户设备102可以使用web浏览器136来处理系统URI 604。在该实现方式中,浏览器136可以使用系统URI 604来访问事件处理系统104。在其他实现方式中,安装在用户设备102上的应用可以处理系统URI 604。例如,用户设备102(例如,OS)可以将系统URI 604(例如,域和/或路径)识别为由安装在用户设备102上的应用处理的系统URI。在这种情况下,用户设备102(例如,OS)可以启动应用并且将系统URI 604传递至所启动的应用。在这种情况下,在app打开事件中,应用可以将系统URI 604传输至事件处理系统104。可以识别链接格式并根据所选链接来启动应用的用户设备和OS的示例可以包括1)识别通用链接的运行

Figure BDA0002328637190000201

操作系统的设备,和2)识别Android App链接的运行

Figure BDA0002328637190000202

OS操作系统的设备。

链接数据606可以包括各种数据,例如链接分析数据608和链接路由数据610。链接分析数据608可以包括由伙伴用来跟踪系统链接的执行的数据,例如系统链接被选择了多少次以及系统链接在哪里被选择。例如,分析数据608可以包括由伙伴指定的标签,这些标签指示活动名称(例如,广告活动名称)、应用名称和/或与系统链接相关联的通道(例如,网站)(例如,包括系统链接的网站)。路由数据610可以包括由事件处理系统104(例如,web响应模块502)用来响应于对系统链接126的选择而引导用户设备102(例如,web浏览器)的数据。例如,伙伴可以指定系统链接应当响应于用户选择与未安装在用户设备102上的应用相关联的系统链接来将用户路由至数字分发平台122以下载应用。链接数据606还可以包括本文描述的附加链接数据612。

在一些实现方式中,链接系统106可以响应于来自用户设备102的链接生成请求来生成系统链接数据对象602。例如,如果用户决定与另一用户共享(例如,通过选择共享按钮来共享)应用内容,则用户设备102(例如,app模块114)可以传输包括链接生成请求的app事件(例如,共享事件)。事件处理系统104接收具有链接生成请求的共享事件、通过链接生成模块506生成系统URI并传输回生成的系统URI 604以供用户共享。取决于与系统URI 604相关联的链接数据606是如何配置的,选择包括系统URI 604的系统链接126可以导致各种结果。例如,如果用户已经安装了应用,则选择系统URI可以通向应用内容,如果没有安装应用,则可以通向数字分发平台122,或者可以通向包括与应用类似的内容的网站。

角色系统100包括角色数据存储装置508、角色生成/更新模块510(下文中称为“角色生成模块510”)、角色匹配模块512以及角色链接和归因模块514(下文中称为“角色归因模块514”)。角色数据存储装置508存储角色600。图6B中示出了示例角色600。

角色生成模块510响应于事件处理系统104接收到事件数据300来生成并更新角色600。例如,角色生成模块510可以针对包括新的设备ID(例如,当前存在的角色中未包括的设备ID)的事件数据生成新角色。在事件数据包括已经包括在现有角色中的设备ID的情况下,角色生成模块510可以基于传入事件数据来更新角色。角色生成模块510可以在将事件数据300存储在角色600中之前处理事件数据300(例如,代替存储所有接收到的事件数据300)。例如,角色生成模块510可以选择事件数据300的部分以存储在角色600中。在一些实现方式中,角色生成模块510可以对所接收的事件数据510中的一些(例如,设备类型/名称、OS名称等)进行标准化。尽管未示出,但是在事件数据300中(例如,在外部事件数据300-4中)未包括设备ID的情况下,用户名和app ID可以用于生成和匹配角色。

图6B示出了示例角色600。每个角色600可以包括与单个用户例如与一个或更多个用户设备相关联的单个用户相关的数据。在一些情况下,角色数据存储装置608可以包括针对单个用户设备的单个角色。在其他情况下,角色数据存储装置608可以包括针对同一用户(例如,同一用户设备)的多个角色。当用户设备使用了还没有组合成单个角色的多个设备ID时,可能发生这种情况。在一些情况下,角色数据存储装置508可以包括针对正在使用多个设备(例如,台式设备和一个或更多个移动设备,例如平板电脑和智能电话)的同一用户的多个角色。

角色600可以包括可以由角色生成模块510指定以在角色数据存储装置508中的其他角色之中唯一地标识角色600的角色ID 614。角色600还可以包括一个或更多个设备ID616(例如,一个或更多个web ID和/或一个或更多个广告ID)。在一些情况下,角色600可以包括单个设备ID(例如,单个cookie ID或单个广告ID)。在其他情况下,角色600可以包括多个设备ID。例如,角色600可以包括一个或更多个cookie ID和一个或更多个广告ID。作为另一示例,角色600可以包括多个cookie ID,但不包括任何广告ID。作为另一示例,角色600可以包括多个广告ID,但不包括任何cookie ID。在一些实现方式中,设备ID 616可以作为角色600的主索引。

角色600可以包括一个或更多个app特定数据结构618(例如618-1、618-2)。app特定数据结构618包括特定于应用和/或网站(例如,特定于伙伴的应用和相应的网站)的数据。图6B示出了两个示例app特定数据结构618-1、618-2(例如,针对第一app/网站和第二app/网站)。角色600还可以包括设备/浏览器元数据620(例如,用户代理数据),例如IP地址、OS标识数据(例如,OS名称、OS版本)、设备类型和屏幕分辨率。角色还可以包括角色参考数据622,其包括对可能与同一用户设备相关联的一个或更多个其他角色(例如,角色ID和/或设备ID)的参考。

角色600还可以包括附加角色数据624,附加角色数据624包括但不限于与用户相关联的地理数据(例如,与用户相关联的最后的地理位置)、用户使用的设备列表(例如,一个或更多个移动设备和/或台式设备)以及可以从app特定数据618得到的附加数据(例如,第一次看到用户、最后使用的OS、最后的链接选择事件)。

用于单个应用的app特定数据可以包括指示用户如何使用应用和/或对应网站的数据。在图6B中针对第一应用和第二应用示出了app特定数据618-1、618-2。app特定数据618可以包括应用/网站名称/ID 626-1、626-2(下文中称为app名称/ID)。该ID标识与app特定数据618相关联的应用和/或对应的网站。app特定数据618还可以包括应用/网站的事件的列表628-1、628-2。事件的列表628-1、628-2可以包括app事件、web事件和/或链接选择事件。事件可以以元组格式存储,该元组格式指示事件的名称和与事件相关联的时间戳(例如,[事件的名称:时间戳])。例如,事件的列表628-1包括具有三个相关联的时间戳的三个事件。在一些实现方式中,事件数据可以包括指示事件是web事件还是app事件的事件类型指示符。在本文描述的一些情况下,事件可以归因于先前事件。在这些情况下,先前事件和/或后续事件可以包括对其他事件的参考。例如,后续事件可以包括对先前事件的参考。事件参考可以参考同一角色中的另一事件或者事件可以被包括在不同的角色中。图6B中的事件3包括事件参考630。

app特定数据618可以包括用户标识数据632-1、632-2(例如,用户名)。在一些实现方式中,可以通过用户名和应用ID(例如,归因系统分配的应用ID)的组合来索引角色600。app特定数据618还可以包括附加app特定数据634-1、634-2,附加app特定数据634-1、634-2中的一些可以从app/网站的事件的列表628得到。附加app特定数据634可以包括但不限于a)指示app/网站的最近使用的时间戳,b)指示app/网站在移动设备上被访问的最后时间的时间戳,c)指示app/网站在台式设备上被访问的最后时间的时间戳,d)指示在一段时间内app/网站被使用的频率和时间的活动数据(例如,在预定数量的先前天数内app/网站在哪天被使用),e)指示app/网站在移动设备上被使用的频率的活动数据,f)指示app/网站在台式设备上被使用的频率的活动数据,以及g)指示用户第一次使用app/网站(例如,事件的列表中的最早事件)的时间戳。

图7示出了用于生成和更新角色数据存储装置508中的角色600的示例方法。图8是示出角色数据存储装置508中的角色800-1、800-2、800-3的生成和更新的功能框图。在图8中,为了清楚起见,省略了事件处理系统104和角色系统100的一些部件。图8中所示的示例可以表示第二用户设备802-2选择至当前未安装在第二用户设备802-2上的应用的系统链接的情况,这可以使得第二用户设备802-2向事件处理系统104传输(例如,经由web浏览器传输)链接事件。第二用户设备802-2可以经由web浏览器被重定向至数字分发平台122以下载应用。在安装应用之后,第二用户设备802-2可以打开应用并且生成app事件数据2 806-2。如参考图9至图10所描述的,app打开/安装事件可以归因于先前的链接事件。

现在参照图8的功能框图来描述图7的方法。最初,在框700中,角色生成模块510接收事件数据300。例如,角色生成模块510可以从事件处理系统104(例如,web响应模块502和/或app响应模块500)和/或外部数据系统118接收事件数据300。在框702中,角色生成模块510确定与所接收的事件数据300相关联的设备ID。在框704中,角色生成模块510确定设备ID是否被包括在任何现有角色中。如果设备ID被包括在现有角色中,则在框706中,角色生成模块510基于现有事件数据来更新现有角色。例如,角色生成模块510可以更新现有角色的app特定数据,以将传入事件包括在应用/网站的事件数据列表中。角色生成模块510还可以更新角色中的附加信息,例如已更新事件的源数据和/或与事件相关联的其他元数据的数据,例如与事件相关联的产品或与事件相关联的主题。如果设备ID未被包括在现有角色中,则在框708中,角色生成模块510可以针对包括新设备ID的事件数据生成新角色。

参照图8,角色生成模块510从第一用户设备802-1接收web事件数据1 804-1和app事件数据1 806-1。角色生成模块510确定角色数据存储装置508包括与web ID 1和设备ID1相关联的现有角色1 800-1。角色生成模块510使用从第一用户设备802-1接收到的web事件数据和app事件数据来更新角色1 800-1(例如,现有角色1的app特定数据)。

另外,在图8中,角色生成模块510从第二用户设备802-2接收web事件数据2 804-2,并且随后从第二用户设备802-2接收app事件数据2806-2。响应于从第二用户设备802-2接收到web事件数据2 804-2,角色生成模块510确定角色数据存储装置508不包括与web ID2相关联的角色。角色生成模块510生成图8中所示的新角色2 800-2。新角色2 800-2包括指示用户在时间T1做出链接选择的app特定数据808。响应于从第二用户设备802-2接收到app事件数据2 806-2,角色生成模块510确定角色数据存储装置508不包括与设备ID 2相关联的角色。角色生成模块510生成图8中所示的新角色3 800-3。新角色3 800-3包括指示用户在时间戳T2打开(例如,第一次打开)应用的app特定数据810。

参考图5,角色匹配模块512可以确定两个不同的角色(例如,具有不同的设备ID的角色)是否与同一用户设备相关联。例如,角色匹配模块512可以基于角色中包括的数据来确定两个角色与同一用户设备相关联。用于确定两个角色是否匹配的数据在本文中可被称为“匹配数据”。示例匹配数据可以包括设备/浏览器元数据,例如IP地址、设备OS名称/版本、设备类型、屏幕分辨率和浏览器类型。附加的示例匹配数据可以包括事件时间戳、app名称/ID和用户标识数据(例如,用户名)。在一些实现方式中,角色匹配模块512可以响应于新创建角色来执行匹配操作。例如,角色匹配模块512可以响应于新角色的创建来尝试将每个新创建的角色与另一现有角色进行匹配。在一些实现方式中,角色匹配模块512可以分批地匹配角色,而不是尝试对每个新生成的角色进行匹配。在这些实现方式中,角色匹配模块512可以在预定的时间和/或在已经生成预定数量的角色之后尝试匹配角色。

角色归因模块514基于角色之间的匹配结果来更新角色。例如,角色归因模块514可以链接(例如,通过添加角色参考数据来链接)匹配的角色。另外,角色归因模块514可以标记角色(例如,相同的角色或链接的角色)内的可以归因于彼此的事件(例如,使用事件参考)。响应于两个角色之间的匹配,角色归因模块514可以更新一个或两个角色以包括对另一角色的参考,该参考指示两个角色匹配(例如,属于同一用户设备)。在一些实现方式中,角色可以包括事件的列表。在这些实现方式中,角色归因模块可以更新角色(例如,app特定数据中的事件)以指示哪个特定事件与已经存在的角色中的先前事件相匹配。在一些情况下,事件数据指示后续事件归因于先前事件。

在一些实现方式中,代替向其他角色添加指示这两个角色来自同一用户设备的角色参考,角色归因模块514可以组合包括在这两个角色中的数据以形成单个角色。在这些实现方式中,在一些情况下,角色归因模块可以删除较早角色的实例。

在一些实现方式中,角色生成模块510可以删除与已经被存储达大于阈值时间量或者已经不活动达阈值时间量(例如,角色未被修改达大于阈值时间量)的设备ID相关联的角色。

在一些实现方式中,角色匹配模块512可以确定一对角色的匹配分数,该匹配分数指示两个角色与同一用户设备相关联的可能性。在这些实现方式中,角色归因模块514可以根据匹配的结果(例如,基于匹配分数)来更新角色。例如,角色归因模块514可以添加对大于阈值匹配分数的角色的参考。角色归因模块514可以避免添加对小于阈值匹配分数的角色的参考。在一些示例中,角色系统100(例如,角色生成模块510)可以组合大于阈值匹配分数的角色。基于匹配分数例如大于阈值匹配分数的匹配分数的角色之间的匹配在本文中可以被称为“概率匹配”

角色归因模块514可以返回指示哪些角色匹配以及哪些事件匹配的归因数据。例如,角色归因模块514可以将归因数据返回给事件处理系统104,以便事件处理系统104在响应事件时使用。作为另一示例,角色归因模块514可以将归因数据返回给伙伴接口系统108以存储在伙伴分析数据存储装置204中以用于伙伴评估。

图9示出了用于匹配角色并将角色内的事件归于另一角色中的先前事件的示例方法。图10是示出了匹配两个角色800-2、800-3的角色匹配模块512的功能框图。另外,图10示出了app安装事件归因于先前链接选择。现在参照图10的功能框图来描述图9的方法。

最初,在框900中,角色匹配模块512选择第一角色用于匹配。在一些实现方式中,角色匹配模块512可以尝试将任何新生成的角色与现有角色进行匹配,然后尝试将新角色中的事件归因于所匹配的角色中的事件。在这些实现方式中,在实时接收到角色时,角色匹配模块512可以对角色执行本文描述的匹配操作。在其他实现方式中,角色匹配模块512可以对一批新角色执行匹配操作。

在框902至框904中,角色匹配模块512选择不同的角色并且基于包括在两个所选角色中的数据来执行匹配操作。例如,角色匹配模块512可以基于角色中包括的匹配数据的比较来确定两个角色是否匹配,所述匹配数据例如IP地址、设备OS名称/版本、设备类型、屏幕分辨率、浏览器类型和用户标识数据。如果在框906中两个角色不匹配,则角色匹配模块512可以选择另一角色来尝试与第一角色匹配。如果两个角色匹配,则在框908中角色归因模块514可以修改(例如,通过添加对角色的参考和/或组合角色来修改)所选择的角色中的一个或更多个。例如,角色归因模块514可以更新新生成的角色以包括对较旧角色的参考。在一些情况下,角色归因模块514可以将来自新生成的角色的事件归因于较旧角色中的事件并且相应地生成事件参考。

现在参照图10,如参照图8所描述的那样生成新角色3 800-3和新角色2 800-2。具体地,可以假定在T2处生成新角色3 800-3之前,在T1处生成新角色2 800-2。还可以假设角色匹配模块512没有找到角色2 800-2与已经包括在角色数据存储装置508中的附加角色812之间的匹配。响应于新角色3 800-3的生成,角色匹配模块512可以从角色数据存储装置508选择角色,以尝试识别与新角色3 800-3相匹配的角色。在选择新角色3800-3以进行匹配之后,角色匹配模块512可以确定新角色3 800-3和新角色2 800-2匹配。例如,角色匹配模块512可以基于设备/浏览器元数据、用户标识数据以及与角色2 800-2和角色3 800-3相关联的其他数据来确定新角色2 800-2和新角色3 800-3匹配。在一个特定示例中,角色匹配模块512可以确定新角色2 800-2和新角色3 800-3匹配,因为它们与相同的IP地址、设备OS名称/版本、设备类型、屏幕分辨率和/或浏览器类型相关联。在该特定示例中,设备/浏览器元数据可以匹配,因为该设备/浏览器元数据来自相同的用户设备802-2(例如,参见图8)。

响应于角色匹配模块512确定新角色2 800-2与新角色3 800-3匹配,角色归因模块514修改角色2 800-2和角色3 800-3以包括对彼此的参考。角色归因模块514还修改新角色3 800-3中所包括的事件以参考新角色2800-2中所包括的事件。例如,如图10中所示,角色归因模块514修改新角色3 800-3的打开/安装app事件数据1000以包括对新角色2 800-2的链接选择事件808的归因参考。如参照图8所描述的,图10的示例可以表示第二用户设备802-2选择至当前未安装在用户设备802-2上的应用的链接的情况,这可以使得第二用户设备802-2向事件处理系统104传输链接事件。链接事件致使新角色2 800-2生成。第二用户设备802-2被重定向至数字分发平台122以下载应用。在安装应用之后,第二用户设备802-2打开应用以生成致使新角色3 800-3生成的app事件数据2 806-2。角色匹配模块512将新角色2 800-2与新角色3 800-3进行匹配。然后,角色归因模块514修改新角色3 800-3的事件数据以指示app打开/安装事件归因于先前的链接选择事件。

在一些实现方式中,角色匹配模块512可以基于生成角色的时间窗口(例如,接收事件数据的时间窗口)来选择用于匹配的角色。例如,在接收到事件数据并生成新角色之后,角色匹配模块512可以基于现有角色被创建的时间来选择一个或更多个现有角色以与新角色进行匹配。在该示例中,角色匹配模块512可以限定时间窗口(例如,以分钟、小时、天等),并且选择在关于新角色的时间窗口内生成的现有角色。在更具体的示例中,如果角色匹配模块512被配置成匹配在两小时时间窗口内的角色,则如果对现有角色加上时间戳距对新角色加上时间戳的时间小于(或等于)两小时,则角色匹配模块512可以选择用于与新角色匹配的角色。

在一些实现方式中,角色匹配模块512可以基于与角色相关联的IP地址来选择用于匹配的角色。例如,在生成新角色之后,角色匹配模块512可以基于与新角色和现有角色相关联的IP地址来选择一个或更多个现有角色以与新角色匹配。在该示例中,如果现有角色包括与新角色相同的IP地址,则角色匹配模块512可以从现有角色中选择一个或更多个角色以进行匹配。

在一些实现方式中,角色匹配模块512可以基于潜在的附加角色匹配的数目来确定两个角色之间的匹配分数。例如,在多个角色包括相似的设备/浏览器元数据的情况下,角色之间的多个可能匹配是可能的。在这些情况下,匹配分数可以反映在角色匹配中存在的模糊度。例如,对于可能存在更多数目的匹配的情况,匹配分数可以较低。在一个特定示例中,匹配分数可以与可能匹配的数目成反比(例如,1除以可能匹配的总数目)。通常,在匹配角色时,更具体的匹配数据(例如,更具体的OS名称/版本、设备类型)可以产生更小的模糊度。在一些实现方式中,角色匹配模块512可以为特定匹配数据中的匹配(例如,设备类型、屏幕分辨率、OS等中的匹配)分配诸如十进制值之类的值。在一些实现方式中,角色匹配模块512可以为不同类型的匹配数据分配不同的加权值。

匹配分数可以与角色参考一起存储。当新的匹配数据变得可用时,随时间的推移角色匹配模块512可以更新角色匹配分数。例如,如果接收到指示两个角色更可能彼此相关联的附加事件数据,则角色匹配模块可以更新与角色相关联的匹配分数。

在角色匹配模块512确定两个角色的匹配分数的实现方式中,角色归因模块514可以使用阈值匹配分数值来确定是否可以考虑两个角色之间的匹配用于归因。例如,角色匹配模块512最初可以确定两个角色的匹配分数。然后,角色归因模块514可以确定匹配分数是否大于阈值。在匹配分数大于或等于阈值的情况下,角色归因模块514可以考虑两个角色之间的匹配用于归因。否则,如果匹配分数小于阈值,则角色归因模块514可以避免将一个事件归因于先前事件。在一些实现方式中,伙伴和/或归因系统的操作者可以配置一个或更多个阈值匹配分数。例如,伙伴可以设置特定于应用和/或归因类型(例如,安装归因、app打开归因等)的一个或更多个阈值匹配分数。在一些实现方式中(例如,参见图18),在与同一用户设备相关联的角色中可能存在模糊度。例如,多个角色(例如,web ID和设备ID)可能基于大于阈值匹配分数的相关联的匹配分数而彼此匹配。在这些情况下,角色归因模块514可以基于诸如最高匹配分数和/或生成角色的时间之类的各种因素来选择特定角色以用于归因。

如本文所描述的,角色可以表示跨一个或更多个用户设备(例如,智能电话、平板电脑、台式机或其他计算设备)的用户活动。在一些情况下,用户可以在不同的用户设备上登录到相同的网站/app。在这些情况下,可以针对不同的用户设备生成具有不同设备ID的角色,但是角色可以包括相同的用户标识数据(例如,相同的用户名和app ID组合)。可以基于匹配用户标识数据而不是其他设备/浏览器元数据来匹配跨用户设备的角色。

在角色包括不一致的数据(例如,矛盾的数据)的情况下,角色匹配模块512可以避免匹配角色。例如,如果IP地址、设备OS、设备类型或其他设备/浏览器元数据不一致(例如,矛盾),使得数据不可能由同一用户设备生成,则角色匹配模块512可以避免匹配角色。在一些情况下,由同一用户设备生成的设备/浏览器元数据可以是不同的(例如,不是完全相同的)。例如,由app模块114生成的设备/浏览器元数据可以不同于由web模块116生成的和/或链接选择中包括的设备/浏览器元数据。不同的设备/浏览器元数据的一些示例包括所报告的设备OS名称和设备类型的变化。角色匹配模块512可以学习设备/浏览器元数据之间的变化,并且在执行匹配操作时考虑这些变化。

角色匹配模块512可以基于与两个角色相关联的IP地址来确定这两个角色是否来自同一用户设备。在一些实现方式中,角色匹配模块512可以基于使用IP地址的频率来确定两个角色是否匹配。例如,如果存在太多(例如,大于阈值数目)与单个IP地址相关联的角色,则角色匹配模块512可以避免匹配角色,因为高流量区域可以引起类似的设备/浏览器(例如,假匹配)。在一些情况下,角色匹配模块512可以基于单个IP地址的事件的数目来计算匹配分数(例如,对于较大数目的IP地址,降低分数)。在一些实现方式中,角色匹配模块512可以存储指示与IP地址相关联的流量水平的值,例如关于传入事件的IP地址的计数和/或IP地址随时间的计数(例如,IP地址的速率)。在其他实现方式中,可以基于每个批次(例如,当基于每个批次完成角色匹配时)确定与IP地址相关联的流量水平。

通常,任何类型的事件可以被归因于任何其他类型的事件。例如,链接选择事件可以被归因于其他事件,并且反之亦然。在一些实现方式中,伙伴可以指定可以归因于其他事件的事件类型。例如,伙伴可以将可归因事件配置成包括app安装、购买和/或其他事件。在一些实现方式中,接收可归因事件(例如,如由伙伴指定)的事件数据可以触发角色归因模块514将所接收的事件归因于其他事件(例如,匹配的角色中的其他事件)。在这些实现方式中,即使存在匹配的角色,一些事件也可以不触发角色归因模块514对事件进行归因。

尽管伙伴可以指定本文描述的各种匹配和归因参数,但是伙伴也可以选择不让它们的数据用于匹配和归因。这些偏好可以存储在伙伴配置数据存储装置202中。

图11示出了描述用户设备102和归因系统110可以如何处理用户对系统链接126的选择的方法。最初,在框1100中,用户在用户设备102上选择系统链接126。可以假定系统链接包括访问应用的状态(例如,应用中的特定页面)的系统URI。取决于是否安装了应用,用户设备可以以不同的方式处理对系统链接的选择。如果在框1102中在用户设备上安装了应用并且用户设备被配置成响应于对系统链接的选择来启动应用,则在框1104中,用户设备可以启动与系统链接相关联的应用。在打开时,在框1106中,应用模块114可以被配置成将app事件数据传输至事件处理系统104(例如,app响应模块500)。系统URI和设备ID(例如,广告ID)可以连同诸如用户标识数据之类的附加数据一起被包括在app事件数据中。在框1108中,角色系统100可以在与设备ID相关联的角色中记录app打开事件。另外,角色系统100可以记录对系统链接的选择。在框1110中,app响应模块500然后可以处理app打开事件(例如,寻找app打开归因)并且向用户传输响应。

在一些实现方式中,web模块116可以被配置成在应用启动之前修改所选择的系统链接的系统URI。例如,web模块116可以被配置成将web ID附加至系统URI,web ID和系统URI的组合被传递至正在打开的应用。在该示例中,被传输至事件处理系统的app打开事件可以包括系统URI和web ID的组合(例如,web ID可以被添加到系统URI)以及设备ID。在该示例中,角色生成模块510可以生成包括web ID和其他设备ID两者的角色。此时,所接收的事件数据可以被包括在新角色中或者与现有角色(例如,包括所接收的web ID和/或其他设备ID的角色)相匹配。

在框1102中在用户设备102上未安装应用的情况下,在框1112中,web浏览器136可以处理对系统链接126的选择。在框1114中,web浏览器136可以根据系统URI将web事件数据传输至事件处理系统104(例如,web响应模块502)。在一些实现方式中,用户设备102可以在web事件数据中传输web ID以及诸如用户名之类的其他数据。在框1116中,在用户设备102不包括web ID的情况下,在框1118中,事件处理系统104(例如,web响应模块502)可以为web浏览器116设置web ID(例如,cookie ID)。在框1120中,角色系统100记录链接事件。然后,在框1122中,事件处理系统104(例如,web响应模块502)可以根据与系统URI相关联的链接数据来处理链接事件。例如,web响应模块502可以将web浏览器重定向至数字分发平台122以下载应用,假设伙伴将路由数据配置成这样做。

在一些实现方式中,web响应模块502可以向用户设备102传输用于控制用户设备102如何对链接事件进行响应的指令(例如,包括JavaScript代码)。指令可能已经由伙伴配置并且在链接数据中指示。在一些情况下,指令可以尝试使用系统URI来打开应用。如果未安装应用,则指令可以将web浏览器重定向至数字分发平台122以下载应用。在一些情况下,在指令尝试打开应用之前,web模块116可以将web ID附加(例如,使用JavaScript附加)至系统URI。如果成功地打开了应用,并且将包括web ID和其他设备ID的app事件数据传输至事件处理系统104,则如上所描述的,角色生成模块510可以生成包括web ID和其他设备ID两者的角色。虽然用户设备102可以被配置成在未安装应用的情况下使用web浏览器136来处理链接选择,但是在一些情况下,即使当安装了用于系统链接的应用时,用户设备102也可以根据图11使用web浏览器来处理链接选择。

图12示出了描述用户设备102和归因系统110的操作的示例方法。在框1200中,在用户设备102上打开应用。在框1202中,用户设备102根据包括在应用中的应用模块114将app事件数据300-1传输至事件处理系统104。app事件数据300-1可以指示事件是app打开事件。在框1204中,角色系统100记录app打开事件,如本文所描述的。

在框1206中,事件处理系统104确定app打开事件的起源。例如,如果app事件数据300-1包括链接(例如,系统URI),则事件处理系统104可以确定app打开事件是由对链接(例如,系统链接)的选择引起的。作为另一示例,事件处理系统104可以确定app打开事件是安装事件。在一些实现方式中,app模块114可以被配置成在用户设备102上存储指示应用之前是否已经被打开的数据。在一些实现方式中,在第一次打开应用时,app模块114可以在用户设备102上存储指示app打开事件是第一app打开事件的数据(例如,设置比特)。被传输至事件处理系统104的app事件数据可以包括app打开事件是第一app打开事件的指示。

在其他实现方式中,app响应模块500可以基于app打开事件是否包括先前从app响应模块500发送的数据来确定app打开事件是否是第一app打开事件。例如,app响应模块500可以被配置成响应于app打开事件来向用户设备102传输数据。在该示例中,app模块114可以被配置成在后续app打开事件期间传输回数据。如果这样的数据未被包括在所接收的app打开事件中,则app响应模块500可以确定app打开事件是自应用安装起的第一app打开事件。

app响应模块500可以基于所存储的角色来确定安装是否是重新安装。例如,如果在另一角色中已经存在针对设备ID的安装事件,则app响应模块500可以确定app打开事件指示应用的重新安装。在其他实现方式中,用户设备102可以确定安装是重新安装事件,并且将指示安装是重新安装事件的数据传输至事件处理系统104。

在框1208中,事件处理系统104基于app事件的起源将响应302-1传输至用户设备102。在框1210中,app模块114处理响应302-1。

图13示出了描述在用户访问伙伴的网页的情况下用户设备102和归因系统110的操作的示例方法。在框1300中,用户访问网页。在框1302中,用户设备102根据伙伴网站116中所包括的web模块116将web事件数据300-3传输至事件处理系统104(例如,web响应模块502)。web事件数据300-3可以指示该事件是网页查看事件,并且可以包括诸如用户标识数据和源数据的其他数据。在框1304中,角色系统100记录网页查看事件。如果web事件数据300-3包括web ID,则角色生成模块510可以生成/更新与web ID相关联的角色。在框1306中,web响应模块502可以可选地向用户设备102提供响应。

图14示出了描述在事件数据300(例如,app事件数据300-1)包括多个设备ID(例如,web ID和其他设备ID)的情景下的角色系统100的操作的示例方法。这样的情景可以在web ID被包括在所传输的app事件数据300-1中的情况下发生。

最初,在框1400中,事件处理系统104接收包括一个或更多个设备ID的事件数据300。如果在框1402中设备ID未被包括在现有角色中,则在框1404中,角色生成模块150可以生成与设备ID相关联的新角色。如果在框1406中两个设备ID都被包括在现有角色中,则在框1408中,角色生成模块510可以利用所接收的事件数据300来更新现有角色。然后,如上所描述的,在框1410中,角色匹配模块512和角色归因模块514可以执行匹配操作并进行归因。

在一些情况下,在框1406中,设备ID中的每一个可以被包括在单独的现有角色中。例如,一个现有角色可以与所接收的web ID相关联,并且另一现有角色可以与所接收的其他设备ID相关联。在这种情况下,角色生成模块510可以确定两个现有角色属于同一用户设备并且因此应当被包括在单个角色中。以这种方式匹配两个先前存在的角色可以被认为是高度可靠的。因此,在框1412中,角色生成模块510可以将两个先前存在的角色组合成新角色。在框1412中生成的新角色还可以包括新接收的事件数据,并且在某些情况下包括附加角色参考。在一些情况下,在组合先前存在的角色之前,角色可能先前已经通过角色参考链接至彼此(例如,基于通过设备/浏览器元数据进行的匹配)。角色归因模块514可以尝试将新事件归因于先前事件。在一些情况下,先前存在的角色可以各自包括多个事件。在这些情况下,角色归因模块514可以确定来自先前存在的角色的一些事件可以归因于包括在先前存在的角色中的其他事件。

图15示出了描述在应用安装事件被归因于链接选择事件的情景下的归因系统110的操作的示例方法。在图15的方法中,可以假设系统链接是针对未安装在用户设备上的伙伴应用。在框1500至框1504中,用户在用户设备102上选择系统链接126,并且web浏览器136处理该链接选择并将链接事件数据300-2传输至事件处理系统104。在框1506中,如果在事件数据中没有接收到web ID,则事件处理系统104(例如,web响应模块502)将用户设备102(例如,web浏览器136)重定向至数字分发平台122,并且可选地设置web ID。具体地,事件处理系统104可以将用户设备102重定向至用于下载与系统链接相关联的应用(例如,如由伙伴在链接数据中指定的)的页面。在框1508中,角色系统100记录(例如,通过web ID记录)事件。

在框1510中,用户设备102安装新下载的应用并且第一次打开该应用。在框1512中,用户设备102将包括设备ID的app事件数据300-1传输至事件处理系统104。在框1514至框1516中,角色系统100记录app事件数据,将包括设备ID的角色与包括web ID的角色进行匹配(例如,基于设备/浏览器元数据进行匹配),并且将应用的安装归因于对系统链接126的选择。在框1518至框1520中,事件处理系统104然后可以向用户设备102可选地传输由app模块114处理的响应。例如,事件处理系统104(例如,app响应模块500)可以将新安装的应用重定向至在所选择的系统链接126中标识的源(例如,应用状态)。

虽然图15的方法描述了应用安装事件归因于对系统链接的选择,但是app安装事件和其他类型的事件也可以被归因于其他类型的链接选择事件。例如,事件可以归因于链接点击或由web模块116/app模块114报告给事件处理系统104的其他自定义事件。还要注意,图15中的所选择的系统链接可以以各种不同的方式生成,例如经由与另一用户共享事件或者通过伙伴设备与伙伴接口系统108交互来生成。在所选择的系统链接是经由共享事件由另一用户生成的情况下,app安装事件可以被归因于共享该链接的用户的角色中的事件。

图16示出了描述在app打开事件被归因于链接选择事件的情景下归因系统110的操作的示例方法。在图16的方法中,可以假设系统链接126是针对安装在用户设备102上的伙伴的应用。还可以假设用户设备102被配置成使用web浏览器将系统链接重定向至事件处理系统104。最初,在框1600至框1604中,用户在用户设备102上选择系统链接126,并且web浏览器136处理该链接选择并将链接事件数据300-2传输至事件处理系统104。在框1606中,如果在事件数据中没有接收到web ID,则事件处理系统104(例如,web响应模块502)重定向用户设备102(例如,web浏览器136)以打开应用并可选地设置web ID。在框1608中角色系统100记录事件(例如,由web ID索引)。

在框1608至框1610中,用户设备102打开应用并生成被传输至事件处理系统104的app事件数据300-1(包括设备ID)。在框1614至框1616中,角色系统100记录app事件数据,将包括设备ID的角色与包括web ID的角色进行匹配(例如,基于设备/浏览器元数据进行匹配),并且将应用的打开归因于对系统链接的选择。在框1618至框1620中,事件处理系统104然后可以可选地向用户设备102传输由app模块114处理的响应。例如,事件处理系统104(例如,app响应模块500)可以将新安装的应用重定向至在所选择的系统链接126中识别的源(例如,应用状态)。

图17示出了用于基于与所访问的网页相关联的应用的安装状态来修改所访问的网页的行为的示例方法。在图17的方法中,web模块116可以被配置成基于应用的安装状态来修改网页。例如,web模块116可以被配置成包括用户可选择的应用链接,如果应用被安装在用户设备102上,则该用户可选择的应用链接访问应用的状态。例如,如果安装了应用,则web模块116可以提供至与正查看的网页相似的应用状态的链接。在具体示例中,伙伴可以操作网站和包括可以通过伙伴的网站和/或伙伴的应用访问的类似内容的相应应用。示例性类似内容可以包括但不限于:包括销售产品、销售服务、酒店/房间住宿、播放音乐、图像/视频、博客帖子、以及新闻文章的页面。

应用链接的示例类型可以包括网页内的超链接和/或覆盖网页的横幅链接。取决于伙伴如何配置web模块116和/或web响应模块502,可以由web模块116和/或web响应模块502生成应用链接。在一些实现方式中,web响应模块502可以基于包括在web事件中的数据(例如,基于web URL)或者基于由伙伴指定的配置的网页上的内容来生成应用链接。例如,伙伴可以指定将web URL和/或网页内容的部分用于生成应用链接。在这些实现方式中,web响应模块502可以利用路由数据来响应web事件,该路由数据可以在应用链接被选择时将用户路由至应用状态。例如,用户设备102(例如,OS 134)可以将路由数据(例如,域和/或路径)的格式识别为能够由安装在用户设备102上的应用处理。在这种情况下,用户设备102(例如,OS 134)可以启动应用并将路由数据(例如,URL)传递至所启动的应用。示例路由数据可以包括域名(例如,example.com或www.example.com)和路径(例如,example.com/path_segment1/path_segment2/)。伙伴可以基于web URL和/或诸如网页内容之类的其他数据来指定路由数据的格式以及用于完成任何路由数据的指令。

在一些实现方式中,web响应模块502可以被配置成利用是否安装了应用的指示来响应于web事件。在这些实现方式中,如果web响应模块502对安装了应用进行响应,则web模块116可以生成(例如,基于web URL和/或页面数据生成)应用链接。

关于图17提及的应用可以被称为“示例App”。最初,在框1700中,角色匹配模块512匹配来自用户设备的web ID和设备ID(例如,作为概率匹配或强匹配),使得从用户设备接收的其他web事件和app事件可以与用户设备相关联。设备ID与由示例App生成的事件数据相关联。在一些情况下,设备ID可能已经与示例App的安装(即,安装事件)相关联。在其他情况下,设备ID可能已经与源自示例App的其他类型的app事件相关联。在任何情况下,包括设备ID的app事件的接收指示示例App被安装在用户设备上。

在框1702中,web响应模块502接收包括web ID的web事件数据。在一些实现方式中,web事件数据还可以包括对针对示例App的路由数据的请求。在其他实现方式中,web响应模块502可以被配置成在没有明确请求的情况下提供针对示例App的路由数据。在框1704中,web响应模块502查询角色系统100以确定是否安装了示例App。在框1706中,角色系统100通过指示安装了示例App来进行响应。在框1708中,web响应模块502通过传输针对应用链接的路由数据和/或传输示例App的安装状态来响应web事件。

在框1710中,web浏览器136(例如,web模块116)在网页上显示应用链接。在框1712中,用户选择(例如,触摸/点击)应用链接,并且安装的示例App访问与应用链接相关联的应用状态(例如,应用页面)。

图18示出了其中使用概率匹配将多个角色1800-1、1800-2、1800-3、1800-4彼此匹配的示例场景。随后,角色系统100接收包括设备ID和web ID两者的app事件数据1802。角色系统100响应于app事件数据1802的接收来进行强匹配,并且将来自角色4 1800-4的数据与新事件一起合并到角色1 1800-1中。

图18示出了四个初始角色1800。角色1 1800-1、角色2 1800-2、角色3 1800-3响应于包括web ID 1-3的web事件来生成。具体地,角色1-3分别响应于链接选择1-3来生成。角色4 1800-4响应于应用打开事件来生成。

角色1800示出了其中角色4 1800-4中的应用打开事件(例如,第一应用打开)可以被归因于角色1 1800-1、角色2 1800-2、角色3 1800-3中的一个或更多个先前的链接选择的场景。角色1-3分别包括匹配分数0.91、0.90和0.45。在图18中,可以假设角色系统100使用阈值匹配分数0.85来确定归因。在这种情况下,角色归因模块514可以确定角色4中的应用打开可以被归因于角色1-2中的链接选择。与角色3相关联的匹配分数0.45可能不被考虑用于归因,因为它小于阈值匹配分数。在一些实现方式中,如果匹配分数小于阈值匹配分数,则角色归因模块514可以避免向角色分配匹配分数。

与角色1-4 1800相关联的多个可能的归因示出了从归因的观点来看可能如何存在某些模糊度。例如,app打开事件通常应当被归因于单个链接选择而不是两个链接选择。在这些情况下,角色归因模块514可以从多个可能的角色中选择单个角色用于归因。例如,角色归因模块514可以基于匹配分数来进行归因,例如选择与最高匹配分数相关联的角色。作为另一示例,角色归因模块514可以进行与角色被接收的时间相关联的归因,例如选择最近的角色用于匹配。

在图18中,角色系统100接收包括web ID 1和设备ID 4的app事件数据1802。app事件数据1802包括在时间T5处的“新事件”(例如,本文描述的任何事件)的事件标识符。app事件数据1802提供设备ID4与web ID1之间的强匹配。响应于app事件数据1802,角色系统100(例如,角色生成模块510)合并角色4 1800-4和角色1 1800-1的数据。例如,合并的角色1804包括web ID1、设备ID4、来自角色1和角色4的事件以及新事件。在生成合并的角色1804之后,角色归因模块514可以更新与T4处的app打开事件相关联的归因数据。例如,角色归因模块514可以删除模糊的匹配分数。在一些情况下,在生成合并的角色1804之后,角色系统100(例如,角色生成模块510)可以删除较旧的角色1和角色4的数据。

如本文所描述的,归因系统110可以生成并存储匹配分数(例如,概率分数)以用于确定如何处理其他接收的事件数据。图19示出了描述基于先前确定的匹配分数来路由用户设备的示例方法。在框1900中,角色系统100响应于接收到的从第一web事件生成的第一web事件数据来生成第一角色。第一角色可以包括第一设备ID和web浏览器元数据。在框1902中,角色系统100响应于接收到的从第一app事件生成的第一app事件数据来生成第二角色。第二角色可以包括第二设备ID和设备元数据。在框1904中,角色匹配模块512确定与第一角色和第二角色相关联的匹配分数(例如,大于阈值匹配分数)。

在框1906中,事件处理系统104接收从第二web事件生成的第二web事件数据。第二web事件数据包括第一设备ID和与应用状态相关联的数据。在框1908中,事件处理系统104接收从第二app事件生成的第二app事件数据。第二app事件数据包括第二设备ID。角色系统100可以生成针对第二web事件数据和第二app事件数据的角色(例如,针对每组事件数据的角色)。

在图19的方法中,可以假设事件处理系统104被配置成在app事件被归因于包括应用状态数据的先前web事件的情况下通过将用户设备路由至应用状态来处理第二app事件。在框1910中,响应于接收到第二app事件数据并且基于先前确定的匹配分数,角色归因模块514可以将第二app事件归因于第二web事件。在框1912中,事件处理系统104然后可以将路由数据传输至用户设备,以便打开与包括在第二web事件数据中的应用状态数据相关联的应用状态。如本文所描述的,在一些实现方式中,角色系统100可以基于与第二web事件数据和第二app事件数据相关联的元数据来更新先前确定的匹配分数。

尽管设备ID可以唯一地标识用户设备,但是在一些情况下,同一用户设备可以由多于一个人使用。在这种情况下,角色系统100可以基于用户标识数据(例如,用户名和appID)来区分同一用户设备的用户。例如,如果设备ID与不同的用户名-app ID组合相关联,则角色生成模块510可以针对相同设备ID生成不同的角色。角色匹配模块512可以匹配包括相同设备ID和用户名-app ID组合的角色,并且避免匹配具有相同设备ID和不同用户名-appID组合的角色。在一些实现方式中,用户标识数据(例如,用户名)可以与设备ID一起使用或者代替设备ID,以标识角色。

虽然可以将事件归因于单个先前事件,但是在归因系统110的一些实现方式中,角色归因模块514可以被配置成将单个事件归因于多个先前事件。例如,如果角色匹配模块512将单个角色与多个附加角色匹配,则角色归因模块514可以将单个角色中的事件归因于多个附加角色中的事件。在该示例中,如与先前事件相关联的源数据所指示的,先前事件可以来自多个不同的源。可以将多源归因数据报告给伙伴。

本文描述的系统链接数据对象602和角色数据对象600分别表示存储在链接数据存储装置504和角色数据存储装置508中的数据。数据存储装置504、508可以包括用于实现系统链接数据对象602和角色数据对象600的各种不同的数据结构。例如,可以使用一个或更多个不同的数据结构来实现系统链接数据对象602和角色数据对象600。

系统(例如,角色系统100、事件处理系统104、链接系统106和伙伴接口系统108)中包括的模块和数据存储装置表示可以包括在本公开内容的系统中的特征。本文描述的模块和数据存储装置可以通过电子硬件、软件、固件或其任何组合来实现。将不同特征描述为单独的模块和数据存储装置并不一定意味着模块和数据存储装置由公共的或单独的电子硬件或软件部件来实施。在一些实现方式中,与本文所描述的一个或更多个模块和数据存储装置相关联的特征可以由公共电子硬件和软件部件来实现。在一些实现方式中,可以通过单独的电子硬件和软件部件来实现与本文所描述的一个或更多个模块和数据存储装置相关联的特征

虽然本文将与归因系统110、app模块114和web模块116相关联的技术描述为提供给伙伴(例如,软件开发人员),但该技术可以以其他方式实现。例如,一方或更多方可以根据不同的布置来实现本文所描述的技术。

可以由电子硬件和软件部件来实施模块和数据存储装置,电子硬件和软件部件包括但不限于一个或更多个处理单元、一个或更多个存储器部件、一个或更多个输入/输出(I/O)部件和互连部件。互连部件可以被配置成在一个或更多个处理单元、一个或更多个存储器部件和一个或更多个I/O部件之间提供通信。例如,互连部件可以包括被配置成在电子部件之间传输数据的一个或更多个总线。互连部件还可以包括被配置成控制电子部件之间的通信的控制电路(例如,存储器控制器和/或I/O控制器)。

一个或更多个处理单元可以包括一个或更多个中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理单元(DSP)或其他处理单元。一个或更多个处理单元可以被配置成与存储器部件和I/O部件通信。例如,一个或更多个处理单元可以被配置成经由互连部件与存储器部件和I/O部件通信。

存储器部件(例如,主存储器和/或存储设备)可以包括任何易失性或非易失性介质。例如,存储器可以包括但不限于电介质、磁性介质和/或光学介质,例如随机存取存储器(RAM)、只读存储器(ROM)、非易失性RAM(NVRAM)、电可擦除可编程ROM(EEPROM)、闪存、硬盘驱动器(HDD)、磁带驱动器、光存储技术(例如,压缩光盘、数字多功能光盘和/或蓝光光盘)或任何其他存储器部件。

存储器部件可以包括(例如,存储)本文描述的数据。例如,存储器部件可以包括包括在数据存储装置中的数据(例如,系统链接数据对象602和角色数据对象600)。存储器部件还可以包括可由一个或更多个处理单元执行的指令。例如,存储器可以包括计算机可读指令,计算机可读指令当由一个或更多个处理单元执行时,使得一个或更多个处理单元执行归因于本文描述的模块和数据存储装置的各种功能。

I/O部件可以指提供与各种不同设备通信的电子硬件和软件。例如,I/O部件可以提供其他设备与一个或更多个处理单元和存储器部件之间的通信。在一些示例中,可以将I/O部件配置成与计算机网络通信。例如,可以将I/O部件配置成使用各种不同的物理连接、无线连接和协议通过计算机网络交换数据。I/O部件可以包括但不限于网络接口部件(例如,网络接口控制器)、中继器、网络桥、网络交换机、路由器和防火墙。在一些示例中,I/O部件可以包括被配置成与各种人机接口设备通信的硬件和软件,所述人机接口设备包括但不限于显示屏、键盘、指针设备(例如鼠标)、触摸屏、扬声器和麦克风。在一些示例中,I/O部件可以包括被配置成与诸如外部存储器(例如外部HDD)之类的附加设备通信的硬件和软件。

在一些实现方式中,系统可以包括被配置成实现本文描述的技术的一个或更多个计算设备。换言之,可以通过一个或更多个计算设备实现归因于本文描述的模块和数据存储装置的特征。一个或更多个计算设备中的每一个可以包括上面描述的电子硬件、软件和/或固件的任意组合。例如,一个或更多个计算设备中的每一个可以包括上面描述的处理单元、存储器部件、I/O部件和互连部件的任意组合。系统的一个或更多个计算设备还可以包括各种人机接口设备,所述人机接口设备包括但不限于显示屏、键盘、指针设备(例如鼠标)、触摸屏、扬声器和麦克风。计算设备还可以被配置成与诸如外部存储器(例如外部HDD)的附加设备通信。

系统的一个或更多个计算设备可以被配置成与图1的网络120通信。系统的一个或更多个计算设备也可以被配置成彼此通信(例如,经由计算机网络彼此通信)。在一些示例中,系统的一个或更多个计算设备可以包括被配置成与用户设备通信的一个或更多个服务器计算设备。在一些示例中,一个或更多个计算设备可以驻留在单个地理位置处的单个机器内。在其他示例中,一个或更多个计算设备可以驻留在单个地理位置处的多台机器内。在其他示例中,系统的一个或更多个计算设备可以跨多个地理位置分布。

49页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于区块链网络中一致分布式内存池的方法和系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类