Distributing digital components based on predicted attributes

By predicting user attributes and selecting personalized digital components on the client device, the problem of data aggregation without using third-party cookies is solved, achieving personalized experience and resource conservation.

CN118401933BActive Publication Date: 2025-10-10GOOGLE LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202280082976.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-06-02
Publication Date
2025-10-10
Estimated Expiration
2042-06-02

AI Technical Summary

Technical Problem

Without the use of third-party cookies, existing technologies have difficulty aggregating user data from multiple different sources, leading to user privacy and data security issues, as well as high bandwidth consumption and waste of resources.

Method used

By predicting user attributes on the client device and using machine learning models to analyze the content categories and historical activities accessed by the user, personalized digital components are selected and delivered, avoiding the transmission of content that the user is unlikely to view.

Benefits of technology

This enables providing a personalized online experience without using third-party cookies, reducing bandwidth consumption, protecting user privacy, and reducing resource waste.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118401933B_ABST
    Figure CN118401933B_ABST
Patent Text Reader

Abstract

Methods, systems, and devices, including computer programs encoded on computer storage media, for selecting and distributing digital components based on predicted user attributes of a user are described. In one aspect, a method includes obtaining data indicating content categories of content pages visited by a user during a user visit. An aggregate measure for each content category is determined based on a volume of user visits to an electronic resource of a publisher that include content pages classified as belonging to the content category. User attribute prediction data indicating previously predicted user attributes of the user are obtained. A user attribute is predicted for a current visit of the user to the electronic resource of the publisher, the user attribute further used to select a digital component for display with the electronic resource on a client device during the current visit.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This manual deals with data processing and machine learning classification. Background Art

[0002] The client device may use an application (e.g., a web browser, a native application) to access a content platform (e.g., a search platform, a social media platform, or other platform hosting content). The content platform may display digital components (discrete units of digital content or digital information, such as, for example, video clips, audio clips, multimedia clips, images, text, or other content units) that may be provided by one or more content sources / platforms within the application launched on the client device. Summary of the Invention

[0003] In general, one innovative aspect of the subject matter described herein can be embodied in methods comprising the following acts: for each of a plurality of user visits to content pages of a publisher's electronic resource by a user, obtaining data indicating content categories of content of the content pages accessed by the user during the user visit; for each content category, determining an aggregate metric based on a number of user visits to content pages of the publisher's electronic resource by the user that include content classified as belonging to the content category; for each of the plurality of user visits to content pages of the publisher's electronic resource by the user, obtaining user attribute prediction data indicating previously predicted user attributes of the user, the previously predicted user attributes being predicted based on the user's activity at the publisher's electronic resource during the user visit; for a current visit of the user to the publisher's electronic resource, predicting user attributes of the user based on the aggregate metric for each content category and the obtained user attribute prediction data; and causing a digital component selected based on the predicted user attributes to be displayed on a client device of the user with the electronic resource during the current visit. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs configured to perform the acts of the method, encoded on a computer storage device.

[0004] These and other embodiments can each optionally include one or more of the following features. In some aspects, obtaining data indicating a content category for content of a content page includes evaluating digital content of an electronic resource displayed on a user's client device and assigning the content to a content category based on the evaluation.

[0005] Some aspects include determining an aggregate metric for each content category by determining a weighted sum of user visits to electronic resources of the publisher that include content pages that are classified as belonging to the content category.

[0006] Some aspects include determining a weighted sum of user visits for a given content category by weighting each user visit based on a duration between a time at which the user visit occurred and a current time.

[0007] Some aspects include determining an aggregate metric for each content category by assigning, for each user visit to a content page of an electronic resource of a publisher, a visit value based on whether the content page includes content classified as belonging to the content category; and determining an average of the visit values ​​for the content category.

[0008] Some aspects include: receiving a digital component request that includes predicted user attributes and one or more contextual signals that indicate the context of one or more content pages of an electronic resource visited during a current user visit; selecting a digital component based on the predicted attributes and the one or more contextual signals; and sending the digital component to a client device of the user.

[0009] Some aspects include predicting user attributes of a user's current visit to a publisher's electronic resource based on aggregated metrics for each content category and obtained user attribute prediction data by: providing the aggregated metrics for each content category, the user attribute prediction data for each user visit to a content page of the publisher's electronic resource, and one or more context signals as input to a context-based attribute prediction model, the context-based attribute prediction model being trained to predict user attributes based on the context signals; and receiving the predicted user attributes of the user as output of the context-based attribute prediction model.

[0010] Particular embodiments of the subject matter described in this specification can be implemented to achieve one or more of the following advantages. User attributes of a user are important for providing a personalized online experience for the user, for example, by providing specific digital components that are of interest to the user. Generally, data used to provide a personalized online experience is aggregated through the use of third-party cookies (e.g., cookies belonging to a domain different from the domain being visited by the client device), which allows linking browsing activity and other behaviors and / or identifying a user's online activities across time, domains, sessions, and devices. However, an increasing amount of web traffic does not allow the use of third-party cookies due to user privacy preferences, lack of browser support for third-party cookies, or other degradations, thereby eliminating the possibility of aggregating data from multiple different sources using third-party cookies.

[0011] To address the problem of aggregating data from multiple different sources without using third-party cookies (or when third-party cookies are unavailable), the techniques described in this document enable the prediction of user attributes without using third-party cookies. Consequently, the use of predicted user attributes can provide improvements related to data access, user privacy, and data security, as well as solutions to data aggregation issues caused by browsers' deprecation and / or blocking of third-party cookies.

[0012] Additionally, the described techniques can be used to reduce the amount of data transmitted over the network because third-party cookies are not sent from client devices to individual content providers. Because the content is aggregated across millions of client devices, bandwidth consumption is significantly reduced. Providing digital components that users are likely to view also reduces wasted bandwidth consumption by not transmitting digital components that users are unlikely to view or interact with at their client devices. This also reduces the likelihood that a user will reject a digital component in favor of a different one. Not only does this avoid the need for additional bandwidth to deliver the different digital components, but rendering resources and associated overhead (e.g., battery drain, processor cycles, and memory utilization at the client devices) are not wasted on the rejected digital components.

[0013] The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 is a block diagram of an example environment in which digital components are distributed.

[0015] Figure 2 is used in Figure 1 A swim lane diagram of an example process for distributing digital components in an environment.

[0016] Figure 3 is a flow chart illustrating an example process for selecting and distributing digital components to client devices.

[0017] Figure 4 is a block diagram of an example computer system.

[0018] Like reference numbers and designations throughout the drawings indicate like elements. DETAILED DESCRIPTION

[0019] This document discloses methods, systems, devices, and computer-readable media for predicting user attributes that would otherwise be collected using third-party cookies. The predicted user attributes can be used to select and distribute digital components while maintaining user privacy and data security.

[0020] In addition to the description throughout this document, controls (e.g., user interface elements with which the user can interact) may be provided to the user to allow the user to make choices about whether and when the systems, programs, or features described herein may be able to collect user information (e.g., information about the user's social network, social actions or activities, occupation, the user's preferences, or the user's current location) and whether to send content or communications from a server to the user. In addition, certain data may be processed in one or more ways before being stored or used so that personally identifiable information is removed. For example, the user's identity may be processed so that personally identifiable information about the user cannot be determined, or the user's geographic location may be generalized (such as to a city, zip code, or state level) if location information is available so that the user's specific location cannot be determined. Thus, the user can control what information is collected about the user, how that information is used, and what information is provided to the user.

[0021] Figure 1 1 is a block diagram of an example environment 100 in which digital components are distributed. Example environment 100 includes a data communication network 105, such as a local area network (LAN), a wide area network (WAN), the Internet, a mobile network, or a combination thereof. Network 105 connects client devices 110, publishers 140, websites 142, and content distribution systems 150. Example environment 100 may include many different client devices 110, publishers 140, websites 142, content distribution systems 150, and digital component providers 160-1 through 160-N.

[0022] The client device 110 is an electronic device capable of communicating over the network 105. Example client devices 110 include personal computers, mobile communication devices (e.g., smart phones), and other devices that can send and receive data over the network 105. The client device may also include a digital assistant device that accepts audio input through a microphone and outputs audio output through a speaker. When the digital assistant detects a "hot word" or "hot phrase" that activates the microphone to accept audio input, the digital assistant may be placed in a listening mode (e.g., ready to accept audio input). The digital assistant device may also include a camera and / or a display to capture images and display information visually. The digital assistant can be implemented in different forms of hardware devices, including wearable devices (e.g., watches or glasses), smart phones, speaker devices, tablet devices, or other hardware devices. The client device may also include a digital media device, for example, a streaming device that plugs into a television or other display to stream video to the television, or a gaming device or console.

[0023] The client device 110 typically includes applications 112, such as a web browser and / or native applications, to facilitate sending and receiving data over the network 105. A native application is an application developed for a specific platform or a specific device (e.g., a mobile device with a specific operating system). Publishers 140 can develop native applications and provide them to client devices 110, for example, by making the native applications available for download. The web browser can request a web page 145 from a web server hosting a website 142 of the publisher 140, for example, in response to a user of the client device 110 entering a resource address of the web page 145 into the address bar of the web browser or selecting a link that references the resource address. Similarly, a native application can request application content from a publisher's remote server.

[0024] Some resources, application pages, or other application content may include a digital component slot for providing a web page 145 or application page to a digital component. Website web pages and native application application pages are examples of content pages that display and depict various content to users. Each type of content page may also include one or more digital component slots for displaying a digital component and other content. A content page may be a group of content displayed simultaneously within a user interface.

[0025] 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, an audio clip, a multimedia clip, an image, text, or other unit of content). A digital component can be electronically stored in a physical memory device as a single file or a collection of files, and a digital component can take the form of a video file, an audio file, a multimedia file, an image file, or a text file and include advertising information, such that an advertisement is a type of digital component. For example, a digital component can be content that is intended to supplement the content of a web page or other resource provided by application 112. More specifically, a digital component can include digital content that is related to the resource content (e.g., a digital component can relate to the same subject as the web page content, or to a related subject). The provision of a digital component can therefore supplement and generally enhance the web page or application content.

[0026] When application 112 loads a content page of an electronic resource (e.g., a website or native application) that includes one or more digital component slots, application 112 may request a digital component for each slot. In some implementations, the digital component slots may include code (e.g., a script) that causes application 112 to request a digital component from one or more servers of content distribution system 150 for display to a user of client device 110. For example, the code of the digital component slot may enable client device 110 to generate a packetized data request that includes a header and payload data. Application 112 may send the packetized data request to content distribution system 150 to request a digital component from content distribution system 150. Application 112 may generate a digital component request (e.g., in the form of a packetized data request) and send it to content distribution system 150 via network 105.

[0027] In some implementations, the content distribution system 150 can be implemented as a content platform, such as a supply-side platform (SSP) or a demand-side platform (DSP). Generally speaking, the content platform manages the selection and distribution of digital components on behalf of publishers 140 and digital component providers 160-1 to 160-N. Some publishers 140 use SSPs to manage the process of obtaining digital components for digital component slots of their resources and / or applications. An SSP is a technology platform implemented in hardware and / or software that automates the process of obtaining digital components for resources and / or applications. Each publisher 140 can have a corresponding SSP or multiple SSPs. Some publishers 140 can use the same SSP.

[0028] Digital component providers 160 can create (or otherwise publish) digital components that are offered in digital component slots for publishers' resources and applications. Digital component providers 160 can use DSPs to manage the provision of their digital components for delivery in digital component slots. A DSP is a technology platform implemented in hardware and / or software that automates the process of distributing digital components for delivery with resources and / or applications. On behalf of digital component providers 160, a DSP can interact with multiple supply-side platforms (SSPs) to provide digital components for delivery with resources and / or applications from multiple different publishers 140. Generally speaking, a DSP can receive a request for a digital component (e.g., from an SSP), generate (or select) selection parameters for one or more digital components created by one or more digital component providers based on the request, and provide data related to the digital components (e.g., the digital components themselves) and the selection parameters to the SSPs. The SSPs can then select one or more digital components and transmit the data related to the digital components and the selection parameters to the client device 110.

[0029] The digital component request may include data specifying characteristics such as the name (or network location) of the server from which the media is being requested. The digital component request may also include contextual data related to the display environment in which the requested digital component will be displayed. The contextual data may include, for example, characteristics of the content page being requested and the location of the content page in which the digital component may be displayed. For example, the contextual data may include a reference (e.g., a uniform resource locator (URL) or universal resource identifier (URI)) to the content page in which the digital component will be provided, available locations of application pages that can be used to deliver the digital component, the size of the available locations, and / or the types of media eligible for delivery at those locations. Similarly, the contextual data may include keywords associated with the content page ("document keywords") or entities referenced by the content page (e.g., people, places, or things) to facilitate identification of digital components eligible for delivery with the content page. The contextual data may also include a search query submitted from the client device 110 to obtain search results, and / or data specifying the search results and / or textual, auditory, or other visual content included in the search results.

[0030] The digital component request may also include additional contextual data, such as data already provided by a user of the client, geographic information indicating the state or region from which the component request is being submitted, and / or other appropriate data providing the context of the environment in which the digital component will be displayed (e.g., the time of day for the component request, the day of the week for the component request, the type of device on which the digital component will be displayed (such as a mobile device or a tablet device)).

[0031] In some cases, the digital component request may also include user attributes, such as demographic information, user interests, and / or other information that can be used to personalize the user's online experience. In some cases, these characteristics and / or information about the user of client device 110 is readily available. For example, publisher 140 and digital component provider 160 may allow users to register with a content platform by providing such user information. In another example, a content platform may use cookies to identify client devices, which may store information about the user's online activities and / or user characteristics. Historically, third-party cookies have been used to provide user characteristics to content platforms, regardless of which domain the user is browsing. However, to protect user privacy, these and other methods of identifying user characteristics are becoming less common. For example, browsers have been redesigned to actively block the use of third-party cookies, thereby preventing content platforms from accessing user characteristics.

[0032] Publisher 140 may interact with an attribute evaluation device to predict one or more user attributes (which may also be referred to as predicted user attributes) based on the user's activity utilizing an electronic resource, such as a website, native application, or platform (e.g., a video sharing platform) of publisher 140. For example, if a user of client device 110 uses browser-based application 112 to access web page 145 from a web server hosting website 142 of publisher 140, the web server hosting website 142 may request attribute evaluation device 170 to analyze the content accessed by the user to generate one or more predicted user attributes of the user.

[0033] In some implementations, the attribute evaluation device 170 implements one or more machine learning models that predict user attributes of a user based on the user's user activity utilizing the electronic resources of the publisher 140 and the content of the electronic resources accessed by the user. The machine learning model can be any machine learning technology that is considered suitable for the specific implementation, such as an artificial neural network (ANN), a support vector machine (SVM), a random forest (RF), etc., which includes multiple trainable parameters. During the training process, multiple training parameters are adjusted while iterating over multiple samples of the training data set based on the error generated by a loss function specific to the machine learning model. The loss function compares the predicted value of the machine learning model with the true value of the sample in the training set to generate a measure of the prediction error.

[0034] The machine learning model can be trained to receive as input data describing content accessed by a user at an electronic resource and output data identifying a predicted user attribute of the user. For example, the data describing the content accessed by the user can include content categories of the content of content pages of the electronic resource requested or otherwise viewed by the user. As described below, content categories can be assigned to content pages based on the content displayed by the content pages. In some implementations, these content categories can be associated with verticals.

[0035] In some implementations, the attribute evaluation device 170 implements a rule-based model that determines one or more predicted user attributes based on rules specified by the publisher 140. For example, a publisher, such as a shoe manufacturer, may specify that a user who purchases shoes of a particular size has a user attribute that the shoe size is equal to the particular size. Following this example, if a user browses for shoes using the application 112 and adds a shoe of size "US11.5" to a shopping cart, the attribute evaluation device 170 may determine that the user has a user attribute that the shoe size is US11.5.

[0036] In some implementations, publisher 140 (or another entity) may categorize content pages of the publisher's electronic resources into content categories based on the content of the content pages. For example, publisher 140 of a video sharing platform may categorize videos displayed on the platform into categories such as outdoors, baseball, gardening, and auto repair. Similarly, publisher 140 of a digital news organization may categorize news pages into categories such as sports, politics, and finance. Publisher 140 may also categorize one or more of these categories into subcategories. For example, a digital news organization may further subdivide politics into domestic politics and international politics.

[0037] In some implementations, publisher 140 may use a trained machine learning model to classify content pages into one or more content categories based on the content displayed on the content pages. For example, the machine learning model may implement object recognition, natural language recognition, text analysis, and / or other appropriate techniques to classify content pages into content categories.

[0038] In some implementations, attribute evaluation facility 170 may process one or more content categories of content accessed by a user of client device 110 to predict one or more user attributes.

[0039] In some implementations, publisher 140 (e.g., a web server or other server of publisher 140) may maintain a record of user visits (e.g., counts) to the publisher's 140 electronic resources and the content pages visited by the user during each visit, in order to generate an aggregate view of the predicted user attributes. For example, publisher 140 may maintain a log for each user that includes, for each user visit to an electronic resource, the content pages visited during the user visit. A user visit may be referred to as a user session, which includes a start event (e.g., a user requests the first content page of an electronic resource) and an end event (e.g., a user navigates to a different electronic resource of a different publisher or closes the application).

[0040] Publisher 140 may predict user attributes of a user for each visit to an electronic resource of publisher 140. For example, if a user visits publisher's website 142 N times, attribute evaluation device 170 may predict one or more user attributes (referred to as user attribute prediction data) for each of the visits. For example, if a user visits a webpage containing content related to plants native to a particular geographic region during three different visits to website 142, attribute evaluation device 170 may predict a location in that particular region for each of the three visits.

[0041] In some implementations, the evaluation facility of publisher 140 may predict user attributes of a user based on user activity during current and previous user visits to electronic resources of publisher 140. For example, if during a current session, a user of client device 110 visits website 142 of publisher 140, attribute evaluation facility 170 may predict one or more user attributes based on the content accessed by the user of client device 110 during the current session and also based on content accessed by the user during one or more previous sessions. In other implementations, attribute evaluation facility 170 may further predict one or more user attributes based on the content accessed by the user of client device 110 and one or more predicted user attributes from previous sessions.

[0042] The attribute evaluation device 170 may be configured to predict user attributes for a user based on the content categories of content pages visited by the user during past visits and / or the current visit. For each user visit, the publisher 140 may assign a visit value to each of a set of content categories based on whether the content of the content pages visited by the user has been assigned to a content category. For example, if a user visits a content page assigned to content category A but does not visit a content page assigned to content category B, the publisher 140 may assign a value of one to content category A and a value of zero to content category B for that user visit. Other values ​​may also be used. For example, the visit value of a content category assigned to multiple content pages visited by a user may be based on the number of content pages visited by the user during the current user visit. In this example, if the user visited two content pages assigned to content category A during the user visit, the visit value may be two, or 1.5, because the subsequent pages have a lower weight than the first content page visited and assigned to the content category.

[0043] The attribute evaluation device 170 may determine, for each content category, an aggregate metric based on the number of user visits to content pages of the publisher's electronic resources that have been classified as belonging to the content category. For example, the attribute evaluation device 170 may use the visit value to determine the aggregate metric. In some implementations, the attribute evaluation device 170 determines the aggregate metric for the content category by determining the sum of the visit values ​​for the content category (e.g., within a given time period or for all user visits to the publisher's electronic resources by the user). For example, if content category A is assigned a visit value of one for the first visit, a visit value of zero for the second visit, and a visit value of one for the third visit, the aggregate metric for category A will be two.

[0044] Attribute evaluation device 170 may determine an aggregate metric for each content category by determining an average of the visit values, a weighted average of the visit values, and / or a weighted sum of the visit values. For example, attribute evaluation device 170 may weight each visit value based on the duration between the user visit corresponding to the visit value and the current time at which the aggregate metric is determined. Attribute evaluation device 170 may weight the visit values ​​by multiplying the visit value by a weight. Continuing with the aforementioned example, the first visit may have a weight of 0.5 based on a duration of one week, and the third visit may have a weight of one based on a duration of zero days (e.g., the current visit). Thus, the weights may decay over time to reflect the importance of the most recent visit. In this example, the aggregate metric for category A would be based on 0.5 (e.g., 0.5*1 for the first visit), 0 (e.g., 0 for the second visit), and 1 (e.g., 1*1 for the third visit). If a weighted sum were used, the aggregate metric for category A would be 1.5 (e.g., 0.5+0+1).

[0045] The attribute evaluation device 170 may predict user attributes of the user based on the aggregated metrics for each content category. For example, the machine learning model of the attribute evaluation device 170 may be trained to receive the aggregated metrics for each content category as input and output the predicted user attributes of the user based on the aggregated metrics for each content category. In another example, the machine learning model may be trained to receive the aggregated metrics for each content category and the predicted user attributes of the user for each user visit to the electronic resource as input and output the predicted user attributes of the user based on the input.

[0046] In implementations where predicted user attributes are used, the predicted user attributes can be ranked or weighted similarly to content categories. For example, publisher 140 can rank predicted user attributes for previous visits based on the recency of the previous visit (e.g., the duration between the previous visit and the current time). For example, predicted user attributes for a recent visit by a user of client device 110 can be ranked higher than predicted user attributes for earlier visits. In some implementations, publisher 140 can assign weights to predicted attributes based on the recency of the visit. For example, predicted user attributes for more recent visits can be assigned higher weights than for other visits.

[0047] The content distribution system 150 may use the predicted user attributes of the user of the client device 110 to select one or more digital components to provide to the client device 110 for display to the user. In some implementations, when the user of the client device 110 uses the application 112 to load a resource (such as the website 142) that includes one or more digital component slots, the web server may include (or embed) the predicted user attributes and code (e.g., a script) that causes the application 112 to request the digital components from the content distribution system 150 to provide to the user of the client device 110. When the application 112 generates a request for the digital components, the application 112 may include the predicted user attributes of the user in the digital component request. In response to receiving the digital component request, the content distribution system 150 selects a digital component based on the predicted user attributes and contextual data, and returns data related to the selected digital component, such as the digital component itself or a reference to a network location (e.g., a URL) from which the digital component can be downloaded.

[0048] In some implementations, in response to receiving a digital component request from application 112, content distribution system 170 may determine predicted user attributes of the user based on the data in the digital component request. For example, content distribution system 150 may implement a machine learning model (which may be referred to as a context model) that is different from the machine learning model implemented by the attribute evaluation device of publisher 140. Content distribution system 150 may provide the information provided in the digital component request as input to the context model. After processing the input, the context model generates an output that includes a prediction of the user attributes of the user.

[0049] Generally speaking, the context model can be trained to predict user attributes of the user based on the context data of the digital component request. For example, the context model can be trained to output predicted user attributes based on the content of the content page where the digital component is being requested, the location of the client device, etc.

[0050] The context model can also be trained or tuned to output a predicted user attribute based on an aggregated metric for each content category in a set of content categories and / or a predicted user attribute for each of one or more user visits of the user. For example, the context model can be trained to output a predicted user attribute based on context data, an aggregated metric for each content category, and a predicted user attribute for each user visit.

[0051] In another example, the content distribution system 150 may be configured to apply a set of rules to the data requested by the digital component and the output of the context model. For example, the context model may be trained to output predicted user attributes based on the context data of the digital component request. The set of rules may specify how the predicted user attributes output by the context model are combined with the aggregated metrics and / or predicted user attributes included in the digital component request. For example, if the predicted value of a particular user attribute matches between the output of the context model and the digital component request, the value of that user attribute may be confirmed and used to select the digital component. If the attribute values ​​do not match, that value may not be used to select the digital component. In another example, the confidence score of the value of the user attribute may be increased based on the number of user visits in which the user was predicted to have a matching attribute. For example, if all ten user visits to a publisher's electronic resources resulted in a user being predicted to have user attribute A, and the context model outputs a prediction that the user has user attribute A, the score for user attribute A may be increased based on these ten matches.

[0052] After selecting a digital component, the content distribution system 1750 may send data of the selected digital component to the client device 110. The application 112 may then display the selected digital component to the user along with the content page of the electronic resource that the user is viewing.

[0053] Figure 2 is used in Figure 1 1. A swim lane diagram of an example process 200 for distributing digital components in the environment 100 of FIG. 1. The operations of process 200 may be implemented, for example, by client device 110, content distribution system 150, and publisher 140 (e.g., by one or more servers of publisher 140). The operations of process 200 may also be implemented as instructions stored on one or more computer-readable media that may be non-transitory, and execution of the instructions by one or more data processing devices may cause the one or more data processing devices to perform the operations of process 200. Example process 200 is described with respect to website resources, but may also be performed with respect to other types of electronic resources (e.g., application pages of native applications).

[0054] Application 112 initiates access to website 142 (202). For example, in response to a user of client device 110 entering a resource address of resource 145 in an address bar of a web browser or selecting a link referencing the resource address, the user of client device 110 uses web browser application 112 to request web page 145 from a web server hosting website 142 of publisher 140. Similarly, a native application can request application content from a publisher's remote server.

[0055] The web server hosting the website 142 predicts one or more user attributes 204. For example, the web server hosting the website 142 of the publisher 140 may use the attribute evaluation device 170 to predict one or more predicted user attributes based on user activity when the user visits the publisher's website 142.

[0056] The web server hosting the website 142 embeds the one or more predicted user attributes into the website 142 (206). For example, the web server may embed the predicted user attributes into a digital component slot along with code (e.g., a script) that causes the application 112 to request the digital component from the content distribution system 150 for delivery to the user of the client device 110. In some implementations, the publisher 140 may also include one or more predicted user attributes for the user and / or user attribute prediction data for previous sessions, rather than just the one or more predicted user attributes for the current session accessing a resource (such as the website 142). In another implementation, the publisher 140 may also include an aggregate count of user visits to content pages belonging to one or more content categories. For example, the publisher 140 may also include a distribution of user visits to content pages of different content categories.

[0057] The web server transmits 208 the data for the website 142 to the client device 110. For example, the web server transmits 208 the data for the website 142, which causes the application 112 of the client device 110 to display the website 142 to the user.

[0058] Application 112 transmits a request for a digital component (210). For example, when application 112 loads website 142 that includes one or more digital component slots, application 112 may request a digital component for each slot from content distribution system 150. In some implementations, the digital component request may include one or more predicted user attributes for the current session. In some implementations, the request may also include predicted user attributes for previous sessions.

[0059] The content distribution system 150 may generate one or more user attributes for the user (212). For example, the content distribution system 150 may also analyze the one or more predicted user attributes and the context data of the digital component request to predict the one or more user attributes for the user. For example, the content distribution system 150 may implement a context model that receives information provided in the digital component request as input. The context model generates an output after processing the input, the output including a prediction of the one or more user attributes.

[0060] The content distribution system 150 selects a digital component (214). For example, the content distribution system 150 may select a digital component based on the contextual data of the digital component request, the predicted user attributes, and the distribution criteria of the digital component. For example, the distribution criteria of the digital component may indicate that the digital component is eligible for display to users with specific user attributes (e.g., user attribute A) and in a specific context including specific contextual features (e.g., in a specific web page based on a URL). The distribution criteria may also include selection values ​​that indicate the amount that the digital component provider 160 is willing to provide to the publisher for display of the digital component. The content distribution system 150 may use the distribution criteria and the predicted user attributes and contextual data to identify eligible digital components and select the eligible digital components with acceptable selection values, e.g., the eligible digital components with the highest selection values. Providing eligible digital components based on at least one of the distribution criteria, the predicted user attributes, or the contextual data reduces wasteful bandwidth consumption by not transmitting digital components that the user is unlikely to view or interact with at their client device. This also reduces the likelihood that the user will reject the digital component in favor of a different digital component. Not only does this avoid the need for additional bandwidth to deliver different digital components, but rendering resources and associated overhead (e.g., battery power consumption, processor cycles, and memory utilization at the client device) are not wasted on rejected digital components.

[0061] Content distribution system 170 may transmit the selected digital component to client device 110 (216). For example, content distribution system 150 transmits data of the selected digital component to client device 110. The application displays the digital component in the digital component slot (218).

[0062] Figure 3 is a flow chart illustrating an example process 300 for selecting and distributing digital components to client devices. The operations of process 300 may be implemented, for example, by content distribution system 150 and / or publisher 140 (e.g., one or more servers of publisher 140). The operations of process 300 may also be implemented as instructions stored on one or more computer-readable media that may be non-transitory, and execution of the instructions by one or more data processing devices may cause the one or more data processing devices to perform the operations of process 300. For simplicity, process 300 is described in terms of a system that may include one or more computers.

[0063] The system obtains data indicating content categories of content pages of electronic resources accessed by the user during the user's visit 310. For example, the system can track user access to electronic resources of publisher 140. The web server can also track the number of times and timestamps that the user accesses the electronic resources and different content pages.

[0064] The system determines an aggregate metric for each content category based on the number of user visits to the content pages by users (320). Publisher 140 (or another entity) may categorize the content of a website into content categories, for example, categories of content with similar contexts. For example, publisher 140, such as an online e-commerce platform, may categorize items listed on the platform into categories such as shoes, clothing, etc. The system may also track the number of user visits to different content pages categorized as belonging to a particular category. For example, if there are 10 content pages categorized as belonging to a particular category, the system may aggregate the number of user visits to each of the 10 content pages to calculate the number of user visits to the content pages categorized as belonging to the particular category.

[0065] The system obtains user attribute prediction data (330) indicating previously predicted user attributes of the user. For example, the system may predict user attributes of the user based on the user's user activity utilizing the website of publisher 140. For example, when a user of client device 110 visits electronic resources of publisher 140, attribute evaluation device 170 may predict one or more user attributes based on the content accessed by the user of client device 110 during the session. Thus, attribute evaluation device 170 may generate one or more predicted user attributes of the user for each of the previous sessions. The one or more predicted user attributes of the previous session may be referred to as user attribute prediction data.

[0066] The system predicts user attributes for the user based on the aggregated metrics for each content category and the user attribute prediction data (340). For example, the system may predict user attributes for the user based on current and previous sessions of the user's activity with the electronic resources of publisher 140. For example, if during a current session, the user of client device 110 visits the electronic resources of publisher 140, attribute evaluation device 170 may predict one or more user attributes based on the content accessed by the user of client device 110 during the current session and also based on the content accessed by the user during one or more previous sessions. In some implementations, attribute evaluation device 170 may predict one or more user attributes based on the user attribute prediction data for previous user visits to the electronic resources.

[0067] The system causes a digital component selected based on the predicted user attributes to be displayed on the user's client device (350). For example, when the application 112 generates a request for a digital component, the application 112 can include one or more predicted user attributes in the request for the digital component. In response to receiving the digital component request, the content distribution system 150 returns data related to a set of digital components to the client device 110 along with a selection value for each digital component in the set of digital components. The application 112 can then display the selected digital component with the electronic resource. In another example, the system itself can select a digital component based on the predicted user attributes it generated and provide the digital component to the client device. The application 112 can then display the digital component with the electronic resource. Providing digital components based on predicted user attributes reduces wasted bandwidth consumption by not transmitting digital components that the user is unlikely to view or interact with at their client device. This also reduces the likelihood that the user will reject a digital component in favor of a different digital component. This not only avoids the need for additional bandwidth to deliver a different digital component, but rendering resources and associated overhead (e.g., battery power consumption, processor cycles, and memory utilization at the client device) are also not wasted on rejected digital components.

[0068] Figure 4 is a block diagram of an example computer system 400 that can be used to perform the operations described above. The system 400 includes a processor 410, a memory 420, a storage device 430, and an input / output device 440. Each of the components 410, 420, 430, and 440 can be interconnected, for example, using a system bus 450. The processor 410 is capable of processing instructions for execution within the system 400. In some implementations, the processor 410 is a single-threaded processor. In another implementation, the processor 410 is a multi-threaded processor. The processor 410 is capable of processing instructions stored in the memory 420 or on the storage device 430.

[0069] The memory 420 stores information within the system 400. In one implementation, the memory 420 is a computer-readable medium. In some implementations, the memory 420 is a volatile memory unit. In another implementation, the memory 420 is a non-volatile memory unit.

[0070] The storage device 430 is capable of providing mass storage for the system 400. In some implementations, the storage device 430 is a computer-readable medium. In various different implementations, the storage device 430 can include, for example, a hard disk device, an optical disk device, a storage device that is shared over a network by multiple computing devices (e.g., a cloud storage device), or some other large capacity storage device.

[0071] The input / output device 440 provides input / output operations for the system 400. In some implementations, the input / output device 440 may include one or more of a network interface device (e.g., an Ethernet card), a serial communication device (e.g., an RS-232 port), and / or a wireless interface device (e.g., an 802.11 card). In another implementation, the input / output device may include a driver device configured to receive input data and send output data to an external device 460 (e.g., a keyboard, a printer, and a display device). However, other implementations may also be used, such as a mobile computing device, a mobile communication device, a set-top television client device, and the like.

[0072] Despite Figure 4 An example processing system is described in the specification, but the subject matter and implementation of the functional operations described in this specification may be implemented in other types of digital electronic circuit systems or in computer software, firmware or hardware (including the structures disclosed in this specification and their structural equivalents), or in a combination of one or more of them.

[0073] The embodiments of the subject matter and operations described in this specification may be implemented in digital electronic circuit systems or in computer software, firmware or hardware (including the structures disclosed in this specification and their structural equivalents), or in a combination of one or more of them. The embodiments of the subject matter described in this specification may be implemented as one or more computer programs, that is, one or more modules of computer program instructions, which are encoded on a computer storage medium (or multiple computer storage media) for execution by a data processing device or for controlling the operation of a data processing device. Alternatively or in addition, the program instructions may be encoded on an artificially generated propagation signal (e.g., a machine-generated electrical, optical or electromagnetic signal), which is generated to encode information for transmission to a suitable receiver device for execution by the data processing device. The computer storage medium may be a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them, or included in them. In addition, although a computer storage medium is not a propagation signal, a computer storage medium may be a source or destination of computer program instructions encoded in an artificially generated propagation signal. The computer storage medium can also be, or be included in, one or more separate physical components or media (eg, multiple CDs, disks, or other storage devices).

[0074] 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.

[0075] The term "data processing device" encompasses all types of equipment, devices, and machines for processing data, including, for example, a programmable processor, a computer, a system on a chip, or multiple or a combination of the foregoing. The device may include dedicated logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, the device may also include code that creates an execution environment for the computer program in question, for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of these. The device and execution environment can implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

[0076] A computer program (also referred to as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages; and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but does not necessarily, correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or portions of code). A computer program may be deployed to execute on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communications network.

[0077] The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can be implemented as, special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

[0078] Processors suitable for executing computer programs include, for example, both general-purpose microprocessors and special-purpose microprocessors. Generally, a processor will receive instructions and data from read-only memory or random access memory, or both. The essential elements 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 for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or be operatively coupled to receive data from or transfer data to the one or more mass storage devices, or both. However, a computer need not have such devices. Furthermore, a computer may be embedded in another device, such as a mobile phone, personal digital assistant (PDA), mobile audio or video player, game console, global positioning system (GPS) receiver, or portable storage device (e.g., universal serial bus (USB) flash drive), to name a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage 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. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0079] To provide for interaction with a user, embodiments of the subject matter described in this specification may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) 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 may also be used to provide for interaction with the user; for example, feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including sound, voice, or tactile input. In addition, a computer may interact with a user by sending documents to and receiving documents from a device used by the user; for example, by sending a web page to a web browser on a user's client device in response to a request received from the web browser.

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

[0081] A computing system may include a client and a server. The client and server are generally remote from each other and typically interact via a communication network. The relationship of client and server arises from computer programs running on the respective computers and having a client-server relationship with each other. In some embodiments, the server transmits data (e.g., an HTML page) to a client device (e.g., for the purpose of displaying data to a user interacting with the client device and receiving user input from the user). Data generated at the client device (e.g., the results of the user interaction) may be received from the client device at the server.

[0082] Although this specification contains many specific implementation details, these details should not be interpreted as limiting the scope of any invention or the scope that may be claimed, but rather as descriptions of features that are peculiar to a particular embodiment of a particular invention. Certain features described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, the various features described in the context of a single embodiment may also be implemented individually or in any suitable subcombination in multiple embodiments. Furthermore, although features may be described above as functioning in certain combinations and even initially claimed as such, in some cases one or more features from the claimed combination may be deleted from the combination, and the claimed combination may involve a change in a subcombination or a subcombination.

[0083] Similarly, although operations are depicted in a particular order in the accompanying drawings, this should not be construed as requiring that such operations be performed in the particular order shown or in a sequential order, or that all illustrated operations be performed, to achieve the desired result. In certain circumstances, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system components in the above-described 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 together in a single software product or packaged into multiple software products.

[0084] Thus, certain embodiments of the present subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve the desired results. Additionally, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve the desired results. In certain implementations, multitasking and parallel processing may be advantageous.

Claims

1. A computer-implemented method comprising: obtaining, for each user visit of a plurality of user visits by a user to a content page of an electronic resource of a publisher, data indicating a content category of content of the content page accessed by the user during the user visit; determining, for each content category, an aggregate metric based on user visits to content pages of the electronic resource of the publisher that include content classified as belonging to the content category by the user; obtaining, for each of the plurality of user visits by the user to the content page of the electronic resource of the publisher, user attribute prediction data indicating a previously predicted user attribute of the user, the previously predicted user attribute being predicted based on the user's activity at the electronic resource of the publisher during the user visit; For the user's current browsing of the electronic resource of the publisher, predicting a user attribute of the user based on the aggregated metric of each content category and the obtained user attribute prediction data; as well as Causing a digital component selected based on the predicted user attribute to be displayed with the electronic resource on the user's client device during the current visit, comprising: receiving a digital component request, the digital component request comprising the predicted user attributes and one or more context signals indicating the context of one or more content pages of the electronic resource being visited during the current visit; selecting the digital component based on the predicted attribute and the one or more context signals; as well as The digital component is sent to the client device of the user.

2. The computer-implemented method of claim 1 , wherein obtaining data indicative of a content category for the content of the content page comprises evaluating digital content of the electronic resource displayed on the client device of the user and assigning the content to the content category based on the evaluation.

3. The computer-implemented method of claim 1 , wherein determining the aggregate metric for each content category comprises determining a weighted sum of the visits by the user to content pages of the electronic resource of the publisher that include content classified as belonging to the content category.

4. The computer-implemented method of claim 3, wherein determining the weighted sum of the user visits for a given content category comprises weighting each user visit based on a duration between a time at which the user visit occurred and a current time.

5. The computer-implemented method of claim 1 , wherein determining the aggregate metric for each content category comprises: assigning, for each user visit by the user to a content page of the electronic resource of the publisher, a visit value based on whether the content page includes content classified as belonging to the content category; as well as An average of the visit values ​​for the content category is determined.

6. The computer-implemented method of claim 1 , wherein predicting the user attribute of the user based on the aggregated metrics for each content category and the obtained user attribute prediction data for the current visit of the user to the electronic resource of the publisher comprises: providing the aggregated metric for each content category, the user attribute prediction data for each user visit to the content page of the electronic resource of the publisher, and the one or more contextual signals as input to a context-based attribute prediction model, the context-based attribute prediction model being trained to predict user attributes based on contextual signals; as well as Predicted user attributes of the user are received as output of the context-based attribute prediction model.

7. A system comprising: memory device; as well as one or more processors configured to interact with the memory device and to perform operations comprising: obtaining, for each user visit of a plurality of user visits by a user to a content page of an electronic resource of a publisher, data indicating a content category of content of the content page accessed by the user during the user visit; determining, for each content category, an aggregate metric based on user visits to content pages of the electronic resource of the publisher that include content classified as belonging to the content category by the user; obtaining, for each of the plurality of user visits by the user to the content page of the electronic resource of the publisher, user attribute prediction data indicating a previously predicted user attribute of the user, the previously predicted user attribute being predicted based on the user's activity at the electronic resource of the publisher during the user visit; For the user's current browsing of the electronic resource of the publisher, predicting a user attribute of the user based on the aggregated metric for each content category and the obtained user attribute prediction data; and Causing a digital component selected based on the predicted user attribute to be displayed with the electronic resource on the user's client device during the current visit, comprising: receiving a digital component request, the digital component request comprising the predicted user attributes and one or more context signals indicating the context of one or more content pages of the electronic resource being visited during the current visit; selecting the digital component based on the predicted attribute and the one or more context signals; and The digital component is sent to the client device of the user.

8. The system of claim 7 , wherein obtaining data indicating a content category of the content of the content page comprises evaluating digital content of the electronic resource displayed on the client device of the user and assigning the content to the content category based on the evaluation.

9. The system of claim 7 , wherein determining the aggregate metric for each content category comprises determining a weighted sum of the visits by the user to content pages of the electronic resource of the publisher that include content classified as belonging to the content category.

10. The system of claim 9, wherein determining the weighted sum of the user visits for a given content category comprises weighting each user visit based on a duration between a time at which the user visit occurred and a current time.

11. The system of claim 7, wherein determining the aggregate metric for each content category comprises: assigning, for each user visit by the user to a content page of the electronic resource of the publisher, a visit value based on whether the content page includes content classified as belonging to the content category; as well as An average of the visit values ​​for the content category is determined.

12. The system of claim 7 , wherein, for the user's current browsing of the electronic resource of the publisher, predicting the user attribute of the user based on the aggregated metrics for each content category and the obtained user attribute prediction data comprises: providing the aggregated metric for each content category, the user attribute prediction data for each user visit to the content page of the electronic resource of the publisher, and the one or more contextual signals as input to a context-based attribute prediction model, the context-based attribute prediction model being trained to predict user attributes based on contextual signals; as well as Predicted user attributes of the user are received as output of the context-based attribute prediction model.

13. A computer-readable medium storing instructions that, when executed by one or more data processing devices, cause the one or more data processing devices to perform operations comprising: obtaining, for each user visit of a plurality of user visits by a user to a content page of an electronic resource of a publisher, data indicating a content category of content of the content page accessed by the user during the user visit; determining, for each content category, an aggregate metric based on user visits to content pages of the electronic resource of the publisher that include content classified as belonging to the content category by the user; obtaining, for each of the plurality of user visits by the user to the content page of the electronic resource of the publisher, user attribute prediction data indicating a previously predicted user attribute of the user, the previously predicted user attribute being predicted based on the user's activity at the electronic resource of the publisher during the user visit; For the user's current browsing of the electronic resource of the publisher, predicting a user attribute of the user based on the aggregated metric of each content category and the obtained user attribute prediction data; as well as Causing a digital component selected based on the predicted user attribute to be displayed with the electronic resource on the user's client device during the current visit, comprising: receiving a digital component request, the digital component request comprising the predicted user attributes and one or more context signals indicating the context of one or more content pages of the electronic resource being visited during the current visit; selecting the digital component based on the predicted attribute and the one or more context signals; as well as The digital component is sent to the client device of the user.

14. The computer-readable medium of claim 13, wherein obtaining data indicating a content category of the content of the content page comprises evaluating digital content of the electronic resource displayed on the client device of the user and assigning the content to the content category based on the evaluation.

15. The computer-readable medium of claim 13, wherein determining the aggregate metric for each content category comprises determining a weighted sum of the visits by the user to content pages of the electronic resource of the publisher that include content classified as belonging to the content category.

16. The computer-readable medium of claim 15, wherein determining the weighted sum of the user visits for a given content category comprises weighting each user visit based on a duration between a time at which the user visit occurred and a current time.

17. The computer-readable medium of claim 13, wherein determining the aggregate metric for each content category comprises: assigning, for each user visit by the user to a content page of the electronic resource of the publisher, a visit value based on whether the content page includes content classified as belonging to the content category; as well as An average of the visit values ​​for the content category is determined.

Citation Information

Patent Citations

  • Predicting content performance with interest data

    US20140068011A1