专利名称:跟踪相同浏览器选项卡内的导航流的制作方法
跟踪相同浏览器选项卡内的导航流
背景技术:
许多网络浏览器允许用户使多个页面在不同选项卡下同时打开。浏览器中的不同选项卡通常共用相同浏览器会话和多个会话cookie。因为所有选项卡共用相同浏览器会话,所以当用户打开新选项卡中的页面时,已经通过用于该用户的服务器便捷地登入了新页面。然而,在跟踪各浏览器选项卡内出现的导航流的情况下选项卡式浏览设计的本性产生了复杂性。具体地,相同浏览器中的多个选项卡通常共用浏览器会话,所以当生成和向服务器发送请求时,不存在请求所起源的选项卡的指示。在许多情况下跟踪特定域或网站内用户的导航会是有用的。这会对帮助域或网站所有者理解用户如何与他们 的站点交互是有用的。例如,理解用户的导航行为可以帮助促进与特定站点相关联的销售或宣传决策。通常,可以对于针对特定浏览器会话的用户行为记录和关联导航数据。然而,如以上所注意到的,当用户使多个选项卡在浏览器中打开时,因为选项卡共用相同浏览器会话和多个会话cookie,所以无法执行跟踪针对单个选项卡的导航流。
发明内容
提供此发明内容以介绍下面在具体实施方式
中进一步描述的简化形式的构思的选择。此发明内容并非意在识别要求保护主题的关键特征或必要特征,它也并非意在用来限制要求保护主题的范围。各种实施例使得单个选项卡内出现的导航流能够被跟踪。客户端侧和服务器侧软件协同工作以运用用来跟踪特定选项卡内导航的标识符。在至少一些实施例中,客户端可以请求来自选项卡内的网页,响应于该请求,服务器可以创建标识符和使标识符与该网页相关联。可以随后向客户端返回网页和标识符。来自选项卡内的后续网页请求包括标识符以使得服务器获知请求来自相同选项卡。如果用户打开新选项卡和请求网页,则客户端侧浏览器将不包括与其它选项卡相关联的标识符。而是,在网页请求中将不包括标识符,作为响应,服务器将发出新标识符以使得与新选项卡相关联的导航行为也可以被跟踪。
整个图中使用相同编号来引用相似特征。图I示例了按照一个或更多个实施例可以采用本文中描述的各种原理的操作环境。图2是描述按照一个或更多个实施例的方法的步骤的流程图。图3是按照一个或更多个实施例的数据流的图解表示。图4是描述按照一个或更多个实施例的方法的步骤的流程图。图5是描述按照一个或更多个实施例的方法的步骤的流程图。图6示例了可以用来实施一个或更多个实施例的实例系统。
具体实施例方式概沭
各种实施例使得单个选项卡内出现的导航流能够被跟踪。客户端侧和服务器侧软件协同工作以运用用来跟踪特定选项卡内导航的标识符。在至少一些实施例中,客户端可以请求来自选项卡内的网页,响应于该请求,服务器可以创建标识符和使标识符与网页相关联。可以随后向客户端返回网页和标识符。来自选项卡内的后续网页请求包括标识符以使得服务器获知请求来自同一选项卡。如果用户打开新选项卡和请求网页,则客户端侧浏览器将不包括与其它选项卡相关联的标识符。而是,在网页请求中将不包括标识符,作为响应,服务器将发出新标识符以使得与新选项卡相关联的导航行为也可以被跟踪。在后续的讨论中,提供题为“操作环境”的章节并描述可以采用一个或更多个实施 例的环境。此后,题为“跟踪导航流”的章节描述按照一个或更多个实施例针对单个选项卡可以如何跟踪导航流。接下来,题为“实施实例”的章节描述按照一个或更多个实施例的实例实施。最后,题为“实例系统”的章节描述可以运用以实施一个或更多个实施例的实例系统。操作环塏
图I总体上以100示例了按照一个或更多个实施例的操作环境。环境100包括具有一个或更多个处理器104的运算装置102、一个或更多个计算机可读存储介质106和处于计算机可读存储介质上并通过处理器可执行的一个或更多个应用108。计算机可读存储介质可以通过实例和非限制的方式包括通常与运算装置相关联的所有形式的易失性和非易失性存储器和/或存储介质。这种介质可以包括ROM、RAM、闪存、硬盘、可移除介质等。下面在图6中示出和描述运算装置的一个具体实例。另外,运算装置102包括网络浏览器110形式的软件应用。可以使用任何合适的网络浏览器,其实例可从此文献和其它的受让人获得。另外,计算机可读存储介质106可以包括如上和下所述来操作的导航跟踪模块111。导航跟踪模块111可以作为可被浏览器110运用的独立组件来实施。替选地或额外地,可以如此处所示例的,导航跟踪模块111可作为浏览器110的一部分来实施。另外,环境100包括网络112 (如,互联网)和可以接收和发送内容的一个或更多个服务器114。服务器114包括一个或更多个处理器116、一个或更多个计算机可读存储介质118以及处于计算机可读存储介质上且通过处理器可执行的一个或更多个应用120。计算机可读存储介质可以通过实例和非限制的方式包括通常与运算装置相关联的所有形式的易失性和非易失性存储器和/或存储介质。这种介质可以包括ROM、RAM、闪存、硬盘、可移除介质等。下面在图6中示出和描述可以实施服务器的运算装置的一个具体实例。另外,服务器114包括如上和下所述来操作的导航跟踪模块122。导航跟踪模块122可以作为独立组件或与其它应用整合的组件来实施。在操作中,浏览器110可以请求来自选项卡内的网页,响应于该请求,服务器114可以经由导航跟踪模块122创建标识符,以及使标识符与网页相关联。可以随后向客户端或浏览器110返回网页和标识符。来自选项卡内的后续网页请求包括标识符以使得服务器获知请求来自相同选项卡。如果用户打开新选项卡并请求网页,则浏览器110将不包括与其它选项卡相关联的标识符。而是,在网页请求中将不包括标识符,作为响应,服务器114将会发出新标识符以使得与新选项卡相关联的导航行为也可以被跟踪。通过实例和非限制的方式,运算装置102可以实施为诸如桌面计算机、便携式计算机、诸如个人数字助理(PDA)的手持计算机、手机等的任何合适运算装置。描述了实例操作环境,现在考虑按照一个或更多个实施例可以如何跟踪导航流的讨论。跟踪导航流
图2是描述按照一个或更多个实施例的方法中步骤的流程图。可以结合任何合适硬件、软件、固件、或者其组合执行方法。在图2的图中,某些步骤被指定为在“客户端侧”执行,某些步骤被指定为在“服务器侧”执行。在至少一些实施例中,可以通过软件模块(如,分别是导航跟踪模块111、122)来执行描述的步骤。步骤202生成针对来自选项卡内网页的请求。可以通过合适配置的网络浏览器应用执行此步骤。步骤204把针对网页的请求发送给服务器。可以通过在网络(如,互联网)上发送请求执行此步骤。步骤206在服务器处接收针对网页的请求。步骤208根据请求确认标识符是否与请求相关联。标识符可以通过任何合适方式与请求相关联。例如,在至少一些实施例中可以通过形成请求的一部分的查询串包括标识符。替选地,可以通过连同请求一起发送的cookie包括标识符。如果请求不包含标识符,则步骤210生成标识符,步骤212将标识符和网页记入日志文件中。可以使用任何合适类型的标识符。在至少一些实施例中,标识符包括JavaScript变量。另一方面,如果请求的确包含标识符,则方法分支到步骤212并将标识符和网页记入日志文件中。步骤214使标识符与请求的网页相关联。可以通过任何合适方式执行此步骤。例如,可以把该标识符内置在网页中。内置标识符可以可见或可以不可见。在至少一些实施例中,标识符包括JavaScript变量。步骤216随后向请求者返回具有该标识符的网页。步骤218接收具有该标识符的网页。步骤220在来自相同选项卡的后续网页请求中使用该标识符。步骤222在来自其它选项卡的网页请求中不使用该标识符。通过这样做,服务器将能够确定特定请求起源于哪个选项卡,以及所以,将能够跟踪与各选项卡相关联的导航流。如果用户改变选项卡,则该方法将如上所述通过生成新的、不同标识符以及将其与来自新选项卡内的后续请求网页相关联来重复。描述了按每个选项卡粒度的跟踪导航行为的概念,现在考虑提供用以跟踪选项卡相关导航的具体途径的实施实例。实施实例
在大致要描述的实例中,可以在特定域内跟踪与选项卡相关联的导航行为。通常,运用浏览器会话cookie来关联特定站点或域上针对网页的所有请求。在此具体实施实例中,在来自浏览器会话的第一个请求期间运用全局唯一经验ID。经验ID被设置为会话cookie、并在向服务器做出后续请求时读取。另外,此实施实例运用相关联经验ID的上下文内唯一的流ID使得能够按选项卡的粒度跟踪导航。作为此过程的概述,考虑以下内容。可以把单个流看作相同选项卡下查看和通过网页上显示的链接上的“正常”左鼠标点击所连接的特定套件内页面的序列。如果用户离开套件和在相同选项卡下返回,则将会中断旧流,且新流将会在用户返回到选项卡时开始。如果用户在相同选项卡的地址条中正确录入地址,则这种也构建新流。在示例和描述的实施例中,响应于接收来自客户端的网页请求通过服务器传播流ID。可以作为JavaScript变量在网页上打印流ID。客户端侧的具体句柄可以查找某些事件,如,点击链接,以及把流ID传播回到服务器以便处理。例如,如果用户执行将会在相同选项卡中和当前套件内的目的地URL内显示页面的左鼠标点击或任何其它点击,则可以经由查询串参数或cookie把打印在网页上的流ID传播回到服务器。在服务器侧,针对流ID的存在检查网页请求。如果请求中包含了流ID,则服务器通过在日志文件中使当前请求与该流ID相关联而继续使用当前流ID。另外,使流ID与请求的网页相关联并将其返回到客户端。另一方面,如果在请求中不存在流ID,则随机生成新 的流ID并使新流ID与当前请求的网页相关联。另外,把新流ID及其相关联网页记入日志文件中,并向客户端返回具有新流ID的新网页。描述了此实施实例的总体概述,现在考虑首先在服务器侧、以及随后在客户端侧发生的各过程。继此之后是示例了按照一个或更多个实施例可以如何跟踪导航行为的实例。服务器侧过程
在服务器侧,当接收网页请求时,针对经验ID cookie的存在检查请求。如果请求包含经验ID cookie,则相关联经验ID用于会话。如果经验ID cookie未在请求中,则创建新经验ID并将其保存于经验ID cookie。接下来,服务器核对请求中流ID cookie的存在。如果流ID cookie在请求中,则当前流ID变成流ID cookie中描述的无论什么流ID。随后清除cookie。如果流ID cookie未在请求中,选择新的流ID。接下来,服务器向日志文件记入具有当前经验ID和流ID的当前网页请求。额外地,当前流ID作为JavaScript变量被打印在网页上。然后,向客户端随后返回网页。客户端侧过稈
在客户端侧,使用大量不同句柄并将其附加于网页上可出现的各种事件。通过实例和非限制的方式,这些事件包括在点击时、在鼠标向下时、在鼠标向上时、在键向下时、在键向上时、在触摸开始时、以及在触摸结束时。当出现事件时,句柄核对以确认网页上的哪个元素与事件相关联。如果出现了事件的元素是链接元素,则句柄核对目标URL。如果目标URL与关注的域相关联,则句柄核对以确认出现的用户输入的类型,例如,点击。如果用户输入是将会在相同选项卡中打开新网页的类型,则把流ID cookie设置为打印在网页上并在新网页请求中使用的流IDJavaScript变量的值。跟踪导航行为-实例
图3是示例了可以如何按选项卡的粒度跟踪导航行为的实例的图。在此实例中,存在包括第一和第二选项卡的网络浏览器的图解表示。网络浏览器的图解表示内部描绘的行为被认为在网络浏览器中出现。网络浏览器的图解表示的外部描绘的行为被认为在服务器上出现。另外,列举下述行为中的每个,例如,“ 1”、“2”等。这是为了协助读者理解下面紧随的描述。
在项目I处,用户打开浏览器,并在第一选项卡中录入与关注的域相关联的网页(页面A)的地址。随后向服务器发送针对页面A的网页请求。由于这是来自新选项卡的第一个请求,不存在与请求相关联的流ID。在项目2处,在服务器侧,接收网页请求。因为在请求中未发现流ID,所以生成新流ID,例如,“I”。在针对此浏览器会话的日志文件中做出条目,表明出现了针对页面A的请求且流ID是“I”。通过JavaScript变量流ID = I准备页面A并向客户端传送。在项目3处,在原始第一选项卡中通过浏览器再现页面A。现在假定在页面A上用户右击去往页面X的链接并从下拉菜单选择“在新选项卡中打开”。通过句柄中的一个句柄捕获并确认此事件是除了将会导航到目前选项卡内页面以外的点击。由于该原因,所以当把网页请求发送给服务器时,不包括流ID。在项目4处,在服务器侧,接收到针对页面X的网页请求而没有流ID,服务器随机生成新流ID,例如,“2”,并在日志文件中记入关于此请求的条目。日志文件条目关联页面X和流ID = 2。通过JavaScript变量流ID = 2准备页面X并向客户端传输。在项目5处,在客户端侧,网络浏览器在第二选项卡中再现页面X。现在假定在页面X上,用户左击(正常页面导航点击)去往页面Y的链接。因为这是选项卡内的正常页面导航点击,以及因为页面Y在关注的域中,所以在把网页请求发送给服务器之前,通过值“2”写入流ID cookie。在项目6处,服务器接收包括流ID 2的针对页面Y的请求。因为在请求中包含cookie,所以服务器使用针对此请求的流ID 2,擦除流ID cookie,并将针对页面Y的请求与流ID —起记入日志文件中。另外,服务器通过在网页上包括设置为“2”的流ID变量来准备用于向客户端传输的页面Y。在项目7处,通过浏览器在第二选项卡中再现新网页Y。在项目8处,现在假定用户返回到第一选项卡。此处,页面A仍打开。现在假定用户左击去往页面B的链接。捕获和确认此事件是去往位于关注的域中页面的选项卡内的正常导航。相应地,准备请求页面B的网页请求。在网页请求中,把流ID cookie设置为等于“I”。在项目9处,在服务器侧,接收具有流ID “I”的针对页面B的请求。由于流ID在请求中,所以向日志文件写入关联页面B和流ID “ I ”的条目。在项目10处,服务器向客户端返回具有流ID“1”的页面B。现在可以在第一选项卡中再现页面。在此实例中,服务器准备的日志文件将会具有以下形式:
权利要求
1.一种计算机实施的方法,包括 生成来自浏览器选项卡内的网页的请求; 把请求发送给服务器; 响应于发送请求,接收包括标识符的网页; 在来自选项卡内的后续网页请求中使用该标识符;以及 在来自其它选项卡的网页请求中不使用该标识符。
2.如权利要求I所述的方法,其中,所述标识符包括JavaScript变量。
3.如权利要求I所述的方法,其中,所述使用和不使用通过作为浏览器的一部分实施的导航跟踪模块来执行。
4.如权利要求I所述的方法,其中,所述使用该标识符包括通过后续网页请求中的查询串包括该标识符。
5.如权利要求I所述的方法,其中,所述使用该标识符包括通过连同后续网页请求一起发送的cookie包括标识符。
6.如权利要求I所述的方法,其中,所述使用该标识符包括在请求的网页处于关注的域内的情况下使用该标识符。
7.一个或更多个计算机可读介质,用于实施计算机可执行指令,该指令在执行时实施如权利要求I所述的方法。
8.一种计算机实施的方法,包括 在服务器处接收针对网页的请求; 确认与请求浏览器上的个别选项卡相关联的标识符是否与该请求相关联; 响应于该请求不包含标识符,生成新标识符并将新标识符和相关联网页记入日志文件中; 响应于所述请求包含标识符,则将标识符和相关联网页记入日志文件中; 使标识符或新标识符与网页相关联;以及 向接收了请求的客户端返回包括标识符或新标识符的网页。
9.如权利要求8所述的方法,其中,通过确认标识符是否与形成请求一部分的查询串相关联来执行确认。
10.如权利要求8所述的方法,其中,通过确认标识符是否与连同请求一起接收的cookie相关联来执行确认。
11.如权利要求8所述的方法,其中,通过生成JavaScript变量执行生成新标识符。
12.一个或更多个计算机可读介质,用于实施计算机可执行指令,该指令在执行时实施包括如下内容的方法 接收来自客户端的网页请求; 确认与网页请求相关联的经验ID ; 确认流ID是否与网页请求相关联; 如果流ID未与网页请求相关联,则生成网页请求的新的流ID并做出经验ID、请求的网页、以及新的流ID的日志条目; 如果流ID与网页请求相关联,则做出至少请求的网页和流ID的日志条目; 使新的流ID或者流ID与请求的网页相关联;以及把所请求的包括新的流ID或者流ID的网页传输给客户端。
13.如权利要求12所述的一个或更多个计算机可读存储介质,其中,通过将JavaScript变量合并到请求的网页中来执行所述关联新的流ID或者流ID。
14.如权利要求12所述的一个或更多个计算机可读存储介质,其中,通过确认流ID是否与形成网页请求一部分的查询串相关联来执行所述确认流ID是否与网页请求相关联。
15.如权利要求12所述的一个或更多个计算机可读存储介质,其中,通过确认流ID是否与连同网页请求一起接收的cookie相关联来执行所述确认流ID是否与网页请求相关联。
全文摘要
各种实施例使得能够通过使用客户端侧与服务器侧软件之间创建和传递的标识符来跟踪单个选项卡内出现的导航流。客户端侧和服务器侧软件协同工作以运用这些标识符跟踪特定选项卡内的导航。在至少一些实施例中,客户端可以请求来自选项卡内的网页,响应于该请求,服务器可以创建标识符和使标识符与网页相关联。可以随后向客户端返回网页和标识符。来自选项卡内的后续网页请求包括标识符以使得服务器获知请求来自相同选项卡。
文档编号G06F17/00GK102859509SQ201180016243
公开日2013年1月2日 申请日期2011年3月24日 优先权日2010年3月26日
发明者N.加卢什卡, R.D.帕塞尔, A.A.西迪奇, M.维蒂维卢, J.Q.金 申请人:微软公司