CN105164662A - 用于动态地改变可见页面内容的方法覆盖的使用 - Google Patents

用于动态地改变可见页面内容的方法覆盖的使用 Download PDF

Info

Publication number
CN105164662A
CN105164662A CN201480025071.5A CN201480025071A CN105164662A CN 105164662 A CN105164662 A CN 105164662A CN 201480025071 A CN201480025071 A CN 201480025071A CN 105164662 A CN105164662 A CN 105164662A
Authority
CN
China
Prior art keywords
user terminal
data
described user
programmed instruction
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201480025071.5A
Other languages
English (en)
Inventor
乔舒亚·R·马尼恩
乔舒亚·C·古德温
威廉·M·拉蒂默
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ensighten Inc
Original Assignee
Ensighten Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/843,849 external-priority patent/US20130290480A1/en
Application filed by Ensighten Inc filed Critical Ensighten Inc
Publication of CN105164662A publication Critical patent/CN105164662A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

标签/内容管理系统将定制的内容和/或程序指令分发到用户终端。系统可分发几组程序可执行指令,包括对由客户服务器控制的所有web域全局的指令和网页/网页组特定的指令。程序指令和/或内容也可基于一个或多个条件的评估被分发到用户终端,所述一个或多个条件包括与用户终端的位置、各种HTTP头字段、在由用户终端访问的网页中的特定HTML对象的存在和用户终端的屏幕分辨率等有关的条件。

Description

用于动态地改变可见页面内容的方法覆盖的使用
本申请是要求2013年3月15日提交的美国专利申请序列号13/843,849(律师档案号007662.00019)的优先权的国际申请,13/843,849是2011年11月28日提交的美国专利申请序列号13/305,282(律师档案号007662.00007)的部分继续,13/305,282是2010年1月11日提交的题目为“EnhancedDeliveryofContentandProgramInstructions”的美国申请序列号12/685,268(律师档案号007662.00002)的部分继续,所有前面提到的申请都通过引用全部被并入本文。
相关申请的交叉引用
本申请涉及2012年7月20日提交的美国专利申请序列号13/554,603(律师档案号007662.00016),13/554,603是2011年12月29日提交的美国专利申请序列号13/340,582(律师档案号007662.00009;现在是美国专利8,261,362)的继续,13/340,582要求2010年12月30日提交的美国临时申请序列号61/428,560(律师档案号007662.00005)——包括其同时提交的附件——的优先权利益,所有前面提到的申请都通过引用全部被并入本文。
技术领域
本公开的方面通常涉及基于条件逻辑将内容和/或程序指令分发到用户终端。特别是,本公开的各种方面包括基于很多标准——包括用户终端的IP地址、从用户终端请求的信息和/或其它标准——定制被分发到用户终端的程序指令/内容。
背景
通常用超文本标记语言(HTML)编写网页。它们使用包括由尖括号围绕的“标签”的HTML元素被编写;在标签中的信息告诉web浏览器如何解释HTML元素(例如作为文本,用于将图像插入网页内,用于运行脚本,等等)。这些标签除了别的以外还包括或可加载用语言例如JavaScriptTM写的脚本。
同时,web分析是一个领域,其中关于消费者的数据被收集并为了各种目的而被分析。为了得到用于web分析的数据,一个群体的用户访问网页和/或启动使某些程序指令被执行的应用。通常,通过各种机制收集数据以进行web分析,包括cookie的设置和/或通过运行在HTML文档中的脚本。脚本可执行各种功能,包括从文档对象模型(COM)抓取变量和/或将图像请求发送回到在内部或在外部托管的数据收集服务器。
用于web分析的程序指令通常由各种供应商——包括OmnitureTM、GoogleTM、YahooTM和WebtrendsTM等——创建和运行,以便能够捕获数据,例如网页加载时间、“鼠标移过”(即在网页上的特定对象之上移动鼠标)和页面请求方的IP地址。中等复杂度网页可包括参考在由不同的供应商管理的服务器上运行的计算机脚本的5-10个标签。
当与组织相关的销售人决定她想要改变代码以测量并分析不同的特征时,过程常常是冗长乏味和挑战性的。在很多情况中,为了执行这个更新,销售人必须创建在程序指令中的新定制变量,定义新变量是什么,并规定修改的代码必须为网页捕获什么数据。因为销售人在如何执行这些修改方面通常不是熟练的,她必须与她的信息技术(IT)部门或其它类似的机构相互配合。有时,甚至IT部门也可能不充分理解web分析程序指令以正确地修改代码,特别是假定无数web分析供应商、广告客户、调查研究者和销售人都有他们自己的用于实施数据的收集用于分析的定制计算机代码。在其它情况中,IT部门可能没有适当的带宽来修改代码用于按计划(例如对广告活动截止期限等)部署。这些问题只有在客户的网站具有很多页面和/或用于收集关于用户的各种数据的很多不同类型的程序指令时才加重。
简要概述
根据前述背景,下文介绍了本公开的简化概述,以便提供对本发明的一些方面的基本理解。该概述并不是本发明的广泛概述。并不意欲识别本发明的关键或重要元件或描绘本发明的范围。下面的概述仅仅介绍以简化形式的本发明的一些概念作为下面提供的更详细描述的序言。
本公开的方面通过公开用于基于预定条件有系统地管理程序指令和内容的分发的方法、计算机可读介质和装置来处理上面提到的一个或多个问题。
在本公开的另一方面中,程序指令的分发可基于与所接收的数据、位置、时间和其它因素有关的预定规则。
可在具有执行本文所述的一个或多个过程步骤的计算机可执行指令的计算机可读介质中提供本发明的方面。
该概述被提供来引入下面在详细描述中进一步描述的以简化形式的一系列概念。该概述并不意欲识别所主张的主题的关键特征或本质特征,它也不意欲用于限制所主张的主题的范围。
附图的简要说明
本发明作为例子被示出且在附图中并不被限制,其中相似的参考数字指示相似的元件,且其中:
图1示出例证性操作环境,其中本公开的各种方面可被实现。
图2是可用于实现本公开的某些方面的过程和功能的工作站和服务器的例证性方框图。
图3示出根据本公开的某些方面的在网络中操作的标签/内容管理系统。
图4示出根据本公开的某些方面的用于使用标签/内容管理器程序来执行全局和页面特定代码的流程图。
图5示出根据本公开的某些方面的用于将页面特定代码分发到标签管理系统的流程图。
图6示出根据本公开的某些方面的用于产生标签/内容管理器的流程图。
详细描述
如上所述,存在与用于捕获用于在诸如web分析的领域中使用的数据的程序指令的分发和/或定制的内容到个人的分发相关的问题。需要部署内容和程序可执行指令的更系统化的方法来避免涉及当前的方法工作的方式的错误/时延。
根据本公开的各种方面,公开了方法、计算机可读介质和装置,其中实体管理为每个个人和/或网页定制的内容和程序指令的分发。这个实体(例如web咨询公司)可使用本公开的方面来将定制的内容/指令路由到web浏览器和/或其它计算机应用。通常,本公开的方面可用于操纵现有的对象并将新对象添加到网页。在这个上下文内,对象可包括在网页上的可见和非可见元素。作为内容/指令分发工具的部分,前端用户界面可便于非技术用户描述和实现对象创建和操纵。为了提供这些服务,实体可利用内部和外部计算和存储能力。被分发到web浏览器和/或其它应用的程序指令的一个例子包括与当用户终端访问客户网页时发起web分析数据的捕获有关的那些应用。这个所收集的数据可包括所访问的网页的名称、网页的下载时间、网页的cookie的设置和鼠标在网页上的特定对象之上的移动(即“鼠标移过”)。此外,内容例如广告、修改的图像、按钮和其它图形可通过这个服务针对特定的用户进行定制。
本公开的某些实施方式考虑内容/标签管理系统/方法/程序指令可执行指令,其以作为单个标签被插入并参考JavaScriptTM文件的单行计算机代码被引用。在JavaScriptTM文件中的程序指令的执行可负责所有标签管理、更新、配置变化和客户可能希望执行的任何其它定制化。可从客户网站移除第三方供应商以允许管理员承担在正确的时间分发正确的程序指令/内容的责任。
在本公开的各种实施方式的下面的描述中,参考形成其一部分的附图,且其中作为例证示出本公开可被实施的各种实施方式。应理解,可利用其它实施方式且可做出结构和功能修改。
图1示出可根据本公开的例证性实施方式使用的在通信系统100中的标签/内容管理器101(例如计算机服务器)的方框图。管理器101可具有用于控制管理器101及其相关部件——包括RAM105、ROM107、输入/输出模块109和存储器115——的总操作的处理器103。
I/O109可包括麦克风、小键盘、触摸屏和/或手写笔(通过其,设备101可提供输入)并且也可包括用于提供音频输出的扬声器和用于提供文本、视听和/或图形输出的视频显示设备中的一个或多个。软件可存储在存储器115中以向处理器103提供用于使管理器101能够执行各种功能的指令。例如,存储器115可存储由管理器101例如操作系统117、应用程序119和相关数据库121使用的软件。处理器103及其相关部件可允许管理器101运行一系列计算机可读指令以根据管理器接收的请求的类型来部署程序。例如,如果客户请求用于捕获用于完整的会话重放的鼠标运动的程序指令被执行,则当那个用户访问客户的网站时,管理器101可将适当的指令传输到用户的计算机。
管理器101可在支持到一个或多个远程计算机例如终端141和151的连接的联网环境中操作。终端141和151可以是包括上面关于管理器101所述的很多或所有元件的个人计算机或服务器。可选地,终端141和/或151可以是与管理器101一起或远离管理器101定位并由管理器101访问的“云”计算环境的部分。在图1中描绘的网络连接包括局域网(LAN)125和广域网(WAN)129,但也可包括其它网络。当在LAN联网环境中使用时,管理器101通过网络接口或适配器123连接到LAN125。当在WAN联网环境中使用时,服务器101可包括调制解调器127和用于通过WAN129例如互联网131建立通信的其它装置。将认识到,所示网络连接是例证性的,且可使用建立在计算机之间的通信链路的任何其它装置。可假设各种公知的协议中的任一个例如TCP/IP、以太网、文件传输协议(FTP)、超文本传输协议(HTTP)等的存在。
此外,由根据本公开的例证性实施方式的管理器101使用的应用程序119可包括用于调用与分发程序指令和/或内容有关的功能的计算机可执行指令。
计算机设备101和/或终端141或151也可以是包括各种其它部件例如电池、扬声器和天线(未示出)的移动端子。
本公开可对很多其它通用或专用计算系统环境或配置操作。可适合于与本公开一起使用的公知的计算系统、环境和/或配置的例子包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子设备、网络PC、小型计算机、大型计算机和包括上述系统和设备中的任一个的分布式计算环境等。
可在由计算机执行的计算机可执行指令例如程序模块的一般上下文中描述本公开。通常,程序模块包括执行特定任务或实现特定的抽象数据类型的例程、程序、对象、部件、数据指令等。也可在分布式计算环境中实施本公开,在分布式计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机存储介质中。
参考图2,示出用于实现根据本公开的方法的例证性系统200。如所示,系统200可包括一个或多个工作站201。工作站201可以是本地的或远程的,并由一个或多个通信链路202连接到计算机网络203,计算机网络203经由通信链路205链接到标签/内容管理器204。在某些实施方式中,工作站201可以是用于存储和分发客户特定程序指令的不同存储/计算设备,或在其它实施方式中,工作站201可以是用于访问客户网站和/或执行客户特定应用的用户终端。在系统200中,管理器204可以是任何适当的服务器、处理器、计算机或数据处理设备或其组合。在整个这个公开中,标签/内容管理器204将用于参考存储用于标签/内容管理的程序指令和标签/内容程序指令本身的服务器/终端。
计算机网络203可以是任何适当的计算机网络,包括互联网、内联网、广域网(WAN)、局域网(LAN)、无线网络、数字用户线(DSL)网络、帧中继网络、异步传输模式(ATM)网络、虚拟专用网(VPN)或任何这些网络的任何组合。通信链路202和205可以是适合于在工作站201和服务器204之间通信的任何通信链路,例如网络链路、拨号链路、无线链路、硬连线链路等。
在附图中遵循的步骤可由图1和2中的一个或多个部件和/或其它部件——包括其它计算设备——实现。
图3示出根据本公开的某些方面的在网络中操作的标签/内容管理系统。系统300包括用户终端301、客户服务器303和云计算设施305。个人可使用用户终端301来开始基于非浏览器的客户应用(例如Flash应用、内置在AdobeTM集成运行时间(AIR)中的桌面应用)和/或在客户服务器303上浏览网页。客户服务器303(即web服务器)可以是由公司、学校、大学或个人等操作来经由互联网向用户终端301提供产品/服务的计算设备(例如计算设备101)。同时,云计算设施305可代表用于存储和计算的一系列网络资源。标签/内容管理器204可在云305上操作。这些资源可位于客户服务器303的本地或远离客户服务器303的站点。通常,当在云305上需要额外的存储空间时,标签/内容管理器204可“按需”请求空间。
使用户终端301、客户服务器303和云305互连的箭头指示根据本公开的某些实施方式的由网络300执行的方法。该方法可在步骤307开始,在步骤307,用户终端301从客户服务器303请求网页。当接收到这样的请求时,客户服务器303可在步骤309中将网页(例如HTML页面)返回到用户终端301。返回到用户终端301的HTML网页可包括引用在云305内的标签/内容管理器204的位置的标签语句。示例标签语句可如下:
<scriptsrc="//INSERTPATHOFTAG/CONTENTMANAGERFORCLIENT
"type="text/javascript"></script>
(A)
当然,这个标签的变形可能由于各种原因是可能的;例如,所引用的脚本可以不用JavaScriptTM编写,网站可能需要安全的连接(例如经由HTTPS://),等等。注意,上面的代码行可参考特定客户web服务器的标签/内容管理器204。例如,与FOX新闻网站比较,对于CNN网站,不同的JavaScriptTM程序可存在于云305上。在其它实施方式中,相同的标签管理器204可用于所有web域。
在(A)中所示的标签行可被置于由用户终端301访问的特定网页的HTML源文件的头部、主体、脚注或这些位置的组合中。在某些实施方式中,在(A)中所示的标签行可被置于头部中以允许标签行在由用户终端301访问的网页的加载期间的早期阶段执行。通常,当对网页的请求由用户终端301做出时,整个HTML页面可被下载到终端301。然后在用户终端301的浏览器内的分析程序可通过使用在文档对象模型(DOM)中描述的分级HTML结构将HTML文件的每个元素(头部、主体、脚注)解析成文档对象。一旦被解析,HTML文件的文档对象就可通过编程被快速和容易访问。
当在(A)中的代码执行时,该方法然后移动到步骤311,其中用户终端301可从云305请求标签管理器程序204。如果标签管理器程序204用JavaScriptTM(即客户端侧脚本)被编写,则程序204可被下载到用户终端301的存储器115内。一旦被下载到用户终端301上,管理器程序204就可对各种应用执行,包括用于web分析目的的数据收集、内容分发等。这个标签/内容分发方法可以可选地移动到步骤313,其中标签管理器程序204可请求由用户终端301查看的特定网页所特有的程序可执行指令。如果网页特定指令存在于云305上,则这些指令也可被下载到用户终端301的存储器115内用于执行。标签/内容管理器程序204和页面特定指令(如果它们存在)都可存在于云计算设施305上的单独位置处。
在一个实施方式中,在步骤313中的页面特定代码的请求可涉及两步骤过程。在第一步骤中,标签管理器程序204可从云305请求PHP、Perl、Python、C等文件。所请求的文件可随后用于向用户终端301动态地产生JavaScriptTM程序。这个两步骤过程可帮助确保页面特定JavaScriptTM指令被正确地发送到适当的用户终端301并在适当的用户终端301上被执行。
图4示出根据本公开的某些方面用于使用标签/内容管理器程序204来执行全局和页面特定代码的流程图。标签管理器程序204可包括“转换能力”,其将允许通用程序指令被分发到用户终端301用于特定的数据收集/分发需要。例如,如果两个供应商使用不同的程序指令来收集关于鼠标移动的数据,则在标签管理器204内的“转换能力”可产生可被这两个供应商理解/使用的通用程序指令。标签管理器程序204也可包括对象,其包括以正确的顺序添加并执行来自第三方供应商的程序指令的方法。这些对象也可包括确保来自第三方供应商的指令不运行多于一次的方法。标签管理器程序204可以用跨浏览器兼容方式公开这些方法。
在常规JavaScriptTM实现中,try-catch语句常常用于防止对网页上的其它JavaScriptTM的干扰,使得如果在页面加载期间调用的脚本过早地运行或发生故障(例如当在方法库中的方法在该库完成加载之前被调用时,等等),则用户终端305将不崩溃。根据本公开的方面,一些实施方式通过包括需要只在其它方法被加载或其它重要事件(解析、DOM的加载)出现之后执行的方法的功能来消除对try-catch“应急措施”的需要。通过基于已经被加载的供应商特定库对方法的一系列回调,标签管理器程序204确保程序指令不过早地执行或发生故障。此外,方法被执行的顺序可由用户配置。例如,用户可规定与哪个方法可能需要被执行有关的事件。可选地,用户可指定方法相对于彼此被执行的顺序。客户可通过标签/内容管理器204的界面规定这些方法的执行的顺序。标签管理器程序204还包括可允许程序指令基于当网页被用户终端301请求时出现的重要事件而被分发/执行的对象。例如,当请求网页时,可在HTML文件内的文档对象由web浏览器解析之后执行程序指令。此外,可在文档对象由web浏览器加载之后执行程序指令。标签管理器程序204可“侦听”这些事件并在接收到事件已出现的确认之后执行程序指令。
作为另一例子,考虑已完成电子商务交易的个人,客户303希望在特定的网页上跟踪该电子商务交易。为了执行这个任务,web分析代码可能需要某些变量是来自/到网页的变量;否则代码可能不能够收集必要的数据。例如,如果web分析代码在总订单值由电子商务引擎产生之前执行,则web分析代码可遗漏订单。为了防止这样的情形,标签管理器204可实现确保程序指令以正确的顺序并在正确的时间执行的功能。如早些时候提到的,可以用可由客户控制的顺序执行程序指令。
一旦用户终端301请求标签管理器程序204且管理器程序204由在用户终端301上的浏览器解析,在图4中的方法就在步骤401开始,在步骤401中,被下载到用户终端301的标签管理器程序204可执行对落在被访问的客户web服务器的权限下的所有web域是全局的程序指令。在一些实施方式中,标签管理器204可从在云305上的单独位置请求全局代码。在其它实施方式中,全局代码可直接插入标签管理器204内。然后该方法可移动到步骤403,其中标签管理器程序204向“服务器部件”413请求针对由用户终端301请求的统一资源定位符(URL)的页面特定指令。服务器部件可以是存在于计算云305内或与计算云305分离的服务器(例如工作站201、计算设备101等)。“服务器部件”可在步骤405中确定对请求的URL是否存在页面特定指令。如果服务器部件确定对所请求的URL没有页面特定指令存在,则该过程可在步骤407结束。可选地,如果服务器部件确定对所请求的URL存在页面特定指令,则标签管理器程序204可在步骤409中请求相关页面特定代码。一旦标签管理器204接收到页面特定代码,代码就可在步骤411中在用户终端301上执行(在浏览器解析从代码产生的新文档对象之后)。如早些时候提到的,应注意,可向在云305上的服务器部件413请求页面特定内容(例如修改的图像、HTML文本等),正如页面特定代码一样容易。
图5示出根据本公开的某些方面用于允许服务器部件将页面特定代码/内容(如果代码/内容存在)传递到标签服务器204的流程图。该方法在步骤501开始,在步骤501,标签管理器501可将对页面特定代码/内容的请求发送出到云305上的服务器部件413。基于客户和被请求的URL的识别,服务器部件413然后可在步骤503中访问并解析对特定的客户的使URL与它们的适当JavaScriptTM文件关联的文件。在步骤505中,基于在关联文件中的信息,服务器部件413可接着确定针对请求的URL是否有任何页面特定代码。如果没有页面特定代码,则过程在步骤507中结束。如果有页面特定代码,则代码在步骤509中返回到标签管理器204。
如早些时候提到的,应注意,可以用服务器侧脚本语言例如PHP编写在服务器部件413上运行的可执行代码。服务器侧(而不是客户端侧)脚本语言例如PHP的使用确保当服务器部件413被调用时,代码实际上在服务器部件413本身上运行。被执行的代码的结果(JavaScriptTM文件)可接着被发送回到标签管理器程序204。同时,可以用标记语言例如XML编写包含用于由标签管理器204和/或服务器部件413使用的数据的文件。
图6示出根据本公开的某些方面用于产生标签/内容管理器程序204的流程图。如早些时候提到的,标签/内容管理器204可用于各种应用,包括用于web分析、用于个人化内容分布、用于定向广告活动的数据的收集,以收集关于公司的软件产品的使用的数据,等等。为了执行这些功能,标签/内容管理器程序204可能需要知道对于每个客户303用于将可执行指令分发到用户终端301的“规则”。这些“规则”可基于特定客户303的需要。例如,在线零售商可能对记录关于在为用于出售的产品做广告的特定网页上的鼠标运动感兴趣以估计对那些产品的兴趣的水平并用于帮助确定未来的提议。另一方面,新闻网站可能对所显现的每个文章的页面加载的数量感兴趣,使得特定的文章可能在网站上是更多访问的。仍然进一步地,这些客户303中的任一个可能希望向请求客户303的用户终端301显现个人化内容(例如特定的新闻文章、针对出售的本地流行的文章)。
规则还可包括对只在其它部分被正确地加载以避免在网页的加载中的错误之后才分发某些程序指令的需要。例如,一些规则可简单地从某些供应商加载JavaScriptTM库用于由其它规则使用。其它规则需要只在HTML文件中的头部、主体和/或脚注中的程序指令的执行。最后,标签管理器204可通过被直接包括在管理器204中的程序指令和/或通过管理器204访问的程序/数据(例如页面特定代码文件、页面关联XML文件等)来合并所有这些规则的复杂化。
因此,图6中的方法可在步骤601以实体理解客户需要并收集现有的客户标签以执行来自第三方供应商的程序指令开始。这个实体可负责标签管理器204的创建和发展。基于这些需要,实体可接着在步骤603中使这些需要在“规则文件”中形式化,规则文件详述对问题例如客户想要在他的网站上收集什么类型的数据(鼠标移过、页面加载等)、是否存在任何页面特定规则、规则是否在重要事件(DOM解析、其它规则的执行等)完成时被执行等的答案。可在任何文本编辑器——包括XML编辑器——中创建这个“规则文件”。可选地,客户可通过标签/内容管理器204的用户界面通过将代码写到界面中的预定区域内或通过使用通过用户界面被访问的自动代码生成机制来直接规定规则。界面/后端可接着产生规则的相关JavaScriptTM而不需要手动客户干预。一旦所有规则被规定(通过无论哪个过程),后端就可产生代码生成器的XML文件以处理。以这种方式,XML规则文件可用作从容易理解的规则到可作为程序指令被执行的计算机语言特定代码的转换。
最后,存在于与实体相关的计算设备100的存储器115中的代码生成器程序可在步骤605中将形式化规则整理成程序可执行指令(即成脚本例如JavaScriptTM、PHP等)。代码生成器程序可使用“规则文件”来产生标签管理器程序204和由标签管理器程序204使用的页面特定代码文件。此外,代码生成器可产生使客户URL与当用户终端301试图访问URL时应运行的程序文件的名称关联的数据。在一些实施方式中,标签/内容管理器204也可在非浏览器应用中管理数据的收集和/或内容的分布。例如,用AdobeTM集成运行时间(AIR)、AdobeTMFlex、AdobeTMFlash、C/C++、JavaTM和/或移动平台的应用如iPhoneTM、AndroidTM、WindowsMobileTM和/或BlackberryTM构建/编写的桌面应用可请求标签/内容管理器204下载并执行来自云305的程序指令的库。程序指令的库的执行又可使请求传输到负责创建标签管理器204的实体,请求描述在Flash应用内部应完成什么的规则。除了执行跟踪/分析以外,这个范例可导致与web解决方案相关的所有功能(例如创建并修改在Flash应用内的元素等)。这个范例也可导致基于在应用内的各种事件(例如在文档的“自动保存”、新文档的打开等)在应用运行时间期间动态地加载配置的能力。例如,在Flash应用中,除了加载规则文件以外,系统也可请求关于如何对特定的事件做出响应的额外指令。可基于一些预定逻辑、现有数据片或在请求中由应用提供的数据在请求时动态地产生这些指令。
在某些方面中,服务器部件413可包括/访问控制计算机可读程序指令和/或内容何时应被发送到用户终端301的可执行指令。用于部署计算机可读程序指令的条件逻辑可包括设计成对于给定情形定制这些指令的部署的一个或多个简单和/或复杂的条件。例如,如前面提到的,计算机可读程序指令可基于用户终端301所访问的URL(例如由客户服务器303托管的网页)被发送到用户终端301。
服务器部件413也可分析URL的组成部分以决定哪组程序指令应被发送到终端301。例如,考虑示例URLwww.host.com/path/path/file.html?query1=value1&query2=value2#hash。URL的组成部分包括主机(www.host.com)、路径(/path/path)、文件(file.html)、查询参数(query1=value1,andquery2=value2)和井号部分(#hash)。当这些字段中的任一个、这些字段中的多于一个或所有这些字段与一个或多个预定值匹配时,服务器部件413可以给用户终端301发送给定的一组计算机可读程序指令和/或内容。可以用各种方式匹配URL的每个组成部分。在一个例子中,可做出涉及确定一个或多个字段的字符串是否匹配预定值的表达式(例如doeswww.host.com=www.host.com)的直接比较。在另一例子中,可做出涉及正则表达式(例如用于根据特定的语法规则和/或模式来匹配一组字符串的表达式)(例如www\..+\.com=www.[anystringofcharacters].com?)的检查。本领域中的普通技术人员在回顾本文公开的整体之后将认识到,服务器部件413可支持涉及正则表达式及其相关元字符的任何数量的计算语言。
作为例子,考虑一种情况,其中管理标签管理器程序204的实体(例如web分析公司等)的客户希望分发两个不同的URL(例如www.example.com和example.com)的相同的页面特定指令/内容。在这种情况下,URL的主机部分可被定义为包括www.example.com和example.com的正则表达式(例如REGEXP:^(?:www.)?example.com$)以部署预定的一组页面特定指令。
服务器部件413也可基于被传递到服务器部件413的特定数据将计算机可读程序指令/内容分发到给定用户终端301作为正规HTTP请求的部分(例如在图4中的步骤403)。特别是,可使用上面讨论的两种比较技术(例如直接比较和涉及正则表达式的那些比较)来匹配各种HTTP头部。例如,在HTTP头部中的用户-代理、cookie和/或referrer字段(例如规定被访问的最后一个网页用户终端301)可与一些预定值匹配以确定给定的一组程序指令/内容是否应被分发到用户终端301。本领域中的普通技术人员在回顾本文公开的整体之后将认识到,任何数量的HTTP头字段可被匹配以确定程序指令/内容的分发。可在http://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Requests处找到HTTP头字段的部分列表,其通过引用被全部并入本文。本领域中的普通技术人员在回顾本文公开的整体之后将认识到,可关于本公开使用这些或其它字段中的任一个。
例如,考虑一个例子,其中当给定的客户服务器303由与用户终端301上的标准浏览器对比的移动浏览器访问时,用户终端301应接收不同的程序指令。管理客户服务器303的客户可确定这是必要的,以便分发用于移动浏览器的一组更少或更多兼容的程序指令,连同其它原因。在一种情形中,服务器部件413可访问确定URL何时由移动浏览器用户代理例如iPhoneTM浏览器访问的页面特定指令。在这个例子中,服务器部件413可特别将JavaScriptTM定向到iPhone浏览器。将特定的程序指令定向到特定类型的移动浏览器的这个能力可能是有用的,因为这些浏览器中的一些可能不支持标准浏览器同一类型的JavaScriptTM或数据收集方法。
在另一例子中,假设在HTTP头部中的referrer字段用于向用户终端301提供给定的一组程序指令/内容。也假设referrer字段识别管理客户服务器303的客户的竞争者。在这种情形中,基于特定竞争者的所访问的网站,服务器部件413可为管理客户服务器303的客户将特定的内容分发到用户终端301。例如,服务器部件413可分发可解释它的产品优于在HTTP头部的referrer字段中识别的竞争者的产品的益处的内容(例如定制的弹出窗口)。在另一例子中,新闻网站可能对所显现的每个文章的页面加载的数量感兴趣,使得流行的文章可以是在网站上更多访问的。仍然进一步地,这些客户303中的任一个可能希望向请求客户303的用户终端301显现个人化内容(例如特定的新闻文章、用于出售的本地流行的文章)。
如早些时候提到的,标签/内容管理器204可用于各种应用,包括用于web分析、用于个人化内容分布、用于定向广告活动的数据的收集,以收集关于公司的软件产品的使用的数据,等等。为了执行这些功能,标签/内容管理器程序204可能需要知道对于每个客户303用于将可执行指令分发到用户终端301的“规则”。这些“规则”可基于特定客户303的需要。
在其它方面中,可基于可存在于位于用户终端301上的浏览器的数据将程序指令/内容传输到用户终端301。与管理标签管理器程序204的实体相关的计算设备可运行在最终用户的浏览器中的计算机可读程序指令(例如JavaScriptTM)以收集这个数据。当收集这个数据时,这个计算设备可以用各种方式中的任一个取回并执行更多的计算机可读程序指令。
在第一实施方式中,检查在与用户终端301相关的浏览器中收集的数据是否匹配一个或多个预定条件所必需的计算机可读程序指令可与对程序指令的初始请求一起(例如与对标签管理器程序204和/或来自由服务器部件413传输的页面特定指令的初始请求一起)被发送到浏览器。如果对条件的匹配被找到,则与管理标签管理器程序204的实体相关的处理器可请求相应于所匹配的条件的程序指令/内容。以这种方式,可在用户终端301上执行程序指令,其可导致与管理标签管理器程序204的实体相关的计算设备做出在正常过程之外的请求(例如在对标签管理器程序204的请求和通过服务器部件413对页面特定指令的请求之外)。
为了说明这个第一实施方式,考虑一种情形,其中与客户服务器303相关的客户希望跟踪与用户终端301相关的用户何时在与客户服务器303相关的网页上成功地完成事件(例如填写用于注册账户的表格,等等)。在这个情形中,当与用户终端301相关的用户完成表格时,预定的一条数据(例如HTML对象等)可被添加到网页。当HTML对象被产生时(例如当在用户终端301上的web浏览器确定表格已完成时),用户终端301可将表格完成事件报告回到与管理标签管理器程序204的实体(例如web分析公司等)相关的计算设备。计算设备可接着将预定的一组程序指令/内容返回到用户终端。
在第二实施方式中,可在服务器部件413处执行确定在与用户终端301相关的浏览器中收集的数据是否匹配一个或多个预定条件的检查。如果一个或多个预定条件被满足,则服务器部件413可将预定的响应(例如程序指令、内容等)传输到用户终端301。
为了说明这个第二实施方式,考虑一种情形,其中与客户服务器303相关的客户想要识别与客户相关的哪个web域被用户终端301的用户访问。因为cookie在逐域基础上被设置且只可从cookie被设置的域被访问,则对这个问题的一个解决方案可包括确定当给定网页加载在客户的相关web域上时cookie是否存在的检查。如果cookie不存在,则可对服务器部件413做出请求以确定加载客户网页的用户终端301是否具有在与管理标签管理器204和/或服务器部件413的实体相关的web域上设置的cookie(假设实体只有一个域)。如果为与用户终端301相关的用户找到cookie,则服务器部件413可将cookie值(例如作为JavaScriptTM变量等)传输到用户终端301。一旦被接收,就可在客户web域上设置cookie。如果没有为与用户终端301相关的用户找到cookie,则服务器部件413可将新cookie值传输到用户终端301。以这种方式,数据(例如查询与用户终端301相关的给定用户的cookie是否被设置的消息等)可被发送到服务器部件413,且服务器部件413可执行条件检查以使用用户终端301的用户的预先存在的或新的cookie做出响应。
本领域中的普通技术人员在回顾本文公开的整体之后将认识到,存储与用户终端301相关的web浏览器中的用于匹配各种条件的数据可包括各种事情,包括与基于哪些HTML元素/对象存在于由用户终端301访问的网页上的条件有关的数据和与基于从web浏览器本身收集的信息的条件有关的数据。特别是,与基于哪些HTML元素存在于由用户终端301访问的网页上的条件有关的数据可包括回答问题例如“规定的HTML元素存在?”和/或“规定的HTML元素具有一些特定的特性或一组特性?”连同其它事情。与基于从web浏览器本身收集的信息的条件有关的数据包括用户终端301的屏幕分辨率、由用户终端301使用的JavaScriptTM(或其它计算语言)版本、由用户终端301使用的FlashTM版本等。在一些方面中,HTML元素的所有特性可以是本文讨论的web分析环境(例如基于JavaScriptTM的,等等)可采用的,且因为web浏览器支持新HTML元素类型和特性,新条件可被创建以分析这些元素类型/特性。换句话说,可在创建条件时使用可从用户终端301(例如加载网页、运行iOSTM应用等的设备)收集的任何数据。
作为例子,考虑与客户服务器303相关的客户想要基于存储在用户终端301上的浏览器支持JavaScriptTM的什么版本来发送不同的JavaScriptTM程序指令。如果确定哪个JavaScriptTM版本由浏览器支持的检查揭露JavaScriptTM的较老版本,用户终端301可从服务器部件413请求规定在JavaScriptTM的较新版本中的功能的计算机可读程序指令。这个过程可允许与客户服务器303相关的客户确保JavaScriptTM功能的标准集合在与客户相关的所有网页上是可得到的。
在又一些其它方面中,程序指令/内容可基于从外部数据源获取的数据传输到用户终端301。与管理标签管理程序204的实体相关的计算设备可经由与外部数据相关的应用编程接口(API)从在实体的控制之外的源收集数据。可接着基于外部数据来执行条件匹配,外部数据可包括来自与管理客户服务器303的客户相关的分析工具的数据、来自于管理客户服务器303的客户相关的数据库的数据和来自第三方的数据(例如,如使IP地址与地理位置匹配的第三方应用所确定的最终用户的地理位置)。作为例子,如果将IP范围映射到特定的地理位置的外部数据源被访问,则与管理标签管理器程序204的实体相关的计算设备可将程序指令和/或内容发送到在预定地理区中的用户终端301。
作为另一例子,考虑一种情形,其中与客户服务器303相关的客户希望确定规则被执行多少次。例如,与客户服务器303相关的客户可使用网站优化工具,其测试来确定相同的元件的各种版本是否不同地执行(例如回答位于它们的网站上的“注册”按钮的优选颜色的问题)。因为运行测试以确定对这些类型的问题的答案花费金钱,与客户服务器303相关的客户可计算它们需要多少测试成本来达到统计显著性。与识别测试例如确定与“注册”按钮相关的颜色的规则的次数有关的数据可被存储在外部数据源中。与管理标签管理器程序204的实体相关的计算设备可从外部数据源取回这个数据并可使用该数据来确定用于执行测试的程序指令是否应被发送到用户终端301(例如用于与“注册”按钮相关的颜色的规则是否运行比对统计显著性所需的更少的次数)。
前述方式仅仅是内容/程序指令可基于在位于管理标签管理器程序204的实体处和/或用户终端301本身处的计算设备处评估的一个或多个预定条件(例如请求被做出时的时间、地理区、语言偏好、最大/最小数量的分发实例等)被分发到用户终端301的方式的例证性实施方式。例如,基于时间的条件的例子包括一种情形,其中管理客户服务器303的客户可能想要在传统淡季期间使用在与客户相关的网页上的特殊交易,以便产生更多的销售。作为另一例子,客户可能想要设置被创建来跟踪特定活动的标签的截止日期,使得即使被指派有管理标签的任务的实体忘记它被使用,标签/内容管理系统300也可在活动结束之后停止服务于标签。本领域中的普通技术人员在回顾本文公开的整体之后将认识到在本公开的范围内的程序指令/内容的定制分发的其它方式。
不管是否从web浏览器或非浏览器应用收集数据,在标签/内容管理器204内的程序指令都可便于数据例如鼠标移过、页面加载和鼠标运动的收集。当来自第三方供应商(例如Omniture、Webtrends、Yahoo、Google等)的程序指令基于由代码生成器转换成程序指令的规则而以及时的方式被分发时,数据的收集可出现。所收集的数据也可包括由客户的后端服务器303产生的数据。例如,在管理客户的网页的客户服务器303的本地的内容管理系统(CMS)可产生各种类型的数据(例如,如页面基于什么模板,它花费多长时间来再现页面,等等)。这个解决方案也可便于这种类型的数据的收集。
一旦被收集,数据就可以用两种方式之一被处理。在第一情形中,所收集的数据可简单地按规定路线被发送到适当的第三方供应商(即如果Omniture标签被分发并执行,则从这个标签的执行收集的数据将按规定路线被发送到Omniture服务器)。第三方供应商可接着以它们基于客户需要而选择的方式来处理并分析所收集的数据。
可选地,所收集的数据可按规定路线被发送回云305并存储在云305上用于由云305中的计算资源和/或在监督标签管理器204的创建和发展的组织的本地可用的其它计算资源访问和分析。可通过从调用日志和交易历史收集并存储关于用户终端301的用户的额外数据来补充这个所收集的数据。在这个情形中,在标签/内容管理器204后面的组织可向它的客户303提供甚至更多的价值,因为组织将提供管理和数据分析服务。
数据分析可包括各种技术,包括数据挖掘算法和多元测试。如早些时候建议的,数据分析的输出可被反馈回到系统内以产生新的或修改的规则(且因此产生修改的标签管理器204和/或页面特定代码文件)用于将程序指令和/或内容分发到用户终端301。数据分析的简单例子可包括系统检查来查看是否有加载客户的网页的用户(即返回访问者)的任何记录的能力。例如,假设用户正再次访问具有URLwww.acme.com的网站。首次访问者的标准欢迎消息可被读作“欢迎到www.acme.com”。如果有用户JohnDoe访问了www.acme.com的记录,则欢迎消息可接着被修改为“欢迎回到www.acme.comJohnDoe”。
此外,安全协议(密码、生物统计扫描、运动检测等)可被放置在适当的地方以防止未授权的个人访问并操纵在云305上和/或在与发展并修改标签管理器204的实体相关的其它计算设施上的标签管理器204及其相关助手程序。
产生/修改标签管理器204及其相关部件的实体也可实现前端显示/通信模块以报告所收集的数据的结果,传递在标签/内容管理和分析字段内的最近消息和事件,和/或与包括来自呼叫中心系统的日志、离线销售数据、离线市场销售花费等的其它数据相互配合。前端显示器可允许对通过标签管理器204的实现产生的很多/所有信息/分析的访问。此外,前端显示器可允许客户303容易将表示新规则的程序指令(经由复选框、按钮等)添加到它们的网站/产品。
标签/内容管理器204可用于各种应用,包括用于web分析、用于个人化内容分布、用于定向广告活动的数据的收集,以收集关于公司的软件产品的使用的数据,等等。为了执行这些功能,标签/内容管理器程序204可能需要知道对于每个客户303用于将可执行指令分发到用户终端301的“规则”。这些“规则”可基于特定客户303的需要。可通过界面产生具有表示用于测试目的的新规则的程序指令的标签管理器程序204。例如,考虑到在线零售商店希望修改它的跟踪代码以收集关于用于完整的会话重放的鼠标移动的数据。这个新规则可用于为零售商店产生修改的标签管理器204。修改的标签管理器204可包括用于跟踪鼠标运动的代码。为了确保这个最新插入的代码不“破坏”网站(即,使网站崩溃),修改的标签管理器204可以只被发送到特定的URL(即特别用于测试新代码的URL)。所有其它URL可接收标签管理器204的未修改版本。以这种方式,这个实现可帮助动态地创建测试环境用于由客户303在测试新代码、内容和/或对它们的网站、软件产品等的任何其它修改时使用。
而且,可使用各种技术——包括数据挖掘算法和多元测试——来分析所收集的数据。如早些时候建议的,数据分析的输出可被反馈回到系统内以产生新的或修改的规则(且因此产生修改的标签管理器204和/或页面特定代码文件)用于将程序指令和/或内容分发到用户终端301。数据分析的简单例子可包括系统检查来查看是否有加载客户的网页的用户(即返回访问者)的任何记录的能力。例如,假设用户正再次访问具有URLwww.acme.com的网站。首次访问者的标准欢迎消息可被读作“欢迎到www.acme.com”。如果有用户JohnDoe访问了www.acme.com的记录,则欢迎消息可接着被修改为“欢迎回到www.acme.comJohnDoe”。
在其它方面中,程序指令/内容可基于可存在于位于用户终端301上的浏览器内的数据被传输到用户终端301。与管理标签管理器程序204的实体相关的计算设备可运行在最终用户的浏览器中的计算机可读程序指令(例如JavaScriptTM)以收集这个数据。当收集这个数据时,这个计算设备可以用各种方式中的任一个取回并执行更多的计算机可读程序指令。
在一个实施方式中,系统可以起用于A/B多元测试的完全自动化或几乎完全自动化系统的作用。在一些例子中,系统可用于基于除了隐私忧虑以外的原因例如A/B多元测试来改变内容以为不同的用户产生不同的广告/图形。例如,网站可在一些实例中产生5%减价优惠券,但在其它实例中产生10%减价优惠券。网站操作所根据的规则可由管理员预先规定或提供。在另一例子中,规则可以是动态的或通过神经网络或机器学习的使用而“被学会”。另一例证性例子是图像的尺寸属性;一些用户可被显示特定尺寸的图像,而其他用户可被显示更大或更小的图像。又一例子是HTML页面的背景属性。这些都是可被修改、调节或变更用于A/B测试的属性/特性。
与现有技术测试解决方案相反,本文所公开的系统利用创新的在线隐私管理系统,如在前面通过引用被全部并入的美国专利8,261,362中更详细描述的。如在美国专利8,261,362的图5C中所示的在线隐私管理系统示出PMS服务器506可收藏由服务器管理的隐私规则。为了我们的目的,这些“隐私”规则可提供非隐私目的。例如,这些非隐私规则可被实现,使得在用户桌面100的显示器上再现的按钮的尺寸可被改变用于A/B测试。对于老年用户,按钮可被制造得更大。同时,对于青少年用户,它们可被制造得更小。因此,被提供来配置按钮的尺寸的参数/属性是A/B多元测试的部分。可通过允许系统(例如PMS服务器506)使用非隐私规则管理测试来完成测试。这些规则可存储在服务器处或其它地方,例如在外部数据暂存器中或作为神经网络的部分。同时,规则可通过图形用户界面(GUI)被查看和编辑,与美国专利8,261,362的图4A和4B的规则不同。
虽然用于修改静态网页以进行多元测试的现有技术系统是已知的,这些系统具有很多缺点。最特别地,这些系统需要对信息技术(IT)服务的熟悉或访问以帮助修改现有的静态HTML代码和标签。而且,这样的修改对静态内容但不对可在运行时产生的动态内容行得通。相反,在美国专利8,261,362中描述的隐私管理系统(PMS)允许动态内容的多元测试。在线PMS服务器可访问例如网页的文档对象模型(DOM)并检查在那个页面上的很多元素。通过DOM,PMS服务器可访问并改变HTML元素的属性。而且,PMS服务器可包括检查用户的属性(例如年龄、性别等)并接着基于属性的值修改在页面上的一个或多个元素的预定规则。在线PMS服务器可提供实现以及用于在一些例子中通过图形用户界面工具以用户友好方式更新页面的内容的手段。
如在前面通过引用并入的美国专利8,261,362中更详细描述的,在线PMS服务器可访问网页(或其它内容页面)的文档对象模型(DOM)并检查在DOM中的元素。对于不能被覆盖/劫持的特定功能,PMS服务器可创建包装器对象以保持目标对象并监控它的事件处理程序。因此,对修改对象的特定属性的企图,PMS服务器被警告并可做出反应。这个过程的细节在前面通过引用并入的美国专利8,261,362中被详细描述且不在本文重复。
使用在网页上的元素内的钩子,在线PMS服务器可配置成监控特定的属性和/或对象,根据特定的规则做出反应,并收集关于用户的行为的数据。例如,在线PMS服务器可覆盖相应于显示屏的部分(其中广告被示出)的元素。用户可以给PMS服务器提供在显示器上的元素的识别(例如选择)。然后用户可浏览到它们的页面,并为他们自己选择广告。用户可接着选择将被显示在空间上的新广告的URL。因为PMS服务器在页面上,它可阻挡对广告的请求并替代地从用户输入返回请求/响应。
在一个简化的例子中,用户可建立系统以自动改变网页的内容,所以不是用户向网关给出URL以更换旧广告,用户可围绕他们想要什么内容来代替广告来建立参数,并允许PMS服务器/网关运行测试以找到最佳设置。参数的例子包括但不限于一组URL、一组HTML转换(边界、颜色、尺寸等)、动画(发光、生长、收缩、滑动等)等。而且,前面通过引用并入的美国专利8,261,362的图6示出监控元素的属性用于更新的前面提到的过程。与在‘362专利中的不同,在这里,在步骤612中的比较的结果可扩展以包括元素的属性的值、在用户的计算机上的cookie的值、用户设备的类型或对本领域中的普通计算人员将明显的任何其它因素。基于比较,A/B测试可使用一个或多个预定规则来根据多元测试来调节特定属性/字段/元素的值并构建行为的模型。
关于在前面的例子中的最佳测试的确定,机器学习和/或神经网络可用于确定最佳设置。供应商例如CausataTM提供本领域中的普通技术人员在回顾本文公开的整体之后将认识到的解决方案。机器学习可培训系统以认识到在系统中的各种因素例如属性值、用户特性等之间的任何关系。可使用定义目标函数、约束和离散变量的优化方案以试图解决优化方案。
在一个例子中,除了或代替随机化试验,在线PMS服务器还可使用观察的研究来收集关于用户对网页(例如定向广告、页面美学等)的属性的不同调节的行为响应。所收集的数据可被分析以识别规则和在各种因素和结果之间的关系。
此外,对于在在线PMS服务器上的A/B测试,处理器可利用在DOM中的元素的各种不可见性属性。例如,在内容交换出现的情况中,在A/B测试上下文中或在不同的上下文中,PMS服务器可在它开始再现之前隐藏整个页面,并接着可以只揭露不是待交换的内容的部分的页面的那些元素/部分。因此,当交换所需的内容变得可用时,然后服务器准备操纵DOM并使内容变得可见。下面的例证性伪代码示出控制页面的可见性和用于测试的元素的目标化的代码的一个例子:
伪代码#3
类似地,可使用本文公开的技术明显提高网页的性能度量。例如,网页可加载有多个HTML标签和其它元素,例如脚本代码等。在再现页面时,一些元素可使系统暂停/停止,同时那个元素的特征加载和/或显示。通过在本文更详细描述的标签管理器204,页面的加载时间可相对于现有技术明显提高。
例如,通过伪代码,下文是有益的:
伪代码#1
“Bootstrapper.loadScriptAsChildCallback”函数是辅助函数,其不是只异步地请求内容而是请求内容并接着将它插入给定节点内。在一些例子中,它可将脚本标签在特定点处插入DOM内,并接着在脚本被下载并执行时调用函数。
同时Bootstrapper.adFramework函数覆盖document.write并使它变得异步,这大大地帮助性能:
伪代码#2
特别是,伪代码示出document.write函数被覆盖并稍后恢复。通过这个函数,伪代码将“显示”属性设置为“完全没有”。因此,相应于该属性的元素不被显示。更确切地,当PMS服务器在不同任务之间是空闲的时,那个元素(例如广告)可被加载。
总之,标签管理器204可提供平台以将程序指令和/或内容异步地分发到网页/非浏览器应用。换句话说,管理器204不应中断它有能力来作用于的应用的执行。作为例子,如果用户意外地/有意地实现无穷尽地循环的规则,则标签管理器204可以是模块化的和足够鲁棒的以继续执行。此外,管理器204可优美地处理潜在的错误(即继续加载所请求的网页的其余部分,让用户决定如何向前移动,等等)。
管理器204也可充分利用减小最终用户的时延(例如经由浏览器缓存等)的任何技术。如在上面的描述中详述的,标签/内容管理器204可使用大量粒度来控制它正部署的代码执行的顺序。通过用户友好的web界面的实现,管理器204可以是非技术用户可安全地访问的(例如不需要用户交付写XML规则文件,不需要用户知道JavaScriptTM/编程,等等)。按照如此方法,管理器204可控制与代码的部署有关的工作流并以防止可能对管理器204被部署的应用有害(例如可使应用过早地暂停或中止等)的代码的执行的任何其它可能的方式强加约束。
本公开的方面从其例证性实施方式方面被描述。从本公开的回顾中,本领域中的普通技术人员将想到在所附权利要求的范围和精神内的很多其它实施方式、修改和变化。例如,本领域中的普通技术人员将认识到,在例证性附图中示出的步骤可以用除了所述顺序以外的其它顺序执行,以及根据本公开的方面,所示的一个或多个步骤可以是可选的。

Claims (20)

1.一种方法,包括:
在服务器处从用户终端接收对配置成在所述用户终端上执行的第一程序指令的第一请求,其中所述第一请求响应于所述用户终端使用应用加载第一数据而产生;
将所述第一程序指令传输到所述用户终端;
在所述服务器处接收对配置成在所述用户终端上执行的第二程序指令的第二请求,其中所述第二请求响应于所述第一程序指令的执行而产生,以及所述第二请求包括关于在所述用户终端上从所述应用加载的所述第一数据的信息;以及
评估多个条件中的至少一个以确定多组所述第二程序指令中的至少一组是否应被分发到所述用户终端。
2.如权利要求1所述的方法,还包括:使已被收集的第二数据从所述用户终端路由到实体。
3.如权利要求1所述的方法,其中所述第一数据包括网页。
4.如权利要求3所述的方法,其中所述第二请求包括所述网页的统一资源定位符(URL)。
5.如权利要求4所述的方法,其中所述URL包括主机、路径、文件、查询参数和井号部分。
6.如权利要求5所述的方法,其中所述多个条件之一包括使所述主机、路径、文件、查询参数和井号部分中的至少一个与至少一个预定值匹配。
7.如权利要求6所述的方法,其中使所述主机、路径、文件、查询参数和井号部分中的所述至少一个与所述至少一个预定值匹配通过直接比较而发生。
8.如权利要求6所述的方法,其中使所述主机、路径、文件、查询参数和井号部分中的所述至少一个与所述至少一个预定值匹配通过涉及正则表达式的比较而发生。
9.如权利要求1所述的方法,其中所述多个条件之一包括使多个超文本传输协议(HTTP)头字段中的至少一个与至少一个预定值匹配。
10.如权利要求9所述的方法,其中所述多个HTTP头字段选自包括用户代理字段、referrer字段和cookie字段的组。
11.如权利要求3所述的方法,其中所述多个条件之一包括确定预定的超文本标记语言对象是否已在由所述用户终端访问的网页上被创建了。
12.如权利要求1所述的方法,其中所述多个条件之一包括确定是否在所述服务器上找到所述用户终端的cookie。
13.如权利要求1所述的方法,其中所述多个条件之一包括确定所述用户终端是否具有预定屏幕分辨率并使用预定脚本语言版本。
14.如权利要求1所述的方法,还包括:从外部数据源接收外部数据。
15.如权利要求14所述的方法,其中所述外部数据包括与所述用户终端相关的用户的地理位置和与基于web的规则是否运行了足够的时间来达到统计显著性有关的测试数据。
16.如权利要求15所述的方法,其中所述多个条件之一包括确定与所述用户终端相关的所述用户的所述地理位置是否匹配预定位置。
17.一种装置,包括:
处理器;
存储器,其具有存储在其中的计算机可执行指令,所述计算机可执行指令当被所述处理器执行时使所述装置执行方法:
评估第一条件,所述第一条件与在统一资源定位符(URL)内的主机、路径、文件、查询参数和井号部分中的至少一个是否与第一组预定值中的至少一个匹配有关;
评估第二条件,所述第二条件与多个超文本传输协议头字段中的至少一个是否与第二组预定值中的至少一个匹配有关;以及
当至少所述第一条件和所述第二条件被满足时,将程序指令传输到访问所述URL的用户终端。
18.如权利要求17所述的装置,其中所述处理器还执行:评估与预定超文本标记语言对象是否已在位于所述URL处的网页上被创建有关的第三条件。
19.如权利要求17所述的装置,其中所述处理器还执行:评估与和所述用户终端相关的地理位置是否是预定位置有关的第三条件。
20.一种非临时计算机可读存储介质,其具有存储在其上的计算机可执行程序指令,所述计算机可执行程序指令在被处理器执行时使所述处理器执行步骤,所述步骤包括:
创建用于在用户终端上执行程序指令的规则;
在从所述用户终端接收到第一请求时,使用所述规则来产生具有配置成在所述用户终端上执行的第一程序指令的管理器程序,其中所述第一请求响应于所述用户终端使用应用下载数据而产生;
评估与所述用户终端有关的多个条件,其中所述多个条件包括所述用户终端是移动终端还是静止终端,在所述用户终端上运行的所述应用是否具有预定类型,以及所述用户终端是否在预定位置中;
在接收到第二请求时,使用所述规则并基于所述评估产生配置为在所述用户终端上执行的页面特定指令,其中所述第二请求响应于所述第一程序指令的执行而产生。
CN201480025071.5A 2013-03-15 2014-03-14 用于动态地改变可见页面内容的方法覆盖的使用 Pending CN105164662A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/843,849 2013-03-15
US13/843,849 US20130290480A1 (en) 2010-01-11 2013-03-15 Use of Method Overrides for Dynamically Changing Visible Page Content
PCT/US2014/028930 WO2014144498A2 (en) 2013-03-15 2014-03-14 Use of method overrides for dynamically changing visible page content

Publications (1)

Publication Number Publication Date
CN105164662A true CN105164662A (zh) 2015-12-16

Family

ID=51538333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480025071.5A Pending CN105164662A (zh) 2013-03-15 2014-03-14 用于动态地改变可见页面内容的方法覆盖的使用

Country Status (7)

Country Link
EP (1) EP2972940A4 (zh)
CN (1) CN105164662A (zh)
AU (1) AU2014229063A1 (zh)
BR (1) BR112015023181A2 (zh)
CA (1) CA2906712A1 (zh)
RU (1) RU2015144052A (zh)
WO (1) WO2014144498A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018219076A1 (zh) * 2017-05-31 2018-12-06 腾讯科技(深圳)有限公司 防止网页劫持的处理方法、客户端以及服务器

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9361631B2 (en) 2010-01-06 2016-06-07 Ghostery, Inc. Managing and monitoring digital advertising
US10291492B2 (en) 2012-08-15 2019-05-14 Evidon, Inc. Systems and methods for discovering sources of online content
US11397970B2 (en) * 2013-01-24 2022-07-26 Roy Peleg Visual designation of a zone in rendered code
US9973585B2 (en) 2015-04-11 2018-05-15 Evidon, Inc. Methods, apparatus and systems for providing notice of digital tracking technologies in mobile apps on mobile devices, and for recording user consent in connection with same
US11972027B1 (en) * 2021-10-27 2024-04-30 Gen Digital Inc. Preserving web page functionality through dynamic analysis of host web pages

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050188318A1 (en) * 2000-11-30 2005-08-25 Mediacom.Net, Llc Method and apparatus for providing dynamic information to a user via a visual display
CN101237458A (zh) * 2008-03-10 2008-08-06 刘敬 支持个性化定制的网络内容自动化适配方法与系统
CN101236563A (zh) * 2008-02-01 2008-08-06 刘峰 智能个性化服务网站构造方法
US20120072488A1 (en) * 2010-01-11 2012-03-22 Ensighten, Llc Conditional Logic for Delivering Computer-Executable Program Instructions and Content

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040199605A1 (en) * 2003-04-07 2004-10-07 Lacroix Robert Z. System and method of distributing customized content

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050188318A1 (en) * 2000-11-30 2005-08-25 Mediacom.Net, Llc Method and apparatus for providing dynamic information to a user via a visual display
CN101236563A (zh) * 2008-02-01 2008-08-06 刘峰 智能个性化服务网站构造方法
CN101237458A (zh) * 2008-03-10 2008-08-06 刘敬 支持个性化定制的网络内容自动化适配方法与系统
US20120072488A1 (en) * 2010-01-11 2012-03-22 Ensighten, Llc Conditional Logic for Delivering Computer-Executable Program Instructions and Content

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018219076A1 (zh) * 2017-05-31 2018-12-06 腾讯科技(深圳)有限公司 防止网页劫持的处理方法、客户端以及服务器
CN108989266A (zh) * 2017-05-31 2018-12-11 腾讯科技(深圳)有限公司 一种防止网页劫持的处理方法和客户端以及服务器
CN108989266B (zh) * 2017-05-31 2021-09-10 腾讯科技(深圳)有限公司 一种防止网页劫持的处理方法和客户端以及服务器
US11128662B2 (en) 2017-05-31 2021-09-21 Tencent Technology (Shenzhen) Company Ltd Method, client, and server for preventing web page hijacking

Also Published As

Publication number Publication date
AU2014229063A1 (en) 2015-10-29
WO2014144498A2 (en) 2014-09-18
CA2906712A1 (en) 2014-09-18
RU2015144052A (ru) 2017-04-27
WO2014144498A3 (en) 2014-11-27
EP2972940A2 (en) 2016-01-20
EP2972940A4 (en) 2017-02-08
BR112015023181A2 (pt) 2017-07-18

Similar Documents

Publication Publication Date Title
US20170132182A1 (en) Use of Method Overrides for Dynamically Changing Visible Page Content
US20160173651A1 (en) Conditional Logic for Delivering Computer-Executable Program Instructions and Content
US8996986B2 (en) Enhanced delivery of content and program instructions
US9436580B2 (en) Analytics for mobile applications
CN102144243B (zh) 基于浏览信息的内容推荐
US9082126B2 (en) Service plan web crawler
US8417715B1 (en) Platform independent plug-in methods and systems for data mining and analytics
US7558748B2 (en) Purpose-based adaptive rendering
US8725559B1 (en) Attribute based advertisement categorization
CN105164662A (zh) 用于动态地改变可见页面内容的方法覆盖的使用
JP2010514010A (ja) クロスチャネル最適化システムおよび方法
CN102449655A (zh) 电子内容的保护服务
CA2599913A1 (en) System and method for tracking and predicting response to a presentation
CN109544267A (zh) 资源获取方法、装置、计算机设备和存储介质
US20140278926A1 (en) System and method for attribution of mobile advertisements related to mobile applications
US8381206B2 (en) System and method for extending computerized applications
US20140278927A1 (en) System and method for attribution of mobile advertisements related to mobile applications
US20150199774A1 (en) One click on-boarding crowdsourcing information incentivized by a leaderboard
CN113168646A (zh) 自适应数据平台
US10417318B2 (en) Treatment controller
CN111444447A (zh) 内容推荐页面的展现方法及装置
JP2010186283A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2004533047A (ja) ウェブに基づいた個性化とeコマース管理システム及びその方法
KR20210052237A (ko) 인공지능에 기반한 상품 카탈로그 자동 분류 시스템
US20240121318A1 (en) Automated push notifications system based on machine learning

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151216

WD01 Invention patent application deemed withdrawn after publication