Optimizing network utilization

CN117793200BActive Publication Date: 2026-10-09GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311525679.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2018-04-30
Publication Date
2026-10-09
Estimated Expiration
2038-04-30

AI Technical Summary

Technical Problem

随着富媒体内容(media-rich content)的分发变得越来越普遍,通过互联网递送内容消耗的带宽继续增加

Benefits of technology

[0038]Specific embodiments of the subject matter described in this specification may be implemented to achieve one or more of the following advantages. Modifying which content is provided to a specific set or subset of users can result in more efficient use of bandwidth and computing resources. For example, the amount (or size) of content provided to users who spend more time on the website may be greater than the amount (or size) of content provided to users who spend less time on the website. In some cases, additional content may be pre-cached on the client device when a user has been categorized as one of those who spend more time on the website (e.g., at least a specified amount of time). Alternatively, content that takes longer to download (e.g., image content and/or multimedia content) may be provided when a user has been categorized as one of those who spend more time on the website. Meanwhile, content that takes less time to download (e.g., text content) may be provided when a user has been categorized as one of those who spend less time on the website. In this way, more bandwidth is used to provide content to those users who have been categorized as spending more time on the website. Additionally, limiting content distribution to users who spend more time on the website reduces the likelihood of them navigating away from the website before the content has been downloaded to their client devices, thus preventing bandwidth used for downloading content from being wasted. In some cases, users who spend less time on the website than a threshold amount can be excluded from receiving specific content, thereby reserving bandwidth to serve content to users who spend more time on the website.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117793200B_ABST
    Figure CN117793200B_ABST
Patent Text Reader

Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for including: receiving, by a content distribution system over a network, a message generated by an emission of a tag included in code of a given online resource being viewed by a user; determining, by the content distribution system, that a user session at the website remains active while additional messages generated by emissions of additional tags within the website continue to be received for a specified amount of time; determining, by the content distribution system, that the user session at the website has ended when it is detected that the user has left the website; calculating, by the content distribution system, a duration of the user session based on a difference between a timestamp and a time at which the user session at the website was determined to have ended; and modifying content distribution to the user based on the duration of the user session at the website.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application with an international filing date of April 30, 2018, Chinese application number 201880060804.7, and an invention title of "Optimizing Network Utilization". Technical Field

[0002] This application relates to optimizing network utilization. Background Technology

[0003] The internet provides access to a wide variety of resources. For example, video and / or audio files, as well as web pages on specific topics or news articles, are accessible via the internet. As the distribution of media-rich content becomes increasingly prevalent, the bandwidth consumed by delivering content over the internet continues to rise. In some cases, it is possible to improve the utilization of this bandwidth. Summary of the Invention

[0004] This specification describes techniques related to optimizing network utilization based on prior network exploitation.

[0005] In general, an innovative aspect of the subject matter described in this specification can be embodied in the method, which includes: receiving, via a network, messages generated by the emission of a tag, the tag being included in the code of a given online resource being viewed by a user; determining, by the content distribution system, that a user session at the website remains active while receiving additional messages generated by the emission of additional tags within the website for a specified amount of time; determining, by the content distribution system, that the user session at the website has ended when it is detected that the user has left the website; calculating, by the content distribution system, the duration of the user session based on the difference between a timestamp and the time when the user session at the website was determined to have ended; and modifying the content distribution to the user based on the duration of the user session at the website.

[0006] In some examples, the method further includes: determining that the duration of a user session exceeds a threshold duration, wherein modifying content distribution to the user based on the duration of the user session includes: in response to determining that the user session exceeds the threshold duration, pre-caching web page data of the website on the user's client device when the user subsequently initiates a new session on the website.

[0007] In some examples, the method further includes: storing the calculated duration of a user's user session and the user's identifier in a data structure along with the durations of other user sessions of other users on the website and other identifiers of other users, to obtain an aggregated set of user session data for users accessing the website; and partitioning the aggregated set of user session data into two or more subsets based on a time length specified by the user session duration, including: creating a first subset of user session data, the first subset including identifiers of users corresponding to user session durations shorter than a specified duration; and creating a second subset of user session data, the second subset including identifiers of users corresponding to user session durations longer than a specified duration.

[0008] In some examples, modifying content distribution to users based on the duration of a user's session at the website includes: including users in a second subset who correspond to identifiers in the second subset, and providing those users with additional content related to that website when those users visit other websites.

[0009] In some examples, the method further includes: providing a user interface that presents information to the administrator of the website about two or more subsets, including multiple identifiers included in each subset; and providing the administrator with control to designate at least one of the two or more subsets as the intended recipient of additional content related to the website when a user corresponding to the identifier visits another website or a local application.

[0010] In some examples, modifying content distribution to users based on the duration of a user session at the website includes controlling bandwidth usage for content distribution based on the duration of the user session.

[0011] In some examples, controlling bandwidth usage for content distribution based on the duration of a user session includes reducing the amount of bandwidth used for content distribution to the user when the duration of the user session is less than a specified amount.

[0012] In some examples, the method further includes: detecting a device type identifier in a grouped message and other grouped messages that include the identifier; and for a user session corresponding to the grouped message and other grouped messages, determining a portion of the user session using a mobile device based on the device type identifier, wherein modifying the content distribution to the user based on the duration of the user session at the website includes: modifying the content distribution based on the portion of the user session using the mobile device.

[0013] In general, one innovative aspect of the subject matter described in this specification can be embodied in a system comprising: a data storage device; and one or more processors configured to interact with the data storage device and, upon execution of instructions, perform operations including: receiving over a network messages generated by the emission of a tag, the tag being included in the code of a given online resource being viewed by a user; determining that a user session at a website remains active while receiving additional messages generated by the emission of additional tags within the website for a specified amount of time; determining that a user session at a website has ended when it is detected that a user has left the website; calculating the duration of the user session based on the difference between a timestamp and the time when the user session at the website was determined to have ended; and modifying content distribution to the user based on the duration of the user session at the website.

[0014] In some examples, the instruction causes one or more processors to perform operations that also include: determining that the duration of a user session exceeds a threshold duration, wherein modifying content distribution to the user based on the duration of the user session includes: in response to determining that the user session exceeds the threshold duration, pre-caching the web page data of the website on the user's client device when the user subsequently initiates a new session on the website.

[0015] In some examples, the instruction causes one or more processors to perform operations that also include: storing the calculated duration of a user's user session and the user's identifier in a data structure along with the durations of other user sessions of other users on the website and other identifiers of other users, to obtain an aggregated set of user session data for users accessing the website; and partitioning the aggregated set of user session data into two or more subsets based on the time length specified by the user session duration, including: creating a first subset of user session data, the first subset including identifiers of users corresponding to user session durations shorter than a specified duration; and creating a second subset of user session data, the second subset including identifiers of users corresponding to user session durations longer than a specified duration.

[0016] In some examples, modifying content distribution to users based on the duration of a user's session at the website includes: including users in a second subset who correspond to identifiers in the second subset, and providing those users with additional content related to that website when those users visit other websites.

[0017] In some examples, the instruction causes one or more processors to perform operations that also include: providing a user interface that presents information to the administrator of the website about two or more subsets, including multiple identifiers included in each subset; and providing the administrator with control to designate at least one of the two or more subsets as the intended recipient of additional content related to the website when a user corresponding to the identifier visits another website or local application.

[0018] In some examples, modifying content distribution to users based on the duration of a user session at the website includes controlling bandwidth usage for content distribution based on the duration of the user session.

[0019] In some examples, controlling bandwidth usage for content distribution based on the duration of a user session includes reducing the amount of bandwidth used for content distribution to the user when the duration of the user session is less than a specified amount.

[0020] In general, one innovative aspect of the subject matter described in this specification can be embodied in a non-transitory computer-readable medium storing instructions that, when executed, cause one or more processors to perform operations including: receiving, via a network, messages generated by the emission of a tag, the tag being included in the code of a given online resource that a user is viewing; determining that a user session at a website remains active while receiving additional messages generated by the emission of additional tags within the website for a specified amount of time; determining that a user session at a website has ended when it is detected that a user has left the website; calculating the duration of the user session based on the difference between a timestamp and the time when the user session at the website was determined to have ended; and modifying the content distribution to the user based on the duration of the user session at the website.

[0021] In some examples, the instruction causes one or more processors to perform operations that also include: determining that the duration of a user session exceeds a threshold duration, wherein modifying content distribution to the user based on the duration of the user session includes: in response to determining that the user session exceeds the threshold duration, pre-caching the web page data of the website on the user's client device when the user subsequently initiates a new session on the website.

[0022] In some examples, the instruction causes one or more processors to perform operations that also include: storing the calculated duration of a user's user session and the user's identifier in a data structure along with the durations of other user sessions of other users on the website and other identifiers of other users, to obtain an aggregated set of user session data for users accessing the website; and partitioning the aggregated set of user session data into two or more subsets based on the time length specified by the user session duration, including: creating a first subset of user session data, the first subset including identifiers of users corresponding to user session durations shorter than a specified duration; and creating a second subset of user session data, the second subset including identifiers of users corresponding to user session durations longer than a specified duration.

[0023] In some examples, modifying content distribution to users based on the duration of a user's session at the website includes: including users in a second subset who correspond to identifiers in the second subset, and providing those users with additional content related to that website when those users visit other websites.

[0024] In some examples, the instruction causes one or more processors to perform operations that also include: providing a user interface that presents information to the administrator of the website about two or more subsets, including multiple identifiers included in each subset; and providing the administrator with control to designate at least one of the two or more subsets as the intended recipient of additional content related to the website when a user corresponding to the identifier visits another website or local application.

[0025] In general, one innovative aspect of the subject matter described in this specification can be embodied in the method, which includes the following actions: receiving a packetized message via a network and by a digital component distribution system, the packetized message being (i) generated by signaling of a tag included in the code of a given online resource, and (ii) including an identifier corresponding to a user accessing the given online resource; the digital component distribution system logging the timestamp of the packetized message as the start of a user session at the website containing the given online resource; and the digital component distribution system determining that the user session at the website remains active after the timestamp of the most recently received packetized message. The system continues to receive additional packetized messages generated by signal notifications from additional tags within the website for a specified period of time; the digital component distribution system determines that a user session at the website has ended when one of the following occurs: (i) a specified period of time after the timestamp of the most recently received packetized message is received, or (ii) a specified response to a request that includes an identifier corresponding to the user is detected to provide third-party content to different websites' content view data; the digital component distribution system calculates the duration of the user session based on the difference between the timestamp and the time when the user session at the website is determined to have ended; and modifies the content distribution to the user based on the duration of the user session at the website.

[0026] These and other embodiments may each optionally include one or more of the following features.

[0027] In some examples, the timestamp of the grouped message is included in the grouped message, or determined based on the arrival time of the grouped message.

[0028] In some examples, modifying content distribution to users based on the duration of the user session at the website includes controlling bandwidth usage for content distribution based on the calculated duration of the user session.

[0029] In some examples, controlling bandwidth usage for content distribution based on the duration of a user session includes reducing the amount of bandwidth used for content distribution to the user when the duration of the user session is below a specified amount.

[0030] In some examples, the method includes determining that the duration of a user session exceeds a threshold duration, wherein modifying content distribution to the user based on the duration of the user session includes, in response to determining that the user session exceeds the threshold duration, pre-caching data of the website's web pages on the user's client device when the user subsequently initiates a new session at the website.

[0031] In some examples, the method includes: storing the calculated duration of a user's user session and the user's identifier in a data structure along with the duration of other user sessions of other users on the website and other identifiers of other users, to obtain an aggregated set of user session data of users accessing the website; and partitioning the aggregated set of user session data into two or more subsets based on a time length specified by the user session duration, including: creating a first subset of user session data, which includes identifiers of users corresponding to user session durations shorter than a specified duration, and creating a second subset of user session data, which includes identifiers of users corresponding to user session durations longer than a specified duration.

[0032] In some examples, modifying content distribution to users based on the duration of a user's session at a website includes providing additional website-related content to users corresponding to identifiers in the second subset when those users access other websites based on those users being included in the second subset.

[0033] In some examples, the method includes providing a user interface that presents information to a website administrator about two or more subsets, including multiple identifiers included in each subset; and providing the administrator with control to designate at least one of the two or more subsets as the intended recipient of additional content related to the website when a user corresponding to an identifier visits another website or local application.

[0034] In some examples, the method includes detecting a device type identifier in a grouped message and other grouped messages that include an identifier corresponding to the device type; and for a user session corresponding to the grouped message and other grouped messages, determining a portion of the user session using a mobile device based on the device type identifier, wherein modifying content distribution to the user based on the duration of the user session at the website includes modifying content distribution based on a portion of the user session using a mobile device.

[0035] Other embodiments of this aspect may include corresponding systems, apparatus, and computer programs encoded on computer storage devices that are configured to perform the actions of the method.

[0036] Overall, another innovative aspect of the subject matter described in this specification can be embodied in a system comprising a data processing apparatus and a non-transitory computer-readable storage medium that communicates with the data processing apparatus and stores instructions executable by the data processing apparatus, and which, when executed in this way, cause the data processing apparatus to perform operations. The operation includes: receiving a packetized message via a network and by a digital component distribution system, the packetized message being (i) generated by a signal notification of a tag included in the code of a given online resource, and (ii) including an identifier corresponding to a user accessing the given online resource; the digital component distribution system recording a timestamp of the packetized message as the start of a user session at a website including the given online resource; the digital component distribution system determining that the user session at the website remains active while continuing to receive additional packetized messages generated by signal notifications of additional tags within the website for a specified amount of time following the time of the timestamp of the most recently received packetized message; the digital component distribution system determining that the user session at the website has ended when either (i) a specified amount of time following the time of the timestamp of the most recently received packetized message or (ii) when a specified response to a request including an identifier corresponding to the user is detected to provide third-party content to a different website's content view data; the digital component distribution system calculating the duration of the user session based on the difference between the timestamp and the time when the user session at the website is determined to have ended; and modifying the content distribution to the user based on the duration of the user session at the website.

[0037] In general, another innovative aspect of the subject matter described in this specification can be embodied in a non-transitory computer storage medium encoded with a computer program, the computer program including instructions that, when executed by a data processing apparatus, cause the data processing apparatus to perform operations. The operation includes: receiving a packetized message via a network and by a digital component distribution system, the packetized message being (i) generated by a signal notification of a tag included in the code of a given online resource, and (ii) including an identifier corresponding to a user accessing the given online resource; the digital component distribution system recording a timestamp of the packetized message as the start of a user session at a website including the given online resource; the digital component distribution system determining that the user session at the website remains active while continuing to receive additional packetized messages generated by signal notifications of additional tags within the website for a specified amount of time following the time of the timestamp of the most recently received packetized message; the digital component distribution system determining that the user session at the website has ended when either (i) a specified amount of time following the time of the timestamp of the most recently received packetized message or (ii) when specified content view data is detected in response to a request including an identifier corresponding to the user being provided to a different website for third-party content; the digital component distribution system calculating the duration of the user session based on the difference between the timestamp and the time when the user session at the website is determined to have ended; and modifying the content distribution to the user based on the duration of the user session at the website.

[0038] Specific embodiments of the subject matter described in this specification may be implemented to achieve one or more of the following advantages. Modifying which content is provided to a specific set or subset of users can result in more efficient use of bandwidth and computing resources. For example, the amount (or size) of content provided to users who spend more time on the website may be greater than the amount (or size) of content provided to users who spend less time on the website. In some cases, additional content may be pre-cached on the client device when a user has been categorized as one of those who spend more time on the website (e.g., at least a specified amount of time). Alternatively, content that takes longer to download (e.g., image content and / or multimedia content) may be provided when a user has been categorized as one of those who spend more time on the website. Meanwhile, content that takes less time to download (e.g., text content) may be provided when a user has been categorized as one of those who spend less time on the website. In this way, more bandwidth is used to provide content to those users who have been categorized as spending more time on the website. Additionally, limiting content distribution to users who spend more time on the website reduces the likelihood of them navigating away from the website before the content has been downloaded to their client devices, thus preventing bandwidth used for downloading content from being wasted. In some cases, users who spend less time on the website than a threshold amount can be excluded from receiving specific content, thereby reserving bandwidth to serve content to users who spend more time on the website.

[0039] Therefore, according to some embodiments described herein, bandwidth usage can be controlled based on the calculated duration of a user session. For example, controlling bandwidth usage may include increasing or decreasing the bandwidth of a communication channel used by a client device. For example, the calculated duration of the user session may be communicatively transmitted to a bandwidth controller that implements the increase or decrease in bandwidth. For example, further actions of the above method may include generating a control message indicating the calculated duration of the user session, and the generated message may be communicatively transmitted to a network entity configured to implement the bandwidth modification in response to receiving the control message.

[0040] According to another embodiment, segmenting the aggregated set of user session data into two or more subsets can improve predictive models used for automatically segmenting user groups (e.g., based on the amount of time users spend on a given website). Content providers can use this segmentation to specify which subsets of users should be served their content. For example, a given content provider can specify that only users who have spent at least a specified amount of time on a given website should receive their content.

[0041] Furthermore, according to one or more embodiments, by determining user session duration data, previously unavailable information can be used to further enhance analytics tools. For example, enhanced data can improve the accuracy of predicting various content-related outcomes, and consequently improve current systems used by content providers and distributors to optimize content distribution to users. Such improvements to current systems can result in users receiving content more aligned with their interests, while reducing the amount of less relevant content received by these users. Therefore, the improvements discussed in this document can lead to a more personalized and efficient (e.g., in terms of bandwidth usage) online browsing experience, for example, by filtering content served to a given user based on the amount of time that user spends on various websites.

[0042] Exemplary embodiments of the subject matter disclosed in this document also improve the system's ability to depict and / or measure the duration of user sessions with various online resources and / or native applications provided by a given content provider. For example, using conventional systems, it is difficult to determine when a user session at a given website has ended because reliable signals indicating the end of a user session are often lacking. As described in detail below, this system provides an improvement over conventional systems by utilizing two different types of data to enhance the system's ability to accurately determine when a user session at a given website has ended. More specifically, this system uses tag data collected when tags are emitted, included in the code of a given website, to directly track user activity at that given website. While this tag data provides information about user activity at a given website, it does not provide information about the user navigating to different websites, which limits the ability to explicitly determine when a user session has ended in some cases. To improve the ability to determine when a user session at a given website has ended, this system enhances the tag data by combining the tag data with content view data generated when the user navigates to different websites. The content view data generated when the user navigates to different websites provides a clear signal indicating that the user has actually navigated away from the given website, and thus enables the system to more accurately determine when a user session at a given website has ended. Therefore, augmenting tag data with content view data enables the system to perform operations it could not previously perform, thereby improving the system's performance and providing advantages over existing systems.

[0043] Details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the following description. Other features, aspects, and advantages of the subject matter will become apparent from the description and the drawings. Attached Figure Description

[0044] Figure 1 This is a block diagram of a sample environment used for distributing content.

[0045] Figure 2This is a system flowchart for an example client device using a digital component distribution system.

[0046] Figure 3 This is a flowchart of an example process for distributing a system using digital components.

[0047] Figure 4 It is an example collection of aggregated data distributed using a digital component distribution system.

[0048] Figure 5 This is a flowchart of an example process for distributing a system using digital components.

[0049] Figure 6 It is a block diagram of an example computer system that can be used to implement the methods, systems and processes described in this disclosure.

[0050] The same reference numerals and names in the various figures denote the same elements. Detailed Implementation

[0051] Systems, methods, and computer program products are described for modifying content distribution to users based on the calculated duration of user sessions at resources provided by the same content provider, such as websites, native applications, and / or other available internet connections. For brevity, the following description refers to user navigation between web pages and websites, but it also applies to combinations of native applications and / or resources provided by the same content provider and different internet connections. User session duration data can be determined by a digital component distribution system and requested by the content provider. For example, a content provider may host a website, provide a native application, and / or distribute content (e.g., in the form of digital components) presented to users when they do not visit a website. Content providers can use previously unknown user session duration data to identify users who participate in online resources (and / or native applications) owned by the content provider for at least a specified period of time. Content providers may choose to designate those identified users as future recipients of additional content (e.g., digital components) provided by the content provider. Content providers may also use user session data to automatically segment users based on user engagement in order to optimize the distribution of additional content to users participating in resources with the content provider's internet connection during the longest user session.

[0052] As discussed in more detail below, a combination of tag data and content view data can be used to generate user session duration data. Typically, tag data specifies a unique identifier for a user interacting with a document (e.g., any electronic document and / or native application) that includes a tag signaled (also referred to here as "fire") by the client device. For example, when a document including a tag is rendered by a client device, the tag fires, causing the client device to transmit a packetized message to a remote server, notifying the remote server that the document has been presented to the user corresponding to the unique identifier. Content view data is typically collected when a client device requests content (e.g., digital components) to be integrated into a document rendered by the client device. As discussed below, using timestamps to correlate tag data collected from user interactions with a document provided by a given content provider with content view data collected when different documents provided by different content providers request content to be embedded in different documents allows the system to accurately determine how long a user session with a document provided by a given content provider lasted. For example, the time at which content view data is collected can be used as a signal indicating that a user session with a document provided by a given content provider has ended.

[0053] In some implementations, a user session may be considered to have ended when the system does not receive tag data within a certain period of time. For example, a lack of tag data may occur when a user leaves a browsing session and switches to a different application on their phone, or when all users stop using their mobile devices together for a period of time longer than a specified amount of time (e.g., 10 minutes, 15 minutes, 30 minutes, or another appropriate amount of time).

[0054] According to an embodiment, a method for calculating the duration of a user session may include the following steps.

[0055] Packetized messages are received via a network and by a digital component distribution system. These packets are generated by a signal notification (i) from a tag included in the code of a given online resource, and (ii) include an identifier corresponding to a user accessing the given online resource. Examples of the network, digital component distribution system, packetized messages, and identifiers are further described below. Additionally, an example of how packetized messages are signaled will be illustrated.

[0056] The digital component distribution system records the timestamp of the packetized message as the start of a user session at a website containing a given online resource. As will become more apparent from further description, the timestamp of the packetized message is included in the packetized message or determined based on the time of arrival of the packetized message. For example, the timestamp indicates the point in time the packetized message arrived, or separately indicates the point in time when the packetized message was signaled. Figure 4 The image shows an example dataset displaying the timestamps of the records.

[0057] The digital component distribution system determines that the user session at the website remains active, while continuing to receive additional packetized messages generated by signaling notifications from additional tags within the website for a specified time period following the timestamp of the most recently received packetized message. For example, when determining that the user session at the website is active, it is also determined that the user session at the website has not ended. As described above, the specified time period can be, for example, 10 minutes, 15 minutes, 30 minutes, or another suitable time period. If, during this time period following the timestamp, an additional packetized message generated by signaling notifications from additional tags within the website is received, it is determined that the user session at the website has not ended but remains active. For example, the timestamp of the additional packetized message resets the timer, making the specified time period again the basis for determining whether the user session remains active.

[0058] A user session at a website is considered terminated when the digital component distribution system determines that one of the following occurs: (i) a specified amount of time after the timestamp of the most recently received packetized message is received, or (ii) content view data is detected that third-party content has been provided to different websites in response to a request including an identifier corresponding to the user. As just explained, determining that a user session has ended can be based on determining that a specified amount of time has elapsed without any additional packetized messages being received. Another trigger for this determination could be detecting content view data that has been provided to different websites in response to a request including an identifier corresponding to the user. The term content view data has been explained above, and further examples are given below. For example, content view data indicates that a user has simultaneously visited different websites, such as the website that reproduces the third-party content. Therefore, detecting that a user has viewed and / or downloaded third-party content at different websites can indicate the termination of the user session. In this example, the phrase third-party content refers to content provided by an entity other than the entity providing the different websites. For example, third-party content can be images, text, or other content (e.g., multimedia content) that is requested by executing scripts included in the webpage and inserted into the webpage from a remote server when the webpage is reproduced.

[0059] The duration of a user session is calculated by the digital component distribution system based on the difference between a timestamp and the time at which the user session at the website is determined to have ended. For example, the duration of a user session is equal to the difference between the timestamp (e.g., the time of the most recent (attached) grouped message) and the time at which the user session at the website is determined to have ended. In another embodiment, the difference between the timestamp and the time at which the user session at the website is determined to have ended can be scaled, for example, by a predetermined factor.

[0060] Modifying content distribution to users based on the duration of a user session on the website. As mentioned above, modifying content distribution to users based on the duration of a user session on the website can include controlling bandwidth usage for content distribution based on the calculated duration of the user session. For example, controlling bandwidth usage for content distribution based on the duration of a user session includes reducing the amount of bandwidth used for content distribution to users when the duration of a user session is below a specified amount. For example, when users tend to spend very little time on the website, the content provided to users may be limited to text content. Alternatively or additionally, in these cases, the amount of multimedia content loaded can be limited to reduce the amount of bandwidth used to provide content to users who spend very little time on the website. Additionally, digital components referencing the website (e.g., including hyperlinks to the website) can be prevented from being distributed to users who spend very little time on the website (e.g., have user session durations below a specified duration).

[0061] According to an embodiment, a method for calculating the duration of a user session may include one or more of the following additional steps.

[0062] Determining that a user session's duration exceeds a threshold duration, and modifying content distribution to the user based on the user session's duration, includes, in response to determining that the user session has exceeded the threshold duration, pre-caching data for the website's web pages on the user's client device when the user subsequently initiates a new session on the website. In some cases, a digital component distribution system can determine that a user session's duration exceeds a threshold duration. In these cases, when the user subsequently initiates a new session on the website, content distribution to the user can be modified by pre-caching data for the website's web pages on the user's client device. For example, when the user subsequently requests the first web page on the website, the content of other web pages on the website (e.g., pages frequently visited by the user) can be cached on the client device to speed up navigation between pages on the website. This pre-caching can be limited to users who spend at least a minimum amount of time on the website so as not to waste bandwidth pre-caching data on the client devices of users who are unlikely to navigate to many pages on the website.

[0063] The calculated duration of a user's session and the user's identifier are stored in a data structure along with the duration of other user sessions on the website and other identifiers of other users to obtain an aggregated set of user session data for users who visit the website.

[0064] Based on a time length specified by the user session duration, the aggregated set of user session data is divided into two or more subsets. This may include one or more of the following additional steps: Creating a first subset of the user session data, which includes identifiers of users corresponding to user session durations shorter than the specified duration. Creating a second subset of the user session data, which includes identifiers of users corresponding to user session durations longer than the specified duration. For example, content distribution to users based on the duration of user sessions at a website includes: providing additional website-related content to users corresponding to identifiers in the second subset when those users access other websites based on those users included in the second subset. Exemplary steps for segmenting the aggregated set of user session data will be explained in further detail below.

[0065] These features and additional characteristics will be described in more detail below.

[0066] Figure 1 This is a block diagram of example environment 100, in which digital components are distributed to be presented along with electronic documents. Example environment 100 includes a network 102, such as a local area network (LAN), a wide area network (WAN), the Internet, or a combination thereof. Network 102 connects electronic document server 104, client devices 106, digital component server 108, and digital component distribution system 110 (also referred to as a component distribution system). Example environment 100 may include many different electronic document servers 104, client devices 106, and digital component servers 108.

[0067] Client device 106 is an electronic device capable of requesting and receiving resources via network 102. Example client device 106 includes personal computers, mobile communication devices (e.g., smartphones), and other devices capable of sending and receiving data via network 102 (e.g., tablet devices or wearable computing devices). Client device 106 typically includes user applications such as web browsers to facilitate sending and receiving data via network 102; however, local applications executed by client device 106 can also facilitate sending and receiving data via network 102.

[0068] An electronic document is a collection of data that is presented at client device 106. Examples of electronic documents include web pages, word processing documents, portable document format (PDF) documents, images, videos, search results pages, and feed sources. Native applications (e.g., "apps") such as those installed on mobile computing devices, tablet computing devices, or desktop computing devices are also examples of electronic documents. Electronic documents may be provided to client device 106 by electronic document server 104 ("electronic document server"). For example, electronic document server 104 may include a server hosting a publisher's website. In this example, client device 106 may initiate a request for a given publisher's web page, and electronic document server 104 hosting the given publisher's web page may respond to the request by sending machine-executable instructions to initiate the rendering of the given web page at client device 106.

[0069] In another example, the electronic document server 104 may include an app server from which the client device 106 can download an app. In this example, the client device 106 can download the files required to install the app at the client device 106 and then execute the downloaded app locally.

[0070] Electronic documents can contain a variety of content. For example, an electronic document may include static content (e.g., text or other specified content) that is inherent in the electronic document itself and / or does not change over time. Electronic documents may also include dynamic content that may change over time or upon request. For example, the publisher of a given electronic document may maintain a data source used to populate portions of the electronic document. In this example, a given electronic document may include one or more tags or scripts that, when the given electronic document is processed (e.g., reproduced or executed) by client device 106, cause client device 106 to request content from the data source. Client device 106 integrates the content obtained from the data source into the given electronic document to create a composite electronic document that includes the content obtained from the data source. An electronic document (also referred to simply as a document for brevity) does not necessarily correspond to a file. A document may be stored as a portion of a file containing other documents, in a single file dedicated to the document in question, or in multiple coordinated files. Electronic documents may be in the form of web pages, native application user interfaces, or other suitable electronic formats.

[0071] In some cases, a given electronic document may include one or more digital component tags or digital component scripts referencing the digital component distribution system 110. In these cases, when client device 106 processes the given electronic document, client device 106 executes the digital component tags or digital component scripts. Execution of the digital component tags or digital component scripts configures client device 106 to generate a request 112 (referred to as a "component request") for one or more digital components, which is transmitted over network 102 to the digital component distribution system 110. For example, the digital component tags or digital component scripts may enable client device 106 to generate a packetized data request that includes header and payload data. Component request 112 may include event data specifying characteristics such as the name (or network location) of the server from which the requested digital component originates, the name (or network location) of the requesting device (e.g., client device 106), and / or information that the digital component distribution system 110 can use to select one or more digital components offered in response to the request. Component request 112 is transmitted by client device 106 over network 102 (e.g., a telecommunications network) to the server of digital component distribution system 110.

[0072] Component request 112 may include event data specifying other event characteristics, such as location characteristics of the requested electronic document and the electronic document that can present the digital component. For example, event data specifying a reference (e.g., URL) to an electronic document (e.g., a webpage) in which the digital component will be presented, the available locations of the electronic document that can be used to present the digital component, the size of the available locations, and / or the media types eligible for presentation at those locations may be provided to the digital component distribution system 110. Similarly, event data specifying keywords (“document keywords”) associated with an electronic document or an entity (e.g., a person, place, or thing) referenced by the electronic document may also be included in component request 112 (e.g., as payload data) and provided to the digital component distribution system 110 to facilitate the identification of digital components eligible for presentation with the electronic document. Event data may also include search queries submitted from client device 106 to obtain a search results page, and / or data specifying search results and / or textual, auditory, or other visual content included in the search results. As used throughout this document, the terms search query and query should be interpreted to encompass queries beyond those submitted through conventional search engines. For example, these terms are intended to cover other types of queries, such as voice queries, voice commands, or voice instructions received by an AI assistant, as well as other interactions with an AI assistant.

[0073] Component request 112 may also include event data related to other information, such as information already provided by the user of the client device, geographic information indicating the state or region from which the component request was submitted, or other contextual information providing the environment in which the digital component will be displayed (e.g., the date of the component request, the day of the week of the component request, the type of device in which the digital component will be displayed (e.g., a desktop device, a mobile device, or a tablet device)). Component request 112 may be transmitted, for example, via a packetized network, and component request 112 itself may be formatted as packetized data with a header and payload data. The header may specify the destination of the packet, and the payload data may include any of the information discussed above.

[0074] In response to receiving component request 112 and / or using the information included in component request 112, component distribution system 110 selects a digital component to be presented along with a given electronic document. In some implementations, the digital component is selected in less than one second to avoid errors that may be caused by delayed selection of the digital component. For example, a delay in providing the digital component in response to component request 112 may cause a page load error at client device 106, or cause portions of the electronic document to remain unfilled even after other portions of the electronic document have been presented at client device 106. Moreover, as the delay in providing the digital component to client device 106 increases, the electronic document is more likely to no longer be presented at client device 106 when the digital component is delivered, thus negatively impacting the user's experience with the electronic document. Furthermore, for example, if the electronic document is no longer presented at client device 106 when the digital component is provided, the delay in providing the digital component may cause the delivery of the digital component to fail.

[0075] In some implementations, the digital component distribution system 110 is implemented in a distributed computing system to process component requests and, in response to the request, provide one or more digital components within a finite amount of time (e.g., less than one second). The distributed computing system includes, for example, a server and a collection of interconnected computing devices 114 that identify and distribute digital components in response to request 112. This collection of computing devices 114 operates together to identify a set of digital components eligible to be presented in electronic documents from a corpus of millions of available digital components (DC1-x). For example, millions of available digital components may be indexed in a digital component database 116. Each digital component index entry may reference a corresponding digital component and / or include distribution parameters (DP1-DPx) that facilitate (e.g., regulate or restrict) the distribution / transmission of the corresponding digital component. For example, distribution parameters may facilitate the transmission of a digital component by requiring the component request to include at least one criterion that matches one of the distribution parameters of the digital component (e.g., precisely or at some pre-specified level of similarity).

[0076] In some implementations, distribution parameters for a particular digital component may include distribution keywords that must be matched (e.g., by electronic documents, document keywords, search queries, or terms specified in component request 112) for the digital component to be eligible for presentation. In other words, distribution parameters are used to trigger the distribution (e.g., transmission) of the digital component over network 102. Distribution parameters may also require component request 112 to include information specifying a particular geographic region and / or information specifying that component request 112 originates from a particular type of client device (e.g., desktop device, mobile device, or tablet device) for the digital component to be eligible for presentation. Distribution parameters may also specify qualification values ​​(e.g., ranking score, bid, or some other specified value) for evaluating the eligibility of a digital component (e.g., among other available digital components) for distribution / transmission, as discussed in more detail below. In some cases, qualification values ​​may specify the amount that will be submitted when a particular event is attributed to the digital component (e.g., when an application is installed on a client device through interaction with the digital component, or otherwise attributable to the presentation of the digital component).

[0077] The identification of eligible digital components can be segmented into multiple tasks 117a-117c (e.g., segmented by a server), which are then distributed (e.g., distributed by a server) among computing devices (e.g., 114, 114b, and 114c) within a set of multiple computing devices 114. For example, different computing devices in set 114 can each analyze different portions of the digital component database 116 to identify various digital components having distribution parameters that match the information included in component request 112. In some implementations, each given computing device in set 114 can analyze different data dimensions (or sets of dimensions) and pass (e.g., transmit) the results of the analysis (Res 1-Res 3) 118a-118c back to the digital component distribution system 110. For example, the results 118a-118c provided by each of the computing devices in set 114 can identify a subset of digital components eligible for distribution in response to component request 112 and / or a subset of digital components with specific distribution parameters. Identifying subsets of digital components may include, for example, comparing event data with distribution parameters and identifying subsets of digital components that have distribution parameters that match at least some characteristics of the event data.

[0078] The digital component distribution system 110 aggregates results 118a-118c received from a set 114 of multiple computing devices and uses information associated with the aggregation results to select one or more digital components to be provided in response to request 112. For example, the digital component distribution system 110 may select a set of winning digital components (one or more digital components) based on the results of one or more component evaluation processes, as discussed below. Furthermore, the digital component distribution system 110 may generate and transmit response data 120 (e.g., digital data representing a response) over network 102, which enables the client device 106 to integrate the set of winning digital components into a given electronic document, such that the set of winning digital components and the content of the electronic document are presented together on the display of the client device 106.

[0079] In some implementations, client device 106 executes instructions included in response data 120 that configure and enable client device 106 to obtain a set of winning digital components from one or more digital component servers 108. For example, the instructions in response data 120 may include a network location (e.g., a Uniform Resource Locator, URL) and a script that causes client device 106 to transmit a server request (SR) 121 to digital component server 108 to obtain a given winning digital component from digital component server 108. In response to this request, digital component server 108 identifies the given winning digital component specified in server request 121 (e.g., within a database storing multiple digital components) and transmits digital component data (DC data) 122, which presents the given winning digital component in an electronic document at client device 106, to client device 106.

[0080] To facilitate searching electronic documents, environment 100 may include a search system 150 that identifies electronic documents by crawling and indexing them (e.g., indexing based on crawled content). Data about electronic documents can be indexed based on data and the electronic documents associated with it. Indexed copies and optional cached copies of the electronic documents are stored in search index 152 (e.g., multiple hardware storage devices). The data associated with the electronic documents are data representing the content included in the electronic documents and / or the metadata of the electronic documents.

[0081] Client device 106 can submit a search query to search system 150 via network 102. In response, search system 150 accesses search index 152 to identify electronic documents related to the search query. Search system 150 identifies the electronic documents in the form of search results and returns the search results to client device 106 in a search results page. Search results are data generated by search system 150 that identifies electronic documents in response to (e.g., relevant to) a specific search query, and include active links (e.g., hypertext links) that cause the client device to request data from a specified network location (e.g., a URL) in response to user interaction with the search results. Example search results may include a webpage title, a fragment of text extracted from a webpage or a portion of an image, and the URL of the webpage.

[0082] Another example of a search result may include the title of a downloadable app, a snippet of text describing the downloadable app, an image depicting the user interface of the downloadable app, and / or a URL indicating the location from which the app can be downloaded to client device 106. In some cases, search system 150 may be part of, or interact with, an app store (or online portal) from which apps can be downloaded and installed on client device 106 to present information about downloadable apps relevant to the submitted search query.

[0083] Like other electronic documents, search results pages may include one or more slots where digital components can be presented. As used throughout this document, the phrase "digital component" refers to a discrete unit of digital content or digital information (e.g., a video clip, audio clip, multimedia clip, image, text, or another unit of content). Digital components may be stored electronically on a physical storage device as a single file or a collection of files, and may take the form of video files, audio files, multimedia files, image files, or text files, and may include advertising information, making advertising a type of digital component.

[0084] A search query submitted by client device 106 can be used to identify one or more digital components presented along with the search results page. For example, digital component distribution system 110 can use a search query to identify digital components that have distribution parameters that match the search query (e.g., match identically or otherwise at a specified level of similarity, such as eligibility under phrase matching or extended matching, including plurals, stubs, synonyms, and other sufficiently similar variations). Identification of one or more digital components using a search query can be performed in a manner similar to that discussed above.

[0085] The determination of whether to distribute a digital component to a given user and / or which digital component to distribute to a given user can be informed by information about the duration of the user's previous user sessions. For example, if a given user has already participated in a longer (e.g., longer than a specified amount of time) user session while interacting with a document provided by a specific content provider, the system can determine that a digital component provided by that specific content provider will be distributed to the given user. Conversely, if a given user has already participated in a shorter (e.g., shorter than a specified amount of time) user session while interacting with a document provided by a specific content provider, the system can determine that no digital component or no digital component from a different content provider will be distributed to the given user.

[0086] In some cases, content distribution to a given user can be restricted to use less bandwidth when the user spends less time interacting with a document provided by a particular content provider than a specified amount of time. For example, in these cases, the system can transmit smaller digital components (e.g., in terms of file size) to a given user, or block the distribution of digital components to a given user, in order to limit the amount of bandwidth consumed in providing content to that user. Conversely, larger digital components (e.g., in terms of file size) can be distributed to a given user and / or a greater number of digital components can be distributed to a given user when the user has already spent at least a specified amount of time interacting with a document provided by a particular content provider. For example, a given user can be distributed digital components provided by a particular content provider more frequently when the user has already spent at least a specified amount of time interacting with a document provided by a particular content provider.

[0087] In other cases, precaching can be determined based on the quota of user sessions a given user has already participated in. For example, if a given user has a long history of participating in user sessions while viewing documents provided by a specific content provider, additional data (e.g., content from other documents provided by the specific content provider) can be precached on the client device while the user is browsing various documents provided by that specific content provider. In this way, when the user requests other documents, those documents will appear more quickly.

[0088] Now refer to the following Figures 2 to 5 This describes a process and example for using a digital component distribution system 110 to modify the content distribution to users based on the duration of a user session at a website.

[0089] Figure 2 This is a system flowchart for example environment 200, in which the digital component distribution system 110 can be implemented using client device 106. In addition to implementing the above-mentioned reference... Figure 1 Other components of the operation under discussion may also include user activity server 230 and content view server 240. Digital component distribution system 110 may also include user activity data storage device 234 and content view data storage device 244. In some embodiments, digital component distribution system 110 performs reference... Figure 3 The described process 300 operates to, for example, aggregate data from user activity data storage device 234 and content view data storage device 244 in aggregate data storage device 250. As discussed below, the aggregated data can be used to determine the duration of a user session, which can be used to modify content distribution to the user.

[0090] Figure 3This is a flowchart of example process 300, which is used to modify content distribution to users based on the duration of a user session at a website using a digital component distribution system. Process 300 can be, for example, by... Figure 1 and Figure 2 The digital component distribution system 110 is implemented and is carried out by Figure 2 The system flowchart is used to illustrate this. The operation of process 300 can also be implemented as instructions stored on a non-transitory computer-readable medium, and one or more data processing devices executing the instructions can cause one or more data processing devices to perform the operation of process 300.

[0091] Process 300 receives a grouped message (302). In some implementations, the grouped message is generated via a signal notification of a tag included in the code of a given online resource. The tag's phrase signal notification may also be referred to as tag emission. The grouped message may include a user's identifier or an identifier corresponding to a user accessing the given online resource. For example, Figure 2 A user activity flow 202 for a specific user on client device 106 is illustrated. In the example shown, a specific user accesses an online resource (web page) (such as physical resource page A204A), and when physical resource page A204A is reproduced by the client device, tags (e.g., scripts) as part of the online resource (such as report tag 205A) are emitted (e.g., processed and / or executed). The signal notification of report tag 205A causes the client device to generate a packetized message 210A. The packetized message 210A is sent from the client device to the user activity server 230 in the digital component distribution system 110. The packetized message 210A may include a user identifier (e.g., a cookie or another user identifier, such as an account identifier) ​​indicating the user accessing the given online resource, the URL of page A204A, and / or a data type indicator. In some embodiments, the packetized message 210A may also include a timestamp indicating when the user accessed the specific page A204A. In some embodiments, when a grouped message 210A is received, the timestamp is added by the user activity server 230, rather than being included in the grouped message 210A before it is received.

[0092] like Figure 2As shown, the user activity server 230 receives multiple packetized messages 210 from the client device and records the received user activity data 232 in the user activity data storage device 234. In some embodiments, the user activity server 230 may read each packetized message to determine the data type, user identifier, URL of the entity resource, and / or whether the message includes a timestamp. If the packetized message 210 does not include a timestamp, the user activity server 230 may add a timestamp before recording the user activity data 232 in the user activity data storage device 234.

[0093] like Figure 2 As shown, the digital component distribution system 110 may also include a content view server 240. When a client device 106 accesses a third-party resource page 206, a script running on the third-party online resource (such as a content request script (CRS) 207) is emitted and generates content view data 220. In an example embodiment, the content view data 220 is sent from the third-party resource page 206 to the content view server 240 in the digital component distribution system 110. In response to receiving the content view data 220, the content view server 240 may send content return data 222 to the resource page 206. The content view data 220 may be in the form of packet request data (e.g., an HTTP request) and may include information about the third-party resource (web page) being reproduced. For example, the content view data 220 may include a user identifier (e.g., a cookie or another user identifier, such as an account identifier) ​​representing the user accessing the third-party resource page 206, the URL of the third-party resource page 206, and / or a data type indicator. In some embodiments, the content view data 220 may also include a timestamp indicating when a user accessed a particular third-party resource page 206. In some embodiments, when content view data 220 is received, a timestamp is added by content view server 240. Similar to user activity server 230, content view server 240 receives content view data 220 from client devices and records the received content view data 220 in content view data storage device 244. In some embodiments, content view server 240 may read the received content data to determine whether the data type, user identifier, URL of entity resource, and / or message includes a timestamp. If the content view data 220 does not include a timestamp, content view server 240 may add a timestamp before sending the content view data 220 to content view data storage device 244.

[0094] In addition, such as Figure 2As shown, in a given user activity flow 202, as the user continues to view pages containing resources provided by the same content provider (such as page A 204A, page B 204B, page 204N, etc.), tags are emitted (e.g., tags 205A, 205B, 205N, etc.), causing the client device to generate packetized messages (210A, 210B, 210N, etc.) and send these packetized messages to the user activity server 230 in the digital component distribution system 110. In some embodiments, resources for a particular entity (such as a content provider) may come from a web browser, a native application installed on the client device 106, or a combination of both. For example, a user may access shoes at the example entity webpage "example.com / shoes" (i.e., page A 204A) in a browser on the client device 106, and then access similar resources or webpages via the example entity native application installed on the client device 106 (i.e., page B 204B). For both examples, user activity server 230 can receive a grouped message 210 indicating that the user is viewing shoes within the same entity's resource, where both are example entity resources. For instance, each webpage and / or local application user interface, including tags, will cause the client device to generate grouped messages that will be transmitted to the user activity server.

[0095] Return to reference Figure 3 Process 300 records the timestamp of the grouped message as the start of a user session at a website containing a given online resource (304). As discussed herein, in one example embodiment, the grouped message 210 may include a timestamp, or in other examples, the user activity server 230 may add a timestamp to each received grouped message 210. Figure 4 The image shows an example set of data illustrating the recorded timestamps.

[0096] Figure 4 This is example table 400, which shows aggregated user session data within a digital component distribution system. Aggregated user session data can be, for example... Figure 2 The digital component distribution system 110 can be combined. For example, the digital component distribution system 110 can combine user activity data 232 and content view data 220 to form aggregated user session data, which can be stored in aggregated data storage device 250.

[0097] The example aggregated user session data shown in Table 400 specifies multiple resources (web pages) accessed by a particular user. Resources accessed by a particular user can be identified by the digital component distribution system 110 from received packetized messages 210 and content view data 220. Table 400 includes information columns such as a timestamp column 402, an information resource (web page) URL column 404, a data type column 406, and a calculated user session duration column 408. Table 400 also includes rows with different shades for different groups, where each group of rows has the same shade corresponding to different user sessions. For example, rows 410A, 410B, 410C, and 410D are included in user session 410, rows 412A and 412B are included in user session 412, and rows 416A and 416B are included in user session 416. Rows 414A and 414B are not shaded because these entries in Table 400 correspond to user access to other resources (e.g., resources not provided by a content provider whose user session duration is being determined). However, they can be grouped together as non-user session entries 414.

[0098] After recording the timestamp of the grouped message, process 300 determines whether the user session has ended (306). In some implementations, determining whether the user session has ended is based on (i) whether a specified amount of time has elapsed since the timestamp of the most recently received grouped message (308), or (ii) whether content view data from a third-party resource has been detected (310). If the decision for either branch is "yes", process 300 proceeds to step 312. However, if the decision for both branches is "no", process 300 returns to step 302 to receive another grouped message. The data processing loop may continue to receive grouped messages 210 in step 302 until either of the conditions (308, 310) is met. In particular, process 300 may determine that the user session at the website remains active while continuing to receive additional grouped messages generated by signaling notifications from additional tags within the website for a specified amount of time since the timestamp of the most recently received grouped message. Simultaneously, a user session is determined to have ended when (i) a specified amount of time has elapsed since the timestamp of the most recently received grouped message was received (e.g., step 308) or (ii) a specified response to a request that includes an identifier corresponding to the user to provide third-party content to different websites in the content view data (e.g., step 306). For example, if the user is viewing "shoes" at "example.com" during user activity stream 202, the timestamp will continue to be recorded by the digital component distribution system and considered as part of a larger user session, as long as the system does not detect from the content view data 220 that the user has moved to a third-party content resource (webpage), or that no time elapsed (e.g., >10 minutes) between the received grouped messages 210.

[0099] In some embodiments, such as Figure 2 As shown, when a user visits a page of online resources owned by a specific entity (e.g., a content provider) or navigates to a new resource page of the same entity (i.e., page B204B), the digital component distribution system 110 can determine from the received next packetization message (e.g., packetization message 210B) that the user is still viewing online resources of the same entity. This also... Figure 4 As shown in Table 400, for example, row 410A may represent entity resource page A204A and include a timestamp and URL (e.g., “5:00:00 PM” and “example.com / shoes”), and row 410B may represent the next packetized message 210B received representing information from entity resource page B204B, which may include a timestamp and URL (e.g., “5:00:35 PM” and “example.com / shoes / brandX”).

[0100] In some embodiments, the digital component distribution system 110 may compare the current time with the timestamp of the most recently received packetized message (i.e., t = 0). For example, the digital component distribution system 110 may start a timer after each received packetized message, and if the timer times out before the next packetized message is received, the digital component distribution system 110 will determine the end of the user session. If another packetized message is received within the timeout period, the timer can be reset (i.e., t = 0), and this process can be repeated.

[0101] In some embodiments, the digital component distribution system 110 can associate the timestamp of the most recently received grouped message with an aggregated data set (e.g., Figure 4 The system compares the timestamps of a specific user in Table 400. If the user is still within an online resource owned by the same entity (e.g., "example.com"), and the time specified by the timestamp of the most recently received packetized message is within a specified time period of the previous packetized message timestamp (e.g., no more than 10 minutes), the digital component distribution system 110 can determine that the user session has not ended. However, if the time specified by the timestamp of the most recently received packetized message is outside the specified time period of the previous packetized message timestamp (e.g., more than 10 minutes), the digital component distribution system 110 can determine that the previous user session has ended, and the most recently received packetized message is the start of a new user session.

[0102] In some embodiments, the digital component distribution system 110 can determine whether a user has switched to a different third-party online resource. For example, the digital component distribution system 110 can compare data from aggregated datasets (e.g., Figure 4 The system aggregates data from Table 400 and determines whether the most recently received data type still originates from an online resource owned by the same entity ("example.com" in this example) or whether the user has switched to a different third-party online resource (e.g., switched to "examplesports.com"). For example, if the aggregated data set includes content view data specifying a digital component requested to be presented to a user on examplesports.com, it can be assumed that the user session ended at the time specified by the timestamp of the content view data.

[0103] According to some implementations, the digital component distribution system 110 can continuously receive grouped messages 210 and content view data 220 from multiple user activity streams 202 of multiple users, and for each user, record user activity data 232 in user activity data log 234, record content view data 220 in content view data log 244, and merge the data in aggregated data log 250.

[0104] refer to Figure 4 Table 400 describes an example of determining the end of a user session based on whether a timestamp indicates that a specified amount of time has elapsed. For example, the timestamp for row 410D is 5:05:30 PM, and the timestamp for the next entry (row 412A) is 6:25:00 PM. In this example, the data filling each of these rows comes from packetized messages from the same website (“example.com”). However, as the timestamps indicate, approximately 80 minutes have elapsed between these two packetized messages. In this example, the specified amount of time used to determine whether a user session has ended is assumed to be 10 minutes. Thus, the specified amount of time has been exceeded because 80 minutes exceeds the specified amount of time. Therefore, the digital component distribution system 110 can determine that each of rows 410D and 412A corresponds to a different user session. For example, row 410D represents the last packetized message received by user session 410, and row 412A can represent the first packetized message received by user session 412.

[0105] Also refer to Figure 4 Table 400 describes an example of determining the end of a user session based on whether the user switches to a third-party online resource and leaves the first online resource. For example, line 412B indicates a packetized message with a timestamp of 6:25:45 PM, and the timestamp of the next packetized message received is 6:32:20 PM (line 416A). Therefore, the amount of time between these two packetized messages is less than a specified time (e.g., assuming a specified time of 10 minutes in the example above). Therefore, based on the exceeded specified time, user session 412 will not be considered to have ended. However, Table 400 includes content view data with a timestamp of 6:28:46 PM (line 414A) indicating that content was requested for presentation to the user on a different resource (e.g., besides example.com). This is an indication that the user navigated away from example.com, thus ending user session 412. Therefore, the digital component distribution system 110 can then determine that the last packetized message received during user session 412 is indicated by the timestamp of 6:25:45 PM in line 412B.

[0106] Process 300 calculates the duration of a user session based on the difference between the timestamp and the time when the user session at the website is determined to have ended (312). For example, as Figure 4As shown in Table 400, the digital component distribution system 110 determines the duration of user session 410 to be five minutes and thirty seconds (“5m 30s”), which is the difference in timestamps between the first and last timestamps included in user session 410. As discussed above, the end of the user session is determined to be marked at 5:05:30 PM (line 410D) because the packet received at 6:25:00 PM (line 412A) exceeds the specified time amount of 10 minutes. In some implementations, the specified time amount may be adjusted to an appropriate amount of time that the content distributor determines is most likely for the user to stop browsing the same page or stop using the client device or use a different non-browsing application on the device.

[0107] Process 300 modifies the content distribution to users based on the duration of the user session at the website (314). For example, digital component distribution system 110 can modify which content is provided to a specific set or subset of users, which can lead to more efficient use of bandwidth and computing resources. See below. Figure 5 This describes an example process for splitting an aggregated set of user session data into two or more subsets to provide to the content provider's administrator.

[0108] Figure 5 This is a flowchart of an example process 500 that uses a digital component distribution system to modify content distribution based on a subset of user session data. Process 500 can be, for example, by... Figure 1 and Figure 2 The digital component distribution system 110 is implemented.

[0109] Process 500 stores the calculated duration of the user's user session and the user's identifier in a data structure along with the durations of other user sessions on the website and other identifiers of other users, to obtain an aggregated set of user session data for users accessing the website (502). For example, upon determining that a user session has ended and calculating the user session duration (e.g., as... Figure 4 After calculating the duration of each user session (as shown in the figure), the digital component distribution system 110 can store the calculated duration of each user session in a data storage device, such as aggregate data storage device 250, or another database accessible to the digital component distribution system 110.

[0110] Process 500 divides the aggregated set of user session data into two or more subsets based on a time length specified by the user session duration. For example, a first subset of user session data may be created, which includes identifiers (504) of users whose session durations are less than a specified duration. Similarly, a second subset of user session data may be created, which includes identifiers (506) of users whose session durations exceed a specified duration. In some implementations, the digital component distribution system 110 may use a time threshold determined by a content provider to create subsets of user session durations. For example, a particular content provider may choose a two-minute time threshold (or some other time threshold) based on determining that a user is more likely to be interested in a specific resource (e.g., “example.com”) or a subset of resources (e.g., “example.com / shoes”) of an entity when the user’s session duration is at least two minutes (or some other time threshold). Figure 4 As shown, user session duration 412 (“45s”) will be included in the first subset because user session duration 412 is determined to be less than two minutes, and user session duration 410 (5m 30s) and user session duration 416 (“2m 40s”) will be included in the second subset because user session duration 410 and 416 are each more than two minutes.

[0111] Process 500 modifies content distribution to users (508) based on the duration of a user session at a website by providing additional website-related content to users corresponding to identifiers in the second subset when those users access other websites based on those users included in the second subset. For example, similar to what has been discussed above with respect to process 300, the digital component distribution system 110 may specifically modify content distribution based on different subsets of data created. In some implementations, multiple subsets of data may be created, such as based on different time period thresholds (e.g., less than five minutes, between five and ten minutes, greater than ten minutes, etc.), and / or based on different subsets within the same entity resource (e.g., “brand X shoes”, “soccer shoes”, “women’s shoes”, etc.). By creating subsets with different time thresholds, the content provider can then determine not to modify content for users who may have only spent thirty seconds or less browsing a portion of the entity resource.

[0112] Process 500 provides a user interface that presents information about two or more subsets to a website administrator, including multiple identifiers included in each subset (510). Process 500 provides the administrator with control that, when a user corresponding to an identifier accesses another website or local application, designates at least one of the two or more subsets as the intended recipient of additional content related to the website (512). For example, as discussed above, digital component distribution system 110 can provide several different combinations of subsets for the same entity. Different combinations of subsets can include, for example, subset 1, subset 2, and subset 3. In this example, subset 1 includes users who spend less than two minutes on a specific resource of the example entity (e.g., “example.com / shoes”). In this example, subset 2 includes users who spend more than five minutes on the same specific resource of the example entity. In this example, subset 3 includes users who spend more than two minutes on a subset of the same specific resource of the example entity (e.g., “walmart.com / shoes / soccer”). Of course, other subsets can also be provided. An administrator (e.g., a content provider) can submit a request to the digital component distribution system 110 specifying which subsets will be used to distribute content. For example, suppose an administrator submits a request to the digital component distribution system 110 to distribute a given digital component to users included in subset X, which includes users who have spent Y hours on the content provider's website. In this example, the digital component distribution system 110 can restrict the distribution of the digital component to those users included in subset X. In this way, by restricting the distribution of the digital component only to users in a subset of users who have spent at least Z hours on the content provider's website, the amount of bandwidth used for distributing the digital component can be optimized (e.g., used more efficiently). Consequently, the amount of bandwidth used for distributing the digital component is also reduced (or limited), thus utilizing the bandwidth available for distributing the digital component more efficiently.

[0113] In addition to enabling administrators to selectively distribute digital components to any subset of users, user session duration information can also be used to provide administrators with more information about how users interact with their websites or other electronic documents (e.g., native applications). For example, analytics such as average user session duration, histograms of user session duration, and / or other metrics providing information about how long users spend on a content provider's website or certain pages of that website, can be generated based on the information provided in Table 400 and presented to the content provider. This information can be provided, for example, to supplement other analytics data that administrators may be obtaining, and can be provided where other analytics data may not be available (e.g., due to incompatibility with methods of obtaining other analytics data).

[0114] In some implementations, the digital component distribution system 110 can detect a device type identifier in the packetized message 210. The device type identifier specifies the device type corresponding to the packetized message. For example, the device type identifier may specify the device model, the device manufacturer, and / or the device's form factor. In some implementations, the device type identifier may specify whether the device type is mobile, tablet, or desktop. The device type identifier can also be detected for other packetized messages received from other devices.

[0115] Device type identifiers can be used to depict user sessions on a per-device-type basis. For example, for a user session corresponding to packetized message 210 and other packetized messages, digital component distribution system 110 can determine, based on the device type identifier, the portion of a user session using a mobile device, the portion of a user session using a tablet device, and / or the portion of a user session using a desktop device. The portion of a user session using each device type can be determined, for example, by simply counting the number of user sessions that include packetized messages specifying that device type. In some implementations, digital component distribution system 110 can modify content distribution to users based on the duration of the user session at the website and based on the portion of the user session using a mobile device. For example, if a user session using a mobile device has the highest user session duration, digital component distribution system 110 can limit content distribution to the mobile device.

[0116] In some cases, the digital component distribution system 110 can determine that the duration of a user session exceeds a threshold duration. In these cases, when the user subsequently initiates a new session at the website, the content distribution to the user can be modified by pre-caching data for the website's web pages on the user's client device. For example, when the user subsequently requests the first web page of the website, the content of other web pages on the website (e.g., pages frequently visited by the user) can be cached on the client device to speed up navigation between pages on the website. This pre-caching can be limited to users who spend at least a minimum amount of time at the website so as not to waste bandwidth pre-caching data on the client devices of users who are unlikely to navigate to many pages of the website.

[0117] In some implementations, the digital component distribution system 110 may modify content distribution to users based on the duration of a user session at the website, thereby controlling bandwidth usage for content distribution based on the duration of the user session. In some implementations, controlling bandwidth usage for content distribution based on the duration of the user session includes reducing the amount of bandwidth used for content distribution to users when the duration of the user session is below a specified amount. For example, when a user tends to spend little time at the website, the content provided to the user may be limited to text content. Alternatively or additionally, in these cases, the amount of multimedia content loaded may be limited to reduce the amount of bandwidth used to provide content to users who spend very little time at the website. Additionally, digital components referencing the website (e.g., including hyperlinks to the website) may be prevented from being distributed to users who spend very little time at the website (e.g., have user session durations below a specified duration).

[0118] In some implementations, modifying content distribution to users based on the duration of a user's session at a website may include providing additional website-related content to users corresponding to identifiers in the second subset when those users access other websites based on those users being included in the second subset. Recall that the second subset includes user identifiers of users whose session duration exceeds a specified duration, making it possible to efficiently utilize the bandwidth used for transmitting content by providing these users with additional website-related content.

[0119] Figure 6 This is a block diagram of example computing devices 600 and 650, which can be used to implement the systems and methods described in this document, whether as a client, a server, or multiple servers. Computing device 600 is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. Computing device 600 is further intended to represent any other typical non-mobile device, such as a television or other electronic device in which one or more processors are embedded or connected. Computing device 650 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, and other computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the inventions described and / or claimed in this document.

[0120] Computing device 600 includes a processor 602, a memory 604, a storage device 606, a high-speed controller 608 connected to the memory 604 and a high-speed expansion port 610, and a low-speed controller 612 connected to a low-speed bus 614 and the storage device 606. Each of components 602, 604, 606, 608, 610, and 612 is interconnected using various buses and can be mounted on a common motherboard or otherwise suitably mounted. Processor 602 can process instructions (including instructions stored in memory 604 or on storage device 606) for execution within computing device 600 to display graphical information for a GUI on an external input / output device, such as a display 616 coupled to high-speed controller 608. In other embodiments, multiple processors and / or multiple buses, as well as multiple memories and various types of memory, can be suitably used. Moreover, multiple computing devices 600 can be connected, with each device (e.g., as part of a server group, blade server cluster, or multiprocessor system) providing part of the necessary operation.

[0121] Memory 604 stores information within computing device 600. In one embodiment, memory 604 is a computer-readable medium. In one embodiment, memory 604 is one or more volatile memory cells. In another embodiment, memory 604 is one or more volatile memory cells.

[0122] Storage device 606 provides mass storage for computing device 600. In one embodiment, storage device 606 is a computer-readable medium. In various embodiments, storage device 606 may be a floppy disk device, hard disk device, optical disk device, magnetic tape device, flash memory or other similar solid-state storage device, or an array of devices including devices in a storage area network or other configurations. In one embodiment, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods (such as those described above). The information carrier is a computer or machine-readable medium, such as memory 604, storage device 606, or memory on processor 602.

[0123] High-speed controller 608 manages bandwidth-intensive operations of computing device 600, while low-speed controller 612 manages lower bandwidth-intensive operations. This allocation of responsibilities is merely an example. In one embodiment, high-speed controller 608 is coupled to memory 604, display 616 (e.g., via a graphics processor or accelerator), and to high-speed expansion port 610 that can accept various expansion cards (not shown). In another embodiment, low-speed controller 612 is coupled to storage device 606 and low-speed bus 614. Various communication ports (e.g., USB, etc.) may be included. The low-speed bus 614 (e.g., low-speed expansion port) of Ethernet (wireless Ethernet) can be coupled to one or more input / output devices, such as keyboards, pointing devices, scanners, or networking devices such as switches or routers, for example, via a network adapter.

[0124] As shown in the figure, computing device 600 can be implemented in a variety of different forms. For example, it can be implemented as a standard server 620, or multiple times in a group of such servers. It can also be implemented as part of a rack-mount server system 624. Furthermore, it can be implemented in a personal computer such as a laptop computer 622. Alternatively, components from computing device 600 can be combined with other components in a mobile device (not shown), such as mobile computing device 650. Each of such devices can contain one or more of computing devices 600 and 650, and the entire system can consist of multiple computing devices 600 and 650 communicating with each other.

[0125] Computing device 650 includes processor 652, memory 664, input / output devices such as display 654, communication interface 666 and transceiver 668, and other components. Computing device 650 may also be provided with storage devices (such as microdrives or other devices) to provide additional storage. Each of components 650, 652, 664, 654, 666, and 668 is interconnected using various buses, and some components may be mounted on a common motherboard or otherwise suitably mounted.

[0126] Processor 652 can process instructions for execution within computing device 650, including instructions stored in memory 664. The processor may also include separate analog and digital processors. The processor can provide, for example, coordination of other components of mobile computing device 650, such as control of the user interface, applications running on computing device 650, and wireless communication of computing device 650.

[0127] Processor 652 can communicate with the user via control interface 658 and display interface 656 coupled to display 654. Display 654 can be, for example, a TFT LCD display or an OLED display, or other suitable display technology. Display interface 656 may include appropriate circuitry for driving display 654 to present graphical and other information to the user. Control interface 658 can receive commands from the user and translate them for submission to processor 652. Furthermore, external interface 662 can provide communication with processor 652, enabling computing device 650 to perform near-field communication with other devices. External interface 662 can provide, for example, wired communication (e.g., via a docking process) or wireless communication (e.g., via...). (or other such technologies).

[0128] Memory 664 stores information within computing device 650. In one embodiment, memory 664 is a computer-readable medium. In another embodiment, memory 664 is one or more volatile memory cells. In yet another embodiment, memory 664 is one or more volatile memory cells. Extended memory 674 may also be provided and connected to computing device 650 via an extended interface 672, which may include, for example, a subscriber identification module (SIM) card interface. This extended memory 674 may provide additional storage space for computing device 650, or it may store applications or other information for computing device 650. Specifically, extended memory 674 may include instructions for performing or supplementing the above-described processes, and may also include security information. Thus, for example, extended memory 674 may be provided as a security module for computing device 650 and may be programmed using instructions that allow secure use of computing device 650. Furthermore, secure applications and additional information, such as placing identification information on the SIM card in an unhackable manner, may be provided via the SIM card.

[0129] As discussed below, the memory may include, for example, flash memory and / or MRAM memory. In one embodiment, the computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods (such as those described above). The information carrier is a computer or machine-readable medium, such as memory 664, extended memory 674, or memory on processor 652.

[0130] The computing device 650 can communicate wirelessly via a communication interface 666, which may include a digital signal processing circuit system if necessary. The communication interface 666 can provide communication under various modes or protocols, such as GSM voice calls, SMS, EMS, MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS. Such communication can occur, for example, via a transceiver 668 (e.g., a radio frequency transceiver). Furthermore, short-range communication may occur, such as using… WiFi or other such transceivers (not shown). In addition, the GPS receiver module 670 can provide additional wireless data to the mobile computing device 650, which can be appropriately used by applications running on the computing device 650.

[0131] The computing device 650 can also communicate audibly using an audio codec 660, which can receive spoken information from a user and convert it into usable digital information. The audio codec 660 can also generate audible sounds for the user (e.g., through a speaker), such as in a telephone call on the computing device 650. Such sounds can include sounds from a voice telephone call, recorded sounds (e.g., voice messages, music files, etc.), and sounds generated by applications operating on the computing device 650.

[0132] As shown in the figure, computing device 650 can be implemented in a variety of different forms. For example, it can be implemented as a cellular phone 680. It can also be implemented as a smartphone 682, a personal digital assistant, or part of another mobile device.

[0133] In systems discussed here that collect or utilize personal information about users, users may be given the opportunity to control whether an application or feature collects user information (e.g., information about the user's social networks, social behaviors or activities, occupation, user preferences, or the user's current location), or to control whether and / or how they receive content more relevant to the user. Furthermore, certain data may be processed in one or more ways before being stored or used, such as removing personally identifiable information. For example, a user's identity may be processed so that personally identifiable information cannot be determined for the user, or the user's geographic location may be generalized where location information is obtained (e.g., generalized to a city, zip code, or state level), making it impossible to determine the user's specific location. Therefore, users can control how information about themselves is collected and used by content servers.

[0134] The subjects and embodiments of operation described in this specification can be implemented in digital electronic circuit systems, in computer software or firmware or hardware (including the structures disclosed in this specification and their structural equivalents), or in a combination of one or more of them. Embodiments of the subjects described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a computer storage medium for execution by a data processing apparatus or for controlling the operation of a data processing apparatus.

[0135] Computer storage media can be a computer-readable storage device, a computer-readable storage substrate, a random or serial access storage device, or a combination of one or more thereof, or be included therein. Furthermore, while a computer storage medium is not a propagating signal, it can be a source or destination of computer program instructions encoded in an artificially generated propagating signal. Computer storage media can also be one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices) or be included therein.

[0136] The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

[0137] The term "data processing apparatus" encompasses a variety of devices, apparatuses, and machines for processing data, including, for example, programmable processors, computers, systems-on-a-chip, or a combination thereof. The apparatus may include dedicated logic circuit systems, such as FPGAs (field-programmable gate arrays) or ASICs (application-specific integrated circuits). In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, protocol stacks, database management systems, operating systems, cross-platform runtime environments, virtual environments, or combinations thereof. The apparatus and execution environment can implement a variety of different computing model infrastructures, such as network services, distributed computing, and grid computing infrastructures.

[0138] Computer programs (also referred to as programs, software, software applications, scripts, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as standalone programs or as modules, components, subroutines, objects, or other units suitable for use in a computing environment. A computer program may, but does not need to, correspond to a file in a file system. A program may be stored as a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), as a single file dedicated to the program in question, or as multiple harmonizing files (e.g., a file storing one or more modules, subroutines, or portions of code). Computer programs can be deployed to execute on a single computer or on multiple computers located at a single site or distributed across multiple sites interconnected by a communication network.

[0139] The processes and logic flows described in this specification can be executed by one or more programmable processors that execute one or more computer programs to perform actions by manipulating input data and generating outputs. The processes and logic flows can also be executed by a dedicated logic circuit system, and the device can be implemented as a dedicated logic circuit system, such as an FPGA (Field-Programmable Gate Array) or an ASIC (Application-Specific Integrated Circuit).

[0140] As an example, processors suitable for executing computer programs include general-purpose and special-purpose microprocessors, as well as any one or more processors in any type of digital computer. Generally, a processor receives instructions and data from read-only memory or random access memory, or both. The basic components of a computer are a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include one or more mass storage devices (e.g., disks, magneto-optical disks, or optical disks) for storing data, or be operatively coupled to receive data from or transfer data to one or more mass storage devices, or both. However, a computer does not need to have such devices. Moreover, a computer can be embedded in another device, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few examples. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices); magnetic disks (e.g., internal hard disks or removable disks); magneto-optical disks; and CD-ROM and DVD-ROM disks. Processors and memory may be supplemented by or incorporated into dedicated logic circuitry.

[0141] To provide interaction with the user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) for displaying information to the user, and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback, such as visual, auditory, or tactile feedback; and input from the user can be received in any form, including acoustic, voice, or tactile input. Furthermore, the computer can interact with the user by sending and receiving documents from the device used by the user, for example, by sending a webpage to a web browser on the user's client device in response to a request received from a web browser.

[0142] Embodiments of the subject matter described in this specification can be implemented in a computing system that includes, for example, a back-end component acting as a data server, or includes middleware components (e.g., an application server), or includes front-end components (e.g., a user computer having a graphical user interface or web browser through which a user can interact with embodiments of the subject matter described in this specification), or any combination of one or more such back-end, middleware, or front-end components. Components of the system can be interconnected via digital data communication (e.g., a communication network) of any form or medium. Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), interconnected networks (e.g., the Internet) and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0143] A computing system may include users and servers. Users and servers are typically geographically separated and usually interact via a communication network. The relationship between users and servers arises from computer programs running on individual computers and having a user-server relationship with each other. In some embodiments, the server transmits data (e.g., HTML pages) to a user device (e.g., for the purpose of displaying data to a user interacting with the client device and receiving user input from that user). Data generated at the user device (e.g., the result of user interaction) can be received from the client device at the server.

[0144] While this specification contains numerous specific implementation details, these should not be construed as limitations on any feature or the scope of the claimed protection, but rather as descriptions of features specific to particular embodiments. Certain features described in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single implementation may also be implemented separately in multiple embodiments or in any suitable sub-combination. Moreover, although features may be described above as functioning in certain combinations and even thereby initially claimed, in some cases one or more features from a claimed combination may be removed from that combination, and the claimed combination may be shifted to a sub-combination or a variation of the sub-combination.

[0145] Similarly, although the operations are depicted in a specific order in the accompanying drawings, this should not be construed as requiring these operations to be performed in the specific order shown or in sequence, or to perform all the shown operations to achieve the desired result. In some cases, multitasking and parallel processing can be advantageous. Furthermore, the separation of the various system components in the above embodiments should not be construed as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated into a single software product or packaged into multiple software products.

[0146] Therefore, specific embodiments of the subject matter have been described. Other embodiments are within the scope of this disclosure. In some cases, the actions described in this disclosure may be performed in a different order and still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require the specific order or sequential sequence shown to achieve the desired result. In some implementations, multitasking and parallel processing may be advantageous.

Claims

1. A content distribution method, comprising: The content delivery system receives messages generated by the transmission of tags over a network, the tags being included in the code of a given online resource on the website the user is viewing; When additional messages generated by the emission of additional tags within the website continue to be received within a specified time period, the content delivery system determines that the user session at the website remains active. The content distribution system determines that a user session on the website has ended based on content view data indicating that the user has navigated away from the website. The duration of a user session is calculated by the content distribution system based on the difference between a timestamp and the time when the user session at the website is determined to have ended; and The content distribution to users is modified based on the duration of the user session at the website.

2. The content distribution method according to claim 1 further includes: Determining that the duration of a user session exceeds a threshold duration, wherein modifying content distribution to the user based on the duration of the user session includes: in response to determining that the user session exceeds the threshold duration, pre-caching web page data of the website on the user's client device when the user subsequently initiates a new session on the website.

3. The content distribution method according to claim 1 further includes: The calculated duration of a user's user session and the user's identifier are stored together with the duration of other user sessions of other users on the website and other identifiers of other users in a data structure to obtain an aggregated set of user session data of users who access the website. Based on the time length specified by the user session duration, the aggregated set of user session data is divided into two or more subsets, including: Create a first subset of user session data, which includes identifiers of users corresponding to user session durations shorter than a specified duration; and Create a second subset of user session data, which includes identifiers of users corresponding to user session durations that exceed a specified duration.

4. The content distribution method according to claim 3, wherein, Modifying content distribution to users based on the duration of a user session at the website includes: including users corresponding to identifiers in a second subset in the second subset, and providing those users with additional content related to the website when those users visit other websites.

5. The content distribution method according to claim 3, further comprising: A user interface is provided that presents information about two or more subsets to the administrator of the website, including multiple identifiers included in each subset; and When a user corresponding to the identifier visits other websites or local applications, the administrator is given control to designate at least one of two or more subsets as the intended recipient of additional content related to the website.

6. The content distribution method according to claim 1, wherein, Modifying content distribution to users based on the duration of user sessions on the website includes: controlling bandwidth usage for content distribution based on the duration of user sessions.

7. The content distribution method according to claim 6, wherein, Controlling bandwidth usage for content distribution based on the duration of a user session includes reducing the amount of bandwidth used for content distribution to the user when the duration of a user session is less than a specified amount.

8. The content distribution method according to claim 1, further comprising: Detect the device type identifier in the grouped message and other grouped messages that include the identifier; and For a user session corresponding to a grouped message and other grouped messages, determining a portion of the user session using a mobile device based on the device type identifier, wherein modifying content distribution to the user based on the duration of the user session at the website includes: modifying content distribution based on a portion of the user session using the mobile device.

9. A content distribution system, comprising: Data storage devices; and One or more processors are configured to interact with a data storage device and, when executing instructions, perform operations including the following: Messages generated by the transmission of tags are received over a network, the tags being included in the code of a given online resource on the website the user is viewing; If additional messages generated by the transmission of additional tags within the website continue to be received within a specified time period, it is determined that the user session at the website remains active. It is determined that the user session at the website has ended based on content view data indicating that the user has navigated away from the website; The duration of a user session is calculated based on the difference between the timestamp and the time when the user session at the website is determined to have ended. and The content distribution to users is modified based on the duration of the user session at the website.

10. The content distribution system according to claim 9, wherein, The instructions cause one or more processors to perform operations that also include the following: Determining that the duration of a user session exceeds a threshold duration, wherein modifying content distribution to the user based on the duration of the user session includes: in response to determining that the user session exceeds the threshold duration, pre-caching web page data of the website on the user's client device when the user subsequently initiates a new session on the website.

11. The content distribution system according to claim 9, wherein, The instructions cause one or more processors to perform operations that also include the following: The calculated duration of a user's user session and the user's identifier are stored together with the duration of other user sessions of other users on the website and other identifiers of other users in a data structure to obtain an aggregated set of user session data of users who access the website. Based on the time length specified by the user session duration, the aggregated set of user session data is divided into two or more subsets, including: Create a first subset of user session data, which includes identifiers of users corresponding to user session durations shorter than a specified duration; and Create a second subset of user session data, which includes identifiers of users corresponding to user session durations that exceed a specified duration.

12. The content distribution system according to claim 11, wherein, Modifying content distribution to users based on the duration of a user session at the website includes: including users corresponding to identifiers in a second subset in the second subset, and providing those users with additional content related to the website when those users visit other websites.

13. The content distribution system according to claim 11, wherein, The instructions cause one or more processors to perform operations that also include the following: A user interface is provided that presents information about two or more subsets to the administrator of the website, including multiple identifiers included in each subset; and When a user corresponding to the identifier visits other websites or local applications, the administrator is given control to designate at least one of two or more subsets as the intended recipient of additional content related to the website.

14. The content distribution system according to claim 9, wherein, Modifying content distribution to users based on the duration of a user session at the website includes: controlling bandwidth usage for content distribution based on the duration of the user session.

15. The content distribution system according to claim 14, wherein, Controlling bandwidth usage for content distribution based on the duration of a user session includes reducing the amount of bandwidth used for content distribution to the user when the duration of a user session is less than a specified amount.

16. A non-transitory computer-readable medium storing instructions, which, when executed, cause one or more processors to perform operations including: Messages generated by the transmission of tags are received over a network, the tags being included in the code of a given online resource on the website the user is viewing; If additional messages generated by the emission of additional tags within the website continue to be received within a specified time period, it is determined that the user session at the website remains active. It is determined that the user session at the website has ended based on content view data indicating that the user has navigated away from the website; The duration of a user session is calculated based on the difference between the timestamp and the time when the user session at the website is determined to have ended. and The content distribution to users is modified based on the duration of the user session at the website.

17. The non-transitory computer-readable medium according to claim 16, wherein, The instructions cause one or more processors to perform operations that also include the following: Determining that the duration of a user session exceeds a threshold duration, wherein modifying content distribution to the user based on the duration of the user session includes: in response to determining that the user session exceeds the threshold duration, pre-caching web page data of the website on the user's client device when the user subsequently initiates a new session on the website.

18. The non-transitory computer-readable medium according to claim 16, wherein, The instructions cause one or more processors to perform operations that also include the following: The calculated duration of a user's user session and the user's identifier are stored together with the duration of other user sessions of other users on the website and other identifiers of other users in a data structure to obtain an aggregated set of user session data of users who access the website. Based on the time length specified by the user session duration, the aggregated set of user session data is divided into two or more subsets, including: Create a first subset of user session data, which includes identifiers of users corresponding to user session durations shorter than a specified duration; and Create a second subset of user session data, which includes identifiers of users corresponding to user session durations that exceed a specified duration.

19. The non-transitory computer-readable medium according to claim 18, wherein, Modifying content distribution to users based on the duration of a user session at the website includes: including users corresponding to identifiers in a second subset in the second subset, and providing those users with additional content related to the website when those users visit other websites.

20. The non-transitory computer-readable medium according to claim 18, wherein, The instructions cause one or more processors to perform operations that also include the following: A user interface is provided that presents information about two or more subsets to the administrator of the website, including multiple identifiers included in each subset; and When a user corresponding to the identifier visits other websites or local applications, the administrator is given control to designate at least one of two or more subsets as the intended recipient of additional content related to the website.

Citation Information

Patent Citations

  • Method and system for HTTP-based stream delivery

    CN102792291A

  • Providing task-based information

    CN105210096A