CN111108482A - 优化网络利用 - Google Patents

优化网络利用 Download PDF

Info

Publication number
CN111108482A
CN111108482A CN201880060804.7A CN201880060804A CN111108482A CN 111108482 A CN111108482 A CN 111108482A CN 201880060804 A CN201880060804 A CN 201880060804A CN 111108482 A CN111108482 A CN 111108482A
Authority
CN
China
Prior art keywords
user
user session
website
duration
content
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.)
Granted
Application number
CN201880060804.7A
Other languages
English (en)
Other versions
CN111108482B (zh
Inventor
B.帕塔比拉曼
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.)
Google LLC
Original Assignee
Google LLC
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
Application filed by Google LLC filed Critical Google LLC
Priority to CN202311525679.1A priority Critical patent/CN117793200A/zh
Publication of CN111108482A publication Critical patent/CN111108482A/zh
Application granted granted Critical
Publication of CN111108482B publication Critical patent/CN111108482B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp

Abstract

包括编码在计算机存储介质上的计算机程序的方法、系统和装置,用于:接收分组化消息,该分组化消息由包括在给定在线资源的代码中标签的信号通知生成并且包括与正在访问给定在线资源的用户相对应的标识符;将时间戳记录为包括给定在线资源的网站处的用户会话的开始;确定用户会话保持活动,同时继续接收附加分组化消息;确定网站处的用户会话已经结束;基于时间戳和网站处的用户会话被确定已经结束的时间之间的差来计算用户会话的持续时间;并且基于网站处的用户会话的持续时间来修改向用户的内容分发。

Description

优化网络利用
背景技术
互联网提供了对各种资源的访问。例如,视频和/或音频文件,以及特定主题或特定新闻文章的网页可通过互联网访问。随着富媒体内容(media-rich content)的分发变得越来越普遍,通过互联网递送内容消耗的带宽继续增加。在一些情况下,可以改善该带宽的利用。
发明内容
本说明书描述了与基于网络的先前利用来优化网络利用相关的技术。
总体而言,本说明书中描述的主题的一个创新方面可以体现在方法中,该方法包括以下动作:通过网络并由数字组件分发系统接收分组化消息,该分组化消息(i)由包括在给定在线资源的代码中的标签的信号通知(signaling)生成,并且(ii)包括与正在访问给定在线资源的用户相对应的标识符;由数字组件分发系统将分组化消息的时间戳记录(log)为包括给定在线资源的网站处的用户会话的开始;由数字组件分发系统确定网站处的用户会话保持活动,同时在最近接收到的分组化消息的时间戳的时间之后的指定时间量内继续接收由网站内的附加标签的信号通知生成的附加分组化消息;由数字组件分发系统确定在以下中的一个时,网站处的用户会话已经结束:(i)接收到最近接收到的分组化消息的时间戳的时间之后的指定时间量或者(ii)检测到指定响应于包括与用户相对应的标识符的请求而将第三方内容提供给不同网站的内容视图数据时;由数字组件分发系统基于时间戳和网站处的用户会话被确定为已经结束的时间之间的差来计算用户会话的持续时间;并且基于网站处的用户会话的持续时间来修改向用户的内容分发。
这些实施例和其他实施例各自可以可选地包括以下特征中的一个或多个。
在一些示例中,分组化消息的时间戳被包括在分组化消息中,或者基于分组化消息的到达的时间来确定。
在一些示例中,基于网站处的用户会话的持续时间来修改向用户的内容分发包括基于所计算的用户会话的持续时间来控制用于内容分发的带宽使用。
在一些示例中,基于用户会话的持续时间来控制用于内容分发的带宽使用包括当用户会话的持续时间在指定量以下时,减少用于向用户的内容分发的带宽量。
在一些示例中,该方法包括确定用户会话的持续时间超过阈值持续时间,其中基于用户会话的持续时间来修改向用户的内容分发包括响应于确定用户会话超过阈值持续时间,当用户随后在网站处发起新会话时,在用户的客户端设备处预缓存网站的网页的数据。
在一些示例中,该方法包括:将用户的所计算的用户会话的持续时间和用户的标识符与其他用户的在网站处的其他用户会话持续时间和其他用户的其他标识符一起存储在数据结构中,以获得访问网站的用户的用户会话数据的聚集集合;并且基于由用户会话持续时间指定的时间长度将用户会话数据的聚集集合分割成两个或更多个子集,包括:创建用户会话数据的第一子集,该第一子集包括与小于指定持续时间的用户会话持续时间相对应的用户的标识符,并且创建用户会话数据的第二子集,该第二子集包括与超过指定持续时间的用户会话持续时间相对应的用户的标识符。
在一些示例中,基于网站处的用户会话的持续时间来修改向用户的内容分发包括:当那些用户基于那些用户被包括在第二子集中来访问其他网站时,向与第二子集中的标识符相对应的用户提供与网站相关的附加内容。
在一些示例中,该方法包括提供用户界面,该用户界面向网站的管理员呈现关于两个或更多个子集的信息,包括每个子集中包括的多个标识符;并且当与标识符相对应的用户访问其他网站或本地应用时,向管理员提供将两个或更多个子集中的至少一个指定为与网站相关的附加内容的预期接收者的控制。
在一些示例中,该方法包括检测分组化消息和包括与设备类型相对应的标识符的其他分组化消息中的设备类型标识符;并且对于与分组化消息和其他分组化消息相对应的用户会话,基于设备类型标识符来确定使用移动设备进行的用户会话的一部分,其中基于网站处的用户会话的持续时间来修改向用户的内容分发包括基于使用移动设备进行的用户会话的一部分来修改内容分发。
该方面的其他实施例可以包括相对应的系统、装置和被配置为执行方法的动作的、被编码在计算机存储设备上的计算机程序。
总体而言,本说明书中描述的主题的另一创新方面可以体现在系统中,该系统包括数据处理装置和与数据处理装置进行数据通信并存储可由数据处理装置执行的指令的非暂时性计算机可读存储介质,并且在这样执行时这些指令使得数据处理装置执行操作。该操作包括:通过网络并由数字组件分发系统接收分组化消息,该分组化消息(i)由包括在给定在线资源的代码中的标签的信号通知生成,并且(ii)包括与正在访问给定在线资源的用户相对应的标识符;由数字组件分发系统将分组化消息的时间戳记录为包括给定在线资源的网站处的用户会话的开始;由数字组件分发系统确定网站处的用户会话保持活动,同时在最近接收到的分组化消息的时间戳的时间之后的指定时间量内继续接收由网站内的附加标签的信号通知生成的附加分组化消息;由数字组件分发系统确定在以下中的一个时,网站处的用户会话已经结束:(i)接收到最近接收到的分组化消息的时间戳的时间之后的指定时间量或者(ii)检测到指定响应于包括与用户相对应的标识符的请求而将第三方内容提供给不同网站的内容视图数据时;由数字组件分发系统基于时间戳和网站处的用户会话被确定为已经结束的时间之间的差来计算用户会话的持续时间;并且基于网站处的用户会话的持续时间来修改向用户的内容分发。
总体而言,本说明书中描述的主题的另一创新方面可以体现在用计算机程序编码的非暂时性计算机存储介质中,该计算机程序包括指令,这些指令在由数据处理装置执行时使得数据处理装置执行操作。该操作包括:通过网络并由数字组件分发系统接收分组化消息,该分组化消息(i)由包括在给定在线资源的代码中的标签的信号通知生成,并且(ii)包括与正在访问给定在线资源的用户相对应的标识符;由数字组件分发系统将分组化消息的时间戳记录为包括给定在线资源的网站处的用户会话的开始;由数字组件分发系统确定网站处的用户会话保持活动,同时在最近接收到的分组化消息的时间戳的时间之后的指定时间量内继续接收由网站内的附加标签的信号通知生成的附加分组化消息;由数字组件分发系统确定在以下中的一个时,网站处的用户会话已经结束:(i)接收到最近接收到的分组化消息的时间戳的时间之后的指定时间量或者(ii)检测到指定响应于包括与用户的标识符相对应的请求而将第三方内容提供给不同网站的内容视图数据时;由数字组件分发系统基于时间戳和网站处的用户会话被确定为已经结束的时间之间的差来计算用户会话的持续时间;并且基于网站处的用户会话的持续时间来修改向用户的内容分发。
可以实施本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。修改哪些内容被提供给用户的特定集合或子集可以导致更有效地利用带宽和计算资源。例如,提供给在网站处花费更多时间的用户的内容的量(或大小)可以高于被提供给在网站处花费更少时间的用户的内容的量(或大小)。在一些情况下,当用户已经被分类为在网站处花费更多时间(例如,至少指定时间量)的用户中的一个时,可以在客户端设备处预缓存附加内容。可替换地,当用户已经被分类为在网站处花费更多时间的用户中的一个时,可以提供下载花费更长时间的内容(例如,图像内容和/或多媒体内容)。同时,当用户已经被分类为在网站处花费更少时间的用户中的一个时,可以提供下载花费较少时间的内容(例如,文本内容)。以这样的方式,更多的带宽被用于向已经被分类为在网站处花费更多时间的那些用户提供内容。附加地,向在网站处花费更多时间的那些用户限制需要更多时间下载的内容分发降低了用户在内容已经被下载到客户端设备之前导航离开网站的可能性,使得用于下载内容的带宽不会被浪费。在一些情况下,在网站处花费比阈值时间量的更少的用户可以从接收特定内容排出,从而保留带宽以向在网站处花费更多时间的用户提供内容。
因此,根据本文描述的一些实施例,基于所计算的用户会话的持续时间,可以控制带宽使用。例如,控制带宽使用可以包括增加或减少由客户端设备使用的通信信道的带宽。例如,所计算的用户会话的持续时间可以被通信传送到带宽控制器,该带宽控制器实现带宽的所述增加或减少。例如,上述方法的另外的动作可以包括生成指示所计算的用户会话的持续时间的控制消息,并且所生成的消息可以被通信传送到网络实体,该网络实体被配置为响应于接收到控制消息来实行所述带宽修改。
根据另外的实施例,将用户会话数据的聚集集合分割成两个或更多个子集可以改进用于自动分割用户群体的预测模型(例如,基于用户在给定网站处花费的时间量)。内容提供商可以利用对用户群体的分割来指定哪些用户子集应该被提供有他们的内容。例如,给定的内容提供商可以指定只有在给定网站处花费了至少指定时间量的那些用户应该接收他们的内容。
此外,根据一个或多个实施例,通过确定用户会话持续时间数据,可以用先前不可用的信息来进一步增强分析工具。例如,增强的数据可以提高预测与内容相关的各种结果的准确性,并进而改善内容提供商和内容分发者用来优化向用户的内容分发的当前系统。对当前系统的这种改进可以导致用户接收更符合他们兴趣的内容,同时减少这些用户接收的不太相关的内容的量。因此,本文档中讨论的改进可以导致更个性化和更有效(例如,在带宽使用方面)的在线浏览体验,例如,通过基于给定用户在各种网站上花费的时间量过滤被提供给给定用户的内容。
本文档中公开的主题的示例性实施例还提高了系统描绘和/或测量与由给定内容提供商提供的各种在线资源和/或本地应用的用户会话的持续时间的能力。例如,使用传统系统,难以确定在给定网站处的用户会话何时已经结束,因为通常缺少指示用户会话已经结束的可靠信号。如下文详细描述的,本系统通过利用两种不同类型的数据来提高系统准确确定在给定网站的用户会话何时已经结束的能力,来提供了对传统系统的改进。更具体地,本系统使用在给定网站的代码中包括的标签发射时收集的标签数据来直接跟踪给定网站处的用户活动。虽然该标签数据提供了关于给定网站处的用户活动的信息,但是它不能提供关于用户导航到不同网站的信息,这限制了在一些情况下明确地确定用户会话何时已经结束的能力。为了提高确定给定网站处的用户会话何时已经结束的能力,本系统通过将标签数据与当用户导航到不同网站时生成的内容视图数据结合来增强标签数据。当用户导航到不同网站时生成的内容视图数据提供了指示用户实际上导航离开给定网站的明确的信号,并且因此使得系统能够更准确地确定给定网站处的用户会话何时结束。由此,用内容视图数据增强标签数据使得系统能够执行它先前不能执行的操作,从而提高系统本身的性能并提供优于现有系统的优势。
本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。从描述、附图和权利要求书中,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1是用于分发内容的示例环境的框图。
图2是使用数字组件分发系统的示例客户端设备的系统流程图。
图3是用于使用数字组件分发系统的示例过程的流程图。
图4是使用数字组件分发系统的聚集数据的示例集合。
图5是用于使用数字组件分发系统的示例过程的流程图。
图6是可以用于实施本公开中描述的方法、系统和过程的示例计算机系统的框图。
各附图中相同的附图标记和名称表示相同的元件。
具体实施方式
描述了系统、方法和计算机程序产品,用于基于由相同内容提供商提供的网站、本地应用和/或其他可用的互联网连接的资源处的用户会话的计算的持续时间来修改向用户的内容分发。为简洁起见,以下描述涉及网页和网站之间的用户导航,但是该描述也适用于由相同内容提供商提供的本地应用和/或不同互联网连接的资源的组合。用户会话持续时间数据可以由数字组件分发系统确定,并由内容提供商请求。例如,内容提供商可以托管网站、提供本地应用、和/或分发在用户不访问网站时呈现给用户的内容(例如,以数字组件的形式)。内容提供商可以使用先前未知的用户会话持续时间数据来识别在至少指定时间段内参与内容提供商所拥有的在线资源(和/或本地应用)的用户。内容提供商可以选择将那些被识别的用户指定为由内容提供商提供的附加内容(例如,数字组件)的未来接收者。内容提供商也可以使用用户会话数据来基于用户的参与度自动分割用户,以便优化在最长用户会话期间向参与内容提供商互联网连接的资源的用户的附加内容分发。
如下面更详细讨论的,可以使用标签数据和内容视图数据(content view data)的组合来生成用户会话持续时间数据。通常,标签数据指定与文档(例如,任何电子文档和/或本地应用)交互的用户的唯一标识符,该文档包括由客户端设备发信号通知(这里也称为“发射(fire)”)的标签。例如,当包括标签的文档由客户端设备再现(render)时,该标签将发射并使客户端设备向远程服务器传输分组化消息,从而通知远程服务器该文档被呈现给与唯一标识符相对应的用户。当客户端设备请求要集成到由客户端设备呈现的文档中的内容(例如,数字组件)时,通常收集内容视图数据。如下所讨论的,使用时间戳将从用户与由给定内容提供商提供的文档的交互中收集的标签数据与当由不同内容提供商提供的不同文档请求要被嵌入在不同文档中的内容时收集的内容视图数据相关联,使得系统能够准确地确定与由给定内容提供商提供的文档的用户会话持续了多长时间。例如,收集内容视图数据的时间可以用作指示由给定内容提供商提供的文档处的用户会话已经结束的信号。
在一些实施方式中,当系统在某时间段内未接收到标签数据时,可以认为用户会话结束。例如,当用户离开浏览会话并切换到电话上的不同应用时,或者在大于指定时间量(例如,10分钟、15分钟、30分钟或另一适当时间量)的时段内全部一起停止使用移动设备时,标签数据的缺少可能发生。
根据实施例,计算用户会话的持续时间的方法可以包括以下步骤。
通过网络并由数字组件分发系统接收分组化消息,该分组化消息(i)由包括在给定在线资源的代码中的标签的信号通知生成,并且(ii)包括与正在访问给定在线资源的用户相对应的标识符。下面进一步描述网络、数字组件分发系统、分组化消息和标识符的示例。此外,将阐明如何信号通知分组化消息的示例。
由数字组件分发系统将分组化消息的时间戳记录为包括给定在线资源的网站处的用户会话的开始。如从进一步的描述中将变得更加显而易见的,分组化消息的时间戳被包括在分组化消息中,或者基于分组化消息的到达的时间来确定。例如,时间戳指示分组化消息的到达的时间点,或者分别指示分组化消息的信号通知的时间点。图4中示出了示出记录的时间戳的示例数据集合。
由数字组件分发系统确定网站处的用户会话保持活动,同时在最近接收到的分组化消息的时间戳的时间之后的指定时间量内继续接收由网站内的附加标签的信号通知生成的附加分组化消息。例如,在确定网站处的用户会话保持活动时,还确定网站处的用户会话尚未结束。如上所述,指定时间量可以达到例如10分钟、15分钟、30分钟或另一适当的时间量。如果在时间戳的时间之后的这个时间量期间,接收到由在网站内的附加标签的信号通知生成的附加分组化消息,则确定网站处的用户会话尚未结束,而是保持活动。例如,附加分组化消息的时间戳重置计时器,使得指定时间量再次成为用于确定用户会话是否保持活动的基础。
由数字组件分发系统确定在以下中的一个时,网站处的用户会话已经结束:(i)接收到最近接收到的分组化消息的时间戳的时间之后的指定时间量或者(ii)检测到指定响应于包括与用户相对应的标识符的请求而将第三方内容提供给不同网站的内容视图数据时。正如刚刚解释的,确定用户会话已经结束可以基于确定指定时间量已经过去而没有接收到任何附加分组化消息。所述确定的另一触发可以是检测到指定响应于包括与用户相对应的标识符的请求而将第三方内容提供给不同网站的内容视图数据。术语内容视图数据已经在上面解释过了,并且在下面给出了进一步的示例。例如,内容视图数据指示用户同时访问了不同的网站,例如,再现所述第三方内容的网站。因此,检测到用户已经在不同的网站处观看和/或下载了第三方内容可以指示用户会话的中止。在这个示例中,短语第三方内容是指由提供不同网站的实体之外的实体提供的内容。例如,第三方内容可以是图像、文本或其他内容(例如,多媒体内容),这些内容是通过执行网页中包括的脚本来请求的,并且在再现网页时被插入到来自远程服务器的网页中。
由数字组件分发系统基于时间戳和网站处的用户会话被确定为已经结束的时间之间的差来计算用户会话的持续时间。例如,用户会话的持续时间等于时间戳的时间(例如,最近的(附加的)分组化消息的时间)和网站处的用户会话被确定已经结束时的时间之间的差。在另一实施例中,时间戳和网站处的用户会话被确定为已经结束的时间之间的差可以例如用预定因子来缩放。
基于网站处的用户会话的持续时间来修改向用户的内容分发。如上所述,基于网站处的用户会话的持续时间来修改向用户的内容分发可以包括基于所计算的用户会话的持续时间来控制用于内容分发的带宽使用。例如,基于用户会话的持续时间来控制用于内容分发的带宽使用包括当用户会话的持续时间在指定量以下时,减少用于向用户的内容分发的带宽量。例如,当用户倾向于在网站处花费很少时间时,提供给用户的内容可能限于文本内容。可替换地或附加地,在这些情况下加载的多媒体内容的量可以被限制,以减少用于向在网站处花费很少时间的用户提供内容的带宽量。另外,可以防止引用网站的数字组件(例如,包括到网站的超链接)被分发给在网站处花费很少时间(例如,具有在指定持续时间以下的用户会话持续时间)的用户。
根据实施例,计算用户会话的持续时间的方法可以包括以下附加步骤中的一个或多个。
确定用户会话的持续时间超过阈值持续时间,其中基于用户会话的持续时间来修改向用户的内容分发包括响应于确定用户会话超过阈值持续时间,当用户随后在网站处发起新会话时,在用户的客户端设备处预缓存网站的网页的数据。在一些情况下,数字组件分发系统可以确定用户会话的持续时间超过阈值持续时间。在这些情况下,当用户随后在网站处发起新会话时,可以通过在用户的客户端设备处预缓存网站的网页的数据来修改向用户的内容分发。例如,当该用户随后请求网站的第一网页时,网站中的其他网页(例如,该用户频繁访问的页面)的内容可以被缓存在客户端设备处,以加速网站的页面之间的导航。这种预缓存可以限于在网站处花费至少最少时间量的用户,以便不会在不太可能导航到网站的许多页面的用户的客户端设备处浪费带宽预缓存数据。
将用户的所计算的用户会话的持续时间和用户的标识符与其他用户在网站处的其他用户会话的持续时间和其他用户的其他标识符一起存储在数据结构中,以获得访问该网站的用户的用户会话数据的聚集集合。
基于由用户会话持续时间指定的时间长度,将用户会话数据的聚集集合分割成两个或更多个子集,这可以包括以下附加步骤中的一个或多个。创建用户会话数据的第一子集,该第一子集包括与小于指定持续时间的用户会话持续时间相对应的用户的标识符。创建用户会话数据的第二子集,该第二子集包括与超过指定持续时间的用户会话持续时间相对应的用户的标识符。例如,基于网站处的用户会话的持续时间来向用户的内容分发包括:当那些用户基于那些用户被包括在第二子集中来访问其他网站时,向与第二子集中的标识符相对应的用户提供与网站相关的附加内容。分割用户会话数据的聚集集合的示例性步骤将在下面进一步详细解释。
下面将更详细地描述这些特征和附加特征。
图1是示例环境100的框图,其中数字组件被分发以与电子文档一起呈现。示例环境100包括网络102,诸如局域网(local area network,LAN)、广域网(wide area network,WAN)、互联网或它们的组合。网络102连接电子文档服务器104、客户端设备106、数字组件服务器108和数字组件分发系统110(也称为组件分发系统)。示例环境100可以包括许多不同的电子文档服务器104、客户端设备106和数字组件服务器108。
客户端设备106是能够通过网络102请求和接收资源的电子设备。示例客户端设备106包括个人计算机、移动通信设备(例如,智能电话)和能够通过网络102发送和接收数据的其他设备(例如,平板设备或可穿戴计算设备)。客户端设备106通常包括诸如网络浏览器的用户应用,以便于通过网络102发送和接收数据,但是由客户端设备106执行的本地应用也可以便于通过网络102发送和接收数据。
电子文档是在客户端设备106处呈现内容的集合的数据。电子文档的示例包括网页、文字处理文档、便携式文档格式(portable document format,PDF)文档、图像、视频、搜索结果页面和馈送源。诸如安装在移动计算设备、平板计算设备或桌面计算设备上的应用的本地应用(例如,“app”)也是电子文档的示例。电子文档可以由电子文档服务器104(“电子文档服务器”)提供给客户端设备106。例如,电子文档服务器104可以包括托管发布者网站的服务器。在该示例中,客户端设备106可以发起对给定发布者网页的请求,并且托管给定发布者网页的电子文档服务器104可以通过发送在客户端设备106处发起给定网页的呈现的机器可执行指令来响应该请求。
在另一示例中,电子文档服务器104可以包括app服务器,客户端设备106可以从该app服务器下载app。在该示例中,客户端设备106可以下载在客户端设备106处安装app所需的文件,并且然后本地执行所下载的app。
电子文档可以包含各种内容。例如,电子文档可以包括在电子文档本身内和/或不随时间改变的静态内容(例如,文本或其他指定内容)。电子文档还可以包括可能会随着时间或根据请求变化的动态内容。例如,给定的电子文档的发布者可以维护用于填充电子文档的部分的数据源。在该示例中,给定的电子文档可以包括一个或多个标签或脚本,当给定的电子文档被客户端设备106处理(例如,再现或执行)时,这些标签或脚本使得客户端设备106从数据源请求内容。客户端设备106将从数据源获得的内容集成到给定的电子文档中,以创建包括从数据源获得的内容的复合电子文档。电子文档(为简洁起见,也简称为文档)不一定对应于文件。文档可以被存储在保存其他文档的文件的一部分中,存储在专用于所讨论的文档的单个文件中,或者存储在多个协调的文件中。电子文档可以是呈网页、本地应用用户界面或其他适当的电子格式的形式。
在一些情况下,给定的电子文档可以包括引用数字组件分发系统110的一个或多个数字组件标签或数字组件脚本。在这些情况下,当客户设备106处理给定的电子文档时,客户设备106执行数字组件标签或数字组件脚本。数字组件标签或数字组件脚本的执行将客户端设备106配置为生成对一个或多个数字组件的请求112(被称为“组件请求”),该请求通过网络102传输到数字组件分发系统110。例如,数字组件标签或数字组件脚本可以使客户端设备106能够生成包括报头和有效载荷数据的分组化数据请求。组件请求112可以包括事件数据,该事件数据指定诸如从其请求数字组件的服务器的名称(或网络位置)、请求设备(例如,客户端设备106)的名称(或网络位置)和/或数字组件分发系统110可以用来选择响应于该请求而提供的一个或多个数字组件的信息的特征。组件请求112由客户端设备106通过网络102(例如,电信网络)传输到数字组件分发系统110的服务器。
组件请求112可以包括指定其他事件特征(诸如被请求的电子文档和可以呈现数字组件的电子文档的位置特征)的事件数据。例如,可以向数字组件分发系统110提供事件数据,该事件数据指定对其中将呈现数字组件的电子文档(例如,网页)的引用(例如,URL)、可用于呈现数字组件的电子文档的可用位置、可用位置的大小和/或有资格在这些位置呈现的媒体类型。类似地,指定与电子文档或被电子文档引用的实体(例如,人、地方或事物)相关联的关键字(“文档关键字”)的事件数据也可以被包括在组件请求112中(例如,作为有效载荷数据),并被提供给数字组件分发系统110,以促进识别有资格与电子文档一起呈现的数字组件。事件数据还可以包括从客户端设备106提交以获得搜索结果页面的搜索查询,和/或指定搜索结果和/或搜索结果中包括的文本内容、听觉内容或其他视觉内容的数据。如贯穿本文档所使用的,术语搜索查询和查询应该被解释为涵盖通过传统搜索引擎提交的传统搜索查询之外的查询。例如,这些术语旨在涵盖其他类型的查询,诸如由人工智能助理接收的语音查询、语音命令或语音指令,以及与人工智能助理的其他交互。
组件请求112还可以包括与其他信息相关的事件数据,诸如客户端设备的用户已经提供的信息、指示从其提交组件请求的州或区域的地理信息、或者提供数字组件将被显示在其中的环境的上下文的其他信息(例如,组件请求的日期、组件请求的星期几、数字组件将被显示在其处的设备的类型(诸如桌面设备、移动设备或平板设备))。组件请求112可以例如通过分组化网络传输,并且组件请求112本身可以被格式化为具有报头和有效载荷数据的分组化数据。报头可以指定分组的目的地,并且有效载荷数据可以包括上面讨论的任何信息。
组件分发系统110响应于接收组件请求112和/或使用组件请求112中包括的信息,选择将与给定电子文档一起呈现的数字组件。在一些实施方式中,在不到一秒钟的时间内选择数字组件,以避免可能由数字组件的延迟选择引起的错误。例如,响应于组件请求112而提供数字组件方面的延迟可能导致客户端设备106处的页面加载错误,或者即使在电子文档的其他部分被呈现在客户端设备106处之后还导致电子文档的部分保持未填充。而且,随着在向客户端设备106提供数字组件时的延迟增加,当数字组件被递送到客户端设备106时,电子文档更有可能不再呈现在客户端设备106处,从而负面影响用户对电子文档的体验。此外,例如,如果在提供数字组件时电子文档不再呈现在客户端设备106处,则提供数字组件时的延迟可能导致数字组件的递送失败。
在一些实施方式中,数字组件分发系统110在分布式计算系统中实施,以便处理组件请求,并在有限的时间量内(例如,少于一秒钟内)响应于该请求来提供一个或多个数字组件。分布式计算系统包括例如服务器和相互连接并响应于请求112识别和分发数字组件的多个计算设备114的集合。该多个计算设备114的集合一起操作以从数百万可用数字组件(DC1-x)的语料库当中识别有资格被呈现在电子文档中的数字组件的集合。例如,可以在数字组件数据库116中索引数百万个可用的数字组件。每个数字组件索引条目可以引用相对应的数字组件和/或包括有助于(例如,调节或限制)相对应的数字组件的分发/传输的分发参数(DP1-DPx)。例如,分发参数可以通过要求组件请求包括与数字组件的分发参数中的一个(例如,精确地或以某种预先指定的相似性水平)匹配的至少一个标准,来有助于数字组件的传输。
在一些实施方式中,特定数字组件的分发参数可以包括分发关键字,该分发关键字必须被匹配(例如,通过电子文档、文档关键字、搜索查询或组件请求112中指定的术语)以便数字组件有资格以进行呈现。换句话说,分发参数用于触发通过网络102对数字组件进行分发(例如,传输)。分发参数还可以要求组件请求112包括指定特定地理区域(例如,国家或州)的信息和/或指定组件请求112源自特定类型的客户端设备(例如,桌面设备、移动设备或平板设备)的信息,以便数字组件有资格以进行呈现。分发参数还可以指定用于评估数字组件(例如,在其他可用的数字组件当中)分发/传输的资格的资格值(例如,排名分数、出价或一些其他指定值),如下面更详细讨论的。在一些情况下,资格值可以指定当特定事件归因于数字组件时(例如,当应用通过与数字组件的交互被安装在客户端设备处时,或者以其他方式可归因于数字组件的呈现时)将提交的量。
有资格的数字组件的识别可以被分割成多个任务117a-117c(例如,由服务器分割),该多个任务然后在多个计算设备114的集合内的计算设备(例如,114、114b和114c)之间被分配(例如,由服务器分配)。例如,集合114中的不同计算设备可以各自分析数字组件数据库116的不同部分,以识别具有与组件请求112中包括的信息相匹配的分发参数的各种数字组件。在一些实施方式中,集合114中的每个给定计算设备可以分析不同的数据维度(或维度的集合),并将分析的结果(Res 1-Res 3)118a-118c传递(例如,传输)回数字组件分发系统110。例如,由集合114中的计算设备中的每一个提供的结果118a-118c可以识别响应于组件请求112而有资格分发的数字组件的子集和/或具有特定分发参数的数字组件的子集。数字组件子集的识别可以包括,例如,将事件数据与分发参数进行比较,并且识别具有与事件数据的至少一些特征相匹配的分发参数的数字组件子集。
数字组件分发系统110聚集从多个计算设备的集合114中接收的结果118a-118c,并使用与聚集结果相关联的信息来选择将响应于请求112而提供的一个或多个数字组件。例如,数字组件分发系统110可以基于一个或多个组件评估过程的结果来选择获胜的数字组件(一个或多个数字组件)的集合,如下所讨论的。进而,数字组件分发系统110可以生成并在网络102上传输回复数据120(例如,表示回复的数字数据),该回复数据使得客户端设备106能够将获胜的数字组件的集合集成到给定的电子文档中,使得获胜的数字组件的集合和电子文档的内容一起被呈现在客户端设备106的显示器上。
在一些实施方式中,客户端设备106执行包括在回复数据120中的指令,该指令配置并使得客户端设备106能够从一个或多个数字组件服务器108获得获胜的数字组件的集合。例如,回复数据120中的指令可以包括网络位置(例如,统一资源定位符(UniformResource Locator,URL))和脚本,该脚本使得客户端设备106向数字组件服务器108传输服务器请求(server request,SR)121,以从数字组件服务器108获得给定的获胜的数字组件。响应于该请求,数字组件服务器108将识别在服务器请求121中(例如,在存储多个数字组件的数据库内)指定的给定的获胜的数字组件,并将在客户端设备106处的电子文档中呈现给定的获胜的数字组件的数字组件数据(DC数据)122传输到客户端设备106。
为了便于搜索电子文档,环境100可以包括搜索系统150,该搜索系统通过对电子文档进行爬取(crawling)和索引(例如,基于电子文档的爬取内容进行索引)来识别电子文档。可以基于数据与其相关联的电子文档来索引关于电子文档的数据。电子文档的索引副本和可选的缓存副本被存储在搜索索引152(例如,(多个)硬件存储设备)中。与电子文档相关联的数据是表示包括在电子文档中的内容的数据和/或电子文档的元数据。
客户端设备106可以通过网络102向搜索系统150提交搜索查询。作为响应,搜索系统150访问搜索索引152以识别与搜索查询相关的电子文档。搜索系统150以搜索结果的形式识别电子文档,并在搜索结果页面中将搜索结果返回给客户端设备106。搜索结果是由搜索系统150生成的识别响应(例如,相关)于特定搜索查询的电子文档的数据,并且包括活动链接(例如,超文本链接),该活动链接使得客户端设备响应于用户与搜索结果的交互从指定的网络位置(例如,URL)请求数据。示例搜索结果可以包括网页标题、从网页提取的文本的片段或图像的一部分、以及网页的URL。
另一示例搜索结果可以包括可下载应用的标题、描述可下载应用的文本的片段、描绘可下载应用的用户界面的图像、和/或应用可以从其下载到客户端设备106的位置的URL。在一些情况下,搜索系统150可以是应用商店(或在线门户)的一部分,或者与应用商店(或在线门户)交互,应用可以从该应用商店(或在线门户)下载以安装在客户端设备106处,以便呈现关于与提交的搜索查询相关的可下载应用的信息。
像其他电子文档一样,搜索结果页面可以包括数字组件可以被呈现在其中的一个或多个槽位(slot)。如贯穿本文档所使用的,短语“数字组件”是指数字内容或数字信息的离散单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或另一内容单元)。数字组件可以作为单个文件或文件的集合以电子方式存储在物理存储器设备中,并且数字组件可以采用视频文件、音频文件、多媒体文件、图像文件或文本文件的形式,并且包括广告信息,使得广告是一种类型的数字组件。
由客户端设备106提交的搜索查询可以用于识别与搜索结果页面一起呈现的一个或多个数字组件。例如,数字组件分发系统110可以使用搜索查询来识别具有与搜索查询相匹配(例如,相同或以其他方式在指定的相似性级别下匹配,诸如在短语匹配或扩展匹配下进行资格确认,包括复数、存根、同义词和足够相似的其他变体)的分发参数的数字组件。使用搜索查询对一个或多个数字组件进行的识别可以以类似于上面讨论的方式的方式来执行。
是否向给定用户分发数字组件和/或向给定用户分发哪个数字组件的确定可以由关于给定用户先前参与的用户会话的持续时间的信息来通知。例如,当给定用户在与由特定内容提供商提供的文档进行交互时已经参与了更长(例如,长于指定时间量)的用户会话时,系统可以确定向给定用户分发由该特定内容提供商提供的数字组件。相反,当给定用户在与由特定内容提供商提供的文档进行交互时已经参与了更短(例如,短于指定时间量)的用户会话时,系统可以确定没有数字组件或没有来自不同内容提供商的数字组件将被分发给该给定用户。
在一些情况下,当给定用户比与由特定内容提供商提供的文档交互的指定时间量花费更少时,可以限制向给定用户的内容分发,从而使用更少的带宽。例如,在这些情况下,系统可以向给定用户传输较小的数字组件(例如,就文件大小而言),或者阻止向给定用户的数字组件的分发,以便限制向给定用户提供内容所消耗的带宽量。同时,当用户已经花费至少指定时间量与由特定内容提供商提供的文档进行交互时,较大的数字组件(例如,就文件大小而言)可以被分发给给定用户和/或给定用户可以被分发较大数量的数字组件。例如,当用户已经花费至少指定时间量与由特定内容提供商提供的文档进行交互时,给定用户可以被更频繁分发由特定内容提供商提供的数字组件。
在其他情况下,可以基于给定用户已经参与的用户会话的配额来进行预缓存确定。例如,当给定用户在观看由特定内容提供商提供的文档时历史上已经参与了较长的用户会话时,在用户正在浏览由特定内容提供商提供的各种文档的同时,可以在客户端设备处预缓存附加数据(例如,由特定内容提供商提供的其他文档的内容)。以这样的方式,当用户请求其他文档时,其他文档的呈现会更快地出现。
现在参考下面的图2至图5描述用于使用数字组件分发系统110,基于网站处的用户会话的持续时间来修改向用户的内容分发的过程和示例。
图2是示例环境200的系统流程图,其中数字组件分发系统110可以用客户端设备106来实施。数字组件分发系统110除了能够实现上面参考图1讨论的操作的其他组件,还可以包括用户活动服务器230和内容视图服务器240。数字组件分发系统110还可以包括用户活动数据存储装置234和内容视图数据存储装置244。在一些实施方式中,数字组件分发系统110执行参考图3描述的过程300的操作,以例如在聚集数据存储装置250中聚集来自用户活动数据存储装置234和内容视图数据存储装置244的数据。如下所讨论的,可以使用聚集数据来确定用户会话的持续时间,这可以用于修改向用户的内容分发。
图3是示例过程300的流程图,该示例过程300用于使用数字组件分发系统,基于网站处的用户会话的持续时间来修改向用户的内容分发。过程300可以例如由图1和图2的数字组件分发系统110来实施,并且由图2的系统流程图来示出。过程300的操作也可以被实施为存储在非暂时性计算机可读介质上的指令,并且一个或多个数据处理装置执行该指令可以使得一个或多个数据处理装置执行过程300的操作。
过程300接收分组化消息(302)。在一些实施方式中,分组化消息通过包括在给定在线资源的代码中的标签的信号通知生成。标签的短语信号通知也可以被称为标签的发射。分组化消息可以包括用户的标识符或者与正在访问给定在线资源的用户相对应的标识符。例如,图2示出了特定用户的、在客户端设备106上的用户活动流202。在所示的示例中,特定用户访问在线资源(网页)(诸如实体资源页面A 204A),并且在由客户端设备再现实体资源页面A204A时,作为在线资源的一部分的标签(例如,脚本)(诸如报告标签205A)发射(例如,被处理和/或执行)。报告标签205A的信号通知使得客户端设备生成分组化消息210A。分组化消息210A从客户端设备发送到数字组件分发系统110中的用户活动服务器230。分组化消息210A可以包括表示正在访问给定在线资源的用户的用户标识符(例如,cookie或另一用户标识符,诸如账户标识符)、页面A204A的URL和/或数据类型指示符。在一些实施例中,分组化消息210A还可以包括指示用户何时访问特定页面A204A的时间戳。在一些实施例中,当接收到分组化消息210A时,时间戳由用户活动服务器230添加,而不是在接收到分组化消息210A之前被包括在分组化消息210A中。
如图2所示,用户活动服务器230从客户端设备接收(多个)分组化消息210,并将接收到的用户活动数据232记录在用户活动数据存储装置234中。在一些实施例中,用户活动服务器230可以读取每个分组化消息,以确定数据类型、用户标识符、实体资源的URL和/或消息是否包括时间戳。如果分组化消息210中不包括时间戳,则用户活动服务器230可以在将用户活动数据232记录在用户活动数据存储装置234中之前添加时间戳。
如图2所示,数字组件分发系统110还可以包括内容视图服务器240。当客户端设备106访问第三方资源页面206时,运行在第三方在线资源上的脚本(诸如内容请求脚本(content request script,CRS)207)发射,并生成内容视图数据220。在示例实施例中,内容视图数据220从第三方资源页面206发送到数字组件分发系统110中的内容视图服务器240。响应于接收到内容视图数据220,内容视图服务器240可以向资源页面206发送内容返回数据222。内容视图数据220可以呈分组请求数据(例如,一个HTTP请求)的形式,并且可以包括关于正在被再现的第三方资源(网页)的信息。例如,内容视图数据220可以包括表示正在访问第三方资源页面206的用户的用户标识符(例如,cookie或另一用户标识符,例如帐户标识符)、第三方资源页面206的URL和/或数据类型指示符。在一些实施例中,内容视图数据220还可以包括指示用户何时访问特定第三方资源页面206的时间戳。在一些实施例中,当接收到内容视图数据220时,由内容视图服务器240添加时间戳。类似于用户活动服务器230,内容视图服务器240从客户端设备接收内容视图数据220,并将接收到的内容视图数据220记录在内容视图数据存储装置244中。在一些实施例中,内容视图服务器240可以读取接收到的内容数据,以确定数据类型、用户标识符、实体资源的URL和/或消息是否包括时间戳。如果在内容视图数据220中不包括时间戳,则内容视图服务器240可以在将内容视图数据220发送到内容视图数据存储244之前添加时间戳。
此外,如图2所示,在给定的用户活动流202中,在用户继续查看由相同内容提供商提供的资源的页面(诸如页面A 204A、页面B 204B、页面204N等)时,标签发射(例如,标签205A、205B、205N等),这使得客户端设备生成分组化消息(210A、210B、210N等)并将这些分组化消息发送到数字组件分发系统110中的用户活动服务器230。在一些实施例中,特定实体(诸如内容提供商)的资源可以来自网络浏览器、安装在客户端设备106上的本地应用或两者的组合。例如,用户可以在客户端设备106上的浏览器中的示例实体网页“example.com/shoes”(即,页面A 204A)处访问鞋,并且然后通过被安装在客户端设备106上的示例实体本地应用(即,页面B 204B)访问类似的资源或网页。对于这两个示例,用户活动服务器230可以接收指示用户正在相同实体的资源内查看鞋的分组化消息210,这里两者都是示例实体资源。例如,包括标签的每个网页和/或本地应用用户界面将使客户端设备生成将被传输到用户活动服务器的分组化消息。
返回参考图3,过程300将分组化消息的时间戳记录为包括给定在线资源的网站处的用户会话的开始(304)。如本文所讨论的,在一个示例实施例中,分组化消息210可以包括时间戳,或者在其他示例中,用户活动服务器230可以为接收到的每个分组化消息210添加时间戳。图4中示出了示出所记录的时间戳的示例数据集合。
图4是数字组件分发系统内的合并的聚集用户会话数据的示例表400。聚集用户会话数据可以被例如图2的数字组件分发系统110合并。例如,数字组件分发系统110可以组合用户活动数据232和内容视图数据220以形成聚集用户会话数据,该聚集用户会话数据可以被存储在聚集数据存储装置250中。
表400中示出的示例聚集用户会话数据指定了由特定用户访问的多个资源(网页)。由特定用户访问的资源可以由数字组件分发系统110从所接收的分组化消息210和内容视图数据220中识别。表格400包括信息列,诸如时间戳列402、信息资源(网页)URL列404、数据类型列406和所计算的用户会话持续时间列408。表格400还包括不同组的不同阴影的行,其中每组行具有与不同用户会话相对应的相同阴影。例如,行410A、410B、410C和410D包括在用户会话410中,行412A、412B包括在用户会话412中,并且行416A、416B包括在用户会话416中。行414A、414B没有阴影,因为表400中的这些条目对应于用户对其他资源(例如,不是由内容提供商提供的、正在被确定用户会话持续时间的资源)的访问。然而,它们可以作为非用户会话条目414被分组在一起。
在记录分组化消息的时间戳之后,过程300确定用户会话是否已经结束(306)。在一些实施方式中,确定用户会话是否已经结束是基于(i)自最近接收的分组化消息的时间戳起是否已经过去了指定时间量(308),或者(ii)是否检测到来自第三方资源的内容视图数据(310)。如果对任一决策分支的判定为“是”,则过程300进行到步骤312。然而,如果对两个判决分支的判定都为“否”,则过程300返回到步骤302以接收另一分组化消息。该数据处理循环可以在步骤302继续接收分组化消息210,直到满足条件中的任一个(308,310)。特别地,过程300可以确定网站处的用户会话保持活动,同时在最近接收的分组化消息的时间戳的指定时间量内继续接收由网站内的附加标签的信号通知生成的附加分组化消息。同时,当(i)接收到最近接收到的分组化消息的时间戳的时间之后的指定时间量已经达到(例如,步骤308)或者(ii)检测到指定响应于包括与用户相对应的标识符的请求而将第三方内容提供给不同网站的内容视图数据(例如,步骤306)时,确定用户会话已经结束。例如,如果用户在用户活动流202期间例如正在“example.com”处查看“鞋”,则时间戳将继续被数字组件分发系统记录并被视为一个大用户会话的一部分,只要系统没有从内容视图数据220中检测到用户移动到第三方内容资源(网页),或者在接收的分组化消息210之间没有超过时间量(例如>10分钟)。
在一些实施例中,如图2所示,在用户访问特定实体(例如,内容提供商)拥有的在线资源的页面或者导航到相同实体的新资源页面(即,页面B204B)时,数字组件分发系统110可以从接收到的下一分组化消息(例如,分组化消息210B)中确定用户仍正在查看相同实体的在线资源。这也在图4的表400中示出,其中,例如,行410A可以表示实体资源页面A204A,并且包括时间戳和URL(例如,“下午5:00:00”和“example.com/shoes”),并且行410B可以表示接收到的表示来自实体资源页面B 204B的信息的下一分组化消息210B,其可以包括时间戳和URL(例如,“下午5:00:35”和“example.com/shoes/brandX”)。
在一些实施例中,数字组件分发系统110可以将当前时间与最近接收的分组化消息的时间戳(即,t=0)进行比较。例如,数字组件分发系统110可以在每个接收到的分组化消息之后启动计时器,并且如果该计时器在接收到下一分组化消息之前达到超时,则数字组件分发系统110将确定用户会话的结束。如果在超时时段内接收到另一分组化消息,则计时器可以被重置(即,t=0),并且该过程可以重复。
在一些实施例中,数字组件分发系统110可以将最近接收到的分组化消息的时间戳与聚集数据集合(例如,图4的表400)中的特定用户的先前时间戳进行比较。如果用户仍然在相同实体拥有的在线资源(例如,“example.com”)内,并且由最近接收的分组化消息的时间戳指定的时间在先前的分组化消息时间戳的指定时间量内(例如,不超过10分钟),则数字组件分发系统110可以确定用户会话未结束。然而,如果由最近接收的分组化消息的时间戳指定的时间在先前的分组化消息时间戳的指定时间量之外(例如,超过10分钟),则数字组件分发系统110可以确定先前的用户会话结束,并且最近接收的分组化消息是新的用户会话的开始。
在一些实施例中,数字组件分发系统110可以确定用户是否切换到不同的第三方在线资源。例如,数字组件分发系统110可以比较来自聚集数据集合(例如,图4的表400)的聚集数据,并且确定最近接收的数据类型是否仍然来自相同的实体拥有的在线资源(对于该示例为“example.com”),或者用户是否切换到不同的第三方在线资源(例如,切换到“examplesports.com”)。例如,如果聚集数据集合包括指定数字组件被请求以便在examplesports.com上向用户呈现的内容视图数据,则可以认为用户会话在由内容视图数据的时间戳指定的时间处已经结束。
根据一些实施方式,数字组件分发系统110可以连续接收多个用户的多个用户活动流202的分组化消息210和内容视图数据220,并且对于每个用户,将用户活动数据232记录在用户活动数据日志234中,将内容视图数据220记录在内容视图数据日志244中,并且将数据合并在聚集数据日志250中。
参考图4中的表400描述了基于时间戳是否指示已经超过指定时间量来确定用户会话的结束的示例。例如,行410D的时间戳是下午5:05:30,并且下一条目(行412A)的时间戳是下午6:25:00。在此示例中,填充这些行中的每一个的数据来自于来自相同个网站(“example.com”)的分组化消息。然而,正如时间戳所指示的,这两个分组化消息之间大约经过了80分钟。在此示例中,用于确定用户会话是否已结束的指定时间量被假设为10分钟。由此,已经超过了指定时间量,因为80分钟超过了指定时间量。因此,数字组件分发系统110可以确定这两行410D和412A各自对应于不同的用户会话。例如,行410D表示为用户会话410接收的最后一个分组化消息,并且行412A可以表示为用户会话412接收的第一个分组化消息。
还参考图4中的表400描述了基于用户是否切换到第三方在线资源和离开第一在线资源来确定用户会话的结束的示例。例如,行412B表示时间戳为下午6:25:45的分组化消息,并且接收的下一分组化消息的时间戳为下午6:32:20(行416A)。因此,这两个分组化消息之间的时间量小于指定时间量(例如,假设来自上述示例中的指定时间量为10分钟)。因此,基于超过的指定时间量,用户会话412将不会被视为结束。然而,表400包括时间戳为6:28:46(行414A)并指定内容被请求用于在不同的资源(例如,除了example.com)上呈现给用户的内容视图数据。由此,这是用户导航离开example.com的指示,从而结束用户会话412。因此,数字组件分发系统110然后可以确定在用户会话412期间接收的最后一个分组化消息由行412B以下午6:25:45的时间戳标记表示。
过程300基于时间戳和网站处的用户会话被确定为已经结束的时间之间的差来计算用户会话的持续时间(312)。例如,如图4中的表400所示,数字组件分发系统110确定用户会话410的持续时间是五分三十秒(“5m 30s”),这是用户会话410中包括的第一时间戳和最后时间戳之间的时间戳方面的差。如上所讨论的,用户会话的结束被确定为下午5:05:30标记(行410D),因为在下午6:25:00接收的分组(行412A)超过了10分钟的指定时间量。在一些实施方式中,指定时间量可以被调整为内容分发者确定为用户最有可能停止浏览相同页面或停止使用客户端设备或者在设备上使用不同的非浏览应用的适当时间量。
过程300基于网站处的用户会话的持续时间来修改向用户的内容分发(314)。例如,数字组件分发系统110可以修改哪些内容被提供给特定的用户集合或子集,这可以导致更有效地利用带宽和计算资源。下面参考图5描述用于将用户会话数据的聚集集合分割成两个或更多个子集以向内容提供商的管理员提供的示例过程。
图5是使用数字组件分发系统,基于用户会话数据的子集来修改内容分发的示例过程500的流程图。过程500可以例如由图1和图2的数字组件分发系统110来实施。
过程500将用户的所计算的用户会话的持续时间和用户的标识符与其他用户在网站处的其他用户会话持续时间和其他用户的其他标识符一起存储在数据结构中,以获得访问该网站的用户的用户会话数据的聚集集合(502)。例如,在确定用户会话已经结束并且计算用户会话持续时间(例如,如图4中示出的用户会话410、412、416的持续时间)之后,数字组件分发系统110可以将所计算的每个用户会话的持续时间存储在数据存储装置中,诸如聚集数据存储装置250,或者数字组件分发系统110可以访问的另一数据库。
过程500基于由用户会话持续时间指定的时间长度,将用户会话数据的聚集集合分割成两个或更多个子集。例如,可以创建用户会话数据的第一子集,该第一子集包括与小于指定持续时间的用户会话持续时间相对应的用户的标识符(504)。类似地,可以创建用户会话数据的第二子集,该第二子集包括与超过指定持续时间的用户会话持续时间相对应的用户的标识符(506)。在一些实施方式中,数字组件分发系统110可以使用由内容提供商确定的时间阈值来创建用户会话持续时间的子集。例如,特定内容提供商可以基于确定当用户的会话持续时间至少两分钟的时间阈值(或一些其他时间阈值)时用户对实体的特定资源(例如,“example.com”)或资源的子集(例如,“example.com/shoes”)感兴趣的可能性更高来选择两分钟的时间阈值(或一些其他时间阈值)。根据此示例,如图4所示,用户会话持续时间412(“45s”)将被包括在第一子集中,因为用户会话持续时间412被确定为小于两分钟,并且用户会话持续时间410(5m 30s)和用户会话持续时间416(“2m 40s”)将被包括在第二子集中,因为用户会话持续时间410和416各自在两分钟的指定持续时间以上。
过程500基于网站处的用户会话的持续时间,通过当那些用户基于那些用户被包括在第二子集中来访问其他网站时,向与第二子集中的标识符相对应的用户提供与网站相关的附加内容来修改向用户的内容分发(508)。例如,类似于以上对于过程300所讨论的,数字组件分发系统110可以具体地基于创建的不同数据子集来修改内容分发。在一些实施方式中,可以创建多个数据子集,诸如基于不同的时间段阈值(例如,少于五分钟、在五分钟和十分钟之间、大于十分钟等),和/或基于相同实体资源内的不同子集(例如,“品牌X鞋(brand X shoes)”、“足球鞋(soccer shoes)”、“女鞋(soccer shoes)”等)。通过创建不同时间阈值的子集,内容提供商随后可以确定不修改向可能只花了三十秒或更少时间浏览通过实体资源的一部分的用户的内容。
过程500提供用户界面,该用户界面向网站的管理员呈现关于两个或更多个子集的信息,包括每个子集中包括的多个标识符(510)。过程500向管理员提供控制,当与标识符相对应的用户访问其他网站或本地应用时,该控制将两个或更多个子集中的至少一个指定为与网站相关的附加内容的预期接收者(512)。例如,如上所讨论的,数字组件分发系统110可以为相同实体提供子集的几种不同组合。子集的不同组合可以包括例如子集1、子集2和子集3。在此示例中,子集1包括在示例实体的特定资源(例如,“example.com/shoes”)上花费少于两分钟的用户。在此示例中,子集2包括在示例实体的相同特定资源上花费超过五分钟的用户。在此示例中,子集3包括在示例实体的相同特定资源的子集(例如,“walmart.com/shoes/soccer”)上花费超过两分钟的用户。当然,也可以提供其他子集。管理员(例如,内容提供商)可以向数字组件分发系统110提交指定哪些子集将被用于分发内容的请求。例如,假设管理员向数字组件分发系统110提交向子集X中包括的那些用户分发给定数字组件的请求,该子集X包括在内容提供商的网站上花费Y时间的用户。在此示例中,数字组件分发系统110可以将数字组件的分发限制到包括在子集X中的那些用户。以这样的方式,通过将数字组件的分发仅限制到在内容提供商的网站上花费了至少Z时间量的用户子集中的那些用户,可以优化(例如,更有效地使用)用于分发数字组件的带宽量。由此,用于分发数字组件的带宽量也被减少(或受到限制),从而更有效地利用用于分发数字组件的带宽量。
除了使管理员能够选择性地将数字组件分发到用户的任何子集之外,用户会话持续时间信息还可以用于向管理员提供关于用户如何与他们的网站或其他电子文档(例如,本地应用)交互的更多信息。例如,还可以基于表400中提供的信息来生成分析,诸如平均用户会话持续时间、用户会话持续时间的直方图和/或提供关于用户在内容提供商的网站或内容提供商的网站的某些页面上花费多长时间的信息的其他度量,并将其呈现给内容提供商。例如,可以提供该信息来补充管理员可能正在获得的其他分析数据,并且可以在可能不可获得其他分析数据(例如,由于与获得其他分析数据的方式不兼容)的情况下提供该信息。
在一些实施方式中,数字组件分发系统110可以检测分组化消息210中的设备类型标识符。设备类型标识符指定与分组化消息相对应的设备类型。例如,设备类型标识符可以指定设备的型号、设备的制造商和/或设备的形状因素。在一些实施方式中,设备类型标识符可以指定设备类型是移动的、平板的还是桌面的。还可以针对从其他设备接收的其他分组化消息检测设备类型标识符。
设备类型标识符可以用于在每个设备类型(per-device-type)的基础上描绘用户会话。例如,对于与分组化消息210和其他分组化消息相对应的用户会话,数字组件分发系统110可以基于设备类型标识符来确定使用移动设备进行的用户会话的部分、使用平板设备进行的用户会话的部分和/或使用桌面设备进行的用户会话的部分。使用每个设备类型进行的用户会话的部分可以例如通过简单地计数包括指定该设备类型的分组化消息的用户会话的数量来确定。在一些实施方式中,数字组件分发系统110可以基于网站处的用户会话的持续时间以及基于使用移动设备进行的用户会话的部分来修改向用户的内容分发。例如,如果使用移动设备进行的用户会话具有最高的用户会话持续时间,则数字组件分发系统110可以限制向移动设备的内容分发。
在一些情况下,数字组件分发系统110可以确定用户会话的持续时间超过阈值持续时间。在这些情况下,当用户随后在网站处发起新会话时,可以通过在用户的客户端设备处预缓存网站的网页的数据来修改向用户的内容分发。例如,当该用户随后请求网站的第一网页时,网站中的其他网页(例如,该用户频繁访问的页面)的内容可以被缓存在客户端设备处,以加速网站的页面之间的导航。这种预缓存可以限于在网站处花费至少最少时间量的用户,以便不会在不太可能导航到网站的许多页面的用户的客户端设备处浪费带宽预缓存数据。
在一些实施方式中,数字组件分发系统110可以基于网站处的用户会话的持续时间来修改向用户的内容分发,以基于用户会话的持续时间来控制用于内容分发的带宽使用。在一些实施方式中,基于用户会话的持续时间来控制用于内容分发的带宽使用包括当用户会话的持续时间在指定量以下时,减少用于向用户的内容分发的带宽量。例如,当用户倾向于在网站处花费少量时间时,提供给用户的内容可能限于文本内容。可替换地或附加地,在这些情况下加载的多媒体内容的量可以被限制,以减少用于向在网站处花费很少时间的用户提供内容的带宽量。另外,可以防止引用网站的数字组件(例如,包括到网站的超链接)被分发给在网站处花费很少时间(例如,具有在指定持续时间以下的用户会话持续时间)的用户。
在一些实施方式中,基于网站处的用户会话的持续时间来修改向用户的内容分发可以包括:当那些用户基于那些用户被包括在第二子集中来访问其他网站时,向与第二子集中的标识符相对应的用户提供与网站相关的附加内容。回想一下,第二子集包括会话持续时间超过指定持续时间的用户的那些用户标识符,使得向这些用户提供与网站相关的附加内容可能是对用于传输内容的带宽的有效使用。
图6是作为客户端或者作为服务器或者多个服务器的示例计算设备600、650的框图,该示例计算设备可以被用来实施本文档中描述的系统和方法。计算设备600旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片式服务器、大型机和其他合适的计算机。计算设备600进一步旨在表示任何其他典型的非移动设备,诸如电视机或其中嵌入或连接有一个或多个处理器的其他电子设备。计算设备650旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他计算设备。这里示出的组件、它们的连接和关系以及它们的功能仅是示例,并不意味着限制本文档中描述和/或要求保护的发明的实施方式。
计算设备600包括处理器602、存储器604、存储设备606、连接到存储器604和高速扩展端口610的高速控制器608、以及连接到低速总线614和存储设备606的低速控制器612。组件602、604、606、608、610和612中的每一个使用各种总线互连,并且可以被安装在公共主板上或者以其他适当的方式安装。处理器602可以处理用于在计算设备600内执行的指令(包括存储在存储器604中或存储设备606上的指令),以在外部输入/输出设备(诸如耦合到高速控制器608的显示器616)上显示用于GUI的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和多种类型的存储器。而且,可以连接多个计算设备600,其中每个设备(例如,作为服务器组、刀片式服务器群组或多处理器系统)提供必要操作的一部分。
存储器604在计算设备600内存储信息。在一个实施方式中,存储器604是计算机可读介质。在一个实施方式中,存储器604是一个或多个易失性存储器单元。在另一实施方式中,存储器604是一个或多个易失性存储器单元。
存储设备606能够为计算设备600提供大容量存储。在一个实施方式中,存储设备606是计算机可读介质。在各种实施方式中,存储设备606可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备、或者包括存储区域网络中的设备或其他配置的设备的阵列。在一个实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含当被运行时执行一种或多种方法(诸如以上描述的那些方法)的指令。信息载体是计算机或机器可读介质,诸如存储器604、存储设备606或处理器602上的存储器。
高速控制器608管理计算设备600的带宽密集型操作,而低速控制器612管理较低带宽密集型操作。这种职责的分配仅是示例。在一个实施方式中,高速控制器608耦合到存储器604、显示器616(例如,通过图形处理器或加速器),并且耦合到可以接受各种扩展卡(未示出)的高速扩展端口610。在实施方式中,低速控制器612耦合到存储设备606和低速总线614。可以包括各种通信端口(例如,USB、
Figure BDA0002417308950000261
以太网、无线以太网)的低速总线614(例如,低速扩展端口)可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器的联网设备。
如图所示,计算设备600可以以多种不同的形式实施。例如,它可以实施为标准服务器620,或者在一组这样的服务器中实施多次。它也可以被实施为机架式服务器系统624的一部分。此外,它可以在诸如膝上型计算机622的个人计算机中实施。可替换地,来自计算设备600的组件可以与诸如移动计算设备650的移动设备(未示出)中的其他组件相结合。这样的设备中的每一个可以包含计算设备600和650中的一个或多个,并且整个系统可以由彼此通信的多个计算设备600、650构成。
计算设备650包括处理器652、存储器664、诸如显示器654的输入/输出设备、通信接口666和收发器668以及其他组件。计算设备650还可以被提供为具有存储设备(诸如微驱动器或其他设备)以提供附加的存储。组件650、652、664、654、666和668中的每一个使用各种总线互连,并且若干组件可以被安装在公共主板上或者以其他适当的方式安装。
处理器652可以处理用于在计算设备650内执行的指令,包括存储在存储器664中的指令。处理器还可以包括分离的模拟处理器和数字处理器。处理器可以提供例如移动计算设备650的其他组件的协调,诸如用户界面的控制、计算设备650运行的应用以及计算设备650的无线通信。
处理器652可以通过耦合到显示器654的控制接口658和显示接口656与用户通信。显示器654可以是例如TFT LCD显示器或OLED显示器,或其他合适的显示技术。显示接口656可以包括用于驱动显示器654以向用户呈现图形信息和其他信息的适当电路系统。控制接口658可以从用户接收命令,并将它们转换以提交给处理器652。此外,外部接口662可以提供与处理器652的通信,以便使得计算设备650能够与其他设备进行近区域通信。外部接口662可以提供例如有线通信(例如,经由对接过程)或无线通信(例如,经由蓝牙
Figure BDA0002417308950000271
或其他这样的技术)。
存储器664在计算设备650内存储信息。在一个实施方式中,存储器664是计算机可读介质。在一个实施方式中,存储器664是一个或多个易失性存储器单元。在另一实施方式中,存储器664是一个或多个易失性存储器单元。扩展存储器674还可以被提供并通过扩展接口672连接到计算设备650,该扩展接口可以包括例如用户识别模块(subscriberidentification module,SIM)卡接口。这种扩展存储器674可以为计算设备650提供额外的存储空间,或者也可以为计算设备650存储应用或其他信息。具体而言,扩展存储器674可以包括执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器674可以被提供为计算设备650的安全模块,并且可以利用允许安全使用计算设备650的指令来编程。此外,可以经由SIM卡提供安全应用以及附加信息,诸如以不可破解的方式在SIM卡上放置标识信息。
如下所讨论的,存储器可以包括例如闪存和/或MRAM存储器。在一个实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含当被运行时执行一种或多种方法(诸如以上描述的那些方法)的指令。信息载体是计算机或机器可读介质,诸如存储器664、扩展存储器674或处理器652上的存储器。
计算设备650可以通过通信接口666无线通信,该通信接口在必要的情况下可以包括数字信号处理电路系统。通信接口666可以提供各种模式或协议下的通信,诸如GSM语音呼叫、SMS、EMS、MMS消息传送、CDMA、TDMA、PDC、WCDMA、CDMA2000或者GPRS等。这样的通信可以例如通过收发器668(例如,射频收发器)发生。此外,可能会发生短程通信,诸如使用
Figure BDA0002417308950000272
WiFi或其他这样的收发器(未示出)。此外,GPS接收器模块670可以向移动计算设备650提供附加的无线数据,这些数据可以被在计算设备650上运行的应用适当地使用。
计算设备650还可以使用音频编解码器660可听见地通信,该音频编解码器可以从用户接收口头信息并将其转换成可使用的数字信息。音频编解码器660同样地可以(诸如通过扬声器)为用户生成可听声音,例如在计算设备650的电话中。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等)并且还可以包括由在计算设备650上操作的应用生成的声音。
如图所示,计算设备650可以以多种不同的形式实施。例如,它可以被实施为蜂窝电话680。它也可以被实施为智能电话682、个人数字助理或其他移动设备的一部分。
在这里讨论的系统收集关于用户的个人信息或者可以利用个人信息的情况下,可以向用户提供机会来控制应用或特征是否收集用户信息(例如,关于用户的社交网络、社交行为或活动、职业、用户偏好或用户的当前位置的信息),或者控制是否和/或如何接收与用户更相关的内容。此外,在存储或使用某些数据之前,可能会以一种或多种方式对其进行处理,使得删除个人可识别的信息。例如,可以处理用户的身份,使得不能为用户确定个人可识别的信息,或者可以在获得位置信息的地方泛化用户的地理位置(例如泛化到城市、邮政编码或州级),使得不能确定用户的特定位置。因此,用户可以控制如何收集关于用户的信息并由内容服务器使用。
本说明书中描述的主题、操作的实施例可以实施在数字电子电路系统中、实施在计算机软件或固件中或硬件中(包括本说明书中公开的结构和它们的结构等同物中),或者实施在它们中的一个或多个的组合中。本说明书中描述的主题的实施例可以被实施为一个或多个计算机程序,即编码在计算机存储介质上用于由数据处理装置执行或用于控制数据处理装置的操作的计算机程序指令的一个或多个模块。
计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行访问存储设备,或者它们中的一个或多个的组合或被包括在其中。而且,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个分离的物理组件或介质(例如,多个CD、磁盘或其他存储设备)或被包括在其中。
本说明书中描述的操作可以被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他来源接收的数据执行的操作。
术语“数据处理装置”涵盖用于处理数据的各种装置、设备和机器,作为示例包括可编程处理器、计算机、片上系统或前述中的多个或者其组合。该装置可以包括专用逻辑电路系统,例如FPGA(field programmable gate array,现场可编程门阵列)或ASIC(application specific integrated circuit,专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟环境或它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
计算机程序(也可以称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、存储在专用于所讨论的程序的单个文件中、或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。可以部署计算机程序以在一个计算机上或在位于一个站点处或分布在跨多个站点并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路系统来执行,并且装置也可以实施为专用逻辑电路系统,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
作为示例,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。一般而言,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。一般而言,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),或者被可操作地耦合以从一个或多个大容量存储设备接收数据或将数据传送到一个或多个大容量存储设备,或者进行两者。然而,计算机不需要具有这样的设备。而且,计算机可以嵌入到另一设备中,例如移动电话、个人数字助理(personal digital assistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(Global Positioning System,GPS)接收器或便携式存储设备(例如通用串行总线(universal serial bus,USB)闪存驱动器),仅举几个示例。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括半导体存储器设备(例如EPROM、EEPROM和闪存设备);磁盘(例如内部硬盘或可移动磁盘);磁光盘;和CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或被并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备(例如CRT(cathode ray tube,阴极射线管)或LCD(liquid crystal display,液晶显示器)以及用户可以通过其向计算机提供输入的键盘和定点设备(例如鼠标或轨迹球)。其他类型的设备也可以被用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学输入、语音输入或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从该设备接收文档来与用户交互,例如通过响应于从网络浏览器接收的请求向用户的客户端设备上的网络浏览器发送网页。
本说明书中描述的主题的实施例可以在计算系统中实施,该计算系统包括例如作为数据服务器的后端组件、或者包括中间件组件(例如应用服务器)、或者包括前端组件(例如具有用户可以通过其与本说明书中描述的主题的实施方式交互的图形用户界面或网络浏览器的用户计算机)或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互连网络(例如互联网)和对等网络(例如ad hoc对等网络)。
计算系统可以包括用户和服务器。用户和服务器通常彼此远离,并且通常通过通信网络进行交互。用户和服务器的关系由于在各个计算机上运行并且彼此具有的用户-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,HTML页面)传输到用户设备(例如,用于向与客户端的设备交互的用户显示数据和从该用户接收用户输入的目的)。在用户设备处生成的数据(例如用户交互的结果)可以在服务器处从客户端设备接收。
虽然本说明书包含许多具体的实施细节,但这些不应被解释为对任何特征或所要求保护的范围的限制,而是作为对特定于特定实施例的特征的描述。本说明书中在分离的实施例中的上下文中描述的某些特征也可以在单个实施例中以组合的方式实施。相反,在单个实施的上下文中描述的各种特征也可以被分开地在多个实施例中或在任何合适的子组合中实施。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至由此最初要求保护这些特征,但是在某些情况下来自要求保护的组合的一个或多个特征可以从该组合中删去,并且要求保护的组合可以转向子组合或子组合的变体。
类似地,虽然在附图中以特定的顺序描绘了操作,但是这不应该被理解为要求以所示的特定的顺序或按顺次的顺序来执行这些操作、或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。而且,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解的是,描述的程序组件和系统总体上可以在单个软件产品中集成在一起或者被打包到多个软件产品当中。
因此,已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求中叙述的动作可以以不同的顺序执行,并且仍然实现期望的结果。此外,附图中描绘的过程不一定要求所示的特定的顺序或顺次的顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

Claims (27)

1.一种方法,包括:
通过网络并由数字组件分发系统接收分组化消息,所述分组化消息(i)由包括在给定在线资源的代码中的标签的信号通知生成,并且(ii)包括与正在访问所述给定在线资源的用户相对应的标识符;
由所述数字组件分发系统将所述分组化消息的时间戳记录为包括所述给定在线资源的网站处的用户会话的开始;
由所述数字组件分发系统确定所述网站处的用户会话保持活动,同时在最近接收到的分组化消息的时间戳的时间之后的指定时间量内继续接收由所述网站内的附加标签的信号通知生成的附加分组化消息;
由所述数字组件分发系统确定在以下中的一个时,所述网站处的用户会话已经结束:(i)接收到所述最近接收到的分组化消息的时间戳的时间之后的指定时间量或者(ii)检测到指定响应于包括与所述用户相对应的标识符的请求而将第三方内容提供给不同网站的内容视图数据时;
由所述数字组件分发系统基于所述时间戳和所述网站处的用户会话被确定为已经结束的时间之间的差来计算所述用户会话的持续时间;以及
基于所述网站处的用户会话的持续时间来修改向所述用户的内容分发。
2.根据权利要求1所述的方法,其中所述分组化消息的时间戳被包括在所述分组化消息中,或者基于所述分组化消息的到达的时间来确定。
3.根据权利要求1或2所述的方法,其中基于所述网站处的用户会话的持续时间来修改向所述用户的内容分发包括基于所计算的用户会话的持续时间来控制用于内容分发的带宽使用。
4.根据权利要求3所述的方法,其中基于所述用户会话的持续时间来控制用于内容分发的带宽使用包括当所述用户会话的持续时间在指定量以下时,减少用于向所述用户的内容分发的带宽量。
5.根据前述权利要求中的任一项所述的方法,还包括:
确定所述用户会话的持续时间超过阈值持续时间,其中基于所述用户会话的持续时间来修改向所述用户的内容分发包括响应于确定所述用户会话超过阈值持续时间,当所述用户随后在所述网站处发起新会话时,在所述用户的客户端设备处预缓存所述网站的网页的数据。
6.根据前述权利要求中的任一项所述的方法,还包括:
将所述用户的所计算的用户会话的持续时间和所述用户的标识符与其他用户在所述网站处的其他用户会话持续时间和所述其他用户的其他标识符一起存储在数据结构中,以获得访问所述网站的用户的用户会话数据的聚集集合;以及
基于由所述用户会话持续时间指定的时间长度,将用户会话数据的所述聚集集合分割成两个或更多个子集,包括:
创建用户会话数据的第一子集,所述第一子集包括与小于指定持续时间的用户会话持续时间相对应的用户的标识符;以及
创建所述用户会话数据的第二子集,所述第二子集包括与超过所述指定持续时间的用户会话持续时间相对应的用户的标识符。
7.根据权利要求6所述的方法,其中基于所述网站处的用户会话的持续时间来修改向所述用户的内容分发包括:当那些用户基于那些用户被包括在所述第二子集中来访问其他网站时,向与所述第二子集中的标识符相对应的用户提供与所述网站相关的附加内容。
8.根据权利要求7所述的方法,还包括:
提供用户界面,所述用户界面向所述网站的管理员呈现关于所述两个或更多个子集的信息,包括每个子集中包括的多个标识符;以及
向所述管理员提供控制,当与所述标识符相对应的用户访问其他网站或本地应用时,所述控制将所述两个或更多个子集中的至少一个子集指定为与所述网站相关的附加内容的预期接收者。
9.根据前述权利要求中的任一项所述的方法,还包括:
检测所述分组化消息和包括与设备类型相对应的标识符的其他分组化消息中的设备类型标识符;以及
对于与所述分组化消息和所述其他分组化消息相对应的用户会话,基于所述设备类型标识符来确定使用移动设备进行的用户会话的部分,其中基于所述网站处的用户会话的持续时间来修改向所述用户的内容分发包括基于使用所述移动设备进行的用户会话的所述部分来修改所述内容分发。
10.一种系统,包括:
数据处理装置;以及
与所述数据处理装置进行数据通信并存储可由所述数据处理装置执行的指令的非暂时性计算机可读存储介质,并且在这样执行时所述指令使得所述数据处理装置执行包括以下的操作:
通过网络并由数字组件分发系统接收分组化消息,所述分组化消息(i)由包括在给定在线资源的代码中的标签的信号通知生成,并且(ii)包括与正在访问所述给定在线资源的用户相对应的标识符;
由所述数字组件分发系统将所述分组化消息的时间戳记录为包括所述给定在线资源的网站处的用户会话的开始;
由所述数字组件分发系统确定所述网站处的用户会话保持活动,同时在最近接收到的分组化消息的时间戳的时间之后的指定时间量内继续接收由所述网站内的附加标签的信号通知生成的附加分组化消息;
由所述数字组件分发系统确定在以下中的一个时,所述网站处的用户会话已经结束:(i)接收到所述最近接收到的分组化消息的时间戳的时间之后的指定时间量或者(ii)检测到指定响应于包括与所述用户相对应的标识符的请求而将第三方内容提供给不同网站的内容视图数据时;
由所述数字组件分发系统基于所述时间戳和所述网站处的用户会话被确定为已经结束的时间之间的差来计算所述用户会话的持续时间;以及
基于所述网站处的用户会话的持续时间来修改向所述用户的内容分发。
11.根据权利要求10所述的系统,其中所述分组化消息的时间戳被包括在所述分组化消息中,或者基于所述分组化消息的到达的时间来确定。
12.根据权利要求10或11所述的系统,其中基于所述网站处的用户会话的持续时间来修改向所述用户的内容分发包括基于所述用户会话的持续时间来控制用于内容分发的带宽使用。
13.根据权利要求12所述的系统,其中基于所述用户会话的持续时间来控制用于内容分发的带宽使用包括当所述用户会话的持续时间在指定量以下时,减少用于向所述用户的内容分发的带宽量。
14.根据前述权利要求中的任一项所述的系统,所述操作还包括:
确定所述用户会话的持续时间超过阈值持续时间,其中基于所述用户会话的持续时间来修改向所述用户的内容分发包括响应于确定所述用户会话超过阈值持续时间,当所述用户随后在所述网站处发起新会话时,在所述用户的客户端设备处预缓存所述网站的网页的数据。
15.根据前述权利要求中的任一项所述的系统,所述操作还包括:
将所述用户的所计算的用户会话的持续时间和所述用户的标识符与其他用户在所述网站处的其他用户会话持续时间和所述其他用户的其他标识符一起存储在数据结构中,以获得访问所述网站的用户的用户会话数据的聚集集合;以及
基于由所述用户会话持续时间指定的时间长度,将用户会话数据的所述聚集集合分割成两个或更多个子集,包括:
创建用户会话数据的第一子集,所述第一子集包括与小于指定持续时间的用户会话持续时间相对应的用户的标识符;以及
创建所述用户会话数据的第二子集,所述第二子集包括与超过所述指定持续时间的用户会话持续时间相对应的用户的标识符。
16.根据权利要求15所述的系统,其中基于所述网站处的用户会话的持续时间来修改向所述用户的内容分发包括:当那些用户基于那些用户被包括在所述第二子集中来访问其他网站时,向与所述第二子集中的标识符相对应的用户提供与所述网站相关的附加内容。
17.根据权利要求16所述的系统,所述操作还包括:
提供用户界面,所述用户界面向所述网站的管理员呈现关于所述两个或更多个子集的信息,包括每个子集中包括的多个标识符;以及
向所述管理员提供控制,当与所述标识符相对应的用户访问其他网站或本地应用时,所述控制将所述两个或更多个子集中的至少一个子集指定为与所述网站相关的附加内容的预期接收者。
18.根据前述权利要求中的任一项所述的系统,所述操作还包括:
检测所述分组化消息和包括与设备类型相对应的标识符的其他分组化消息中的设备类型标识符;以及
对于与所述分组化消息和所述其他分组化消息相对应的用户会话,基于所述设备类型标识符来确定使用移动设备进行的用户会话的部分,其中基于所述网站处的用户会话的持续时间来修改向所述用户的内容分发包括基于使用所述移动设备进行的用户会话的所述部分来修改所述内容分发。
19.一种用计算机程序编码的非暂时性计算机存储介质,所述计算机程序包括指令,所述指令在由数据处理装置执行时使得所述数据处理装置执行包括以下的操作:
通过网络并由数字组件分发系统接收分组化消息,所述分组化消息(i)由包括在给定在线资源的代码中的标签的信号通知生成,并且(ii)包括与正在访问所述给定在线资源的用户相对应的标识符;
由所述数字组件分发系统将所述分组化消息的时间戳记录为包括所述给定在线资源的网站处的用户会话的开始;
由所述数字组件分发系统确定所述网站处的用户会话保持活动,同时在最近接收到的分组化消息的时间戳的时间之后的指定时间量内继续接收由所述网站内的附加标签的信号通知生成的附加分组化消息;
由所述数字组件分发系统确定在以下中的一个时,所述网站处的用户会话已经结束:(i)接收到所述最近接收到的分组化消息的时间戳的时间之后的指定时间量或者(ii)检测到指定响应于包括与所述用户相对应的标识符的请求而将第三方内容提供给不同网站的内容视图数据时;
由所述数字组件分发系统基于所述时间戳和所述网站处的用户会话被确定为已经结束的时间之间的差来计算所述用户会话的持续时间;以及
基于所述网站处的用户会话的持续时间来修改向所述用户的内容分发。
20.根据权利要求19所述的非暂时性计算机存储介质,其中所述分组化消息的时间戳被包括在所述分组化消息中,或者基于所述分组化消息的到达的时间来确定。
21.根据权利要求19或20所述的非暂时性计算机存储介质,其中基于所述网站处的用户会话的持续时间来修改向所述用户的内容分发包括基于所述用户会话的持续时间来控制用于内容分发的带宽使用。
22.根据权利要求21所述的非暂时性计算机存储介质,其中基于所述用户会话的持续时间来控制用于内容分发的带宽使用包括当所述用户会话的持续时间在指定量以下时,减少用于向所述用户的内容分发的带宽量。
23.根据前述权利要求中的任一项所述的非暂时性计算机存储介质,所述操作还包括:
确定所述用户会话的持续时间超过阈值持续时间,其中基于所述用户会话的持续时间来修改向所述用户的内容分发包括响应于确定所述用户会话超过阈值持续时间,当所述用户随后在所述网站处发起新会话时,在所述用户的客户端设备处预缓存所述网站的网页的数据。
24.根据前述权利要求中的任一项所述的非暂时性计算机存储介质,所述操作还包括:
将所述用户的所计算的用户会话的持续时间和所述用户的标识符与其他用户在所述网站处的其他用户会话持续时间和所述其他用户的其他标识符一起存储在数据结构中,以获得访问所述网站的用户的用户会话数据的聚集集合;以及
基于由所述用户会话持续时间指定的时间长度,将用户会话数据的所述聚集集合分割成两个或更多个子集,包括:
创建用户会话数据的第一子集,所述第一子集包括与小于指定持续时间的所述用户会话持续时间相对应的用户的标识符;并且
创建所述用户会话数据的第二子集,所述第二子集包括与超过所述指定持续时间的用户会话持续时间相对应的用户的标识符。
25.根据权利要求24所述的非暂时性计算机存储介质,其中基于所述网站处的用户会话的持续时间来修改向所述用户的内容分发包括:当那些用户基于那些用户被包括在所述第二子集中来访问其他网站时,向与所述第二子集中的标识符相对应的用户提供与所述网站相关的附加内容。
26.根据权利要求25所述的非暂时性计算机存储介质,所述操作还包括:
提供用户界面,所述用户界面向所述网站的管理员呈现关于所述两个或更多个子集的信息,包括每个子集中包括的多个标识符;以及
向所述管理员提供控制,当与所述标识符相对应的用户访问其他网站或本地应用时,所述控制将所述两个或更多个子集中的至少一个子集指定为与所述网站相关的附加内容的预期接收者。
27.根据前述权利要求中的任一项所述的非暂时性计算机存储介质,所述操作还包括:
检测所述分组化消息和包括与设备类型相对应的标识符的其他分组化消息中的设备类型标识符;以及
对于与所述分组化消息和所述其他分组化消息相对应的用户会话,基于所述设备类型标识符来确定使用移动设备进行的用户会话的部分,其中基于所述网站处的用户会话的持续时间来修改向所述用户的内容分发包括基于使用所述移动设备进行的用户会话的所述部分来修改所述内容分发。
CN201880060804.7A 2018-04-30 2018-04-30 优化网络利用 Active CN111108482B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311525679.1A CN117793200A (zh) 2018-04-30 2018-04-30 优化网络利用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/030316 WO2019212523A1 (en) 2018-04-30 2018-04-30 Optimizing network utilization

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311525679.1A Division CN117793200A (zh) 2018-04-30 2018-04-30 优化网络利用

Publications (2)

Publication Number Publication Date
CN111108482A true CN111108482A (zh) 2020-05-05
CN111108482B CN111108482B (zh) 2023-11-21

Family

ID=62486627

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311525679.1A Pending CN117793200A (zh) 2018-04-30 2018-04-30 优化网络利用
CN201880060804.7A Active CN111108482B (zh) 2018-04-30 2018-04-30 优化网络利用

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202311525679.1A Pending CN117793200A (zh) 2018-04-30 2018-04-30 优化网络利用

Country Status (6)

Country Link
US (1) US11356517B2 (zh)
EP (2) EP3669267B1 (zh)
JP (1) JP7048729B2 (zh)
KR (1) KR102390937B1 (zh)
CN (2) CN117793200A (zh)
WO (1) WO2019212523A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220391372A1 (en) * 2021-06-08 2022-12-08 Amadeus S.A.S. Database offloading utilizing a locater index
CN114048116A (zh) * 2021-11-11 2022-02-15 杭州东方通信软件技术有限公司 一种业务系统的体验度评估方法及装置
US11893651B2 (en) * 2022-04-04 2024-02-06 Motorola Solutions, Inc. Systems for collecting digital witness statements and detecting electronic resources referenced during collection

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020169868A1 (en) * 2001-04-20 2002-11-14 Lopke Michael S. Interactive remote monitoring of client page render times on a per user basis
CN1499805A (zh) * 2002-11-05 2004-05-26 北京英泰利智科技发展有限公司 UniKid应用系统的手机、服务平台及其应用方法
JP2010177797A (ja) * 2009-01-27 2010-08-12 Alaxala Networks Corp 帯域制御装置および通信制御半導体
US20140317653A1 (en) * 2013-04-18 2014-10-23 Comcast Cable Communications, Llc Arbitrated ad consumption
JP2015516095A (ja) * 2012-05-02 2015-06-04 グーグル インコーポレイテッド サーバサイドセッション化を介した集中解析トラッキング
US20160212139A1 (en) * 2015-01-20 2016-07-21 Enzoo, Inc. Session Security Splitting and Application Profiler
US9563900B1 (en) * 2013-09-27 2017-02-07 Groupon, Inc. Method, apparatus, and computer program product for consumer tracking
WO2017035111A1 (en) * 2015-08-25 2017-03-02 Google Inc. Systems and methods for configuring a resource for network traffic analysis

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026678A1 (en) * 2004-07-29 2006-02-02 Zakas Phillip H System and method of characterizing and managing electronic traffic
JP2009265833A (ja) 2008-04-23 2009-11-12 Full Speed Inc 広告システム及び広告方法
EP2204954B1 (en) * 2009-01-06 2017-12-27 Alcatel Lucent Optimised bandwidth utilisation in networks
US8495196B2 (en) * 2010-03-22 2013-07-23 Opanga Networks, Inc. Systems and methods for aligning media content delivery sessions with historical network usage
US8880672B2 (en) 2011-11-01 2014-11-04 Google Inc. Modifying redistribution sets of users based on expiration time
US20130282890A1 (en) * 2012-04-18 2013-10-24 Azuki Systems, Inc. In-stream collection of analytics information in a content delivery system
US8990298B1 (en) 2013-11-05 2015-03-24 Tealium Inc. Universal visitor identification system
US20160117740A1 (en) 2014-10-27 2016-04-28 Facebook, Inc. Remarketing products to social networking system users

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020169868A1 (en) * 2001-04-20 2002-11-14 Lopke Michael S. Interactive remote monitoring of client page render times on a per user basis
CN1499805A (zh) * 2002-11-05 2004-05-26 北京英泰利智科技发展有限公司 UniKid应用系统的手机、服务平台及其应用方法
JP2010177797A (ja) * 2009-01-27 2010-08-12 Alaxala Networks Corp 帯域制御装置および通信制御半導体
JP2015516095A (ja) * 2012-05-02 2015-06-04 グーグル インコーポレイテッド サーバサイドセッション化を介した集中解析トラッキング
US20140317653A1 (en) * 2013-04-18 2014-10-23 Comcast Cable Communications, Llc Arbitrated ad consumption
US9563900B1 (en) * 2013-09-27 2017-02-07 Groupon, Inc. Method, apparatus, and computer program product for consumer tracking
US20160212139A1 (en) * 2015-01-20 2016-07-21 Enzoo, Inc. Session Security Splitting and Application Profiler
WO2017035111A1 (en) * 2015-08-25 2017-03-02 Google Inc. Systems and methods for configuring a resource for network traffic analysis

Also Published As

Publication number Publication date
KR102390937B1 (ko) 2022-04-26
EP3669267A1 (en) 2020-06-24
US11356517B2 (en) 2022-06-07
CN111108482B (zh) 2023-11-21
KR20200042515A (ko) 2020-04-23
JP7048729B2 (ja) 2022-04-05
WO2019212523A1 (en) 2019-11-07
CN117793200A (zh) 2024-03-29
US20210337032A1 (en) 2021-10-28
EP4350523A2 (en) 2024-04-10
JP2021503110A (ja) 2021-02-04
EP3669267B1 (en) 2024-03-06

Similar Documents

Publication Publication Date Title
USRE49262E1 (en) Providing content to a user across multiple devices
KR102038637B1 (ko) 복수의 디바이스들에 걸친 프라이버시 관리
JP6827515B2 (ja) ビデオ検索に対する視聴時間クラスタリング
KR101867809B1 (ko) 검색 결과에 대한 액세스를 향상시키기 위한 시스템 및 방법
US20140122697A1 (en) Providing content to linked devices associated with a user
US10162864B2 (en) Reader application system utilizing article scoring and clustering
WO2012099991A2 (en) Local ad serving
CN107370780B (zh) 基于互联网的媒体推送方法、装置和系统
US9898748B1 (en) Determining popular and trending content characteristics
US10963920B2 (en) Web page viewership prediction
CN111108482B (zh) 优化网络利用
US11627201B2 (en) Optimizing network utilization
US10796336B1 (en) Content selection based on connection information
US20130268354A1 (en) Selecting Content Items for Display in a Content Stream
CN110622159A (zh) 提高选择退出合规性

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant