数据递送的制作方法

文档序号:6484477阅读:169来源:国知局
数据递送的制作方法
【专利摘要】用于依赖于支持的post递送的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。在一个方面中,一种方法包括:生成用于由第一服务器供应的并且在客户端设备上渲染的网页的传输数据,第一服务器属于第一域;确定客户端设备是否支持跨来源资源共享;响应于确定客户端设备不支持跨来源资源共享:定义用于网页的iFrame,iFrame属于接收服务器的第二域并且具有从传输数据导出的名称值;接收来自接收服务器的iFrame指令并且在iFrame中执行iFrame指令,iFrame指令使客户端设备:根据iFrame的名称值生成去往接收服务器的HTTP?POST请求,第一HTTP?POST请求包括传输数据。
【专利说明】数据递送
【技术领域】
[0001 ] 本说明书涉及数据传输。
【背景技术】
[0002]数据传输用于在连接到网络的两个或者更多计算机之间进行通信。数据递送的一个示例使用是在网站分析领域中。发布者是拥有和/或管理网站的实体。使用第三方提供的分析服务,发布者可以监视与用户访问和指向网站的链接有关的分析数据。示例分析数据包括与访问者从其到来的和访问者离开去往的域和/或网站有关的数据;流量模式,例如访问者在发布者的网站内的导航点击;访问者动作,例如购物、填写表单等以及访问者可以关于发布者的网站进行的其他动作。对这种分析数据的分析可以告知发布者访问者是如何被引荐到发布者的网站、广告活动是否导致该引荐以及访问者如何与发布者的网站交互。凭借这一了解,发布者可以实施改变以增加收入生成和/或改进访问者体验。例如发布者可以使营销资源专注于广告活动、审核来自其他网站的引荐、识别作为交叉链接的潜在伙伴的其他发布者,等等。
[0003]从MountainView,California的Google公司获得的Google?Analytics提供了一个示例分析系统,该分析系统提供有助于收集和分析这种分析数据的分析工具。为了使用这种系统,发布者通常提供嵌入在其网页中的跟踪指令(或者备选地,在其网页中提供代码,该代码请求来自分析服务器的跟踪指令)。通常,跟踪指令是发布者向它们的网站中将为其跟踪流量的每个页面上添加的JavaScript?代码的片段。当由用户设备渲染页面时,跟踪指令被执行、收集访问者数据并且将访问者数据以跟踪数据通信的形式向分析服务器发送回以供处理。一种发送跟踪数据通信的常见方法是将其作为HTTP请求的一部分进行发送。
[0004]跟踪数据的汇集也称为跟踪信标。示例跟踪数据包括标识发布者的分析账户的账户标识符、标识访问者的访问者标识符和事件统计信息,诸如访问者是否以前去过该网站、当前访问的时间戳等。
[0005]发布者可以指定在跟踪数据中报告的事件的数量和类型以例如说明发布者希望跟踪的特定信息。然而,跟踪数据通信的大小存在上限,因为HTTP GET请求具有关于可以发送的信息量的限制。一种能够发送比HTTP GET可以发送的更多数量的跟踪数据的方式是利用HTTP POST。
[0006]HTTP POST可以作为html表单的一部分或者作为异步JavaScript (AJAX)请求的一部分进行发送。作为html表单的一部分而发送的HTTP POST向一些浏览器的历史添加条目。这可能潜在地降低用户体验,因为向历史添加的条目将使浏览器中的后退按钮响应于用户的点击而产生意外结果。
[0007]使用AJAX将跟踪数据作为HTTP POST的一部分进行发送受制于浏览器的同来源策略。许多web浏览器具有内置保护,这些保护防止源于一个域的运行网页或者应用访问来自另一个域的方法和属性。由于被跟踪的网页源于与分析服务器的域不同的发布者域,所以在发布者域的网页上运行的JavaScript可能不能向分析服务器发送HTTP POST。
[0008]最后,跨来源资源共享(CORS)不允许跨域边界发送AJAX post请求。然而许多浏览器不支持跨来源资源共享。

【发明内容】

[0009]本说明书描述如下技术,这些技术涉及依赖于支持的post递送并且更具体地涉及使用依赖于支持的post递送过程来传输跟踪数据。
[0010]一般而言,可以在包括以下动作的方法中实现在本说明书中描述的主题内容的一个创新方面:生成事件数据,该事件数据详述用于由发布者服务器供应的并且在客户端设备上渲染的网页的一个或者多个事件,网页和发布者服务器属于第一域,并且一个或者多个事件相对于客户端设备来测量;确定事件数据是否超过尺寸阈值;响应于确定事件数据未超过尺寸阈值,生成去往分析服务器的HTTPGET请求,分析服务器属于与第一域不同的第二域,HTTP GET请求包括事件数据;响应于确定事件数据超过尺寸阈值,确定客户端是否支持跨来源资源共享;响应于确定客户端支持跨来源资源共享,生成去往分析服务器的第一HTTP POST请求,第一HTTP POST包括事件数据并且是与跨来源资源共享兼容的消息;以及响应于确定客户端不支持跨来源资源共享,生成去往分析服务器的第二 HTTP POST,第二HTTP POST包括事件数据并且是从客户端设备上的属于第二域的环境发送的。这一方面的其他实施例包括被配置用于执行方法的动作的系统、装置和在计算机存储设备上编码的计算机程序。
[0011]可以在包括以下动作的方法中实现在本说明书中描述的主题内容的另一创新方面:生成事件数据,该事件数据详述用于由发布者服务器供应的并且在客户端设备上渲染的网页的一个或者多个事件,网页和发布者服务器属于第一域,并且一个或者多个事件相对于客户端设备来测量;确定客户端设备是否支持跨来源资源共享;响应于确定客户端设备不支持跨来源资源共享:定义用于网页的iFrame,iFrame属于分析服务器的第二域,并且iFrame具有从事件数据导出的名称值;从iFrame发出针对来自分析服务器的环境指令的请求;接收来自分析服务器的环境指令并且在iFrame中执行环境指令,环境指令使客户端设备:从iFrame的名称值生成去往分析服务器的第一 HTTP POST请求,第一 HTTP POST请求包括事件数据;以及将iFrame的域从第二域改变成第一域。这一方面的其他实施例包括被配置用于执行方法的动作的系统、装置和在计算机存储设备上编码的计算机程序。
[0012]在另一实现方式中,渲染具有用于发送跟踪信息的指令的网页使得计算机设备请求第二网页。第二网页向先前指示的服务器发送跟踪信息。
[0013]可以实施在本说明书中描述的主题内容的具体实施例以便实现以下优点中的一个或者多个优点。向发布者提供关于浏览器的通信能力而言与浏览器无关的跟踪代码。可以在单个消息中而不是通过使用HTTP get消息向分析第三方发送更大数量的所跟踪数据,即发布者有能力仅用单个消息来跟踪比通过使用单个HTTP get消息跟踪的事件更多的事件。
[0014]在附图和下文描述中阐述在本说明书中描述的主题内容的一个或者多个实施例的细节。主题内容的其他特征、方面和优点将从描述、附图和权利要求中变得清楚。【专利附图】

【附图说明】
[0015]图1是其中报告跟踪数据的示例环境的框图。
[0016]图2是用于报告事件数据的示例过程的流程图。
[0017]图3是用于从与为其报告事件数据的网页分离的环境报告事件数据的示例过程的流程图。
[0018]图4是用于在报告事件数据之后删除环境的示例过程的流程图。
[0019]图5是可编程处理系统的框图。
【具体实施方式】
[0020]在客户端设备上渲染包括跟踪指令的发布者网页。在渲染网页期间,跟踪指令指示客户端设备收集访问者数据并且向分析服务器发送该数据。发布者网页源于与分析服务器的域不同的域。
[0021]在一些实现方式中,跟踪指令包括如下指令,这些指令使得客户端设备确定跟踪数据是否太大而无法作为HTTP GET请求的一部分来发送。如果跟踪数据不是太大而无法作为HTTP GET请求的一部分来发送,则客户端设备通过HTTP GET请求向分析服务器发送跟踪数据。然而如果跟踪数据太大而无法通过HTTP GET请求来发送,则客户端设备确定在客户端设备上运行的浏览器的支持能力,即客户端设备确定浏览器是否支持与跨来源支持兼容的请求。如果浏览器支持与跨来源支持兼容的请求,则客户端使用与跨来源支持兼容的请求来使用HTTP POST发送跟踪数据。反言之,如果浏览器不支持与跨来源支持兼容的请求,则客户端从单独的网页实例发送该请求。
[0022]图1是报告和处理跟踪数据通信的示例环境100的框图。计算机网络102,诸如因特网或者因特网与一个或者多个有线和无线网络的组合,连接网站104-1-104-5、用户设备108-1和108-2以及分析系统110,诸如包括服务器或者许多联网服务器的数据处理装置。虽然仅示出五个网站和两个用户设备,但是在线环境100可以包括数以千计的网站和用户设备。
[0023]网站104是与域名关联的一个或者多个网页资源105,并且每个网站由一个或者多个服务器托管。示例网站是用可以包含文本、图形图像、多媒体内容和诸如脚本的编程元素的超文本标记语言(HTML)格式化的网页的汇集。每个网站104由发布者、例如管理和/或拥有网站的实体来维护。为了避免附图中的拥挤,仅示出网站104-1的网页资源105-1。
[0024]资源是可以由网站104通过网络102提供的任何数据,其与资源地址相关联。资源由统一资源定位符(URL)寻址。出于本文的目的,术语“网页资源”或者简称为“网页”或者“资源”将用来描述通过web浏览器或者相似类型的应用访问的、用于在用户设备上显示的资源。网页可以包括HTML或者XHTML数据、多媒体数据等、例如flash视频、图像、音频、脚本以及可以在浏览器中呈现和执行和/或解译的其他信息和对象。
[0025]用户设备,诸如设备108-1或者108-2之一,是在用户的控制之下的电子设备并且能够通过网络102请求和接收资源。示例用户设备108包括例如用户设备108-1的个人计算机、例如108-2的移动通信设备以及可以通过网络102发送和接收数据的其他设备。用户设备108通常包括用于有助于通过网络102发送和接收数据的用户应用,诸如web浏览器。[0026]分析系统110被实现为具有如下域名,该域名定义与网站104的域不同的域。每个网站104的发布者具有对应的跟踪账户,在分析系统110中,关于去往和来自网站104的流量的数据以及与访问者对网站104进行的动作有关的事件与该跟踪账户相关联。例如,网站104-1中发布者希望跟踪针对访问者流量的详细统计信息的网页105-1中的每个网页已在其内嵌入了上文描述的跟踪指令112。当在客户端设备108上的浏览器应用中渲染网页105-1之一时,执行跟踪指令112。
[0027]跟踪指令112的执行使得用户设备108能够向分析系统110提供跟踪数据通信。示例跟踪数据通信包括标识跟踪账户的账户标识符、标识网页的访问者的访问者标识符、事件时间以及一个或者多个事件统计信息。账户标识符是网站或者网页的跟踪账户编号。
[0028]在一些实现方式中,访问者标识符可以标识用户设备108的特定用户。在一些实现方式中,为了隐私保护而匿名化访问者信息。例如,跟踪代码可以被配置用于仅报告用户设备108的网际协议(IP)地址,或者可以生成与用户设备108的IP地址或者与用户的标识符关联的唯一随机数。因此,针对特定用户设备的跟踪数据未以其他方式与特定用户相关联或者未能够标识特定用户。其他匿名化过程,诸如哈希化、加密和混乱技术,也可以用来确保访问者隐私受保护。
[0029]在一些实现方式中,事件时间是指示向分析系统110发送跟踪数据通信的时间的时间戳。例如,可以每当有用户设备108生成的页面请求时发送跟踪数据通信。因而,事件时间将是在用户设备108处生成页面请求的时间。
[0030]可以报告许多不同的事件统计信息。例如网页可以包括指定将在跟踪数据通信中报告哪些事件的数据。报告的示例事件统计信息可以包括标识引荐者站点的引荐者数据、访问者第一次访问网站、访问者已经访问网站的次数和在站点进行的动作(例如在网页105-1中点击的链接、鼠标悬停事件等)、标识访问者来自的广告活动的活动数据、通知访问者注册的注册事件、访问者对网站链接的选择、访问者下载可下载内容、访问者的网站活动之间的时间、访问者在网站上的总时间、访问者进入安全会话以及其他事件统计信息。上文列举的示例事件统计信息仅为示例,并且可以提供更多或者更少事件统计信息。
[0031]在用于网站104的跟踪cookie中存储与访问者有关的历史数据。例如,当在用户设备108-1上加载网页105-1之一时,在用户设备108-1上的浏览器高速缓存中存储用于网站104-1的一个或者多个跟踪cookie 107-1。跟踪指令然后在用户设备108-1上的一个或者多个跟踪cookie 107-1中存储用于网站104的该访问者的历史数据。因而可以向分析系统110准确地报告事件的状态,诸如用户设备108-1访问网站104-1的访问次数和第一次访问。
[0032]因而,报告跟踪数据的跟踪数据通信的大小依赖于所报告的事件。在一些实现方式中,跟踪数据的大小以及客户端设备108上的浏览器应用的能力可以确定用来报告事件数据的消息类型和过程。
[0033]在日志120中存储由分析系统110接收的跟踪数据通信。在一些实现方式中,系统Iio访问日志120并且根据日志120中存储的跟踪数据通信中的账户标识符和访问者标识符来标识账户标识符和访问者标识符对。随后,针对每个标识的账户和访问者标识符对,系统110按照事件统计信息在跟踪数据通信中的对应事件时间对事件统计信息进行排序。使用这些针对每个账户和访问者标识符对排序的事件统计信息,系统100确定用于每个账户和访问者标识符对的会话并且将信息存储在会话数据存储库122中。在一些实现方式中,可以针对每个账户和访问者标识符来聚合事件统计信息。在统计信息数据存储库124中存储所聚合的事件统计信息以供账户用户访问。在统计信息存储库124中存储的事件通常在会话/访问报告中呈现。这种报告对网站是有用的,因为它们能够让发布者深入了解其站点的访问者数目、回归访问者的忠诚度、访问持续时间、访问者在访问期间执行的动作、广告活动驱动的到其站点的流量、产生到其站点的大量弓I荐的其他站点、以及其他有用的分析。
[0034]图2是用于报告事件数据的示例过程200的流程图。过程200可以由客户端设备108执行。
[0035]过程200生成事件数据(202)。例如,执行跟踪指令的客户端设备生成如上文描述的事件数据。事件数据详述用于由发布者服务器供应的并且在客户端设备108上渲染的网页的一个或者多个事件,并且该一个或多个事件是相对于客户端设备108而测量的。
[0036]过程200确定事件数据是否超过尺寸阈值(204)。例如在一些实现方式中,跟踪指令112使得客户端设备108确定事件数据是否超过尺寸阈值,例如2048字节,或者具有编码的事件数据的HTTP GET请求是否超过2048字节。
[0037]如果事件数据未超过阈值,则过程200使用HTTP GET请求来报告事件数据(206)。例如,跟踪数据112使得客户端设备生成去往分析服务器110的、包括事件数据的HTTP GET请求。举例而言,跟踪指令112可以生成通过向页面中插入单像素图像来发送HTTP GET请求的“gif hit”。用于该HTTP GET请求的事件数据被URL编码并且作为查询串附加到图像URL。在图1中示出包括编码的事件数据TD-1的示例HTTP GET。
[0038]如果过程确定事件数据超过尺寸阈值,则过程200确定浏览器是否支持跨来源资源共享(CORS) (208)。例如,指令112使得客户端设备108确定客户端设备108上的浏览器实例B是否支持C0RS。这可以例如通过询问浏览器类型和版本、通过检查XMLHttpRequest对象上的withCredentials属性的存在或者XDomainRequest对象的存在或者通过其他过程来完成。
[0039]响应于确定客户端支持跨来源资源共享,过程200使用与CORS兼容的HTTP POST请求来报告事件数据(210)。例如,指令使得客户端108生成去往分析服务器110的HTTPPOST请求。HTTP POST包括事件数据并且是与CORS兼容的消息,诸如与CORS兼容的跨域AJAX HTTP POST请求。在图1中示出与CORS兼容的并且包括编码的事件数据TD-2的示例HTTP POST。
[0040]响应于确定客户端不支持跨来源资源共享,过程200使用从属于分析服务器的域的环境发送的HTTP POST请求来报告事件数据(212)。例如,指令112使得客户端设备108生成去往分析服务器的HTTP POST,该HTTP POST包括事件数据并且是从客户端设备108上的属于第二域的环境(例如用于设备108-2的浏览器实例B)发送的。
[0041]如果环境具有用于特定域的监管权限,则环境属于该特定域。此外,同域环境可以有计划地通信,但是这种通信通常不容易在跨域环境之间促成。由于在与分析服务器110相同的域中的环境不属于发布者的域,所以发布者过程不具有针对这些环境的监管权限。因此,发布者105的过程不能变更内容项环境的内部状态。这实现了如下安全措施,其使得发布者或者居间第三方更难以在这些环境内实施滥用过程(例如垃圾信息、虚假印象报告)O
[0042]在一些实现方式中,指令112生成环境B’。该环境可以例如是不可见iFrame (内联框架),并且iFrame的名称包含将要向分析服务器110发送的事件数据。iFrame的名称属性可以用来指定事件信息。例如,可以通过在网页中定义新分节并且向该新分节中插入iFrame来将iFrame附加到网页上。
[0043]iFrame请求来自服务器110的环境指令(例如图1中的指令114)并且在接收指令时加载它们。指令114使得客户端设备108在iFrame内执行如下过程,该过程读取iFrame名称并且将名称复制到去往分析服务器110的HTTP POST请求(例如AJAX POST)中。
[0044]在一些实现方式中,可以省略事件数据是否超过尺寸阈值的初始确定,因为可以通过使用HTTP get消息来报告事件数据。这些实现方式使用HTTP post消息并且确定浏览器支持哪个HTTP post过程。针对这些备选实现方式,过程200确定浏览器是否支持CORS (208)。
[0045]结合图3更具体地描述从属于分析服务器的域的环境发送HTTP post请求,图3是用于从与为其报告事件数据的网页分离的环境来报告事件数据的示例过程300的流程图。
[0046]过程300生成用于发送HTTP POST的环境(302)。例如,指令112生成iFrame。
[0047]过程300利用从事件数据中导出的名称值对该环境命名(304)。例如,指令112利用事件数据或者从事件数据导出的值对iFrame命名。
[0048]过程300请求和接收来自分析服务器的环境指令(306)。例如,iFrame请求和接收来自服务器110的指令114,该指令继而被加载到iFrame中。
[0049]过程300生成包括事件数据的HTTP POST请求(308)。例如,在服务器110的域的监管控制之下执行的指令114读取iFrame的名称并且使用HTTP POST请求向服务器110
提供事件数据。
[0050]过程300将该环境的域从分析服务器的域改变成发布者服务器的域(310)。域的改变允许属于在客户端设备上渲染的网页的域的过程关闭(删除)该iFrame,并且还发信号通知该过程关闭(删除)iFrame。例如,指令114可以使得客户端设备108将iFrame的域从分析服务器110的域改变成发布者108的域。iFrame的域向发布者108的域的改变被属于在客户端设备上渲染的网页的域的过程检测到,并且使得该过程关闭(删除)该iFrame。
[0051]在其他实现方式中,属于在客户端设备上渲染的网页的域的过程可以监视超时,并且在超时结束时可以检查iFrame的标题。指令114将iFrame的名称值改变成发布者的域的统一资源定位符,或者备选地,将iFrame的名称改变成预定义值、例如“完成”,并且将iFrame的位置改变成发布者108的域的页面,因此指令112可以读取“完成”标题。例如,假如发布者托管发布者108的favicon, ico或者blank, html这些元素,贝U可以将iFrame改变成这些元素。如果将iFrame的名称改变成预定标题,则过程关闭(删除)iFrame。
[0052]图4是用于在报告事件数据之后删除环境的示例过程的流程图400。过程400监视环境中的域的改变(402)。例如,指令112可以包括在超时(例如100毫秒或者某一其他超时)之后执行的回调功能。在执行回调时,指令112使得客户端设备108检查iFrame的域是否与发布者的网页的域相同。
[0053]响应于环境的域改变成发布者的域,过程400删除iFrame (404)。例如,如果域相同,则客户端设备可以删除iFrame。[0054]如上文描述的那样,事件数据的大小可以根据出现的事件而变化。在一些实现方式中,在发送事件数据之前,指令112使得客户端设备确定事件数据的大小是否超过最大尺寸。最大尺寸是服务器110将通过HTTP POST接受的事件数据的尺寸上限。如果事件数据超过最大尺寸,则客户端设备不报告事件数据。在这一实现方式的变体中,指令112使得客户端设备向服务器110发送错误消息。错误消息指示由于过量尺寸而放弃报告事件数据。在这一实现方式的更多其他变体中,指令112使得客户端设备将事件数据截短至最大尺寸并且通过适当的POST方法发送事件数据。
[0055]在更多其他实现方式中,如果事件数据超过最大尺寸,则客户端设备如指令114所指示的那样提供两个或者更多HTTP post,并且系统110在接收这两个或者更多HTTPpost时合并报告的事件数据。
[0056]虽然上文在网站分析的背景中描述上述示例,但是上文描述的数据递送过程可以用来提供用于许多不同应用的许多不同类型的数据。例如取代事件数据,传输的数据可以是用于如下网页的任何传输数据,该网页由属于第一域的第一服务器供应并且在客户端设备上被渲染。取代分析服务器,向其发送传输数据的服务器是属于第二域的接收服务器。
[0057]在本说明书中描述的主题内容和操作的实施例可以在数字电子电路中实现,或者在计算机软件、固件或者硬件中实现,包括在本说明书中公开的结构及其结构等效物,或者在它们中的一项或者多项的组合中实现。在本说明书中描述的主题内容的实施例可以实施为在计算机存储介质上编码的用于由数据处理装置执行或者用来控制数据处理装置的操作的一个或者多个计算机程序,即一个或者多个计算机程序指令模块。备选地或者附加地,程序指令可以被编码于人为生成的传播信号、例如机器生成的电、光学、电磁信号上,该传播信号被生成用于对信息进行编码用于向适当接收器装置传输以供数据处理装置执行。计算机存储介质可以是或者被包含于机器可读存储设备、机器可读存储衬底、随机或者串行存取存储器阵列或者设备或者它们中的一项或者多项的组合。另外,尽管计算机存储介质不是传播信号,但是计算机存储介质可以是在人为生成的传播信号中编码的计算机程序指令的源或者目的地。计算机存储介质也可以是一个或者多个单独物理部件或者介质(例如多个CD、盘或者其他存储设备)或者被包含于一个或者多个单独物理部件或者介质中。
[0058]在本说明书中描述的操作可以实施为由数据处理装置对一个或者多个计算机可读存储设备上存储的数据或者从其他来源接收的数据进行的操作。
[0059]术语“数据处理装置”涵盖所有种类的用于处理数据的装置、设备和机器,举例而言包括可编程处理器、计算机、片上系统或者前述各项的多个或者组合。该装置可以包括专用逻辑电路、例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。除了硬件之外,该装置也可以包括为讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、交叉平台运行时环境、虚拟机或者它们中的一项或者多项的组合的代码。装置和执行环境可以实现各种不同计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。
[0060]计算机程序(也称为程序、软件、软件应用、脚本或者代码)可以用包括编译或者解译语言、说明或者过程语言的任何形式的编程语言进行编写,并且其可以采用任何形式来部署、包括部署为独立程序或者部署为适合于在计算环境中使用的模块、部件、子例程、对象或者其他单元。计算机程序可以、但是不是必须对应于文件系统中的文件。程序可以被存储于保持其他程序或者数据的文件(例如存储于标记语言文档中的一个或者多个脚本)的一部分中、专用于讨论的程序的单个文件中或者多个协同文件(例如存储一个或者多个模块、子程序或者代码部分的文件)中。计算机程序可以被部署用于在一个计算机上或者在位于一个地点或者分布于多个地点并且被通信网络互连的多个计算机上执行。
[0061]在本说明书中描述的过程和逻辑流程可以被一个或者多个可编程处理器执行,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过对输入数据进行操作并且生成输出来执行动作。过程和逻辑流程也可以被专用逻辑电路、例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)执行并且装置也可以实施为专用逻辑电路。
[0062]举例而言,适合于执行计算机程序的处理器包括通用和专用微处理器以及任何种类的数字计算机的任何一个或者多个处理器。一般而言,处理器将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的基本单元是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或者多个存储器设备。一般而言,计算机也将包括用于存储数据的一个或者多个海量存储设备,例如磁盘、光磁盘或者光盘,或者被操作地耦合用于从该一个或者多个海量存储设备接收数据或者向该一个或者多个海量存储设备发送数据或者二者。然而计算机不是必须具有这样的设备。另外,计算机可以嵌入于另一设备中,聊举数例,例如移动电话、个人数字助理(PDA)、移动音频或者视频播放器、游戏控制台、全球定位系统(GPS)接收器或者便携存储设备(例如通用串行总线(USB)快闪驱动)。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,举例而言包括半导体存储器设备、例如EPROM、EEPROM和闪存设备;磁盘、例如内部硬盘或者可拆卸盘;光磁盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或者并入于专用逻辑电路中。
[0063]为了提供与用户的交互,在本说明书中描述的主题内容的实施例可以被实施于计算机上,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)或者IXD(液晶显示器)监视器,以及用户可以用来向计算机提供输入的键盘和指示设备,例如鼠标或者跟踪球。其他种类的设备也可以用来提供与用户的交互;例如向用户提供的反馈可以是任何形式的感官反馈、例如视觉反馈、听觉反馈或者触觉反馈;并且来自用户的输入可以以包括声音、话音或者触觉输入的任何形式接收。此外,计算机可以通过向用户使用的设备发送文档和从该设备接收文档来与用户交互,例如通过响应于从用户的客户端设备上的web浏览器接收的请求向web浏览器发送网页。
[0064]在本说明书中描述的主题内容的实施例可以被实施于计算系统中,该计算系统包括例如作为数据服务器的后端部件或者包括中间件部件、例如应用服务器或者包括前端部件、例如具有图形用户接口或者Web浏览器的客户端计算机,用户可以通过该图形用户接口或者Web浏览器与本说明书中描述的主题内容的实现方式交互,或者一个或者多个这样的后端部件、中间件或者前端部件的任何组合。系统的部件可以被任何数字数据通信形式或者介质、例如通信网络互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网(例如因特网)和对等网络(例如自组织对等网络)。
[0065]计算系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。客户端和服务器的关系借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器向客户端设备传输数据(例如HTML页面)(例如用于向与客户端设备交互的用户显示数据和从该用户接收用户输入)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如用户交互的结果)。
[0066]在图5中示出一个这种类型的计算机的示例,该图示出可编程处理系统(系统)的框图。系统500可以用来实施这里描述的系统和方法。系统500的架构可以例如用来实施计算机客户端、计算机服务器或者一些其他计算机设备。
[0067]系统500包括处理器510、存储器520、存储设备530和输入/输出设备540。可以例如使用系统总线550来互连部件510、520、530和540中的每个部件。处理器510能够处理用于在系统500内执行的指令。在一个实现方式中,处理器510是单线程处理器。在另一实现方式中,处理器510是多线程处理器。处理器510能够处理存储器520中或者存储设备530上存储的指令。
[0068]存储器520存储系统500内的信息。在一个实现方式中,存储器520是计算机可读介质。在一个实现方式中,存储器520是易失性存储器单元。在另一实现方式中,存储器520为非易失性存储器单元。
[0069]存储设备530能够提供用于系统500的海量存储装置。在一个实现方式中,存储设备530是计算机可读介质。在各种不同实现方式中,存储设备530可以例如包括硬盘设备、光盘设备或者一些其他大容量存储设备。
[0070]输入/输出设备540提供用于系统500的输入/输出操作。在一个实现方式中,输入/输出设备540可以包括网络接口设备,例如以太网卡;串行通信设备,例如RS-232端口 ;和/或无线接口设备,例如802.11卡中的一项或者多项。在另一实现方式中,输入/输出设备可以包括被配置用于接收输入数据并且向其他输入/输出设备,例如键盘、打印机和显示设备560输出数据的驱动器设备。
[0071]尽管本说明书包含许多具体实现方式细节,但是不应解释这些为对任何发明的范围或者可能要求保护的内容的范围的限制,而是应当解释为对特定于具体发明的具体实施例的特征的描述。在本说明书中在单独实施例的背景中描述的某些特征也可以在单个实施例中被组合实施。反言之,在单个实施例的背景中描述的各种特征也可以在多个实施例中单独或者在任何适当子组合中被实施。另外,虽然上文可以描述特征为在某些组合中动作并且甚至起初这样要求保护,但是来自要求保护的组合的一个或者多个特征在一些情况下可以从该组合中被删除,并且要求保护的组合可以涉及子组合或者子组合的变体。
[0072]类似地,尽管在附图中以特定顺序描绘操作,但是这不应理解为要求以所示特定顺序或者以依次顺序进行这样的操作或者进行所有所示操作以实现希望的结果。在某些境况中,多任务和并行处理可以是有利的。另外,在上文描述的实施例中的各种系统部件的分离不应理解为在所有实施例中要求这样的分离,并且应当理解描述的程序部件和系统一般可以一起集成于单个软件产品中或者封装成多个软件产品。
[0073]已经这样描述主题内容的具体实施例。其他实施例在所附权利要求的范围内。在一些情况下,在权利要求中记载的动作可以按不同顺序来进行并且仍然实现希望的结果。此外,在附图中描绘的过程未必需要所示具体顺序或者依次顺序以实现希望的结果。在某些实现方式中,多任务和并行处理可以是有利的。
【权利要求】
1.一种编码有跟踪指令的计算机存储介质,所述跟踪指令在由客户端设备执行时使所述客户端设备执行操作,所述操作包括: 生成事件数据,所述事件数据详述用于由发布者服务器供应的并且在所述客户端设备上渲染的网页的一个或者多个事件,所述网页和所述发布者服务器属于第一域,并且所述一个或者多个事件相对于所述客户端设备来测量; 确定所述事件数据是否超过尺寸阈值; 响应于确定所述事件数据未超过所述尺寸阈值,生成去往分析服务器的HTTP GET请求,所述分析服务器属于与所述第一域不同的第二域,所述HTTP GET请求包括所述事件数据; 响应于确定所述事件数据超过所述尺寸阈值,确定所述客户端是否支持跨来源资源共 响应于确定所述客户端支持跨来源资源共享,生成去往所述分析服务器的第一 HTTPPOST请求,所述第一 HTTP POST包括所述事件数据并且是与跨来源资源共享兼容的消息;以及 响应于确定所述客户端不支持跨来源资源共享,生成去往所述分析服务器的第二 HTTPPOST,所述第二 HTTP POST请求包括所述事件数据并且是从所述客户端设备上的属于所述第二域的环境发送的。
2.根据权利要求1所述的计算机存储介质,其中生成去往所述分析服务器的所述第一HTTP POST请求包括生成跨域AJAX HTTP POST请求,所述跨域AJAX HTTP POST请求是与跨来源资源共享兼容的消息。
3.根据权利要求1所述的计算机存储介质,其中生成去往所述分析服务器的所述第二HTTP POST 包括: 生成具有从所述事件数据导出的名称值的所述环境; 从所述环境请求来自所述分析服务器的环境指令; 接收所述环境指令并且在所述环境中执行所述环境指令,所述第二指令使所述客户端设备生成去往所述分析服务器的所述第二 HTTP POST。
4.根据权利要求3所述的计算机存储介质,其中所述环境是iFrame。
5.根据权利要求3所述的计算机存储介质,其中: 所述环境指令还使所述客户端设备执行操作,所述操作包括将所述环境的所述域从所述分析服务器的所述第二域改变成所述发布者的所述第一域;并且 所述跟踪指令还使所述客户端设备执行操作,所述操作包括响应于所述环境的所述域的所述改变来删除所述环境。
6.根据权利要求5所述的计算机存储介质,其中将所述环境的所述域从所述分析服务器的所述域改变成所述发布者的所述域包括将所述环境的所述名称值赋值成所述第一域的统一资源定位符。
7.一种编码有跟踪指令的计算机存储介质,所述跟踪指令在由客户端设备执行时使所述客户端设备执行操作,所述操作包括: 生成事件数据,所述事件数据详述用于由发布者服务器供应的并且在所述客户端设备上渲染的网页的一个或者多个事件,所述网页和所述发布者服务器属于第一域,并且所述一个或者多个事件相对于所述客户端设备来测量; 确定所述客户端设备是否支持跨来源资源共享; 响应于确定所述客户端设备不支持跨来源资源共享: 定义用于所述网页的iFrame,所述iFrame属于分析服务器的第二域,并且所述iFrame具有从所述事件数据导出的名称值; 从所述iFrame发出针对来自所述分析服务器的环境指令的请求; 接收来自所述分析服务器的所述环境指令并且在所述iFrame中执行所述环境指令,所述环境指令使所述客户端设备: 根据所述iFrame的名称值生成去往所述分析服务器的第一 HTTP POST请求,所述第一HTTP POST请求包括所述事件数据;以及 将所述iFrame的所述域从所述第二域改变成所述第一域。
8.根据权利要求7所述的计算机存储介质,其中将所述iFrame的所述域从所述第二域改变成所述第一域包括将所述环境的所述名称值改变成所述第一域的统一资源定位符。
9.根据权利要求8所述的计算机存储介质,其中所述跟踪指令还使所述客户端设备执行操作,所述操作包括: 确定所述iFrame的名称值 是否包括所述第一域的所述统一资源定位符;以及响应于确定所述iFrame的名称值包括所述第一域的所述统一资源定位符,删除所述iFrame。
10.根据权利要求7所述的计算机存储介质,其中所述跟踪指令还使所述客户端设备执行操作,所述操作包括: 响应于确定所述客户端设备支持跨来源资源共享,生成去往所述分析服务器的第二HTTP POST请求,所述第二HTTP POST请求包括所述事件数据并且是与跨来源资源共享兼容的消息。
11.一种由客户端设备执行的计算机实施的方法,所述方法包括: 生成事件数据,所述事件数据详述用于由发布者服务器供应的并且在所述客户端设备上渲染的网页的一个或者多个事件,所述网页和所述发布者服务器属于第一域,并且所述一个或者多个事件相对于所述客户端设备来测量; 确定所述事件数据是否超过尺寸阈值; 响应于确定所述事件数据未超过所述尺寸阈值,生成去往分析服务器的HTTP GET请求,所述分析服务器属于与所述第一域不同的第二域,所述HTTP GET请求包括所述事件数据; 响应于确定所述事件数据超过所述尺寸阈值,确定所述客户端是否支持跨来源资源共 响应于确定所述客户端支持跨来源资源共享,生成去往所述分析服务器的第一 HTTPPOST请求,所述第一 HTTP POST请求包括所述事件数据并且是与跨来源资源共享兼容的消息;以及 响应于确定所述客户端不支持跨来源资源共享,生成去往所述分析服务器的第二 HTTPPOST,所述第二 HTTP POST包括所述事件数据并且是从所述客户端设备上的属于所述第二域的环境发送的。
12.根据权利要求11所述的计算机实施的方法,其中生成去往所述分析服务器的所述第一 HTTP POST请求包括生成跨域AJAX HTTP POST请求,所述跨域AJAX HTTP POST请求是与跨来源资源共享兼容的消息。
13.根据权利要求11所述的方法,其中所述环境是iFrame,并且生成去往所述分析服务器的所述第二 HTTP POST包括: 生成具有从所述事件数据导出的名称值的所述环境; 将所述环境的所述域从所述分析服务器的所述第二域改变成所述发布者的所述第一域;以及 响应于所述环境的所述域的所述改变来删除所述环境; 其中将所述环境的所述域从所述分析服务器的所述域改变成所述发布者的所述域包括将所述环境的所述名称值赋值成所述第一域的统一资源定位符。
14.一种由客户端设备执行的计算机实施的方法,所述方法包括: 生成事件数据,所述事件数据详述用于由发布者服务器供应的并且在所述客户端设备上渲染的网页的一个或者多个事件,所述网页和所述发布者服务器属于第一域,并且所述一个或者多个事件相 对于所述客户端设备来测量; 确定所述客户端设备是否支持跨来源资源共享; 响应于确定所述客户端设备不支持跨来源资源共享: 定义用于所述网页的iFrame,所述iFrame属于分析服务器的第二域,并且所述iFrame具有从所述事件数据导出的名称值; 从所述iFrame发出针对来自所述分析服务器的环境指令的请求; 接收来自所述分析服务器的所述环境指令并且在所述iFrame中执行所述环境指令,所述环境指令使所述客户端设备: 根据所述iFrame的名称值生成去往所述分析服务器的第一 HTTP POST请求,所述第一HTTP POST请求包括所述事件数据;以及 将所述iFrame的所述域从所述第二域改变成所述第一域。
15.根据权利要求14所述的方法,其中将所述iFrame的所述域从所述第二域改变成所述第一域包括将所述环境的所述名称值改变成所述第一域的统一资源定位符。
16.根据权利要求14所述的方法,还包括: 确定所述iFrame的名称值包括所述第一域的所述统一资源定位符并且作为响应来删除所述iFrame。
17.根据权利要求14所述的方法,还包括: 响应于确定所述客户端设备支持跨来源资源共享,生成去往所述分析服务器的第二HTTP POST请求,所述第二HTTP POST请求包括所述事件数据并且是与跨来源资源共享兼容的消息。
18.—种系统,包括: 处理子系统;以及 存储指令的存储器子系统,所述指令在由所述处理子系统执行时使所述处理子系统执行操作,所述操作包括: 生成事件数据,所述事件数据详述用于由发布者服务器供应的并且在所述客户端设备上渲染的网页的一个或者多个事件,所述网页和所述发布者服务器属于第一域,并且所述一个或者多个事件相对于所述客户端设备来测量; 确定所述客户端设备是否支持跨来源资源共享; 响应于确定所述客户端设备不支持跨来源资源共享: 定义用于所述网页的iFrame,所述iFrame属于分析服务器的第二域,并且所述iFrame具有从所述事件数据导出的名称值; 从所述iFrame发出针对来自所述分析服务器的环境指令的请求; 接收来自所述分析服务器的所述环境指令并且在所述iFrame中执行所述环境指令,所述环境指令使所述客户端设备: 根据所述iFrame的名称值生成去往所述分析服务器的第一 HTTP POST请求,所述第一HTTP POST请求包括所述事件数据;以及 将所述iFrame的所述域从所述第二域改变成所述第一域。
19.一种编码有数据递送指令的计算机存储介质,所述数据递送指令在由客户端设备执行时使所述客户端设备执行操作,所述操作包括: 生成用于由第一服务器供应的并且在所述客户端设备上渲染的网页的传输数据,所述网页和所述第一服务器属于第一域; 确定所述客户端设备是否支持跨来源资源共享;` 响应于确定所述客户端设备不支持跨来源资源共享: 定义用于所述网页的iFrame,所述iFrame属于接收服务器的第二域,并且所述iFrame具有从所述传输数据导出的名称值; 从所述iFrame发出针对来自所述接收服务器的iFrame指令的请求; 接收来自所述接收服务器的所述iFrame指令并且在所述iFrame中执行所述iFrame指令,所述iFrame指令使所述客户端设备: 根据所述iFrame的名称值生成去往所述接收服务器的第一 HTTP POST请求,所述第一HTTP POST请求包括所述传输数据;以及 将所述iFrame的所述域从所述第二域改变成所述第一域。
【文档编号】G06F15/16GK103443781SQ201180061249
【公开日】2013年12月11日 申请日期:2011年11月1日 优先权日:2010年11月3日
【发明者】J·萨维奇, B·N·库恩, J·L·沃吉利斯 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1