独立ActionScript分析工具和技术的制作方法

文档序号:6454620阅读:248来源:国知局
专利名称:独立ActionScript分析工具和技术的制作方法
独立ActionScript分析工具和技术
背景技术
通常通过可商业获得的web分析服务对经由浏览器进行的网站使 用进行有规律地跟踪和分析,所述web分析服务收集与网页使用有关的 详细数据以及某种程度上关于特定网站用户的详细数据。 一个主要的 web分析提供商是本发明的所有人一一犹他州奥勒姆的Omniture公司。 Omniture以其著名的商标SiteCatalystTM提供web分析技术。这里所使用 的所有其它商标均为其各自所有人所拥有。
Flash呈现是使用Macromedia/Adobe软件所创建的交互式动画; FLASH是Adobe系统公司的注册商标。 一 些Flash呈现包括以被称作 ActionScript的计算机编程(脚本)语言所实现的对象。ActionScript语 言的一些特征与其它计算机语言相同,并且尤其与如所知的JavaScript (SunMicroSystems公司的商标)那样的脚本语言相同。然而,不仅是 作为编程语言,而且作为开发环境和执行环境,ActionScript和JavaScript 之间也存在显著的差异。
在历史上,JavaScript代码被嵌入在一些网页中,以通过因特网将 使用和配置数据从客户端web浏览器发送到分析服务器,来帮助对网站 及其网页的使用进行跟踪和分析。Flash呈现中的ActionScript代码与 JavaScript代码一起被用于网页中,以向分析服务器发送Flash呈现使用 数据。ActionScript代码能够使用ActionScript函数getURL()或 FSCommand等与JavaScript进行通信。例如,Flash呈现中的ActionScript 对象可以使用诸如以下的ActionScript调用向JavaScript函数发送数据

getURl("javascript:xyz(mydata),,)
使用getURL()进行Flash跟踪具有一些优点,同时也具有一些缺点。在积极方面,如果某人已经使用了JavaScript代码,则其能够自动调节 (leverage)网页上所设置的变量。可以通过更新JavaScript代码来进行 修改,而无需对Flash呈现进行更新。可以使用现有的ActionScript结合 JavaScript的技术来提供用于Flash呈现分析的Omniture ClickMap (Omniture公司的商标)视觉分析覆盖报告(visual analytics overlay reporting)。如果开发人员理解JavaScript,包括所讨论的特定JavaScript 代码和环境的细微差别的话,则Flash呈现跟踪也相对容易实现。例如, 在Omniture的情况下,这样的细微差别包括理解Flash调用重新执行 JavaScript,以使得再次将所有先前设置的变量发送给分析服务器,除 非其被清除;理解必须对定制链路跟踪配置linkTrackVars和 linkTrackEvents以进行工作;并且理解Omniture当前用于Flash实现的 Cli ckMap 使用JavaS cript来通信并且依赖于用于数据传输的浏览器层 级代码。
在消极方面,与web开发人员通常不同的Flash开发人员必须理解 这样的细微差别。对Flash的测试还需要JavaScript代码处于适当的位置。 此外,Flash仅能够引用网页上触发Flash呈现的JavaScript,这限制了跟 踪和测试。由于调试包含Flash呈现和JavaScript代码两者,所以调试复 杂。从Flash呈现所调用的JavaScript执行会产生动画效果问题,损害用 户体验。同样,JavaScript的onClick()命令在Internet Explorer浏览器中 产生点击声并导致Flash动画效果延迟。而且,Internet Explorer浏览器 限制了可传送数据的数量,在一个版本中,每个getURL()请求仅508个 字符,这限制了多变量跟踪。JavaScript代码经由getURL()被调用,并 且如果对getURLO的后续调用和先前调用在时间上过于接近,则后续调 用可能取消之前的调用。
可能以前已经传送了一些与Flash呈现相关的信息而没有使用 JavaScript代码。Omniture已经为其客户提供了一种分析数据结构,所 述客户能够使用所述分析数据结构来构建静态分析字符串以通过因特 网直接从应用进行发送。已经能够使用ActionScript来发送该静态分析字符串而无需通过JavaScnpt代码。这提供了一些与Flash呈现的使用相 关的有限数据。使用网页中所嵌入的JavaScript代码发送与所述网页相 关的分析数据。然而,分析数据具有相对少的值,除非其与唯一访问 者ID相关联,并且现有方法无法轻易将Flash相关的活动与触发Flash呈 现的网页的访问者ID相匹配。所述方法也是静态的,而不是在用户与 Flash呈现进行交互时提供动态生成的分析信息。
此外,在英国、西班牙和美国设有办公室的Sophus有限公司(网 站为sophus3. com )显然已经开始从ActionScript代码将变量中的Flash播 放器版本信息发送到服务器,而不使用getURL()来调用JavaScript代码。 然而,还不清楚Sophus以不使用JavaScript的方式向分析服务器发送用 户交互数据。此外,Sophus显然没有使用独立于对象的ActionScript跟 踪代码来捕捉关于和Flash对象的用户交互的数据。
在历史上,跟踪诸如在Flash呈现中的按钮或电影剪辑之类的特定 对象涉及为每个被跟踪对象添加特定的跟踪代码。例如,该特定于对 象的代码会调用getURl(),或者会更新定制的特定于对象的跟踪变量, 其稍后被i:送给分析服务器。这种方法的缺点^于如果将另一个对象 加入Flash呈现,则其不会被跟踪,除非添加了进行该操作的特定代码 并然后对Flash呈现进行重构。
虽然通常从网页触发Flash呈现,但是它们也可以在以下任一种或 所有两种意义上单独呈现。首先,即使Flash播放器一般被提供为在浏 览器内部运行的浏览器插件,其也能够在计算机上在web浏览器之外运 行。因此,即使在没有运行浏览器的时候也值得对Flash使用进行跟踪。 第二,能够在没有网络连接,具体地在没有到web的连接的情况下,运 行Flash播放器。CD、 DVD和其它可移动计算机可读存储介质可以由存 储在它们上的Flash呈现(也可能是Flash播放器)进行配置。实际上, Flash播放器可以在不必是通用计算机的移动设备上运行。因此,即使 在没有网络连接并由此没有选择时,至少在通过网络向分析服务器发送所收集的分析数据时,也值得对Flash使用进行跟踪。作为替代,分 析数据可以本地存储,以便在稍后传送给分析服务器或者仅仅用于本 地使用。
简言之,虽然通过调用具有ActionScript getURL()函数的JavaScript
代码来跟踪Flash呈现使用具有一些优点,并且尽管这样做是一种完善 的方法,但是也值得考虑其它方法。 l
与本发明相关的其它概念可通过该背景技术之外的其它来源得知 或变得显而易见,包括但不限于连同本专利申请记录的引用。—

发明内容
本发明提供了用于在诸如Flash和Flex呈现软件(Flash和Flex是 Adobe系统公司的商标)的ActionScript应用中进行独立分析的工具和技 术。 一个实施例提供了能够独立于网页脚本进行操作的呈现分析引擎, 包括数据捕捉代码,其用于捕捉反映呈现中的用户动作的呈现分析 数据;数据结构生成代码,其用于动态生成格式化的呈现分析数据结 构的至少一部分;和数据发送代码,其用于向分析服务器发送所述数
据结构。
所述呈现分析引擎可不依赖于任何getURL()调用来将所捕捉的呈 现分析数据传送给嵌入在网页中的脚本,并且还可以不依赖于嵌入在 网页中的任意呈现分析脚本。其可不依赖于呈现中的任何特定于对象 的用户动作跟踪代码来捕捉ActionScript呈现分析数据。
所述呈现分析引擎还可以包含自动跟踪代码和/或视觉分析覆盖 报告代码。其可使用ActionScript代码来实现。其可以是独立的或者其 与web浏览器、显示在浏览器中的网页以及嵌入在网页中的脚本代码相 结合来捕捉网页分析数据,所述网页分析数据反映在呈现之外在网页 内的用户动作。其可以跟踪诸如用户页面浏览动作、用户链接跟随动作、用户剪辑浏览动作、用户按钮按压动作、用户回放完成百分比和/ 或呈现闪现(impression)计数之类的项目。
一个实施例提供了一种用于独立跟踪ActionScript呈现活动的方 法,包括在设备上接收诸如Flash呈现之类的包含ActionScript对象的 多媒体呈现;捕捉呈现分析数据,该呈现分析数据反映用户与所述多 媒体呈现的ActionScnpt对象的交互;在所述设备动态生成包含呈现分 析数据的数据结构;发送呈现分析数据;自动跟踪用户与所述多媒体 呈现的交互;和/或提供关于用户与所述多媒体呈现的交互的视觉分析
覆盖报告o
所述方法不依赖于getURL()调用、嵌入在网页中的JavaScript代码、 嵌入在网页中的VBScript代码和/或在Flash、 Flex或其它多媒体呈现中
的特定于对象的用户动作跟踪代码而进行操作。例如,所述设备可以 是台式计算机、膝上型计算机、个人数字助理、具有Flash播放器的蜂 窝电话、手持Flash播放器或其他移动设备。
所述方法可进—一步包括在所述设备上接收网页,i^网页具有诸 如脚本或web漏洞(bug)之类的嵌入式web跟踪机制;利用嵌入式web 跟踪机制捕捉web分析数据,该web分析数据反映与所述网页的用户交 互;以及向分析服务器发送web分析数据。向分析服务器发送web分析 数据的步骤可关联于相应的访问者ID来发送它,并且发送呈现分析数 据的步骤可关联于同一访问者ID向分析服务器发送该数据,而无需在 执行web分析步骤的代码和执行呈现分析步骤的代码之间进行握手。例 如,访问者ID可存储在浏览器cookie和/或Flash本地存储的对象(也称 作库存储对象,LSO)中,或者甚至可以(在移动设备的情况下)从数 据传输报头取得所述访问者ID。
这些示例仅仅是说明性的。本发明由权利要求所限定,并且即使 该发明内容部分帮助提供权利要求的基础,但是对该发明内容部分与最终授权的权利要求相冲突的部分,也应以权利要求为准。


为了说明能够获得本发明的优势和特征的方式,参考附图给出本 发明的描述。这些附图仅图示了本发明的所选择方面,因而并没有全 面确定本发明的范围。
图l是图示本发明一些实施例的角色、数据、信息流、系统、方法 和其它方面的框图。
图2是根据本发明的至少一个实施例的使用呈现分析引擎和/或系 统的方法或者由所述呈现分析引擎和/或系统所执行的方法的流程图。
具体实施方式
引言
本发明提供了帮助收集关于用户与Flash呈现、Flex呈现、其它 ActionScript应用和其它多媒体呈现的交互的信息的工具和技术。这里 还讨论了在这些呈现和网页用户交互跟踪工具和技术之间的关联、协 同、通信或所缺少的关联、协同、通信的方面。 _
在这里的讨论以及在附图中通过特定示例对本发明进行说明,但 是应理解,本发明的其它实施例可以脱离这些示例。例如,可以对示 例中的特定特征进行省略、重命名、不同分组、重复、以硬件和/或软 件不同地例示、以不同次序执行或者是在两个或更多示例中所出现的 特征的混合。
术语的定义在本文档全文中明确或隐含地给出。术语在这里无需 具有与其通常所使用的、在特定行业中所使用的或者在特定字典或字
典组中所使用的相同的含义。关于新创术语和其它术语而言,发明人 以其自己编撰的意思宣称并行使其权利。具体地,诸如"自动跟踪"和"自动跟踪代码"之类的术语在这 里具有特定含义。自动跟踪是能够使用无需开发人员在被跟踪呈现中 插入特定于对象的跟踪代码而执行的分析数据收集和利用。 AutoTrackTM是Omniture公司的商标。例如,自动跟踪特征监听Flash文 件内的按钮和电影剪辑动作,并且自动跟踪这些对象的使用,无需特 定于对象的代码,并且进行被跟踪活动的同时报告。例如,可以通过 从ActkmScnpt代码动态生成图像请求并且将所跟踪的数据量度包括在 被发送给分析服务器的请求中来进行对所跟踪的活动的同时报告。因 此,某人能够自动跟踪Flash文件的使用而无需相对于跟踪对各个按钮
或电影剪辑为点击动作进行编码。由于不需要特定于对象的代码,所 以这可以显著减少在Flash应用中实现和测试跟踪量度所需的时间。
另一个为了在这里使用而定义的术语是"视觉分析覆盖报告"。 在常规上下文中的视觉分析覆盖报告(或"VAOR")的示例是Omniture 的ClickMapTM特征。ClickMapTM是Omniture公司的商标。并非由本发明 人所发明的ClickMap 报告以前已经提供了本领域中的Flash分析覆 盖,但是是利用依赖于使用JavaScript代码进行通信以便跟踪活动的技 术来实现的。现在,使用本发明的自有Flash ActionScript跟'踪, ClickMapTM以及其它VAOR活动能够通过自有Flash ActionScript语言自 动跟踪其它分析量度。这可以通过使用监听器代码来实现,所述监听 器代码在用户点击可跟踪按钮或电影剪辑或其它可跟踪对象时动态生 成适当的跟踪代码。
自动跟踪和视觉分析覆盖报告均涉及跟踪用户与ActionScript对象 的交互,并且不需要添加特定于对象的代码来执行。为了实现该对于 特定于对象的跟踪代码的独立性,自动跟踪增加了动态生成图像请求 或来自ActionScript代码的其它通信,以将所跟踪的数据量度同时发送 给分析服务器。对于特定于对象的跟踪代码的独立性,视觉分析覆盖 报告添加对使用所跟踪的数据量度来创建视觉报告的支持,所述视觉 报告覆盖了曾经/正在被跟踪的呈现。在给定情形中可以提供自动跟踪和视觉分析覆盖报告两者,而在另一种情形中仅提供它们中的一个或 都不提供。
"网页脚本",也称作"嵌入式脚本"或"嵌入式web脚本",包 VBScript代码,但并不局限于此。与作为跟踪与用户进行的呈现对象交
互的呈现分析脚本相反,这样的脚本通常跟踪网页使用,并且因此跟
踪web分析脚本。
所嵌入的"web跟踪机制"包括图像请求、web漏洞、JavaScript 调用、HTTPGET或POST调用以及包括在或导入在网页(例如,HTML 或XML文档)中的其它项目,所述项目具有在网络上向服务器或其它 目标传送用户活动跟踪数据以支持web分析的效果。
本文中在一方面的"web分析"和另一方面的"呈现分析"之间进 行了区分。web分析跟踪用户与网页的交互;而呈现分析则跟踪用户与 多媒体呈现的交互。这里所关心的呈现跟踪可以与web分析协同完成, 但是不必在本发明的每个实施例中都如此。 '
"多媒体呈现"包括Flash呈现、Flex呈现、含有ActionScript的其
它呈现以及可与网页分别进行跟踪的其它多媒体呈现或富因特网应用 (Rich Internet Application)。
"方案"是商业产品,其可以实现本发明的各个方面。方案具有 一些特征的事实并不意味着在本发明的每个实施例中必须都存在该特 征,虽然其可能在一些实施例中存在。类似地,"原型"是可实现或 不实现所要求保护的本发明的各方面的部分开发的产品。
这里的涉及计算机和设备102的许多示例可以是计算机或多计算 机系统。但是应理解,本发明可以以其它各种方式和环境来实现。计或其它呈现的设备102;蜂窝电话、移动电 话、诸如以Blackberry商标出售的无线设备、诸如以Palm商标出售的个 人数字助理和/或包括手持设备等的其它设备也可以提供支持跟踪用户 动作的多媒体呈现。同样, 一些示例涉及客户端机器,但是在对等网 络以及客户端-服务器网络中也可以对多媒体呈现进行跟踪、分析等。 也就是说,如果其确实处于网络之中,则设备102可以是客户端-服务器 网络的一部分或者其可以是对等网络中的一端,或者其可以是某个其 它类型的网络中的节点。
当参考可以由Omniture或Omniture客户端所进行的活动时,这些是
可以由本发明的其他授权用户(例如所许可的分析服务提供商和其他 客户)所进行的活动的一般性示例。
体系结构及其它
图1和图2图示了与本发明的至少一些实施例相一致的一些呈现分 析体系结构。设备102向用户104提供了通过用户界面108对所加载202 的呈现106的访问,所述用户界面108利用仅用作显示的屏幕、键盘、 鼠标、轨迹球、触摸屏、触控笔、扬声器、麦克风和/或构成设备102 的一部分或者可操作地连接至设备102的其它外设110。所述呈现可以 从网站下载202或从本地存储加载202。所述呈现存储在某种形式的存 储器U2中,其可以是RAM、 ROM或其它半导体存储器,并且还可以 是诸如CD-R0M或DVD的可移动的计算机可读非易失性存储介质112。 呈现播放器114播放所述呈现,并且通过诸如按钮、滑动条、菜单等的 交互选项向用户104提供控制204。这些交互选项可以对应于对在所述 呈现中的对象116所进行的选择或其它操作。所述呈现通常还包含视频 和/或静止图像、声音文件、文本和类似内容118。其可包含用于导入呈 现分析引擎代码的钩(hook)。
设备102可包括一个或多个处理器120和相关联的电路,用于执行 以软件、固件或其它形式实现的呈现分析方法。可存在诸如操作系统软件、BIOS代码、引导代码、诊断代码、用户偏好、网络连接代码、 文件系统代码等的基本软件122来提供功能,所述功能一般不必特定于
呈现分析或者甚至特定于分析。网络代码可利用网络堆栈、网络协议、
网络接口卡和/或其它网络支持124。
虽然web浏览器并非在每个实施例中都是必需的,但是所示的实施 例包括web浏览器126,其己经从网站134下载了126网页128。除了文本、 图像和其它内容130之外,网页还包括web分析脚本132,其将与用户104 和网页的交互218相关的数据138发送到222分析服务器136 (并且其也 可以收集220所述数据)。例如,Omniture公司提供了这样的脚本132 和服务器136等其它web分析服务。服务器134/136所生成的唯一访问者 ID 140被存储124在浏览器cookie 142中,并且被传送到web分析服务器, 以使得web分析数据138能够与特定访问者104相关联,或者至少与对网 站134的特定访问相关联。如所指示的,呈现播放器114可以是单独的 应用(由图l的左栏中的播放器所指示),或者其可以是浏览器插件(右 栏播放器)。在一些情况下,除浏览器外的诸如馈给聚合器之类的程 序也可能包括触发呈现106的下载和/或播放的脚本132和内容130,在这 种情况下,可以替代地或附加地利用这样的聚合器或其它程序来应用 这里结合浏览器所讨论的本发明的原理和特征。
所示出的实施例还包括呈现分析引擎144,其具有数据捕捉代码
(指令和/或数据)146,用于捕捉206反映用户104与呈现106的交互的 呈现分析数据152;数据结构生成代码148,用于在用户交互期间实时
(on-the-fly)生成208诸如字符串的包含至少一些所捕捉的呈现分析数 据的格式化数据结构;以及数据发送代码150,用于例如将呈现分析数 据发送210到本地文件和/或诸如呈现分析服务器136的其它目的地。一 些实施例包括自动跟踪代码154,其支持对呈现分析的自动跟踪212, 并且一些实施例包括VAORing代码156,用于创建、修改、显示和/或支 持214视觉呈现分析覆盖报告。可以通过将其对JavaScript通信的依赖替 换为固有的ActionScript通信而保留ClickMapTM用户界面来对现有技术的VAOR ClickMapTM代码进行修改以用于本发明。呈现分析引擎可使 用224存储在浏览器cookie 142中并被web分析代码所使用的相同访问 者ID 140。在一些实施例中,呈现分析引擎使用226存储在Flash cookie 142中的访问者ID 140,诸如Flash本地存储对象。
无需每个发明实施例或配置都包括图中所示的每个组件,或包括 与这里所示相同数量和关系的组件。虽然图2是主要示出了本发明的呈 现分析方法的流程图,但是图l和这里对其它实施例的讨论也可以帮助 理解方法实施例,就像方法的理解有时会帮助理解类似于图l所主要示 出的系统或非方法实施例。
一些实施例包括计算机可读存储介质,诸如闪存、CD、 DVD、可 移动驱动器等,其被配置为与处理器120结合工作来执行用于呈现分析 的处理。硬盘、RAM、磁带或其它存储器112也可以被配置成用作实现 本发明的计算机可读存储介质。应理解,方法实施例和所配置的介质 实施例在下列意义上通常紧密相关许多方法可以使用配置介质的代 码来实施,并且许多所配置的介质是由执行方法的代码来配置的。本 领域技术人员将会理解,也可以使用不包含含有执行方法的代码的 ROM、 PROM、 EEPROM、 RAM或其它存储介质的硬布线的专用硬件 来执行所述方法,但是认为这样的实现是非常规的,原因在于完全以 硅而不用包含微码(microcode)或其它代码的介质来实现方法通常成 本很高。
一些实施例包括根据本发明的呈现分析数据结构。这样的结构可 存储在任意计算机可读介质中并由此对其进行配置,所述计算机可读 介质包括可移动介质112或存储器112。呈现分析结构可以以€++、 Java、
XML、 Perl和/或其它编程或脚本语言来实现,或者以语言的组合来实 现,除非操作或权利要求限制需要其它形式;对于一些实施例优选 ActionScript。所有这些示例都仅仅是对本领域技术人员可以利用本发 明的许多方式的说明。能够独立于网页脚本进行操作的呈现分析引擎144的一个实施例 包括数据捕捉代码146,用于捕捉反映用户104在呈现内的动作204的 呈现分析数据152;数据结构生成代码148,用于动态生成208至少一部 分格式化呈现分析数据结构152;以及数据发送代码150,用于向分析
服务器136发送所述数据结构;其中所述呈现分析引擎进一步的特征在
于其不依赖于任何getURL()调用来将所捕捉的呈现分析数据传送到嵌 入在网页128中的脚本132,并且也不依赖于嵌入在网页中的任何呈现 分析脚本132。 一些实施例进一步包括自动跟踪代码154、视觉分析覆 盖报告代码156中的至少一个。在一些实施例中,将唯一访问者ID 140 存储在浏览器cookie 142、本地共享对象142中的至少一个中。
在一些实施例中,数据发送代码150包括以下项中的至少一个进 行图像请求的代码、进行GET请求的代码、进行POST请求的代码、进 行端口80请求的代码、进行FTP请求的代码、向共享文件写数据的代码、 向共享存储器写数据的代码。在一些情况下,数据发送代码发送反映 以下至少一个的分析数据用户页面浏览活动204、用户链接跟随活动 204、用户剪辑观看活动204、用户按钮按压活动204、用户播放完成百 分比204、呈现闪现204计数。在一些情况下,引擎144包括ActionScript 代码。在一些情况下,多媒体呈现106包括ActionScnpt对象116。
一些实施例将呈现分析引擎144与web浏览器126、在所述浏览器中 显示的网页128和嵌入在所述网页中的脚本代码132相结合,以捕捉反 映在呈现106之外的网页内的用户动作的网页分析数据138;并且其中 引擎144不具有用于将呈现分析数据和网页的嵌入脚本代码进行同步 的代码。网页的嵌入脚本代码132可包括JavaScript代码、VBScript代码 中的至少一个。 一些实施例将引擎144至少与分析服务器136和/或与包 含用于导入引擎的代码158的多媒体呈现106相结合。
更具体地,一个ActionScript呈现分析引擎144包括数据捕捉代码146,用于捕捉反映用户激活呈现中的至少 一 个ActionScript对象的 ActionScnpt呈现分析数据;和数据发送代码150,用于发送至少一部分 所捕捉的AcdonScript呈现分析数据;其中所述引擎144不依赖于所述呈 现中的任何特定于对象的用户动作跟踪代码来捕捉所述ActK)iiScript呈 现分析数据。在一些情况下,引擎144也不依赖于任何getURL()调用来 发送所捕捉的ActionScript呈现分析数据。
在一些情况下,引擎144可以与呈现播放器114相结合,所述呈现 播放器114与呈现106相兼容并且为用户交互204提供至少一个 ActionScript对象—。在一些情况下,以下的一个或多个可以是有效的 播放器114包括Flash呈现播放器;播放器114包括Flex呈现播放器;播 放器114包括到web浏览器126的插件;呈现106至少部分嵌入在网页128 中;呈现106至少部分存储在非易失性可移动计算机可读存储介质112 上-,播放器114运行在计算机102上;播放器114运行在手持或其它移动 设备102上。
一些实施例提供了用于独立地跟踪ActionScript呈现活动的方法, 包括在设备102上接收202包含ActionScript对象116的多媒体呈现106; 捕捉206反映用户与所述多媒体呈现的ActionScript对象的交互204的呈
现分析数据152;以及发送210呈现分析数据;其中所述方法独立于以
下的一个或多个进行操作getURL()调用、嵌入在网页中的JavaScript 代码132、嵌入在网页中的VBScript代码132、多媒体呈现中的特定于对 象的用户动作跟踪代码。所述发送步骤可包括以下的至少一个进行 图像请求、进行GET请求、进行POST请求、进行端口80请求、进行FTP 请求、向共享文件写数据、向共享存储器写数据。所述方法还可以包 括在设备上动态生成208包含呈现分析数据的数据结构、自动跟踪212 用户与多媒体呈现的交互204和/或提供214关于用户与多媒体呈现的交 互204的视觉分析覆盖报告。
在一些情况下,所述方法进一步包括在设备102上接收216具有所嵌入的web跟踪机制132的网页128;利用所嵌入的web跟踪机制132 捕捉220反映用户与所述网页的交互的web分析数据138;以及向分析服 务器136发送222 web分析数据。在一些情况下,向分析服务器发送web 分析数据的步骤222将其关联于相应的访问者ID 140进行发送,并且发 送呈现分析数据的步骤210将该数据与相同访问者ID相关联地发送到 分析服务器,而无需在执行web分析步骤的代码和执行呈现分析步骤的 代码之间进行通信。
开发观察和历史
除了以上观察之外,以下内容可帮助理解本发明的系统、设备、 配置的媒体、方法和处理产品。在Omiiiture分析中,已经通过其对于执 行JavaScnpt的要求尝试了Flash跟踪。从Flash应用捕捉量度的典型处理 是在FIash中执行"getURL()"命令,其继而在浏览器层级执行HTML 页面中的JavaScript。该处理在Flash开发人员理解JavaScript并且需要非 常少量的跟踪的简单应用中工作良好。
本发明提供了一种可作为选择的方法,其运用Flash ActionScnpt 来对Flash量度进行动态组织并将其发送到Omniture的数据收集服务 器,或者可能发送到本发明的其它授权用户的数据收集服务器。可能 早在2005年9月就已经做出了工作原型,并且被0mmture和其它公司在 未公开协议和其它保密协议下所使用。本发明模仿了许多Ommtiire的 JavaScnpt命令来处理和传送数据,并且以Flash固有的语言和格式即 AcdonScnpt来进行该操作。该方法的一些好处在于其简化了实现、改 进了跟踪性能并且使得Flash跟踪不依赖于其它技术,允许Flash跟踪独 立于浏览器中页面层级的脚本编写。其也是Ommtme的媒体跟踪能力的 不同之处。该技术对运用Omniture现有的处理体系结构,省略了对修改 后端(POST收集)处理的需要。所有功能可以是在客户端侧,并且是 Flash ActionScript所固有的。方案可以是向后兼容Flash播放器版本6, 其在美国具有97.1%的分布,在美国以外超过98%的分布。其可以使用 特定于FlashMX2004或更新的开发环境,但是播放器可与版本6兼容。Omniture固有的Flash ActionScript跟踪能够简化实施Flash跟踪的 处理,并且动态改进Flash跟踪的数据传输性能。从开发人员观看来说, 该技术通过非常简单并且某些情况下是自动的用于Flash的Omniture SiteCatalyst跟踪代码的开发人员实现提供了有力的Flash分析。其能够 运用FlashActionScript来动态生成208适当的分析数据152,并且通过相 同的ActionScript将该数据传送210到Omniture而不需使用JavaScript。对 于Omniture客户端的好处在于具有快速、固有的ActionScript支持的简 化实现,并且在一些情况下利用ClickMapTM支持对活动进行自动跟踪。
原型方案最初开发于2005年并且在那时被提供给Omniture客户 端。8^2娱乐使用该原型跟踪其作为独立应用的使用?1&北和€++编程 的Vongo播放器。该原型版本非常粗略并且作为使用ActionScript动态生 成硬编码的图像请求的原始功能来提供。该版本没有运用Ommture cookie来进行跟踪。Starz娱乐作为visID密钥传递其自己的唯一跟踪代 码,并且VISTA利用该唯一ID替换SiteCatalyst visID。在提供所述原型 代码时签署了保护本发明的保密协议。
该方案的第二版本分发给GM Europe用于其Opel.de网站。该版本 远优于Starz娱乐版本,原因在于其包括图像请求的动态生成,并且与 JavaScnpt更一致,包括共享与JavaScript文件相同的cookie。该版本在 2005年10月提供给该GM Europe的Flash开发者Zentropy。在提供所述代 码时签署了保护本发明的保密协议。
该方案的第三版本在2006年2月分发给Scnpps Networks ( EW Scripps)作为推广他们为媒体上的Sumimt呈现所准备的媒体跟踪能力 的手段。Scripps的Flash开发专家TimO,NeU接收到了该代码的副本并且 为发明人提供了一些有益的反馈,诸如关于将方案代码封装到 ActionScript2.0组件中以便分发的代码样本。发明人记得Tim O,Ndl的 调整是针对封装,而并非针对组织和传送数据的基础功能144。在提供所述代码时签署了保护本发明的保密协议。 实现细节
Omniture的Flash ActionScript方案可以结合或者独立于Omniture JavaScript 132运行,该Omniture JavaScript 132跟踪220、 222传统的 HTML页面128的。在上层,可以进行以下内容。Omniture的Flash ActionScript生成图像请求,并且将其发送到Omniture服务器136。 Flash 使用穿过浏览器126的http(s)协议但不需要JavaScript 132。 Omniture的 CName()数据收集函数允许在浏览器中读取或设置cookie。浏览器对来 自Flash的请求或来自JavaScript的请求如同对浏览器cookie同样地进行 处理,并且即使当请求来自Flash时,唯一访问者也在SiteCatalystTM服 务器代码中具有相同的v化ID 140。Omniture配置脚本在运行时动态地包 括Omniture ActionScript144。
Omniture ActionScript跟踪方案运用Flash的ActionScript编程和 http(s)协议技术来将分析数据152编译为可消费格式并且将所述数据传 送210到Omniture的数据收集服务器136。 ActionScript与JavaScript (和 Java)类似,其中Flash应用106可以在运行时动态执行动作。Omniture 的方案利用该功能基于(如应用开发人员所定义的)用户104动作来捕 捉206分析信息,并且将该简单数据转换208为有意义的格式以便进行 分析报告。接着,所述方案运用固有的Flash方法来发送210数据,以将 格式化的量度数据推到Ommtm:e以进行处理和报告。该数据传送处理使 用用户浏览器126的http(s)协议,并且通过其利用正确访问者的唯一但 非个人识别的ID 140和Flash应用的路径分析来设置(或者运用现有的) 量度cookie 142。
某人可能会问在将数据放入cookie 142和生成210图像请求之间有 什么关系。在一些实施例中,存储在coolde中的仅有数据是非个人识别 但唯一的访问者ID 140。该访问者ID是确定唯一访问者的关键字,但是 其独立于图像请求中的数据。所述图像请求包含用于报告呈现分析的特定变量152和定制值152。因此图像请求通常运用cookie来建立访问者 唯一性,但是对于传送或报告数据152来说,来自所述cookie的访问者 ID并不是必要条件。Cookie仅需要被用于唯一访问者量度。在Flash传 送210图像请求时和当JavaScript传送222图像请求时该数值相同是重要 的。如果这两种方法没有共享相同的唯一访问者ID,则系统136将会把 访问JavaScript和Flash的一个用户104识别为两个唯一访问者,而将用户 识别为单个访问者可能是优选的。作为选择,Flash还可以在库共享对 象142 (这是Flash的cookie版本,但是不认为其是传统浏览器cookie) 中存储唯一访问者ID。这种方法能够利用库共享对象维护访问者的唯 一性,并且可能与浏览器126共享该唯一ID 140,但是其需要几个额外 步骤,例如将唯一ID发送给JavaScript代码,所述JavaScript代码进而将 其发送给浏览器cookie和/或web分析服务器。理论上,LSO方法可以比 浏览器coolde更为准确,但是其使用并不被一些隐私倡导者所赞成。
cookie的唯一ID被浏览器自动传送。当请求通过浏览器126时,浏 览器收集请求所要到的域的所有cookie信息并对其自动传送。如以上所 提到的,替代方法是以某种其它方式存储唯一访问者ID,诸如存储在 库共享对象中,并接着通过图像请求对其进行传递以便处理。Starz娱 乐原型使用这种通过图像请求的唯一ID传输方法并且其非常准确,尤 其是在无需将唯一ID发送到浏览器126供JavaScript 132使用时。
因此, 一种方法运用使用GET命令的图像请求字符串。当然,不 需要返回真实的图像,所以在某种意义上它实际上不是图像请求。存 在也可以使用传输数据152的替代方法。例如,Ommture数据收集服务 器允许发送XML POST命令作为对图像请求所使用的GET的替代。该 Flash应用106/1 H/144能够进行XML POST。作为XML POST或图像请 求GET的替代,应用106/114/144也许能够直接对Omniture (或其它)服 务器136进行端口80请求。其也能够收集信息152并接着经由FTP (文件 传输协议)将其发送给收集服务器136来进行处理和吸收(ingest),但 是使用FTP相对较慢并且会需要诸如登录、指定待传送文件和目标目录以及可能设置许可之类的多个附加步骤。
原型Omniture方案运用在运行时被包括15 8在待跟踪的Flash文件 106中的集中(和编译)引擎144。所述待跟踪的Flash文件需要少量的 脚本158来包括所述集中引擎,并且少量146来对关键成功事件执行函 数。所述待跟踪的Flash文件的配置通过Flash组件进行处理,以便于分 发和封装。虽然在dev中可见,但是组件144无需在运行时可见。
该版本中的集中引擎144被配置为几个部分。初始化部分对引擎的 私有变量进行初始化,以生成用于传输的适当格式。另一部分具有生 成传输字符串152的开始和一般部分的函数148。另一部分具有通过 ActionScript 116进行动态解析以生成用于所述传输字符串的值以及用 户定义和定制变量的函数148。第四部分的功能是改变148例如为与定 制链接跟踪数据152相对的页面浏览数据152所生成的传输字符串的类 型。以下提供来自原型的样本代码。
与JavaScript跟踪选项相比,AutoTrackTM特征154允许开发人员在 小段时间中实现Omniture跟踪功能。AutoTrackT,《码154运用固有的 Flash ActionScript来监听206点击活动204,动态编译208跟踪数据,并 以有效的固有格式将其自动发送210到Omniture 136。 Omniture对Flash 的AutoTrack在Omniture的固有Flash ActionScript跟踪的基础之上来扩 展。该特征监听可以被认为是可跟踪的按钮和电影剪辑动作,并且自 动跟踪这些对象在Flash文件内的使用。Omnitiire客户端可以运用该特 征来自动跟踪Flash文件的使用而无需对于相对于跟踪的点击动作对各 个按钮或电影剪辑进行编码,原因在于自动跟踪代码自动索引新添加 的按钮。AutoTrack可以动态减少用于跟踪Flash应用中的量度的实现和
测试所需的时间。 一些浏览器层级的报告对于自动跟踪可能是不可用 的或者为其它方式,但是可以通过在可动态生成(客户端侧或服务器 侧)的〈object〉标签中的flashvars来捕捉数据,例如当前浏览器URL(所 托管的.sw纹件的URL是缺省的)、参考域以及浏览器类型和版本。例如
<object...
<PARAM NAME=FlashVars
VALUE="propl=Hello%20World||prop2=so%20coor〉
</object〉
或者
<object...
<param name='movie" value="filel.swf propl=Hello
World&prop2=so cool,7〉
</object〉
ClickM叩TM特征156运用固有的ActionScript来获得视觉点击覆盖 的更好效果和准确性。Ommture代码编译208和传送210关于哪个对象 116被点击204的特定信息152并允许ClickMapTM覆盖152显示与点击活 动相关的视觉信息。在本发明之前的ClkkMapW功能已支持Flash分析 覆盖,但是该技术依赖于使用JavaScript来与浏览器进行通信以便进行 跟踪活动。现在,通过使用Omniture的固有Flash ActionScript跟踪,能 够通过固有的Flash ActionScript语言利用其它分析量度自动跟踪 ClickMapTM活动。这是通过使用监听器144来完成的,所述监听器144 当用户在可跟踪的按钮或电影剪辑上进行点击时动态生成适当的跟踪 代码。CI ickMap,代码156可以为已被点击204的按钮或电影剪辑自动 确定适当的对象ID 116。对于ClickMapTM和AutoTrackTM,这可以通过 循环(索引)对象以确定什么对象ID用于已被点击的对象(例如,按 钮或电影剪辑)来实现。自动跟踪代码154和ClickMapTM代码154可以 运用该信息来捕捉关于哪个对象被点击的信息152。在一种原型中,首 先对对象进行索引,接着监听活动发生,并且接着代码循环被索引的 对象来识别被选择或激活的对象。
从Flash开发人员的角度来看,实现处理以Flash开发人员向其开发 环境添加1580mniture量度扩展开始。如这里所讨论的,该扩展将 Omniture组件添加到开发环境的组件库。在添加了所述扩展后,所述组件在开发环境中一直可用。下一个步骤是将组件的实例从组件库拖到 要跟踪的Flash应用的主时间行(timelme)上,并且给予其一个实例名 称。接下来,开发人员利用Omniture所指示的几行代码对所述组件进行 配置。利用适当配置,每个应用可能需要少于五分钟,这仅仅是向在 Flash中需要进行跟踪的关键事件添加几行简单代码(在大多数情况下, 仅一条代码行)的事件,或者使能自动跟踪而无需为每个事件添加脚 本行。
对量度进行组织并向Omniture传送数据的引擎144通常应当被集 中在与Flash应用文件相同的域服务器上。只要从相同域对文件进行分 发,无论它们包括在哪个域上,都能够适当引用所述引擎。可能从与 Flash应用不同的域引用所述引擎(集中文件)144,但是这需要向所述 集中文件添加附加的许可,以允许不在相同域上的应用执行功能144。 所述集中文件能够被替换,和/或按照需要进行更新,而无需对引用引 擎144的Flash应用进行重新编译。
以下示出了在该方案的一个版本中在运行时导入集中引擎144的 代码158的摘录。客户端必须将Omnitur组件的实例拖动到他们的Flash 应用中,接着将一对代码行添加到对将要在运行时导入的引擎进行配 置并开始跟踪的Flash应用。例如,在将Omniture组件的实例添加到Flash
应用之后,将会添加以下代码行158来进行跟踪工作
/*将Omniture组件的实例(—metrics)注册为监听器,以知道已 加载analyticsEvents.swf的情况*/
—analytics-addEventL'istener("loaded", this, "onMetricsLoaded");
/*在加载0mnkure分析引擎之后对其进行配置*/
function onMetricsLoaded(){
—analytics, account = "devstephenh";
—analytics.pageURL = "http:〃www.flashTest.com";
_analytics.clickMapPage = "Flash AS Test";
—analytics. autoTrack = true;/*指向Ommture分析引擎的位置*/
—analytics.loadEvents("metricsEvents.swf');
可以在Omniture的JavaScript浏览器132活动和Omniture固有的 Flash ActionScript跟踪144之间对唯一访问者量度进行同步。缺省地这 是通过数据传输机制来完成的。由于该跟踪引擎运用Omniture的服务器 侧的cookie创建,所以所有的coolde 142 (甚至在相同域设置的第一方 域cookie 142)连同其唯一访问者id 140可用于数据传输210、 222,并 且保存技术132、 144之间的唯一访问者计数,包括Omniture固有的Flash ActionScript跟踪。可以利用Omniture固有的Flash ActionScript跟踪对唯 一访问者量度进行扩展以包括唯一跟踪代码140而无需使用传统的浏 览器cookie 142。运用在Flash环境中的库共享对象142(被称作LSO 142, 本地共享对象142),能够存储和保存唯一标识符140以唯一识别唯一 访问者,而没有个人可识别信息并处于隐私标准之内。
虽然该方案没有使用getURL(),但是getURL能够随其一起使用, 尽管发明功能并未要求如此。getURL()方法具有重要的限制,并且意味 着要链接到其它网页,例如
getURL("http:〃www.omniture.com")
将会把浏览器重新定向到新的页面omniture.com 。函数getURL() 已经被运用为与浏览器进行通信的手段。其被用来在浏览器层级执行 客户端侧的代码,诸如重新定向或JavaScript。它对于使用getURL()将 信息传递回浏览器可能是有用的,诸如Flash可能己经存储在LSO中或 其它地方的唯一ID 140,但是getURL()通常并非是本发明方案所要求 的。
Flash应用106/114能够独立于浏览器126运行,例如在操作系统122
的上层运行,而不需要打开或运行浏览器。这里所描述的一些方案允 许以这种方式进行跟踪206、 208、 210而不需要运行浏览器。Flash可以 在运行于用户登录的浏览器之外时使其因特网连接124到操作系统的缺省浏览器,但是当呈现106嵌入在HTML代码中时Flash使用其所嵌入 的浏览器126。这是http请求通过其从FIash播放器到达因特网并甚至到 达Omniture 136的手段。Omniture没有设计Flash通信的该特定方法,但 是正在运用其功能。如果Flash文件106发送了关于加载(闪现)的请求, 应注意当在首次访问的第一页面上对其各自分析使用Flash和JavaScript 时避免cookie竞争(race)。当在相同网页(具有或没有本发明)上使 用两种版本的JavaScnpt时或者具有两个静态图像请求时也会发生 cookie竞争。cookie竞争的概率并不特定于该Flash方案,但是却值得根 据分析方案的特定环境进行考虑。
为了进一步帮助理解本发明,以下给出特定代码,包括来自为原 型书写并被发明人使用的.txt文件的计算机程序源代码。所述代码是以 ActioriScript的脚本编程语言书写的。应理解,本发明并不限于以下所 给出的特定代码或特征;该原型代码仅仅作为实例。其来自名为 "Omniture—Native一Flash—Tracking—Code一4—17—2006.txt"的文件。
在该代码中,sendAnalytics()时生成数据字符串的最后部分的函 数,其包括用于SiteCatalyst的定制变量。其循环对象并且搜索特定变量 和值,然后生成适当的字符串。最后,其将数据发送给Omnitui"e。其全 部使用固有的ActionScript来完成。
所述原型包括 "Private Vars [J " 的以下定义
〃发起检查错误的RS检查,直到mitStrmg()函数发现适当的值
var —sRSCheck:Stringj
〃为其他函数保持所定义的电影URL的值(基于imtStnng())
var 一sURLCheck: String;
//私有变量
var —sAccount: String;
var —sDefaultRS: String;
var —sNameSpace: String;var一sCName:String;
var—sURLString;
var _sReferrer:String;
var —sCharSet: String;
var —sCurrencyCode:String;
var —sDefaultPage:String;
var —sDefaultLink: String;
var —sCookieLifetime:String;
var —sScreenRes:String;
var —sClic固apPage:String;
var —sClickMaplD: String;
var —bQickMapSupport:Boolean;
var —b丁estSupport:Boolean;
var —bAutoTrack:Boolean;
var —mcImageLoader:MovieClip;
var —mcMainMovie:MovieClip;
所述原型还包括"Setters"的以下定义,也就是用于设置特定变 量的值的函—数
function setAccoimt(val:String):Void { —sAccount = val;
function setNameSpace(val:String):Void ( —sName.Space = val;
}
function setCName(val:String):Void { —sCName = val;
}
function setURL(val:String):Void { 一sURL = val;function setReferrer(val:String): Void { —sReferrer = val;
function setCurrencyCode(val:String):Void { —sCurrencyCode = val;
}
function setCharSet(val:String):Void { —sCharSet = val;
}
function setDefaultPageName(val:String):Void { —sDefaultPage = val;
}
function setDefaultLinkName(val:String):Void { —sDefaultLink = val;
}
function setClickMapPage(val:String):Void { —sClickMapPage = val;
} —
function setCookieLifetime(val:String):Void { —sCookieLifetime = val;
function setTestSupport(val:Boolean):Void { 一bTestSupport 二 val;
function setClickMapSupport(val:Boolean):Void { —bClickMapSupport = val;
function setAutoTrack(val:Boolean):Void〗 bAuto Track = val;MovieClip):Void {
mcMainMovie = val;
所述原型的初始化部分如下对测试中使用的代码进行初始化-一mcImageLoader = this.createEtnptyMovieClip("—mclmageLoader
100);
—sDefaultPage = "Flash Application : Page View";
一sDefaultLink = "Flash Application : Activity";
_sScreenRes = System-capabilities.screenResolutionX+"x"+System.capabilities.screenRes olutionY;
if (—bClickMapSupport) { indexMovie();
所述原型的"公布方法"部分仅仅是空的空的存根(stub),原因 在于从代码的该测试版本不导出任何方法。
所述原型的部分提供了用于测试ActionScript ClickMap的代码156 和用于ActionScript的自动跟踪能力的代码154 。在初始化代码版本 ("this.VERSION = "1.0.0";")之后,所述代码跟踪鼠标活动 〃将该对象命名为s一clickmaptrace(target); }
〃被onMouseDown()调用以递归发现点击 //对象,返回空意味着没有对象被点击 function getHitTarget(tree, pref) { for (var name in tree) { var child = tree[name]; 〃确保该对象确实是该树的子 if (child . _parent != tree) { continue;
〃对电影剪辑进行命中测试
if ((typeof (child) 'movieclip' |1 child instanceof MovieClip) && child.hitTest(jroot.—xmouse, —root, jmouse, true)) { var target 二 this.getHitTarget(child); return target != null target : child; 〃向所有的子按钮添加onPi:ess事件
}elseif (childinstanceof Button&&child, onPress!-this.buttonHandler) {
child,—ClickMapOldHandler 二 btn-onPress; child.onPress = this,buttonHandler;
return null;
〃这是创建ClickMap事件的位移按钮onPress处理体 〃然后调用先前的onPress事件处理体 function buttonHandlerO {
—root's—clickmap.sendClickMapEvent(this); this.一ClickMapOldHandier();〃生成CHckMap事件
function sendClickMapEvent(id) {
—sClickMapID = id;
〃自动跟踪
if (—bAutoTrack) {
trace("" autoTrack Enabled **");
sendLink(—sClickMapPage+" : "+id);
利用所述原型进行跟踪包括对被跟踪的Flash电影剪辑进行索; 可以添加类似代码来跟踪其它Flash组件
〃对电影进行索引,将结果放在索引中,并且还返回它们 function indexMovieO {
var str 二 this.buildlndex( root); str = Stage,width+","+Stage.height+'T'+str; this.index = str; return str;
/7获得电影剪辑或按钮的几何形状 function getGeom(clip) {
var b = clip._parent.getBounds(》 var pt = {x:clip._x, y:ciip.—y}; var pt2 二 {x:clip.—x, yxlip.—y}; 〃获得左上角 clip.—x = b.xMin; clip.一y = b.yMin; var b2 = clip. _parent.getBounds(); //获得右下角clip.—x = b.xMax;
clip.一y = b.yMax;
var b3 = clip._parent.getBounds();
〃返回缺省位置
clip.一x = pt.x;
clip.—y = pt.y;
〃发现角点
pt.x = (b2.xMin-b.xMin); pty += (b2.yMin-b.yMin); pt2.x += (b3.xMax-b.xMax); pt2.y += (b3.yMax-b.yMax);
〃将点转换成全局点 clip._parent.localToGlobal(pt); clip.—parent.1ocalToGlobal(pt2);
〃构建返回阵列
var geom 二 (x:Math.round(pt.x), y:Math.round(pt.y), w:Math.ceil(pt2.x-pt.x), h:Math.ceil(pt2.y-pt.y)}; return geom;
〃递归构建电影索引
function buildlndex(node) {
var nodeld = eval(node)+,.';
var str 二 '"';
for (var i in node) {
var obj = node[i];
if (obj !二 null && obj.—name 二= i) { var id = eval(obj)+',"; if (id 二= (nodeld+i)) { var g = getGeom(obj);
str += eval(obj)+","+g.x+",n+g.y+'V,+g.w+","+g.h+"|";str += this.buildlndex(obj); return str;
还提供了方法148、 150来创建208包含跟踪数据152的数据字符串, 并将该数据字符串发送222给分析服务器。在所述原型中,Omniture服 务器136是目的地,但是本发明的一些授权使用—可将信息发送给由其它 实体所管理的服务器。首先,创建所述数据字符串的初始部分
〃创建Omniture图像请求的初始部分
function initStringO {
if (—sAccount != undefined) {
rs = —sAccount;
〃如果rs具有值,贝U—sRSCheck将允许将数据发送到Omniture —sRSCheck = rs;
〃名称空间(或报告负载平衡的合适位置和cookie名称空间)
var sClientNS:String = —sNameSpace;
var sPreDomain:String = sClientNS;
if (sClientNS == undefined川sClientNS -= "") {
sPreDomain = (—sAccount != undefined) —sAccount : —sDefaultRS;
}
〃应进行图像请求的CName var dc:String = 一sCName; if (dc == undefined || dc == "") { dc = "112.2o7.net";
}
〃如果不获得.swf文件的url ,则获得当前的url (如果可用)var sTempURLString = —sURL;
if (sTempURL undefined || sTempURL "") {
sTempURL = —mcMainMovie.一url;
}
〃使所定义的URL对其他函数可用 一sURLCheck = sTempURL;
//获得ssl图像请求的协议 .
var sProto:String = sTempURLsubstr(O, 5);
〃用于避免该用户检索图像的"缓冲"版本的随机数
var ra:Number = Math .腦nd(Math週dom()"00000000);
〃如果使用Omniture域
var domainCheck:String = substring(dc, 5, 3);
if (domainCheck =二 "2o7") {
//创建图像请求的字符串
var slmage:String = 'http:〃'+sPreDomain+'.';
} else {
var slmage:String = 'http:〃';
if (sProto == 'https') { slmage = 'https:〃102.';
}
slmage += dc+'/b/ss/'+rs+Vl/H.4-pdv-2/s'+m+' [AQB]&';
slmage += 'g='+escape(sTempURL);
〃获得图像请求的机器时间
var cd:Date = new Date();
var ts = cd.getDate();
ts += 7"+cd.getMonth();
ts += 'V"+cd.getFullYear();
ts += " "+cd.getHours();
ts += ":"+cd.getMinutes();ts += ":"+cd.getSeconds();
ts += " "+cd.getDay();
ts += " 〃+cd.getTimezoneOffset();
slmage '&t='+escape(ts);
if (sClientNS != undefined && sClientNS != "") { slmage += '&ns='+escape(sClientNS);
} — —
/**设置引用器(动态地从浏览器设置,并且传递flashvar) 但是确保仅是引用器的第一页才发送引用器
if (—sReferrer != undefined && —sReferrer != "") { slmage += '&r-'+escape(一sReferrer);
〃如果设置它,则应仅对定着页而不是对每个请求进行 —sReferrer= undefined;
}
if (一sCharSet 1= undefined && —sCharSet != "") { slmage += '&ce='+escape(—sCharSet);
} — _
if (—sCurrencyCode !二 undefined && —sCurrencyCode != "") {
slmage 言&cc-'+escape(一sCurrencyCode);
}
if (—sCookieLifetime I二 undefined && —sCookieLifetime != "") { slmage +二 ,&c〗='+escape( sCookieLifetime);
}
slmage +二 '&s二,+escape(—sScreenRes); return (slmage》
ClkkM叩TM数据还可以包括在向分析服务器发送的数据中。所述 原型包括生成ClickMap字符串的函数148、 156:function buildClickMap() {
var tempString:String;
trace("" clickMapSupport Enabled **");
if (—sClickMapPage != undefined &&—sClickMapPage != "") {
tempString += '&pid='+escape(—sClickMapPage);
tempString += '&pidt=l';
} else {
tempString += '&pid= ' +escape(—sURLCheck); tempString += '&pidt=0';
}
tempString += '&oid= ' +escape(_sClickMapID); tempString += '&oidt=l,; tempString '&ot=FLASH'; return(tempString);
所述原型还包括动态生成20S图像标签并将其发送210到分析服 务器136的函数148、 150:
〃利用所有属性等动态构建图像标签
function sendAnalytics(iString:String, obj:Object):Void {
var slmage:String = iStnng;
for (var i in obj) {
var sTempVar.String = i.substr(O, 4);
sTempVar 二 sTempVar.toLowerCase();
var sIName = i;
switch (sTempVar) {
case "prop" : sTempVar = i.substr(4, 2);
sIName 二 ',c"+sTempVar;
break;
case ,,cvW :sTempVar = i.substr(4, 2); sIName 二 'V,+sTempVar; break;
case "chW : sIName = "eh"; break;
case "camp', sIName = "v0"; break;
default: break;
slmage += '&'+sIName+'='+escape(obj[i]);
〃适用于所有的ClickM叩,如果这应仅仅用于页面或链接,则 移动到页面或链接函数
if (一bClic固apSupport) { slmage += buildClickMap();
slmage +二 '&[AQE],;
〃版本
var ver—:Array 二 getVersion(),split(""); var p—ver—info:String = ver— var p—ver:String = p—ver—info.substr(O, 1); var p—os:String = ver—[O];
〃如果在线或离线并且版本低于8,则发送数据,以避免对于播放 器8的隐私警告
if (—sRSCheck != undefined) {
var IvOmnSend:loadVars = new LoadVars();
var IvOmnRecieve:loadVars = new LoadVars();〃检査是否在线
if (sProto,substr(O, 4) "http") { var bStatus:Boolean = true; } else {
var bStatus:Boolean = false; if (bStatus) {
lvOmnSend.sendAndLoad(sImage, IvOmnRecieve, "GET");
〃如果在浏览器外,并且版本大于7,则不进行图像请求(测试是 否将其设置为8) } else {
if (p—ver<8||—bTestSupport == true) { if (—bTestSupport == true) { trace("" testSupport Enabled **");
}
IvOmnSend.sendAndLoad(sImage, IvOmnRecieve, "GET");
trace("NOTE; Unless testSupport is enabled (ex.—metrics.testSupport =true;) Version 8 and newer players will not send data outside the browser. \n\n URL Decoded Analytics: "+unescape(slmage)+"\n\n Actual Request: "+sImage》
所述原型还具有用于创建208页面浏览报告152并且创建208定制 链接报告152的功能148。相对于是页面上的微级别活动的定制链接, 页面浏览是宏级别的网页浏览。页面浏览跟踪对浏览了哪些页面进行 跟踪,也可能跟踪以什么顺序、在哪个访问期间、通过哪个唯一访问 者等。页面浏览被顺序处理并且从所述顺序得出路径分析。多个页面浏览可归结于访问、唯一访问者等。定制链接跟踪对那些链接被点击 进行跟踪(同样,这可以跟踪以什么顺序、在哪个访问期间、通过哪 个唯一访问者等),并且被称作"定制"是因为卖主(Omniture的客户) 可以指定跟踪哪些链接。也就是说,术语"定制链接"已经被用来识 别客户已经定制代码以便跟踪的链接。在Flash跟踪的情况下,可认为 没有使能自动跟踪所进行的任意跟踪在某种意义上是定制的,导致客 户定制的页面浏览或定制链接跟踪的可能性。原型页面浏览和定制链 接代码如下-
〃创建页面浏览
function sendPage(iName:String, iObj:Object) { var tempString:String = initString(); if (iName == undefined) {
tempString += '&pageName=' +escape(—sURLCheck); }else {
tempString += ,&pageName='+escape(iName);
functionsendLink(iName: String,iObj:Object,linkType: String, exi化ink: String) {
vartemp String: String = initString(); if (linkType != undefined) { if (linkType == "d") { tempString += '&pe=lnk—d'; } else if (linkType == "e") { tempString += '&pe二lnk一e'; }else {
tempString += '&pe=lnk—o';
sendAnalytics(tempString, iObj);
//创建定制链接} else { tempString += ,&pe=lnk—o';
}
if (exitLink != undefined && exitLink != "") { tempString += ,&pevl='+escape(exhLink); } else {
tempString += '&pevl'=+escape(—sURLCheck); }
if (iName == undefined) {
tempLinkName = —mcMainMovie.—url+"Link Action"; tempString += '&pev2='+escape(tempLinkName); } else {
tempString += '&pev2'=+escape(iName); sendAnalytics(tempString, iObj);
本领域技术人员应理解,.以上代码仅是原型,并且在实现产品时, 可以为了调试、安全性、改进速度或效率等进行适当改进和其它变化。
结论
例如,虽然本发明的特定实施例在这里清楚示出和描述为方法, 但是应理解一种类型的实施例的讨论通常也可以扩展到其它实施例类 型。例如,方法的描述也有助于描述设备、所配置的媒体和方法产品。 对一个实施例的限制无需解读到另一实施例。
例如,从消费者104的角度、Flash开发人员的角度、网站卖主的角 度或分析服务提供商136的角度来看,本发明的操作和/或其它使用是有 效的,但是为了简明,这里的焦点通常集中在用户或开发人员的角度 上。然而,卖主、分析服务提供商或其它实体所执行的相应步骤和/或方法也落入本发明的范围之内。因此,附图标记202既指接收呈现(用 户/开发人员角度)也指发送呈现(开发人员/卖主角度)。同样,附图 标记210既指发送呈现分析数据(用户/开发人员角度)也指接收这样的 数据(分析服务提供商/卖主角度)。
所记载的所有权利要求作为说明书的一部分并且因而帮助描述本 发明,并且重复的权利要求语言可以按照需要插入权利要求之外,而 不违背禁止新主题。诸如"一"和"该"的术语包括一个或多个所指 示的项目或步骤。在权利要求中,在存在/执行所述项目或步骤的情况 中没有明确指示其是可选的情况下,对于项目的引用意味着存在至少 一个这样的项目,并且对于步骤的引用意味着执行步骤的至少一个实 例。这里所提供的标题仅是出于便利;关于给定主题的信息通常可以 在其标题指示该主题的部分之外发现。
诸如所示出的方法或对应系统的实施例可以省略项目/步骤、重复 项目/步骤、对它们进行区分分组、利用类似项目/步骤对它们进行补充 或者包括给定示例的变化。本领域技术人员使用这里所给出的教导以 及编程语言和工具可容易地提供有助于实施本发明的适当软件,所述 编程语言和工具包括但不限于(除非明确表达需要)ActkmScript代码 以及其它脚本语言、HTML、 XML、 API、 SDK、网络协议堆栈、汇编 语言、固件、微代码、编译器、调试器和/或其它语言和工具。
虽然该文档包括至少一个网站地址,但是这样的地址和因而所寻 址的站点上的素材仅作为背景和/或示例提供以帮助说明本发明。该文 档并未通过引用而从那些网站合并任何实质性素材。
这里所讨论的实施例是本发明原理的说明性应用。可设计多种修 改和替代实施例而并不背离本发明的精神和范围。
权利要求
1. 一种能够独立于网页脚本进行操作的呈现分析引擎(144),包括数据捕捉代码(146),其用于捕捉(206)反映呈现中的用户(104)动作的呈现分析数据;数据结构生成代码(148),其用于动态生成(208)格式化的呈现分析数据结构的至少一部分;和数据发送代码(150),其用于向分析服务器发送(210)所述数据结构;其中所述呈现分析引擎的特征进一步在于它不依赖于任何getURL()或FSCommand调用来将所捕捉的呈现分析数据传送给嵌入在网页(128)中的脚本(132),并且也不依赖于嵌入在网页中的任何呈现分析脚本。
2. 如权利要求l所述的引擎,进一步包括以下的至少一个自动 跟踪代码(154)、视f分析覆盖报告代码(156)。
3. 如权利要求l所述的引擎,与存储在以下的至少一个中的唯一 访问者ID (140)相结合浏览器cookie、本地共享对象、传输报头。
4. 如权利要求1所述的引擎,其中所述数据发送代码(150)包 括以下的至少一个进行图像请求的代码、进行GET请求的代码、进 行POST请求的代码、进行端口 80请求的代码、进行FTP请求的代码、 向共享文件写数据的代码、向共享存储器写数据的代码。
5. 如权利要求1所述的引擎,其中所述引擎(144)包括 ActionScript代码。
6. 如权利要求l所述的引擎,与包括ActionScript对象(116)的多媒体呈现(106)相结合。
7. 如权利要求l所述的引擎,与以下相结合web浏览器(126);显示在所述浏览器中的网页(128);和嵌入在所述网页中的脚本代码(132),以捕捉反映在所述呈现之外在所述网页中的用户动作的网页 分析数据;并且其中所述引擎不具有用于将呈现分析数据与所述网页 的嵌入脚本代码进行同步的代码。
8. 如权利要求7所述的引擎,其中所述网页的嵌入脚本代码(132) 包括以下的至少一个JavaScript代码、VBScript代码。
9. 如权利要求l所述的引擎,与分析服务器(136)相结合。
10. 如权利要求1所述的引擎,与包含用于导入所述引擎的代码 (158)的多媒体呈现(106)相结合。
11. 一种ActionScript呈现分析引擎(144),包括 数据捕捉代码(146);其用于捕捉(206)反映呈现(106)中的至少一个ActionScript对象(116)的用户激活的ActionScript呈现分析数 据;和数据发送代码(150),其用于发送(210)所捕捉的ActionScript 呈现分析数据的至少一部分;其中所述引擎(144)不依赖于所述呈现(106)中的任何特定于 对象的用户动作跟踪代码来捕捉所述ActioiiScript呈现分析数据。
12. 如权利要求ll所述的引擎,其中所述引擎也不依赖于任何 getURL()或FSCommand调用来发送(210)所捕捉的ActionScript呈现分 析数据。
13. 如权利要求11所述的引擎,其中所述数据发送代码(150)发送(210)反映以下的至少一个的分析数据用户页面浏览活动、用 户链接跟随活动、用户剪辑浏览活动、用户按钮按压活动、用户回放 完成百分比、呈现闪现计数。
14. 如权利要求11所述的引擎,与呈现播放器(114)相结合, 所述呈现播放器(114)与所述呈现相兼容并且提供与所述至少一个 ActionScnpt对象的用户(104)交互。
15. 如权利要求14所述的引擎和播放器的组合,其中以下的至少 一个有效所述播放器(114)包括Flash呈现播放器;所述播放器(114) 包括Flex呈现播放器;所述播放器(114)包括到web浏览器(126) 的插件;所述呈现(106)至少部分地嵌入在网页(128)中;所述呈 现(106)至少部分地存储在非易失性可移动的计算机可读存储介质(112)上;所述播放器(114)运行在计算机上;所述播放器(114) 运行在手持设备上。
16. —种用于独立地跟踪ActicmScript呈现活动的方法,包括 在设备(102)上接收包含ActionScript对象(116)的多媒体呈现(106);捕捉(206)反映用户(104)与所述多媒体呈现(106)的ActionScript 对象的交互的呈现分析数据;和 发送(210)呈现分析数据;其中所述方法的操作不依赖于以下的每一个或全部getURL()或 FSCommand调用、嵌入在网页中的JavaScript代码、嵌入在网页(128) 中的VBScript代码。
17. 如权利要求16所述的方法,其中所述发送步骤(210)包括 以下的至少一个进行图像请求、进行GET请求、进行POST请求、 进行端口80请求、进行FTP请求、向共享文件写数据、向共享存储器 写数据。
18. 如权利要求16所述的方法,其中所述方法的操作不依赖于以下的每一个或全部getURL()或FSCommand调用、嵌入在网页(128) 中的JavaScript代码、嵌入在网页(128)中的VBScript代码、所述多 媒体呈现(106)中的特定于对象的用户动作跟踪代码。
19. 如权利要求16所述的方法,进一步包括以下的至少一个自 动跟踪(212)用户与所述多媒体呈现的交互、提供(214)关于用户 与所述多媒体呈现的交互的视觉分析覆盖报告。
20. 如权利要求19所述的方法,进一步包括 在所述设备上接收(216)具有所嵌入的web跟踪机制的网页; 利用所嵌入的web跟踪机制捕捉(220)反映用户与所述网页的交互的web分析数据;向分析服务器(136)发送(222) web分析数据。
21. 如权利要求20所述的方法,其中向分析服务器发送(222) web分析数据的所述步骤关联于相^的访问者ID对其进行发送,并且 发送(210)呈现分析数据的所述步骤关联于相同的访问者ID向所述 分析服务器发送该数据,而无需在执行所述web分析步骤的代码和执 行所述呈现分析步骤的代码之间进行通信。
22. 如权利要求16所述的方法,进一步包括在所述设备动态生成 (208)包含呈现分析数据的数据结构。
全文摘要
提供了独立于网页中所使用的嵌入JavaScript web分析代码而支持诸如Flash或Flex分析之类的呈现分析的工具和技术。可在ActionScript中实现的呈现分析引擎包括用于捕捉与多媒体呈现的用户交互相关的信息(146)的代码,用于动态生成反映所捕捉信息的字符串(148)或其它数据结构的代码,以及用于不使用getURL()调用或所嵌入的JavaScript而将所述数据结构(150)发送到分析服务器的代码。还提供了用于追踪对象不需要特定于对象的代码(154)的功能,用于动态发送这样的跟踪信息(156)的功能,以及用于支持说明这样的信息(152)的视觉呈现分析覆盖报告。Flash呈现分析可以使用与标准的JavaScript分析相同的访问者ID,而无需对两种分析代码进行同步。
文档编号G06F15/00GK101454764SQ200780014724
公开日2009年6月10日 申请日期2007年2月1日 优先权日2006年4月25日
发明者斯蒂芬·哈蒙德 申请人:奥姆尼图雷有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1