
[0001]
本发明涉及一种使用跟踪令牌和归因堆栈的多分段网络归因。
背景技术:[0002]
在线内容伙伴经常使用内容服务的api从内容服务中选择信息。以这种方式从内容服务提取的信息的示例可以包括来自内容提供商的文本、音频或视频内容,来自广告服务的广告,或来自在线市场的清单。伙伴服务或伙伴的服务,例如伙伴实体提供的服务,可以策划他们选择的信息,并以他们自己的经验来体现这些信息。诸如用户对内容的访问,用户点击广告或购买之类的成功事务通常归因于事务所涉及的伙伴服务。
[0003]
一些伙伴服务可以进一步与他们的还与内容服务有合同协议的伙伴共享该内容服务的清单。当事务由源自伙伴服务的界面体验的用户完成时,则两个实体都期望接收到业务的归因,诸如事务的信用或新购买者或重复购买者(norb)。
[0004]
例如,可以从针对特定人口群体(诸如千禧一代或学生)定制的伙伴网站提供诸如在线市场之类的电子商务平台中的许多广告。当在线市场的用户点击伙伴网站上的广告时,导航流将重定向到伙伴网站。当用户在伙伴网站上执行事务时,该事务由在线市场服务的api处理,例如购买api,其中伙伴网站是记录中的事务伙伴。即使用户源自于在线市场,事务和norb两者都归因于伙伴网站。在线市场和伙伴网站两者都归因于来自用户的业务。然而,目前,似乎没有有效的方法来跟踪复杂事务中的归因。
[0005]
鉴于这些和其它考虑,提出了本文所作的公开内容。
技术实现要素:[0006]
所公开的技术针对于跟踪多分段网络事务中的归因。一般而言,所公开的技术利用由跟踪服务管理的跟踪令牌和归因堆栈。
[0007]
伙伴服务接收包括跟踪令牌的重定向,并将注册请求与在重定向中接收到的跟踪令牌一起发送给跟踪服务。跟踪服务使用注册请求中的跟踪令牌来标识事务的归因堆栈。跟踪服务生成新的跟踪令牌,将新的跟踪令牌输入与伙伴服务相关联的归因堆栈,然后将新的跟踪令牌返回给伙伴服务。
[0008]
伙伴服务接收新的跟踪令牌,并将其包括在到下一伙伴服务的另一个重定向中。下一伙伴服务重复向跟踪服务注册的过程。对于事务流程中的重定向,可以无限期地重复此过程,每次注册都会导致归因堆栈中的另一条目。当事务完成时,所公开的技术使归因堆栈中的每个实体能够针对归因被标识出。
[0009]
在所公开的用于多分段事务的网络归因跟踪的技术、方法、系统或计算机可读介质的某些简化示例中,所述示例涉及从第一伙伴服务接收第一令牌请求,并且响应于第一令牌请求,生成第一跟踪令牌,在归因堆栈中将第一跟踪令牌与第一伙伴服务相关联,发送对第一令牌请求的包括第一跟踪令牌的响应。
[0010]
这些示例还涉及接收从第一伙伴服务到第二伙伴服务的第二令牌请求,第二重定
向包括第一跟踪令牌,并且响应于第二令牌请求,生成第二跟踪令牌,在归因堆栈中将第二跟踪令牌与第二伙伴服务相关联,并向第二重定向发送包括第二跟踪令牌的响应。
[0011]
这些示例还涉及从第三伙伴服务接收第三令牌请求,第三令牌请求包括第二令牌,并且响应于第三令牌请求,生成第三跟踪令牌,在归因堆栈中将第三跟踪令牌与第三伙伴服务相关联,并向第三重定向发送包括第三跟踪令牌的响应。
[0012]
最后,这些示例还涉及从第三伙伴服务接收事务请求,该事务请求包括第三跟踪令牌,并基于归因堆栈将事务归因于第一伙伴服务、第二伙伴服务和第三伙伴服务。可以跟踪归因的事务示例包括数据事务或购买事务。
[0013]
根据所公开技术的某些方面的示例还可以包括:从客户端接收重定向,并且响应于该重定向,将第一令牌请求发送给跟踪服务,从跟踪服务接收带有第一跟踪令牌的响应,并用第一跟踪令牌重定向到第二伙伴。
[0014]
某些示例涉及从第一伙伴接收带有第一跟踪令牌的重定向,并且响应于来自第一伙伴的重定向,将第二令牌请求与第一跟踪令牌一起发送给跟踪服务。这些示例还涉及从跟踪服务接收带有第二跟踪令牌的响应,并用第二跟踪令牌重定向到第三伙伴。
[0015]
某些其它示例涉及从第二伙伴接收带有第二跟踪令牌的重定向,并且响应于来自第一伙伴的重定向,将第二令牌请求与第二跟踪令牌一起发送给跟踪服务,从跟踪服务接收带有第三跟踪令牌的响应,并且响应于来自客户端的事务请求,将事务请求和归因请求中的一个与第三跟踪令牌一起发送给跟踪服务。
[0016]
在又一个示例中,基于归因堆栈将事务归因于第一伙伴服务、第二伙伴服务和第三伙伴服务的功能涉及接收事务的归因请求,从事务的归因堆栈中的每个条目累积归因实体,并将事务归因于累积的归因实体。
[0017]
在某些其它示例中,第一跟踪令牌包括标识第一伙伴的第一复合跟踪令牌,第二跟踪令牌包括标识第一伙伴和第二伙伴的第二复合跟踪令牌,并且第三跟踪令牌包括标识第二伙伴和第三伙伴的第三复合跟踪令牌。
[0018]
用于多分段事务的归因跟踪的不同示例涉及从伙伴服务接收跟踪令牌注册请求,生成与伙伴服务相关联的跟踪令牌,将条目添加到事务的归因堆栈中,其中该条目将跟踪令牌与伙伴服务相关联,并将跟踪令牌返回给伙伴服务。
[0019]
在这些示例中的某些示例中,从伙伴服务接收跟踪令牌请求的功能涉及确定跟踪令牌请求是否包括先前生成的跟踪令牌,并使用先前生成的跟踪令牌来标识事务的归因堆栈。在这些示例中,将条目添加到事务的归因堆栈的功能涉及将条目添加到针对事务标识的归因堆栈中。
[0020]
在特定示例中,生成与伙伴服务相关联的跟踪令牌的功能涉及将先前生成的跟踪令牌组合在生成的跟踪令牌中以创建复合跟踪令牌。
[0021]
在其它特定示例中,将条目添加到事务的归因堆栈的功能涉及按照与何时接收到条目的令牌注册请求相对应的顺序,将条目添加到归因堆栈中。
[0022]
一些示例还包括:接收事务的归因请求,其中归因请求包括跟踪令牌,使用归因请求中包括的跟踪令牌来标识事务的归因堆栈,从针对事务标识的归因堆栈中的每个条目累积归因实体,并将事务归因于累积的归因实体。这些示例还可能涉及当事务完成时,发送事务的归因请求。
[0023]
附加示例涉及从先前伙伴服务接收带有先前生成的跟踪令牌的重定向,将注册请求与先前生成的跟踪令牌一起发送给跟踪服务,从跟踪服务接收带有与伙伴服务、所接收到的重定向相关联的跟踪令牌的响应,并且响应于对下一伙伴服务的重定向请求,重定向到下一伙伴服务并包括从跟踪服务接收的跟踪令牌。
[0024]
应该理解,上述主题还可以被实现为计算机控制的装置、计算机过程、计算系统或诸如计算机可读介质之类的制品。通过阅读以下具体实施方式并查看相关附图,这些和各种其它特征将变得显而易见。提供发明内容以便以简化形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。
[0025]
发明内容既无意于标识所要求保护的主题的关键特征或必要特征,也无意将发明内容用于限制所要求保护的主题的范围。此外,要求保护的主题不限于解决在本发明的任何部分中指出的任何或所有缺点的实现。
附图说明
[0026]
参考附图描述具体实施方式。在附图中,附图标记的最左边的数字标识该附图标记首次出现的附图。不同附图中的相同附图标记表示相似或相同的项目。
[0027]
图1a是示出系统架构中的多分段事务的说明性示例的架构图;
[0028]
图1b是示出多分段事务中的数据交换的说明性示例的数据架构图;
[0029]
图2a是示出用于使用复杂跟踪令牌对多分段事务进行归因跟踪的所公开的技术的说明性示例的架构图;
[0030]
图2b是示出在用于使用复杂跟踪令牌对多分段事务进行归因跟踪的所公开的技术的应用中的数据交换的另一说明性示例的数据架构图;
[0031]
图2c是示出在用于使用复杂跟踪令牌对多分段事务进行归因跟踪的所公开的技术的应用中的消息和数据交换的又一说明性示例的消息图;
[0032]
图3a是图示了示出在用于使用图2a的复杂跟踪令牌对多分段事务进行归因跟踪的所公开的技术的应用中的实体之间的复杂归因关系的归因堆栈的示例的数据架构图;
[0033]
图3b是图示了示出在用于使用图2c的复杂跟踪令牌对多分段事务进行归因跟踪的所公开的技术的应用中的实体之间的复杂归因关系的归因堆栈的示例的数据架构图;
[0034]
图4a是示出根据所公开的技术的用于使用跟踪令牌对多分段事务进行归因跟踪的跟踪服务中的过程的说明性示例的控制流程图;
[0035]
图4b是示出根据所公开的技术的用于使用跟踪令牌对多分段事务进行归因跟踪的伙伴服务中的过程的说明性示例的控制流程图;
[0036]
图4c是示出根据所公开的技术的用于使用跟踪令牌来确定多分段事务的归因的过程的说明性示例的控制流程图;
[0037]
图4d是示出根据所公开的技术的用于使用跟踪令牌对多分段事务进行归因跟踪的跟踪服务中的过程的另一说明性示例的控制流程图;
[0038]
图5是示出了用于能够实现本文提出的技术和技术各方面的计算系统的说明性计算机硬件和软件架构的计算机架构图;
[0039]
图6是示出了能够实现本文提出的技术和技术各方面的分布式计算环境的图;以及
[0040]
图7是示出了用于能够实现本文提出的技术和技术各方面的计算设备的计算设备架构的计算机架构图。
具体实施方式
[0041]
以下具体实施方式描述了用于在多分段事务中跟踪具有不同伙伴的网络上的多个重定向的复杂链上的归因的技术。
[0042]
一般而言,发布令牌的内容服务、跟踪服务或api用令牌与参与网络事务的各个伙伴之间的关联来维持归因堆栈,并且虽然有重定向/事务链的多分段,但仍可以标识事务的多个归因。值得注意的是,如在本文所使用,归因堆栈应广义地解释为包括适用于数据集合的任何数据结构。归因堆栈可以包括堆栈、列表、队列、树、地图、集合或适合于链接或收集数据的任何其它数据结构。
[0043]
因为归因堆栈可以无限期扩展以适应附加重定向,所以公开的技术提供了能够在高度复杂且冗长的网络事务字符串中跟踪归因的技术优势。此外,因为可以容易地搜索归因堆栈,所以提供了一种有效的机制来确定事务的归因。
[0044]
更进一步,技术优势包括减少网络带宽使用和减少归因所需的处理器周期,因为可以很容易地搜索归因堆栈数据结构,并且因为信息是作为web服务调用流的一部分而累积的,所以为了容易地确定归因,可以避免附加的网络调用或处理器计算。从所公开的技术的实现还可以实现除本文提到的那些以外的其它技术效果。
[0045]
所公开技术的一方面是跟踪令牌并维持涉及跟踪令牌的归因堆栈以用于n分段网络事务中的归因。例如,内容服务器或跟踪api实体可以生成跟踪令牌并维持归因堆栈,该归因堆栈将跟踪令牌与归因实体相关联,以跨网络跟踪多分段事务的归因,从而允许两个以上的实体参与事务,并且无论重定向链的长度如何,每个实体仍然会接收到事务的归因。
[0046]
所公开技术的另一方面涉及生成复合跟踪令牌以捕获重定向/事务的两方,并且持久维持归因堆栈,该归因堆栈跟踪重定向/事务链上的归因。每个复合跟踪令牌最多可以标识重定向的两方。生成复合跟踪令牌的内容服务器可以为事务构建伙伴重定向的归因堆栈,以表示重定向链的复杂归因。
[0047]
在下面的详细描述中,参考了形成其一部分的附图,并且在附图中通过图示的方式示出了特定的配置或示例。现在参考附图,其中在所有几幅图中相同的数字代表相同的元件,将描述用于归因跟踪的计算系统、计算机可读存储介质以及计算机实现的方法的各方面。如将在下面关于附图更详细地描述,存在可以具体实施本文描述的功能和技术的许多应用和服务。
[0048]
如上所述,目前,内容服务可以具有伙伴服务,而伙伴服务又可以拥有自己的伙伴,他们应该在复杂的多分段内容事务中接收到归因。常规的跟踪令牌被广泛用于为诸如广告活动之类的用户网络交互指定元数据。元数据可以是广告系列id、关键字或其它占位符。然而,常规跟踪令牌通常无法跟踪与多分段事务有关的多个伙伴链上的伙伴的归因。
[0049]
例如,在线市场中的许多广告可以来自为千禧一代或类似人口群体量身定制的伙伴网站。当在线市场的用户点击伙伴网站上的广告时,导航流将重定向到伙伴网站。当用户在伙伴网站上执行事务时,该事务由在线市场服务的api处理,例如购买api,其中伙伴网站是记录中的事务伙伴。即使用户源自于在线市场,事务和norb两者都归因于伙伴网站。然
而,在线市场和伙伴网站两者都归因于来自用户的网络业务。图1a和图1b示出了这个示例的清单和事务流程。
[0050]
图1a是示出了导致事务的一系列重定向的示例100的架构图。客户端110的用户与伙伴服务120a、120b和120c的用户体验进行交互以访问内容服务器180上的内容,例如数据、清单或服务。为清楚起见,简化了图1a的示例,以集中于该系列重定向,并在初始用户动作102之后省略与客户端110的交互,并且内容从内容服务器180流到伙伴服务120a、120b和120c。
[0051]
在图1a中,客户端110的用户在接收到伙伴服务120a的界面体验中发起用户动作102,这导致伙伴服务120a在122处将用户重定向到伙伴服务120b的界面体验。例如,用户可以点击伙伴服务120a的界面体验中的链接或广告,该链接或广告重定向到伙伴服务120b的界面体验。伙伴服务120b用其经由客户端110呈现给用户的界面体验来响应用户操作。
[0052]
用户随后通过伙伴服务120b的界面体验发起动作,该动作在124处重定向到伙伴服务120c。伙伴服务120c用其经由客户端110呈现给用户的界面体验来响应重定向。
[0053]
用户随后通过伙伴服务120c的伙伴界面体验发起事务请求,该事务请求应归因于导致事务请求的重定向链中涉及的每个实体。事务的归因应归因于事务中涉及的每个伙伴,例如伙伴服务120a、120b和120c。然而,在常规的系统架构中,唯一可用于事务归因的信息属于重定向链中的最后一个伙伴,例如接收事务请求的伙伴服务120c。
[0054]
在图1a的示例中,根据公开的技术,跟踪服务器或服务130与伙伴服务进行交互,以便通过一系列不确定长度的重定向来跟踪事务的归因,即,对可以接收事务的归因的该系列中的伙伴的数量没有设置限制。
[0055]
在该示例中,在104处,当响应于用户动作102发生重定向时,伙伴服务120a从跟踪服务130请求并接收第一令牌token1(令牌1),例如,req(120a)->token1(120a)。跟踪服务创建并维持事务的归因堆栈,其中伙伴服务120a与跟踪令牌token1相关联。伙伴120a在重定向122到伙伴服务120b中包括token1。
[0056]
在124处,伙伴服务120b从跟踪服务130请求并接收第二跟踪令牌token2(令牌2),例如,req(120b,token1(120a))->token2(120b,120a)。来自伙伴服务120b的请求包括在重定向122中接收的跟踪token1,该跟踪token1允许跟踪服务130确定与事务相关联的归因堆栈。跟踪服务130创建跟踪token2,该跟踪token2与事务的归因堆栈中的伙伴服务120b相关联,并在逻辑上将伙伴服务120b链接到事务的归因链中的伙伴服务120a。
[0057]
例如,由于用户在伙伴服务120b的界面体验中的行为,所以另一重定向发生在126处。伙伴服务120b包括在重定向126到伙伴服务120c中的跟踪token2。在128处,伙伴服务120c请求并从跟踪服务130接收第三跟踪令牌token3(令牌3),例如req(120c,token2(120b,120a))->token3(120c,120b)。来自伙伴服务120b的请求包括跟踪token2,该跟踪token2允许跟踪服务130确定归因堆栈,所述归因堆栈与事务以及重定向与事务的归因链中的先前重定向的关系相关联。跟踪服务130创建跟踪token3,该跟踪token3与事务的归因堆栈中的伙伴服务120c相关联,并且在逻辑上将伙伴服务120c链接到事务的归因堆栈中的伙伴服务120b以及事务的链。
[0058]
注意,诸如在104、124和126处,对跟踪令牌的请求可以以几种方式发起,诸如当伙伴服务接收到重定向或者当通过伙伴服务120b的界面体验接收到引起附加重定向的用户
动作时。
[0059]
图1b示出了可以在图1a的架构示例以及归因示例中生成的多分段网络事务的重定向/事务流程150的简化示例。在该流程示例中,伙伴服务120a的界面体验在168处从内容服务180接收呈现给客户端110的用户的清单或内容。可以对清单或内容进行展示或以其他方式处理,以呈现给用户,例如伙伴服务选择特定的文档或产品以呈现给用户。
[0060]
在该示例中,用户在伙伴服务120a的界面体验中从展示的数据中进行选择,这导致从伙伴服务120a到伙伴服务120b的重定向162。在192处,伙伴服务120a将跟踪令牌的请求发送给跟踪服务130,其中该请求与伙伴服务120a相关联。在193处,跟踪服务130为事务链创建第一跟踪token1和归因堆栈,并将token1发送给伙伴服务120a。伙伴服务120a将token1包括在到伙伴服务120b的重定向162中。
[0061]
在174处,伙伴服务120b还从内容服务180接收清单或内容,该清单或内容可以经由伙伴服务120b的界面体验进行展示并呈现给用户。在该示例中,在172处,用户发起与伙伴服务120b的事务,诸如涉及内容服务器180的内容的下载、信息上传或购买。
[0062]
在194处,伙伴服务120b将跟踪令牌的请求发送给跟踪服务130,其中该请求与伙伴服务120b相关联。跟踪服务130使用在重定向162中接收的token1来确定事务的归因堆栈。跟踪服务130创建第二跟踪令牌token2,并将token2与事务链的归因堆栈中的伙伴服务120b相关联。在195处,跟踪服务130将token2发送给伙伴服务120b。伙伴服务120b将token2包括在提交给内容服务180的事务请求172中。
[0063]
因为伙伴服务120a和伙伴服务120b两者都涉及到导致事务的重定向链,所以两者都应接收事务或用户(例如norb)的归因。当内容服务180接收到用户发起的带有token2的事务请求172时,它将内容请求196发送给包括token2的跟踪服务130。跟踪服务130利用token2来标识事务的归因堆栈并提取事务的归因,例如伙伴服务120a和120b。在198处,将事务的归因信息返回给内容服务180。
[0064]
注意,根据所公开的技术,在跟踪服务中使用跟踪令牌和归因堆栈使得能够跟踪不确定长度的重定向的链以用于事务的归因。每个重定向都包括用于执行重定向的实体的跟踪令牌,该跟踪令牌能够标识归因堆栈以用于进一步的重定向。
[0065]
还注意,对跟踪令牌进行跟踪服务的请求可以在处理中的各个点发生。例如,伙伴服务当从在重定向的链中的先前伙伴服务接收到带有跟踪令牌的重定向时,可以从跟踪服务发起对跟踪令牌的请求。在另一示例中,当在伙伴服务的界面体验中发起重定向时,伙伴服务可以发起对跟踪令牌的请求。
[0066]
所公开的技术提供跟踪服务以发布跟踪令牌并维持事务的归因堆栈。归因堆栈可以为多分段事务中与不同伙伴的多个重定向的复杂链累积令牌和相关联的伙伴。重定向的链可以有不确定的长度。当发生事务时,可以获取重定向的链的归因信息,以用于对事务进行归因。
[0067]
在一些示例中,复合跟踪令牌可用于跟踪多分段事务中与不同伙伴的多个重定向的复杂链上的归因。每个复合跟踪令牌最多可以标识重定向的两方。与内容服务器相关联的跟踪服务或api生成复合跟踪令牌,并为事务构建伙伴重定向的归因堆栈,以表示重定向的链的复杂归因。
[0068]
所公开技术的一方面是跟踪令牌并维持涉及跟踪令牌的归因堆栈以用于n分段网
络事务中的归因。所公开的技术的另一方面是生成复合跟踪令牌以捕获重定向/事务的两方,并且持久维持归因堆栈,该归因堆栈跟踪重定向/事务的链上的归因。
[0069]
诸如在广告中用于指定广告活动和广告系列元数据的跟踪令牌之类的常规跟踪令牌通常包括广告系列标识符、占位符、关键字或类似标识符。相比之下,在公开的技术中,复合跟踪令牌可以标识最多两个重定向中所涉及的实体。通过将复合跟踪令牌与归因堆栈中的每个重定向相关联,可以跟踪重定向的链以进行归因。重定向的链可以有不确定的长度,仍然可以使用复合跟踪令牌和归因堆栈来跟踪归因。
[0070]
图2a是示出了与多分段网络事务相关联的归因链200的另一示例的数据流程图,其中根据所公开的技术,三个伙伴服务220a-c结合归因堆栈利用多个复合跟踪令牌,这允许归因于流程重定向/事务的复杂链中的所有多方。
[0071]
在该示例中,最终用户客户端110参与第一伙伴服务partner1(伙伴1)220a,partner1 220a从内容服务230获取清单/内容数据204。在206处,partner1 220a将最终用户客户端110重定向到第二伙伴服务partner2(伙伴2)220b,其中第一归因或跟踪令牌将partner1标识为重定向的来源。接着,在208处,partner2 220b利用第二复合归因令牌重定向到第三伙伴服务partner3 220c,该第二复合归因令牌标识从partner1到partner2的重定向。在210处,第三伙伴服务partner3(伙伴3)220c利用第三复合归因令牌将与最终用户客户端110的事务重定向到内容服务230,该第三复合归因令牌标识从partner2到partner3的重定向。在这种场景下,partner1、partner2和partner3均应接收事务或norb的归因。
[0072]
注意,用于oauth 2.0令牌交换的最新互联网工程任务组(ietf)草案https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16提出了使用复合授权令牌,其用于通过将一对oauth授权令牌组合到复合令牌中而在oauth上下文中委派授权。在该提案中,每个复合令牌包括主题令牌,例如用于购买物品或接收敏感数据的主题实体的令牌,以及行为者令牌,例如用于诸如付款提供商或符合hippa的服务之类的代表主题实体进行操作的行为者实体的令牌。行为者实体可以使用主题令牌和行为者令牌的所得到的复合令牌来代表主题实体进行操作。
[0073]
相反,在图2b和图2c所示的所公开技术的方面中的跟踪令牌或复合跟踪令牌涉及网络事务的跟踪归因,而不是oauth授权的委派。在根据所公开技术的这一方面的复合跟踪令牌的一个示例中,复合跟踪令牌可以用于标识参与请求的重定向或事务的两个实体。通过创建跟踪每个复合跟踪令牌和重定向/事务中涉及的实体的归因堆栈,可以确定长度不确定的多分段事务中所涉及的实体的归因。
[0074]
图2b是示出了根据所公开的技术的利用多个复合跟踪令牌的网络重定向/事务流场景240的示例的数据架构图,该技术允许归因于流程的网络重定向/事务的复杂链中的多方。
[0075]
在该示例中,在244处,客户端110的用户使用内容服务230的跟踪服务api发起动作,这在248处导致客户端110重定向到伙伴服务220a。内容服务230或根据所公开的技术配置的附属归因跟踪服务生成第一归因令牌token1,该第一归因令牌token1在246处被发送给客户端110。当内容服务器230生成第一归因令牌token1时,建立用于与客户端110的事务的归因堆栈。
[0076]
在248处,客户端110包括重定向到伙伴服务220a的第一归因令牌token1。在252
处,伙伴服务220a向内容服务230注册在重定向中从客户端110接收到的包括归因令牌token1的第一令牌token1。内容服务230生成第二归因令牌token2,该第二归因令牌token2与第一令牌token1组合为复合令牌{tokenl;token2}并将复合令牌{token1;token2}添加到与伙伴服务220a相关联的事务的归因堆栈中。在254处,将复合跟踪令牌{token1:token2}提供给伙伴服务220a。
[0077]
在256处,伙伴服务220a将流重定向到伙伴服务220b,并将复合跟踪令牌{token1:token2}包括在重定向中。在262处,伙伴服务220b向内容服务230注册在重定向中从伙伴服务220a接收到的复合跟踪令牌{token1:token2}。内容服务230生成第三归因令牌token3,将其与第二令牌token2组合成复合令牌{token2;token3}并将复合令牌{token2;token3}添加到与伙伴服务220b相关联的事务的归因堆栈中。在264处,将复合跟踪令牌{token2;token3}提供给伙伴服务220b。
[0078]
在266处,伙伴服务220b将流重定向到伙伴服务220c,并且在重定向中包括复合跟踪令牌{token2:token3}。在272处,伙伴服务220c向内容服务230注册{token2:token3}。内容服务230生成第四归因令牌token4,其与第三令牌token3组合成复合令牌{token3;token4},并将复合令牌{token3;token4}添加到与伙伴服务220c相关联的事务的归因堆栈中。在274处,将复合跟踪令牌{token3;token4}提供给伙伴服务220c。
[0079]
当客户端110的用户通过伙伴服务220c请求事务时,伙伴服务220c将事务重定向到内容服务230,并将复合跟踪令牌{token3:token4}包括在重定向的事务中。基于归因堆栈,内容服务230能够将事务归因于伙伴服务220a、220b和220c以及其本身。
[0080]
图2c是示出了根据图2b的示例的归因堆栈280的一个示例的数据架构图。在归因堆栈280的第一行290a中,在292a处标识的客户端110在294a处与第一归因令牌token1相关联,并且因为内容服务230重定向客户端110,所以在296a处,该客户端110被归因于内容服务230。在归因堆栈280的第二行290b中,在292b处标识的伙伴服务220a在294b处与复合归因令牌{token1;token2}相关联,并且在296b处归因于伙伴服务220a。
[0081]
在归因堆栈280的第三行290c中,在292c处标识的伙伴服务220b在294c处与复合归因令牌{token2;token3}相关联,并在296c处归因于伙伴服务220b。在归因堆栈280的第四行290d中,在292c处标识的伙伴服务220c在294c处与复合归因令牌{token2;token3}相关联,并在296d处归因于伙伴服务220c。
[0082]
从归因堆栈280累积归因数据296允许确定来自多分段事务流的每个分段的归因。请注意,除了图2b中所述的重定向以外,可以将连续重定向添加为归因堆栈280中的附加行290,以使归因链的长度可以不确定。
[0083]
在所公开技术的此方面中,可使用由内容服务器、跟踪服务器或维持复合归因令牌与个体归因令牌之间的关联的其它实体发布的复合令牌来形成归因链。以下是涉及复合跟踪令牌的归因的链的说明性示例:
[0084]
{token1}->{token1 |token2}->{token2 |token3}
[0085]
所公开的技术可以使平台允许不确定数量的n个行为者在平台上接收到网络事务中的归因。
[0086]
根据所公开的技术,使用复合跟踪令牌的归因可以采取多种形式。如上所述,可以在归因堆栈中维持与重定向/事务链中的特定实体相关联的跟踪令牌以及该链的令牌和关
联,以跟踪多分段事务的归因。
[0087]
图3a是示出了根据所公开技术的另一方面的用于归因的另一场景300的示例的消息图,其中当发生重定向时,从跟踪api 332获得跟踪令牌。在该示例中,在302处,客户端110的用户向伙伴服务320a发起用户动作,该用户动作导致重定向到伙伴服务320b。在304处,伙伴服务320a从跟踪api 332请求归因跟踪令牌。api 332生成第一跟踪令牌tokenl,并将token1与伙伴服务320a相关联地存储在归因堆栈中。在306处,api332将token1提供给伙伴服务320a。在308处,伙伴服务320a包括到伙伴服务320b的重定向中的token1。
[0088]
在310处,伙伴服务320b从跟踪api 332请求归因跟踪令牌。api 332生成第二跟踪令牌token2,并将token2与伙伴服务320b相关联地存储在归因堆栈中。在312处,api 332将token2提供给伙伴服务320b。在314处,伙伴服务320b将token2包括在到伙伴服务320c的重定向中。
[0089]
在316处,伙伴服务320c从跟踪api 332请求归因跟踪令牌。api 332生成第三跟踪令牌token3,并将token3与伙伴服务320c相关联地存储在归因堆栈中。在318处,api 332将token3提供给伙伴服务320b。
[0090]
在320处,客户端110向伙伴服务320c做出事务请求。作为响应,在322处,伙伴服务320c使用第三跟踪令牌token3将事务请求重定向到事务api 334。
[0091]
在事务的处理期间,事务api 334将归因请求消息324中的token3提供给跟踪api332。当跟踪api 332接收到包括token3的归因请求消息时,它从事务的归因堆栈中获得事务的归因,例如,该事务被归因于伙伴服务320a、320b和320c。
[0092]
图3b是示出根据图3a的示例的归因堆栈340的一个示例的数据架构图。因为token3在346c处在归因堆栈340的行342c中与伙伴服务320c相关联,所以伙伴服务320c被包括在归因中。因为token2在346b处在归因堆栈340的行342b中与伙伴服务320b相关联,所以伙伴服务320b被包括在归因中。因为token1在346a处在归因堆栈340的行342a中与伙伴服务320a相关联,所以伙伴服务320a被包括在归因中。因此,根据所公开的技术,可以使用跟踪令牌从事务的归因堆栈中累积事务的归因。
[0093]
如上所述,在不脱离所公开的技术的情况下,可以针对不同的实现改变跟踪令牌的使用。例如,可以利用复合跟踪令牌,其可以将从一个实体到另一实体的重定向相关联,例如针对表示图2b中从伙伴服务220a到伙伴服务220b的重定向的复合跟踪令牌,伙伴服务220a作为行为者实体,而伙伴服务220b作为主题实体。根据所公开技术的某些方面,复合跟踪令牌可以是唯一标识符,该唯一标识符使得能够出于归因的目的在涉及重定向/事务的两方之间进行映射。可以使用多个复合跟踪令牌形成一条链。
[0094]
在根据所公开技术的另一方面的另一示例中,可以利用与单个实体相关联的跟踪令牌以进行归因,例如,伙伴服务320a。基于跟踪令牌的复杂网络归因方案可以在由提供跟踪令牌的实体所维持的归因堆栈中维持,例如,图3a中的跟踪api 322。
[0095]
发布令牌的内容服务、跟踪服务或api利用令牌与参与事务的各个伙伴之间的关联来维持归因堆栈,并且不管重定向/事务的链的多个分段都可以标识事务的多个归因。所公开的技术允许多于两个的实体参与事务,并且每个实体都接收该事务的归因,而与重定向链的长度无关。
[0096]
这些是简化的示例,并且在根据所公开的技术的用于跟踪多分段事务的归因的系
统或方法中,可以考虑许多因素。因为归因堆栈可以无限扩展以适应附加重定向,所以它提供能够在高度复杂且冗长的事务字符串中跟踪归因的技术优势。此外,因为可以容易地搜索归因堆栈,所以提供了一种有效的机制来确定事务的归因。
[0097]
如将在本文中更详细地描述,可以理解,本文描述的技术和技术的实现可以包括使用在一个或多个输入设备上执行的固态电路、数字逻辑电路、计算机组件和/或软件。本文描述的信号可以包括用于传达数据文件的改变状态或与数据文件有关的其它信息的模拟和/或数字信号。
[0098]
虽然本文描述的主题是在与计算机系统上的操作系统和应用程序的执行结合执行的程序模块的一般背景下呈现的,但是本领域技术人员将认识到,可以与其它类型的程序模块结合来执行其它实现。通常,程序模块包括例程、程序、组件、数据结构以及执行特定任务或实现特定抽象数据类型的其它类型的结构。此外,本领域技术人员将理解,本文描述的主题可以与其它计算机系统配置一起实践,包括多处理器系统、大型计算机、基于微处理器的或可编程的消费电子器件、小型计算机、手持式设备等。
[0099]
图4a是示出了跟踪服务器或服务(诸如,图1b的跟踪服务130、图2b的内容服务器230或图3a的跟踪api 332)中的过程400的示例的控制流程图,其被配置成根据所公开的技术跟踪网络事务的归因。
[0100]
在410处,在跟踪服务中从第一客户端接收令牌请求。在412处,在该示例中,跟踪服务生成并以具有对事务的第一伙伴的归因的第一跟踪令牌进行响应,诸如图1b的跟踪服务130、图2b中的内容服务230或图3a中的跟踪api 332,并且将第一跟踪令牌与第一伙伴相关联地存储在事务的归因堆栈中,诸如图2c中的归因堆栈280或图3b中的归因堆栈340。
[0101]
在420处,在跟踪服务中从第二伙伴接收包括第一令牌的令牌请求。在422处,跟踪服务生成并以具有对事务的第二伙伴的归因的第二跟踪令牌进行响应,并且将第二跟踪令牌与第二伙伴相关联地存储在事务的归因堆栈中而与归因堆栈中的第一跟踪令牌条目相邻。
[0102]
在430处,在跟踪服务中从第三伙伴接收包括第二令牌的令牌请求。在432处,跟踪服务生成并以具有对事务的第三伙伴的归因的第三跟踪令牌进行响应,并且将第三跟踪令牌与第三伙伴相关联地存储在事务的归因堆栈中而与第二跟踪令牌条目相邻。
[0103]
在440处,在跟踪服务中接收包括第三令牌的事务请求以完成事务。在442处,跟踪服务完成事务并根据事务的归因堆栈确定事务的归因。
[0104]
注意,图4a的示例简化为三方多分段事务。可以针对多分段事务的不确定数量的附加分段重复执行涉及向跟踪服务注册令牌的步骤,从而将伙伴添加到归因堆栈中,直到针对该堆栈完成事务为止。每条附加分段都会生成附加的跟踪令牌和事务的归因堆栈中的附加条目。事务结束后,可以遍历归因堆栈以收集事务的链中针对每个伙伴的归因。
[0105]
图4b是示出了伙伴服务器或服务(诸如图2b的伙伴服务器220或内容服务器230或图3a的伙伴服务器320)中的伙伴服务过程450的示例的控制流程图,其被配置成根据所公开的技术利用跟踪服务进行操作以促进网络归因跟踪。
[0106]
在452处,伙伴服务从事务中的先前伙伴服务接收重定向,该重定向包括与先前伙伴相关联并记录在该事务的归因堆栈中的跟踪令牌。在454处,接收伙伴服务将令牌请求或令牌注册请求与和来自先前伙伴的重定向一起接收到的跟踪令牌一起发送给跟踪服务。
[0107]
在456处,伙伴服务从跟踪服务接收响应,该响应包括与伙伴服务相关联并记录在事务的归因堆栈中的新的跟踪令牌。在458处,伙伴服务重定向到下一伙伴,并且包括带有重定向的新的跟踪令牌。
[0108]
在这些示例中,伙伴服务过程450与图4a的跟踪服务过程400协同操作,以使用跟踪令牌在事务流中的重定向字符串中跟踪每个重定向,并将每个重定向记录在归因堆栈中。根据所公开的技术,这些过程的其它变化是可能的。
[0109]
图4c是示出了归因累积过程460的示例的控制流程图,该过程可以在事务结束时在跟踪服务中执行以确定事务的归因。在462处,接收请求或触发事件以用于事务的归因,诸如事务的完成。在464处,针对该事务累积来自归因堆栈中的每个条目的归因实体。在466处,事务的归因或信用被归因于从归因堆栈累积的实体。事务的归因通常基于合同条款或事务中伙伴之间的关系。
[0110]
图4d是示出了跟踪服务器或服务(例如,图1b的跟踪服务130、图2b中的内容服务230或图3a中的跟踪api 332)中的过程470的另一示例的控制流程图,其被配置成根据所公开的技术跟踪网络归因。
[0111]
在472处,在跟踪服务中从伙伴服务接收令牌注册请求。在474处,在该示例中,跟踪服务生成与伙伴服务相关联的新的跟踪令牌。
[0112]
在476处,确定接收到的跟踪令牌注册请求是否包括先前生成的跟踪令牌。如果令牌注册请求的确包含先前生成的跟踪令牌,则在478到480处控制分支,在此使用先前生成的跟踪令牌来标识事务的归因堆栈。如果令牌注册请求中不存在跟踪令牌,则控制分支到482,以创建事务的归因堆栈。
[0113]
控制从480或482继续到484,其中将条目添加到事务的归因堆栈中,其中该条目将在474处生成的新的跟踪令牌与发出令牌注册请求的伙伴服务相关联。在486处,跟踪服务响应于令牌注册请求将新的跟踪令牌返回给伙伴服务。
[0114]
应该理解,在不脱离所公开技术的教导的情况下,可以使用多种不同的工具和方法来建立无线通信以及收集,交换和显示传感器和消息数据。所公开的技术在不脱离本发明的教导的情况下提供了高度的灵活性和实现的配置的变化。
[0115]
本技术可以涉及在一台或多台机器中发生的操作。如本文所使用,“机器”是指用指令编程以执行专门的计算操作的物理数据存储装置和处理硬件。应该理解,两个或更多不同的机器可以共享硬件组件。例如,相同的集成电路可以是两个或更多不同机器的一部分。
[0116]
本领域普通技术人员将认识到,可以利用各种各样的方法并将其与本方法组合用以归因跟踪。本文描述的归因跟踪的不同方面的特定示例是说明性的,并不旨在限制所示技术的范围。
[0117]
归因跟踪的计算机架构
[0118]
注意,图4a、图4b、图4c和图4d的过程400、450、460和470的至少一部分以及与本文所述的归因跟踪有关的其它过程和操作可以在诸如图6中的计算机环境600或云之类的一个或多个服务器中实现,并且可以将定义如本文讨论的那样翻译或解释的用户控制输入信号的结果的数据传送到用户设备以进行显示。备选地,归因跟踪过程可以在客户端设备中实现。在其它示例中,一些操作可以在一组计算资源(诸如服务器)中实现,而其它步骤可以
在其它计算资源(诸如客户端设备)中实现。
[0119]
应该理解,本文描述的方法可以在任何时间终止,并且不需要整体执行。可以通过执行包括在计算机存储介质上的计算机可读指令来执行本文描述的方法的一些或全部操作和/或基本上等效的操作,如下文所定义。如说明书和权利要求书中所使用,术语“计算机可读指令”及其变体在本文中被广泛地使用以包括例程、应用程序、应用程序模块、程序模块、程序、组件、数据结构、算法等。可以在各种系统配置上实现计算机可读指令,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持式计算设备、基于微处理器的可编程消费电子器件及其组合等。
[0120]
因此,应该理解,本文描述的逻辑操作被实现为:(1)作为在计算系统上运行的计算机实现的动作或程序模块的序列和/或(2)作为计算系统内互连的机器逻辑电路或电路模块。该实现是取决于计算系统的性能和其它要求的选择问题。因此,本文描述的逻辑操作被不同地称为状态、操作、结构没备、动作或模块。这些操作、结构设备、动作和模块可以以软件、固件、专用数字逻辑及其任何组合来实现。
[0121]
如本文中所描述,结合本文中所描述的附图,本文中将例程的操作(例如,图4a、图4b、图4c和图4d的过程400、450、460和470)描述为至少部分由应用、组件和/或电路实现。虽然下面的图示涉及图4a-d的组件,但是可以理解,例程的操作也可以以许多其它方式来实现。例如,例程可以至少部分地由计算机处理器或另一台计算机的一个或多个处理器实现。另外,例程的一个或多个操作可以备选地或另外地至少部分地由单独工作或与其它软件模块结合工作的计算机来实现。
[0122]
例如,本文中将例程的操作描述为至少部分地由应用程序、组件和/或电路实现,它们在本文中通常被称为模块。在一些配置中,模块可以是动态链接库(dll)、静态链接库、由应用程序编程接口(api)产生的功能、已编译程序、解释程序、脚本或任何其它可执行指令集。诸如本文公开的数据和模块之类的数据和/或模块可以存储在一个或多个存储器组件中的数据结构中。可以通过寻址数据结构的链接或引用从数据结构中取回数据。
[0123]
虽然以下图示参考了以上讨论的附图的组件,但是可以理解,例程的操作(例如,图4a、图4b、图4c和图4d的过程400、450、460和470)也可以是以许多其它方式实现。例如,例程可以至少部分地由另一台远程计算机或本地计算机或电路的处理器来实现。另外,例程的一个或多个操作可以备选地或另外地至少部分地由单独工作或与其它软件模块结合工作的芯片组来实现。适用于提供本文公开的技术的任何服务、电路或应用程序都可以在本文所述的操作中使用。
[0124]
图5示出了用于计算机的示例计算机架构500的附加细节,诸如图2b中的设备110和伙伴服务220和内容服务器230或图3a中的伙伴服务320和跟踪api 332,它们能够执行本文介绍的程序组件。因此,图5中所示的计算机架构500示出了用于车载计算机、服务器计算机、移动电话、pda、智能电话、台式计算机、上网本计算机、平板计算机、车载计算机、游戏机和/或便携式计算机的架构。可以利用计算机架构500来执行本文提出的软件组件的任何方面。
[0125]
图5中所示的计算机架构500包括中央处理单元502(“cpu”)、系统存储器504,该系统存储器包括随机存取存储器506(“ram”)和只读存储器(“rom”)508以及将存储器504耦合到cpu 502的系统总线510。包含有助于在计算机架构500中的子元件之间(诸如在启动期
间)传输信息的基本例程的基本输入/输出系统存储在rom 508中。计算机架构500还包括用于存储操作系统507、数据(诸如跟踪令牌信息520和归因堆栈信息522)以及一个或多个应用程序的大容量存储设备512。
[0126]
大容量存储设备512通过连接到总线510的大容量存储控制器(未示出)连接到cpu 502。大容量存储设备512及其关联的计算机可读介质为计算机架构500提供了非易失性存储装置。虽然本文包含的计算机可读介质的描述是指大容量存储设备,诸如固态驱动器、硬盘或cd-rom驱动器,但本领域技术人员应理解,计算机可读介质可以是计算机架构500可以访问的任何可用的计算机存储介质或通信介质。
[0127]
通信介质包括诸如载波或其它传输机制的调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并且包括任何传递介质。术语“调制数据信号”是指具有以将信息编码在信号中的方式改变或设置的其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、rf、红外和其它无线介质之类的无线介质。以上任何内容的组合也应包括在计算机可读介质的范围内。
[0128]
作为示例而非限制,计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。例如,计算机介质包括但不限于ram、rom、eprom、eeprom、闪存或其它固态存储技术、cd-rom、数字多功能磁盘(“dvd”)、hd-dvd、blu-ray或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁性存储设备,或可用于存储所需信息并可由计算机架构500访问的任何其它介质。为了权利要求的目的,短语“计算机存储介质”、“计算机可读存储介质”及其变体本身并不包括波、信号和/或其它瞬时和/或无形通信介质。
[0129]
根据各种配置,计算机架构500可以使用通过网络556和/或另一个网络(未示出)到远程计算机的逻辑连接,而在联网环境中操作。计算机架构500可以通过连接到总线510的网络接口单元514连接到网络556。应该理解,网络接口单元514也可以用于连接到其它类型的网络和远程计算机系统。计算机架构500还可以包括输入/输出控制器516,用于接收和处理来自许多其它设备的输入,其它设备包括键盘、鼠标、游戏控制器、电视遥控器或电子笔(图5中未示出)。类似地,输入/输出控制器516可以将输出提供给显示屏、打印机或其它类型的输出设备(图5中也未示出)。
[0130]
应该理解,当本文描述的软件组件被加载到cpu 502中并被执行时,可以将cpu 502和整个计算机架构500从通用计算系统转换为定制成促进本文提出的功能的专用计算系统。cpu 502可以由任意数量的晶体管或其它分立电路元件构成,其可以单独或共同地呈现任意数量的状态。更具体地,响应于本文公开的软件模块中包含的可执行指令,cpu 502可以作为有限状态机操作。这些计算机可执行指令可以通过指定cpu 502如何在状态之间转换来对cpu 502进行转变,从而对构成cpu 502的晶体管或其它分立的硬件元件进行转变。
[0131]
对本文提出的软件模块进行编码也可以转变本文提出的计算机可读介质的物理结构。在本说明书的不同实现中,物理结构的特定转变可以取决于各种因素。这类因素的示例可以包括但不限于用于实现计算机可读介质的技术,计算机可读介质被表征为主要存储装置还是辅助存储装置等。例如,如果计算机可读介质被实现为基于半导体的存储器,则本文公开的软件可以通过转换半导体存储器的物理状态而被编码在计算机可读介质上。例
如,软件可以转变构成半导体存储器的晶体管、电容器或其它分立电路元件的状态。该软件还可以转变这些组件的物理状态,以便在其上存储数据。
[0132]
作为另一示例,可以使用磁性或光学技术来实现本文公开的计算机可读介质。在这类实现中,当软件在磁性或光学介质中被编码时,其可以转变磁性或光学介质的物理状态。这些转变可以包括改变给定磁性介质内特定位置的磁性特性。这些转变还可以包括改变给定光学介质内特定位置的物理特征或特性,以改变那些位置的光学特性。在不脱离本说明书的范围和精神的情况下,物理介质的其它转变是可能的,提供前述示例仅是为了促进该时论。
[0133]
鉴于上述内容,应该理解,在计算机架构500中发生了许多类型的物理转变,以便存储和执行本文提出的软件组件。还应该理解,计算机架构500可以包括其它类型的计算设备,包括手持式计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员已知的其它类型的计算设备。还可以设想到,计算机架构500可以不包括图5中所示的所有组件,可以包括在图5中未明确示出的其它组件,或者可以利用与图5中所示的架构完全不同的架构。
[0134]
图6描绘了能够执行本文所述的用于归因跟踪的软件组件的说明性分布式计算环境600。因此,图6中所示的分布式计算环境600可以用于执行本文提出的软件组件的许多方面。例如,分布式计算环境600可以用于执行本文描述的软件组件的一个或多个方面。
[0135]
根据各种实现,分布式计算环境600包括在网络604上运行,与之通信或作为其一部分的计算环境602。网络604可以是或可以包括上述的网络556。网络604还可以包括各种接入网络。一个或多个客户端设备606a-806n(以下统称为和/或通称为“客户端606”)可以经由网络604和/或其它连接(图6中未示出)与计算环境602通信。在一个示出的配置中,客户端606包括计算设备606a,诸如膝上型计算机、台式计算机或其它计算设备;平板或平板计算设备(“平板计算设备”)606b;移动计算设备606c,诸如移动电话、智能电话、车载计算机或其它移动计算设备;服务器计算机606d;和/或其它设备606n,其可以包括硬件安全模块。应该理解,任何数量的设备606都可以与计算环境602进行通信。本文参考图5和图7示出和描述了设备606的两个示例计算架构。应该理解,所示出的设备606和本文中示出和描述的计算架构仅是示例性的,不应解释为以任何方式进行限制。
[0136]
在所示的配置中,计算环境602包括应用服务器608、数据存储装置610和一个或多个网络接口612。根据各种实现,应用服务器608的功能可以由一个或多个作为网络604的一部分执行或与网络604通信的服务器计算机提供。应用服务器608可以托管各种服务、虚拟机、门户和/或其它资源。在所示的配置中,应用服务器608托管一个或多个虚拟机614,用于托管应用程序或其它功能。根据各种实现,虚拟机614托管一个或多个用于归因跟踪的应用程序和/或软件模块。应该理解,该配置仅是说明性的,不应以任何方式解释为限制性的。
[0137]
根据各种实现,应用服务器608还包括一个或多个跟踪令牌服务620、归因堆栈服务622和重定向服务624。跟踪令牌服务620可以包括用于处理认证请求和发布令牌的服务。归因堆栈服务622可以包括用于维持事务的归因堆栈的服务,该归因堆栈指示事务中的实体之间的归因跟踪关系。重定向服务624可以包括用于重定向到伙伴服务的服务。
[0138]
如图6中所示,应用服务器608还可以托管其它服务、应用、门户和/或其它资源(“其它资源”)628。其它资源628可以包括但不限于数据加密、数据共享或任何其它功能。
[0139]
如上所述,计算环境602可以包括数据存储装置610。根据各种实现,数据存储装置
610的功能由在网络604上运行或与网络604通信的一个或多个数据库或数据存储装置提供。数据存储装置610的功能还可以由配置成托管用于计算环境602的数据的一个或多个服务器计算机来提供。数据存储装置610可以包括,托管或提供一个或多个真实或虚拟数据存储装置626a-826n(以下统称为和/或通称为“数据存储装置626”)。数据存储装置626被配置成托管由应用服务器608使用或创建的数据和/或其它数据。数据存储装置626的各方面可以与用于归因跟踪的服务相关联。虽然在图6中未示出,但是数据存储装置626也可以托管或存储网页文档、文字文档、演示文档、数据结构、推荐引擎执行的算法和/或任何应用程序或另一模块所利用的其它数据。
[0140]
计算环境602可以与网络接口612通信或被其访问。网络接口612可以包括用于支持两个或更多个计算设备之间的通信的各种类型的网络硬件和软件,包括但不限于移动客户端车辆、客户端606和应用服务器608。应该理解,网络接口612也可以用于连接到其它类型的网络和/或计算机系统。
[0141]
应该理解,本文描述的分布式计算环境600可以向本文描述的软件元件的任何方面提供任何数量的虚拟计算资源和/或其它分布式计算功能,其可以配置成执行本文公开的软件组件的任何方面。根据本文公开的概念和技术的各种实现,分布式计算环境600可以使用设备606向客户端提供本文描述的软件功能作为服务。应该理解,设备606可以包括真实机或虚拟机,包括但不限于服务器计算机、网络服务器、个人计算机、移动计算设备、智能电话和/或其它可以包括用户输入设备的设备。这样,在其他方面,本文公开的概念和技术的各种配置尤其使配置成访问分布式计算环境600的任何设备能够利用本文描述的功能进行归因跟踪。
[0142]
现在转到图7,本文描述了用于能够执行各种软件组件的计算设备的说明性计算设备架构700,以用于归因跟踪。计算设备架构700可应用于诸如车辆中的移动客户端之类的计算设备。在一些配置中,计算设备包括但不限于移动电话、车载计算机、平板设备、板设备、便携式视频游戏设备、传统台式计算机、便携式计算机(例如,膝上型计算机、笔记本计算机、超便携式计算机和上网本)、服务器计算机、游戏机和其它计算机系统。计算设备架构700可应用于图2b中的客户端设备110和伙伴服务220和内容服务器230,或者图3a中的伙伴服务320和内容服务器330以及图6中示出的计算设备606a-n。
[0143]
图7中所示的计算设备架构700包括处理器702、存储器组件704、网络连接组件706、传感器组件708、输入/输出组件710和电源组件712。在所示的配置中,处理器702与存储器组件704、网络连接组件706、传感器组件708、输入/输出(i/o)组件710和电源组件712通信。虽然图7中所示的各个组件之间没有示出连接,但组件可以交互执行设备功能。在一些配置中,组件被布置为经由一个或多个总线(未示出)进行通信。
[0144]
处理器702包括中央处理单元(“cpu”),其被配置成处理数据,执行一个或多个应用程序的计算机可执行指令并且与计算设备架构700的其它组件通信以便执行本文所述地各种功能。处理器702可以用以执行本文所提出的软件组件的各方面,尤其是那些至少部分利用安全数据的方面。
[0145]
在一些配置中,处理器702包括图形处理单元(“gpu”),其被配置成加速由cpu执行的操作,包括但不限于通过执行安全计算应用、通用科学和/或工程计算应用,以及诸如高分辨率视频(例如620p、1080p和更高分辨率)、视频游戏、三维(“3d”)建模应用之类的图形
密集型计算应用等执行的操作。在一些配置中,处理器702被配置成与分立gpu(未示出)通信。在任何情况下,都可以根据协同处理cpu/gpu计算模型来配置cpu和gpu,其中应用的顺序部分在cpu上执行,而计算密集型部分则由gpu加速。
[0146]
在一些配置中,处理器702与以下本文所述的一个或多个其它组件一起或包括在片上系统(“soc”)中。例如,soc可以包括处理器702、gpu、网络连接组件706中的一个或多个以及传感器组件708中的一个或多个。在一些配置中,处理器702部分地利用封装体叠层(“pop”)集成电路封装技术来制造。处理器702可以是单核或多核处理器。
[0147]
处理器702可以根据可从英国剑桥的arm控股公司获得许可的arm架构来创建。备选地,处理器702可以根据x86架构来创建,诸如可以从加利福尼亚州山景城的intel公司等购得。在一些配置中,处理器702是可以从加利福尼亚州圣地亚哥的qualcomm购得的snapdragon soc,可以从加利福尼亚州圣克拉拉的nvidia购得的tegra soc,可以从韩国首尔的samsung购得的hummingbird soc,可以从德克萨斯州达拉斯的texas instruments购得的开放多媒体应用平台(“omap”)soc,上述任何soc的定制版本或专有soc。
[0148]
存储器组件704包括随机存取存储器(“ram”)714、只读存储器(“rom”)716、集成存储存储器(“集成存储装置”)718和可移除存储存储器(“可移除存储装置”)720。在一些配置中,ram 714或其一部分、rom 716或其一部分和/或ram 714和rom 716的某种组合被集成在处理器702中。在一些配置中,rom 716被配置成存储固件、操作系统或其一部分(例如,操作系统内核)和/或引导加载器,以从集成存储装置718和/或可移除存储装置720加载操作系统内核。
[0149]
集成存储装置718可以包括固态存储器、硬盘或固态存储器和硬盘的组合。集成存储装置718可以被焊接或以其它方式连接至逻辑板,处理器702和本文所述的其它组件也可以连接至该逻辑板。这样,集成存储装置718被集成在计算设备中。集成存储装置718被配置成存储操作系统或其部分、应用程序、数据以及本文所述的其它软件组件。
[0150]
可移除存储装置720可以包括固态存储器、硬盘或固态存储器和硬盘的组合。在一些配置中,提供可移除存储装置720代替集成存储装置718。在其它配置中,提供可移除存储装置720作为附加的可选存储装置。在一些配置中,可移除存储装置720在逻辑上与集成存储装置718组合,使得总可用存储装置作为总组合存储容量可用。在一些配置中,向用户示出了集成存储装置718和可移除存储装置720的总组合容量,而不是集成存储装置718和可移除存储装置720的单独的存储容量。
[0151]
可移除存储装置720被配置成插入可移除存储装置存储器插槽(未示出)或其它机构中,可移除存储装置720通过该插槽或其它机构被插入并固定以促进连接,可移除存储装置720可通过该连接与计算设备的其它组件通信,诸如处理器702。可移除存储装置720可以具体实施为各种存储卡格式,包括但不限于pc卡、压缩闪存卡、记忆棒、安全数字(“sd”)、迷你sd、微sd、通用集成电路卡(“uicc”)(例如,用户标识模块(“sim”)或通用sim(“usim”))、专有格式等。
[0152]
可以理解,一个或多个存储组件704可以存储操作系统。根据各种配置,操作系统可以包括但不限于服务器操作系统,诸如由the open group认证的各种形式的unix和由free software foundation认证的linux,或者“软件即服务”(saas)架构的各个方面,诸如华盛顿州雷蒙德市微软公司的microsft azure或华盛顿州西雅图市亚马逊公司的aws。操
作系统还可以包括华盛顿州雷蒙德市微软公司的windows mobile os、微软公司的windows phone os、微软公司的windows、加利福尼亚州库比蒂诺的苹果公司的mac os或ios,以及加利福尼亚州山景城的谷歌公司的android os。可以设想其它操作系统。
[0153]
网络连接组件706包括无线广域网组件(“wwan组件”)722、无线局域网组件(“wlan组件”)724和无线个人局域网组件(“wpan组件”)726。网络连接组件706促进与网络756或另一网络进行通信,网络可以是wwan、wlan或wpan。虽然仅示出了网络756,但是网络连接组件706可以促进与包括图7的网络756在内的多个网络同时通信。例如,网络连接组件706可以促进经由wwan、wlan或wpan中的一个或多个网络与多个网络同时通信。
[0154]
网络756可以是或可以包括wwan,诸如利用一种或多种移动电信技术以经由wwan组件722利用计算设备架构700向计算设备提供语音和/或数据服务的移动电信网络。移动电信技术可以包括但不限于全球移动通信系统(“gsm”)、码分多址(“cdma”)one、cdma 7000、通用移动通信系统(“umts”)、长期演进(“lte”)和微波接入的全球互操作性(“wimax”)。此外,网络756可以利用各种信道接入方法(上述标准可以使用或可以不使用),包括但不限于时分多址(“tdma”)、频分多址(“fdma”)、cdma、宽带cdma(“w-cdma”)、正交频分复用(“ofdm”)、空分多址(“sdma”)等。可以使用通用分组无线服务(“gprs”)、全球演进的增强数据速率(“edge”)、高速分组访问(“hspa”)协议系列(包括高速下行链路分组访问(“hsdpa”)、增强型上行链路(“eul”)或以其它方式称为高速上行链路分组访问(“hsupa”))、演进的hspa(“hspa+”)、lte以及各种其它当前和将来的无线数据访问标准来提供数据通信。网络756可以被配置成利用以上技术的任何组合来提供语音和/或数据通信。网络756可以被配置成或适于根据未来的技术来提供语音和/或数据通信。
[0155]
在一些配置中,wwan组件722被配置成向网络756提供双多模式连接。例如,wwan组件722可以被配置成向网络756提供连接,其中网络756经由gsm和umts技术,或经由其它一些技术组合提供服务。备选地,可以利用多个wwan组件722来执行这样的功能,和/或提供附加的功能以支持其它不兼容的技术(即,不能由单个wwan组件支持的技术)。wwan组件722可以促进到多个网络(例如,umts网络和lte网络)的类似连接。
[0156]
网络756可以是根据一个或多个电气和电子工程师协会(“ieee”)602.11标准(诸如ieee 602.11a、602.11b、602.11g、602.11n和/或将来602.11标准)运行的wlan(在本文统称为wi-fi)。还设想了草案602.11标准。在一些配置中,利用一个或多个无线wi-fi接入点来实现wlan。在一些配置中,一个或多个无线wi-fi接入点是另一台计算设备,该设备具有到wwan的连接,并充当wi-fi热点。wlan组件724被配置成经由wi-fi接入点连接到网络756。可以经由各种加密技术来保护这类连接,这些加密技术包括但不限于wi-fi保护访问(“wpa”)、wpa2、有线等效保密性(“wep”)等。
[0157]
网络756可以是根据红外数据协会(“irda”)、蓝牙、无线通用串行总线(“usb”)、z-wave、zigbee或一些其它短距离无线技术进行操作的wpan。在一些配置中,wpan组件726被配置成促进经由wpan与诸如外围设备、计算机或其它计算设备之类的其它设备的通信。
[0158]
传感器组件708包括磁力计728、环境光传感器730、接近传感器732、加速度计734、陀螺仪736和全球定位系统传感器(“gps传感器”)738。可以设想的是,诸如但不限于温度传感器或冲击检测传感器之类的其它传感器也可以并入计算设备架构700中。
[0159]
i/o组件710包括显示器740、触摸屏742、数据i/o接口组件(“数据i/o”)744、音频
i/o接口组件(“音频i/o”)746、视频i/o接口组件(“视频i/o”)748和摄像头750。在一些配置中,显示器740和触摸屏742组合在一起。在一些配置中,数据i/o组件744、音频i/o组件746和视频i/o组件748中的两个或更多个组合在一起。i/o组件710可以包括被配置成支持以下描述的各种接口的分立处理器,或者可以包括内置于处理器702中的处理功能。
[0160]
所示的功率组件712包括一个或多个电池752,其可以连接至电池量表754。电池752可以是可充电的或一次性的。可充电电池类型包括但不限于锂聚合物、锂离子、镍镉和镍金属氢化物。每个电池752可以由一个或多个电池单元制成。
[0161]
电源组件712还可以包括电源连接器,该电源连接器可以与一个或多个上述i/o组件710组合。电源组件712可以经由i/o组件与外部电源系统或充电设备接口连接。
[0162]
最后,虽然已经用结构特征和/或方法动作专用的语言描述了各种配置,但是应该理解,所附表示中定义的主题不必限于所描述的特定特征或动作。更确切而言,将特定特征和动作公开为实现所要求保护的主题的示例形式。
[0163]
根据以下条款做出本发明:
[0164]
条款1.一种用于多分段事务的计算机实现的网络归因跟踪方法,所述方法包括:从第一伙伴服务接收第一令牌请求;响应于所述第一令牌请求:生成第一跟踪令牌,在归因堆栈中将所述第一跟踪令牌与所述第一伙伴服务相关联,以及发送对所述第一令牌请求的包括所述第一跟踪令牌的响应;接收从所述第一伙伴服务到第二伙伴服务的第二令牌请求,所述第二重定向包括所述第一跟踪令牌;响应于所述第二令牌请求:生成第二跟踪令牌,在归因堆栈中将所述第二跟踪令牌与所述第二伙伴服务相关联,以及发送对所述第二重定向的包括所述第二跟踪令牌的响应;基于所述归因堆栈将事务归因于所述第一伙伴服务和第二伙伴服务。
[0165]
条款2.根据条款1的方法,其中所述事务包括数据事务和购买事务中的一个。
[0166]
条款3.根据条款1的方法,所述方法还包括:从客户端接收重定向;响应于所述重定向,将所述第一令牌请求发送给跟踪服务;从所述跟踪服务接收带有所述第一跟踪令牌的响应;以及连同所述第一跟踪令牌一起重定向到所述第二伙伴。
[0167]
条款4.根据条款3的方法,所述方法还包括:从所述第一伙伴接收带有所述第一跟踪令牌的重定向;响应于来自所述第一伙伴的所述重定向,将所述第二令牌请求与所述第一跟踪令牌一起发送给所述跟踪服务;从所述跟踪服务接收带有所述第二跟踪令牌的响应;以及连同所述第二跟踪令牌一起重定向到第三伙伴。
[0168]
条款5.根据条款4的方法,所述方法还包括:从所述第二伙伴接收带有所述第二跟踪令牌的重定向;响应于来自所述第一伙伴的重定向,将所述第二令牌请求与所述第二跟踪令牌一起发送给所述跟踪服务;从所述跟踪服务接收带有第三跟踪令牌的响应;以及响应于来自所述客户端的事务请求,将事务请求和归因请求中的一个与所述第三跟踪令牌一起发送给所述跟踪服务。
[0169]
条款6.根据条款1的方法,其中基于所述归因堆栈将所述事务归因于所述第一伙伴服务、第二伙伴服务和第三伙伴服务的步骤包括:接收所述事务的归因请求;从所述事务的归因堆栈中的每个条目累积归因实体;以及将所述事务归因于所述累积的归因实体。
[0170]
条款7.根据条款1的方法,其中:所述第一跟踪令牌包括标识所述第一伙伴的第一复合跟踪令牌;所述第二跟踪令牌包括标识所述第一伙伴和所述第二伙伴的第二复合跟踪
令牌;并且所述第三跟踪令牌包括标识所述第二伙伴和第三伙伴的第三复合跟踪令牌。
[0171]
条款8.一种用于网络归因跟踪的系统,所述系统包括:一个或多个处理器;以及与所述一个或多个处理器通信的一个或多个存储器设备,所述存储器设备具有存储在其上的计算机可读指令,所述计算机可读指令在由所述处理器执行时使所述处理器执行用于多分段事务的网络归因跟踪方法,所述方法包括:从伙伴服务接收跟踪令牌注册请求;生成与所述伙伴服务相关联的跟踪令牌;将条目添加到事务的归因堆栈中,其中所述条目将所述跟踪令牌与所述伙伴服务相关联;以及将所述跟踪令牌返回给所述伙伴服务。
[0172]
条款9.根据条款8的系统,其中:从伙伴服务接收跟踪令牌请求的步骤包括:确定所述跟踪令牌请求是否包括先前生成的跟踪令牌;使用所述先前生成的跟踪令牌来标识所述事务的所述归因堆栈;并且将条目添加到事务的归因堆栈中的步骤包括:将所述条目添加到针对所述事务标识的所述归因堆栈中。
[0173]
条款10.根据条款9的系统,其中生成与所述伙伴服务关联的跟踪令牌的步骤包括:在所述生成的跟踪令牌中组合所述先前生成的跟踪令牌以创建复合跟踪令牌。
[0174]
条款11.根据条款9的系统,其中将条目添加到事务的归因堆栈中的步骤包括:按照与何时接收到所述条目的所述令牌注册请求相对应的顺序,将所述条目添加到所述归因堆栈中。
[0175]
条款12.根据条款9的系统,其中所述方法包括:接收所述事务的归因请求,其中所述归因请求包括跟踪令牌;使用所述归因请求中包括的所述跟踪令牌来标识所述事务的归因堆栈;从针对所述事务标识的所述归因堆栈中的每个条目累积归因实体;以及将所述事务归因于所述累积的归因实体。
[0176]
条款13.根据条款12的系统,其中所述方法包括:当所述事务完成时,发送所述事务的归因请求。
[0177]
条款14.根据条款8的系统,其中所述方法包括:从先前伙伴服务接收带有所述先前生成的跟踪令牌的重定向;将所述注册请求与所述先前生成的跟踪令牌一起发送给所述跟踪服务;从所述跟踪服务接收带有与所述伙伴服务、所接收到的所述重定向相关联的所述跟踪令牌的响应;以及响应于对下一伙伴服务的重定向请求,重定向到所述下一伙伴服务,并包括从所述跟踪服务接收的所述跟踪令牌。
[0178]
条款15.一种或多种其上存储有计算机可执行指令的计算机存储介质,所述计算机可执行指令在由一个或多个处理器执行时使所述处理器执行用于确定事务的归因的方法,所述方法包括:用于多分段网络事务的归因跟踪方法,所述方法包括:从伙伴服务接收跟踪令牌注册请求;生成与所述伙伴服务相关联的跟踪令牌;将条目添加到事务的归因堆栈中,其中所述条目将所述跟踪令牌与所述伙伴服务相关联;以及将所述跟踪令牌返回给所述伙伴服务。
[0179]
条款16.根据条款15的计算机存储介质,其中:从伙伴服务接收跟踪令牌请求的步骤包括:确定所述跟踪令牌请求是否包括先前生成的跟踪令牌;使用所述先前生成的跟踪令牌来标识所述事务的所述归因堆栈;并且将条目添加到事务的归因堆栈中的步骤包括:将所述条目添加到针对所述事务标识的所述归因堆栈中。
[0180]
条款17.根据条款16的计算机存储介质,其中生成与所述伙伴服务相关联的跟踪令牌的步骤包括:在所述生成的跟踪令牌中组合所述先前生成的跟踪令牌以创建复合跟踪
令牌。
[0181]
条款18.根据条款16的计算机存储介质,其中将条目添加到事务的归因堆栈中的步骤包括:按照与何时接收到所述条目的所述令牌注册请求相对应的顺序,将所述条目添加到所述归因堆栈中。
[0182]
条款19.根据条款16的计算机存储介质,其中所述方法包括:接收所述事务的归因请求,其中所述归因请求包括跟踪令牌;使用所述归因请求中包括的所述跟踪令牌来标识所述事务的归因堆栈;从针对所述事务标识的所述归因堆栈中的每个条目累积归因实体;以及将所述事务归因于所述累积的归因实体。
[0183]
条款20.根据条款15的系统,其中所述方法包括:从先前伙伴服务接收带有所述先前生成的跟踪令牌的重定向;将所述注册请求与所述先前生成的跟踪令牌一起发送给所述跟踪服务;从所述跟踪服务接收带有与所述伙伴服务、所接收到的所述重定向相关联的所述跟踪令牌的响应;以及响应于对下一伙伴服务的重定向请求,重定向到所述下一伙伴服务,并包括从所述跟踪服务接收的所述跟踪令牌。