CN117453989A - Improving opt-out compliance - Google Patents

Improving opt-out compliance Download PDF

Info

Publication number
CN117453989A
CN117453989A CN202311182883.8A CN202311182883A CN117453989A CN 117453989 A CN117453989 A CN 117453989A CN 202311182883 A CN202311182883 A CN 202311182883A CN 117453989 A CN117453989 A CN 117453989A
Authority
CN
China
Prior art keywords
opt
opportunity
digital component
client device
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311182883.8A
Other languages
Chinese (zh)
Inventor
H·A·加隆
N·W·艾萨克斯
G·王
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202311182883.8A priority Critical patent/CN117453989A/en
Publication of CN117453989A publication Critical patent/CN117453989A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

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

Abstract

Methods, systems, and computer readable media for improving opt-out compliance are disclosed. A method comprising: identifying an opportunity to transmit a digital component to a client device identified by a given unique identifier; accessing a database; identifying, within the database and based on the access, a opt-out timestamp specifying when a opt-out opportunity was presented to a given user corresponding to a given unique identifier; determining whether the timestamp indicates that the opportunity is presented to the user within a specified amount of time; and processing the opportunity by: in response to determining that the opportunity is presented to the given user within a specified amount of time, submitting an opportunity to transmit the digital component to a third party digital component source; or avoid submitting the opportunity in response to determining that the opportunity is not presented to the given user for a specified amount of time.

Description

Improving opt-out compliance
The present application is a divisional application of the invention patent application with application number 201780090572.5, with application date 2017, 11, 14.
Technical Field
This document relates to improving opt-out compliance.
Background
The internet provides access to various resources and in some cases, content providers provide content to users before directing the users to the requested resources. The content provider may allow the user to opt out of receiving certain content.
Disclosure of Invention
In general, one inventive aspect of the subject matter described in this specification can be embodied in a method that includes identifying, by one or more servers, opportunities to send digital components to a client device identified by a given unique identifier. The method includes accessing, by one or more servers, a database including a opt-out timestamp specifying, for each of a plurality of unique identifiers, when a opt-out opportunity is presented to a user corresponding to the plurality of unique identifiers. The method further comprises the steps of: identifying, within the database and based on the access, a opt-out timestamp specifying when a opt-out opportunity was presented to a given user corresponding to a given unique identifier; and determining, by the one or more servers, whether the opt-out timestamp indicates that the opt-out opportunity was presented to the given user within a specified amount of time prior to the current time. The one or more servers process the opportunity to transmit the digital component based on a determination of whether a selection to exit the opportunity is presented to the given user within a specified amount of time before the identified opportunity to transmit the digital component. The process may include: in response to determining that the opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before the identified opportunity to transmit the digital component, submitting the opportunity to transmit the digital component to one or more third party digital component sources; or in response to determining that the opt-out timestamp indicates that the opt-out opportunity is not presented to the given user within a specified amount of time before the identified opportunity to transmit the digital component, avoiding submitting the opportunity to transmit the digital component to one or more third party digital component sources.
These and other embodiments may each optionally include one or more of the following features.
In some implementations, avoiding submitting the opportunity to transmit the digital component to one or more third party digital component sources includes: selecting, by the one or more servers, a given digital component that includes selecting to exit the opportunity without submitting the opportunity to one or more third party digital component sources; in response to identifying an opportunity to send a digital component to the client device, sending, by the one or more servers, a given digital component to the client device that includes a opt-out opportunity; determining, by the one or more servers, whether a given digital component including a opt-out opportunity is visually presented at the client device; and based on a determination of whether the digital component including the opt-out opportunity is visually perceptible at the client device, recording the data in a database.
In some implementations, transmitting the given digital component including selecting the exit opportunity includes transmitting the given digital component with an opportunity identifier that uniquely identifies the opportunity to transmit the digital component relative to other opportunities to transmit the digital component, and an embedded script that causes the client device to generate a response including the opportunity identifier when the given digital component is visually perceivable at the client device. In some implementations, determining whether the given digital component including the opt-out opportunity is visually perceptible at the client device includes determining that a response received from the client device indicates that the given digital component is visually perceptible at the client device and includes the opportunity identifier. In some implementations, recording the data in the database includes recording an updated opt-out timestamp in the database at a database location corresponding to the given unique identifier, the updated opt-out timestamp indicating a time at which the given digital component is visually perceivable at the client device.
The method may further comprise: identifying a subsequent opportunity to send the digital component to the client device after the updated opt-out timestamp is recorded in the database; determining that the updated opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before the subsequent opportunity; and in response to determining that the updated opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before the subsequent opportunity, submitting the opportunity to transmit the digital component to one or more third party digital component sources.
In some implementations, submitting the opportunity to send the digital component to one or more third party digital component sources is conditioned on the user not requesting a opt-out in response to determining that the opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before the identified opportunity to send the digital component.
Other embodiments of this aspect include corresponding systems, apparatus, and computer programs configured to perform the actions of the methods encoded on computer storage devices.
Particular embodiments of the subject matter described in this document can be implemented to realize one or more of the following advantages. The system may establish a whitelist of users to whom visible opportunities to opt out of the received content item are presented by determining whether a device ID associated with a particular user is stored and mapped to an entry in which to present and reject the opt-out opportunity. In certain countries, environments, and/or platforms, there has previously been no reliable way to ensure that a user has had the opportunity to opt out of receiving content, and this shortcoming is addressed by the techniques, devices, and systems discussed herein. The whitelist may be used across many different scenarios to identify users to whom content items may be presented, where no solution has been previously available. If a user on the whitelist exercises (exhcise) a choice to opt out, the user is removed from the whitelist, preventing the content provider from providing content to users that no longer wish to receive content, and improving opt-out compliance of the content provider using the whitelist to identify the target user. In some examples, users may be removed from the whitelist if they have left for a certain period of time without seeing a opt-out opportunity.
By detecting whether the opt-out opportunity has been visually presented to the user so that the user may exercise the option of opting-out, the system may automatically generate a whitelist of users who have had the opportunity to opt-out to receive content items from certain content providers and opt-out, i.e., opt-in, to receive content items from certain content providers. Some network resources contain more content than can be displayed once within the viewable portion of the display of the client device. For example, a web page may contain a library of images, and if a user accessing a network resource does not scroll down, the user cannot view all of the images in the library. If the digital component that includes the opt-out opportunity is presented within content that is not visible to the user, in this example, an image library, the user does not see the opt-out opportunity and the user is not presented with the opportunity to opt-out even though the user has browsed the web page. By determining whether the digital component comprising the opt-out element is within the viewport or visible portion of the user's device, the method may ensure that the user is actually given the opportunity to opt-out (e.g., the opt-out element is actually presented on the screen, rather than being included in a portion of the user interface that is not actually presented on the screen).
The whitelist may be used by various types of content providers, including first party providers and any third party providers that may not have an infrastructure to establish opt-out into their own content. For example, the whitelist may be used by content providers and Internet resource hosts. The whitelist improves compliance of content providers with different policies across regions and platforms regarding user opt-in and opt-out opportunities. For example, the resource host may determine that the content provider may strive for whitelisted users to which to present content. The content provider may determine whether a particular type of content is relevant and/or applicable to a particular user based on whether the user is on a whitelist, thus improving the user's internet use experience. Content that does not select the exit element may be presented to the user that recently seen the select exit element, thus saving computing resources required to send and render the content to the user device. In addition, content that does not select an exit element requires less memory to store and less time to appear than the same content with select an exit element, thereby improving the user's browsing experience and reducing the user's latency to access the resources prior to rendering the content. Information other than the user including on the whitelist, such as interaction data between the user and the party providing the opt-out option, may be used to identify, for example, users who have accessed the privacy notification page for a certain period of time and have selected not to update their privacy settings. The whitelist may be used at various levels, such as content item level, page level, or platform level, and may be used to establish a separate, discrete whitelist for each level or content provider. The whitelist may be used to determine when to provide the user with an opt-out opportunity. For example, a white list may be used to identify users that have not had a new opt-out opportunity within a certain amount of time. The identified user may then be presented with a opt-out opportunity for a particular amount of time, or for a particular subsequent number of digital components presented to the user.
In addition, the method of ensuring that the user is presented with an opportunity to opt out of the received content provides the user with the same opt-out control as other users provided to different regions on different platforms. The method allows users to control their content settings and allows them to opt out if the user previously did not have such control over their settings. In some regions, environments, platforms, etc., content is not presented to a user without allowing the user to opt out of receiving the content. Thus, the method allows the content provider to contact more users with the user's consent, thereby improving the user's browsing experience.
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, the drawings, and the claims.
Drawings
FIG. 1 is a block diagram of an example environment in which digital components are distributed for presentation with an electronic document.
Fig. 2A-2B are example data flows for distributing digital components in the example environment of fig. 1.
FIG. 2C is an example data flow for determining whether a user has previously selected to exit receiving digital components.
FIG. 3 is a flow chart of an example process for determining that a digital component including a opt-out element is visible.
FIG. 4 is a flow chart of an example process for determining to avoid submitting an opportunity to send a digital component to a user.
FIG. 5 is a block diagram of an example computing system.
Like reference numbers and designations in the various drawings indicate like elements.
Detailed Description
This document describes methods, systems, and devices that improve opt-out compliance across countries, regions, operating systems, and platforms and allow content providers to target users who have explicitly not opted out of receiving content in environments that have not previously provided the ability to track user opt-out. In some cases, the opt-out element may be presented with the digital component when the digital component is presented to the user. For example, the opt-out element may be presented as a user interface element that provides the user with an option to opt-out of receiving content from a particular content provider or collection of content providers, referred to as an opt-out opportunity. If the opt-out element is visible to the user and the user chooses not to opt-out, an identifier associated with the user may be added to a whitelist identifying users to whom content may be presented.
In this example, the server examines the content item presented to the user and, in particular cases, the content of a uniform resource locator (Uniform Resource Locator, URL) that is used to contact a tracking server (tracking server) to identify, extract and record information related to interactions with the digital components (e.g., an identifier of the client device where the interaction occurred or an account identifier of the user performing the interaction). In examples where a user profile storing user's content preferences and digital component interaction data is not available, the interaction data may be associated with the user by a unique device identifier.
When the digital component includes a opt-out element that is determined to be visible to the user, and the user opts out, the tracking server places the user on a whitelist of users to whom content or some type of content may be presented. For example, a user to whom a opt-out option of video content is presented and the result is selected not to opt-out may be added to the whitelist of video content. The content provider providing the video content may consult the whitelist and, upon determining that the user is on the whitelist of the video content, target the user for presentation of the video content.
When the tracking server determines that the opt-out option and the digital component have been presented to the user and the user has exercised the option by interacting with the opt-out element, the user added to the whitelist may then be removed. For example, a user who has previously refused to opt out of, and thus opt in to (pot-in) receive digital content, may choose to opt out of receiving content the next time they are provided with an option. The tracking server will then remove the user from the whitelist to prevent the content provider from presenting the digital content to the user. In some examples, there are multiple whitelists that each correspond to a particular opt-out element. For example, there may be one whitelist of content related to dairy products, while another whitelist is related to vegetables. In such an example, the tracking server may remove the user from the whitelist related to the dairy product if the user has previously refused to opt out of all digital content, but subsequently opted out of receiving the content related to the dairy product by interacting with the corresponding opt-out element.
As discussed above, by removing select exit elements from certain digital components presented to a particular user on a corresponding whitelist, the amount of computing resources required to store and present the digital components may be reduced. For example, if the user is on a white list of digital components of a particular category or type, and a particular period of time has not elapsed, the digital components selected for presentation to the user may not include a opt-out element.
Further, the number of users to which the content provider may present content may be reduced by relying on the whitelist, and compliance with regional guidelines may be improved when the tracking server adds and removes users to and from the whitelist based on user interactions with digital components having opt-out elements visible to the user.
Note that the techniques described in this document may also be implemented in the case where a user is browsing available applications (e.g., available applications in an online application store or web browser) or in other environments (e.g., on a publisher web page). For brevity, much of the description that follows will refer to the search result environment.
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 another unit of content). The digital components may be electronically stored in the physical storage device as a single file or collection of files, and the digital components may take the form of video files, audio files, multimedia files, image files, or text files, and include advertising information such that the advertisements are a type of digital component. Typically, the digital component is defined (or provided) by a single provider or source (e.g., advertiser, publisher, or other content provider), but may be a combination of content from multiple sources. Digital components from multiple different sources may be combined into a single electronic document (e.g., a collection of various different digital components), and portions of the various digital components from the different sources may be combined with information extracted from the search results (or other portions of the content) into a single digital component.
FIG. 1 is a block diagram of an example environment 100 in which digital components are distributed for presentation with an electronic document. The example environment 100 includes a network 102, such as a local area network (Local Area Network, LAN), a wide area network (Wide Area Network, WAN), the internet, or a combination thereof. The network 102 connects the electronic document server 104, the client device 106, the third party server 108, and the distribution system (distribution system, DCDS) 110 (also referred to as a component distribution system). The example environment 100 may include many different electronic document servers 104, client devices 106, and third party servers 108.
Client device 106 is an electronic device capable of requesting and receiving resources over network 102. Example client devices 106 include personal computers, mobile communication devices, and other devices capable of transmitting and receiving data over the network 102. Client device 106 typically includes a user application, such as a web browser, to facilitate the transmission and reception of data over network 102, although native applications executed by client device 106 may also facilitate the transmission and reception of data over network 102.
An electronic document is data that presents a collection of content at a client device 106. Examples of electronic documents include web pages, word processing documents, portable document format (Portable Document Format, PDF) documents, images, videos, search result pages, and feeds (feed sources). A native application (e.g., an "app") such as an application installed on a mobile, tablet, or desktop computing device is also an example of an electronic document. Electronic document 105 ("Electronic Doc") may be provided by Electronic document server 104 ("Electronic Doc Server") to client device 106. For example, the electronic document server 104 may include a server hosting a publisher website. In this example, the client device 106 may initiate a request for a resource, such as a given publisher web page, and the electronic document server 104 hosting the given publisher web page may respond to the request by transmitting machine-executable instructions that initiate presentation of the given web page at the client device 106.
In another example, electronic document server 104 may include an app server from which client device 106 may download apps. In this example, the client device 106 may request resources such as files needed to install the app, download the files at the client device 106, and then execute the downloaded app locally.
The electronic document 105 may include various contents. For example, the electronic document 105 may include static content (e.g., text or other specified content) within the electronic document itself and/or that does not change over time. The electronic document 105 may also include dynamic content that may change over time or on a per request basis. For example, a publisher of a given electronic document 105 may maintain a data source that is used to populate portions of the electronic document 105. In this example, a given electronic document 105 may include one or more tags or scripts that cause the client device 106 to request content from a data source when the given electronic document 105 is processed (e.g., rendered or executed) by the client device 106. The client device 106 integrates the content obtained from the data source into a given electronic document 105 to create a composite electronic document that includes the content obtained from the data source.
In some cases, a given electronic document 105 may include one or more digital component tags or digital component scripts that reference the DCDS110. In these cases, when a given electronic document 105 is processed by a client device 106, a digital component tag or digital component script is executed by the client device 106. Execution of the digital component tags or digital component scripts configures the client device 106 to generate a request 112 (referred to as a "component request") for resources including one or more digital components, where the request is sent to the DCDS110 over the network 102. For example, a digital component tag or digital component script may enable client device 106 to generate a packet data request that includes a 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 digital component is being requested, the name (or network location) of the requesting device (e.g., client device 106), and/or the DCDS110 may be used to select information for one or more digital components provided in response to the request. The component request 112 is sent by the client device 106 to a server of the DCDS110 over the network 102 (e.g., a telecommunications network).
Component request 112 may include event data specifying other event characteristics, such as the requested electronic document and characteristics of the electronic document where the digital component may be presented. For example, the DCDS110 may be provided with event data specifying a reference (e.g., URL) to an electronic document (e.g., web page) in which the digital component is to be presented, an available location of the electronic document available for presentation of the digital component, a size of the available location, and/or a media type that is eligible for presentation in the location. Similarly, event data specifying keywords associated with an electronic document ("document keywords") or entities referenced by the electronic document (e.g., people, places, or things) may also be included in the component request 112 (e.g., as payload data) and provided to the DCDS110 to facilitate identifying digital components that are eligible for presentation with the electronic document. The event data may also include search queries submitted from the client device 106 to obtain a search results page, and/or data specifying search results and/or text, audible, or other visual content included in the search results.
Component request 112 may also include event data related to information such as information that a user of the client device has provided, other information indicating geographic information of the state or region from which the component request was submitted, or other information that provides context of the environment in which the digital component will be displayed (e.g., time of day of the component request, day of the week of the component request, type of device (such as a mobile device or tablet device) at which the digital component will be displayed). The component request 112 may be sent, for example, over a packet network, and the component request 112 itself may be formatted as packet 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.
In response to receiving the component request 112 and/or using information included in the component request 112, the DCDS110 selects a digital component to be presented with the given electronic document. In some implementations, the digital components are selected in less than one second (using the techniques described herein) to avoid errors that may result from delayed selection of the digital components. For example, delays in providing the digital component in response to the component request 112 may cause page loading errors at the client device 106 or result in portions of the electronic document remaining unfilled even after other portions of the electronic document are rendered at the client device 106. Further, as the delay in providing the digital component to the client device 106 increases, it is more likely that the electronic document is no longer presented at the client device 106 when the digital component is delivered to the client device 106, thereby negatively affecting the user's experience with the electronic document. Further, delays in providing the digital component may cause a failed delivery of the digital component, for example, if the electronic document 105 is no longer presented at the client device 106 when the digital component is provided. Such delay is reduced when the digital component is not provided with the content presented to the user. The user can obtain content faster without digital components, with less data to be transmitted and no delay between the database in which the components are retrieved and the server providing the components, improving the user experience.
In some implementations, DCDS110 is implemented in a distributed computing system that includes, for example, a opt-out analyzer 111a (e.g., a server including computing hardware and code) and a communication interface 111b, and/or a collection of multiple computing devices that are interconnected and that identify and distribute digital components in response to request 112. The set of multiple computing devices operate together to identify a set of digital components from a corpus of millions of available digital components that qualify for presentation in an electronic document. Millions of available digital components may be indexed, for example, in the digital component database 116. Each digital component index entry may reference a corresponding digital component and/or include a distribution parameter that facilitates (e.g., adjusts (conditions) or limits) the distribution/transmission of the corresponding digital component. For example, the distribution parameters may facilitate the transmission of the digital components by requiring the component request to include at least one criterion that matches one of the distribution parameters of the digital components (e.g., precisely or at some pre-specified level of similarity).
The opt-out analyzer (OOA) 111a communicates with the digital component database 116 and the opt-out database 117 via a communication interface 111 b. The opt-out database 117 stores and records interaction data between the user and the digital component including the opt-out elements, as well as any other opt-out data stored and mapped to the user. OOA 111a may determine whether a selection exit opportunity has been presented to a particular user within a particular period of time. For example, OOA 111a may determine that the user has been presented with a opt-out opportunity within the last week based on the timestamp of the interaction data between the user and the digital component, and the user refuses to opt-out at that time. The DCDS110 uses the determination made by the OOA 111a to select a digital component to provide to the client device 106.
The communication interface 111b provides a connection between the DCDS110 (and therefore the OOA 111 a) and the digital component database 116 and the opt-out database 117 containing reporting data 118. Communication interface 111b allows OOA 111a to communicate with other devices such as servers 104 and 108, client device 106, and search systems (such as search system 150) over network 102.
The opt-out database 117 contains opt-out data that is stored and mapped to a particular user. For example, opt-out database 117 may include interaction data between a user and a digital component that includes opt-out elements that allow the user to opt-out of received digital content. The opt-out database 117 may store a list of users in the whitelist to whom the opportunity to opt-out has been presented and who have decided not to exercise the option. When the user has seen the opt-out element and refused to opt-out the specified period of time expires, the user's whitelist may be updated to remove the user. When the DCDS110 receives a request for a digital component, the DCDS110 may access the whitelist of users to whom digital content may be presented to select the digital component for presentation to the user. In some examples, the opt-out database 117 stores timestamp data mapped to the user, wherein the timestamp data indicates a length of time that the opt-out opportunity or digital component has been presented to the user. For example, the data may be used to measure and record the length of time that the opt-out opportunity is perceivable—if the user is presented with a visible opt-out opportunity from 10:10:21 a.m. to 10:10:31 a.m., the user sees the opt-out opportunity for 10 seconds.
For the case where the system discussed herein collects personal information about a user or may use personal information, the user may be provided with an opportunity to control whether programs or features collect personal information (e.g., information about the user's social network, social actions or activities, profession, user preferences, or the user's current location), or whether and/or how to receive content from a content server that may be more relevant to the user. In addition, certain data may be anonymized in one or more ways prior to storage or use so that personally identifiable information is removed. For example, the identity of the user may be anonymized so that personally identifiable information cannot be determined for the user, or the geographic location of the user where the location information is obtained may be summarized (such as summarized as city, ZIP code, or state level) so that a particular location of the user cannot be determined. Thus, the user can control how information is collected about him or her and how the content server uses the information.
OOA 111a of DCDS110 may be a tracking server that communicates with various intermediate servers, such as third party server 108. OOA 111a may direct client device 106 to resources requested by client device 106 and hosted on various servers, such as electronic document server 105. The DCDS110 includes a front end interface that classifies what a particular digital content is. For example, the front-end interface may be a communication interface, or a pre-processor that receives and processes requests for content to be presented to the client device 106. In some implementations, the front-end interface can include a user interface, where the user interface includes user interface elements such as buttons and text input fields. The front end interface may be, for example, communication interface 111b and enable DCDS110 to communicate over one or more communication networks, such as network 102. DCDS110 may communicate with servers such as servers 104 and 108 through communication interface 111 b. For example, when the client device 106 requests a digital component, the DCDS110 may communicate with the third party server 108 through a proxy server using the communication interface 111b to provide data such as interaction tracking data for the client device 106.
The DCDS110 also includes a back end that identifies the user or client device submitting the request for content (e.g., via a user identifier) and selects the digital component to be presented to the client device based on data from the digital component database 116 and the opt-out database 117. In some embodiments, the front end and the back end of DCDS110 may be implemented in the same hardware. In other implementations, identifying the qualified digital component may be partitioned into a plurality of tasks that are then distributed among computing devices within a set of multiple computing devices. For example, different computing devices in the set of multiple computing devices may each analyze different portions of the digital component database 116 to identify various digital components having distribution parameters that match the information included in the component request 112. Different computing devices in the collection of computing devices may use report data 118 stored in the digital component database 116 that includes user interaction data with a particular digital component. In some implementations, each given computing device in the set of multiple computing devices may analyze a different data dimension (or set of dimensions) and pass (e.g., send) the analysis results back to DCDS110. Identifying the subset of digital components may include, for example, comparing the event data to the distribution parameters, and identifying the subset of digital components having distribution parameters that match at least some features of the event data.
The DCDS110 aggregates results received from a set of multiple computing devices and uses information associated with the aggregated results to select one or more digital components to be provided in response to the request 112. For example, the DCDS110 may select a winning set of digital components (one or more digital components) based on the results of one or more component evaluation processes, as discussed below. In turn, DCDS110 may generate and send reply data 120 (e.g., digital data representing a reply) over network 102, where the reply data 120 enables client device 106 to integrate the set of winning digital components into the given electronic document such that the set of winning digital components is presented at the display of client device 106 along with the content of the electronic document.
In some implementations, the client device 106 executes instructions included in the reply data 120 that configure and enable the client device 106 to obtain a set of winning digital components from one or more digital component servers. For example, the instructions in reply data 120 may include a network location (e.g., a Uniform Resource Locator (URL)) and a script that causes client device 106 to send a Server Request (SR) 121 to intermediary Server 108 to obtain a given winning digital component from intermediary Server 108. In response to the request, the intermediary server 108 will identify (e.g., within a database storing a plurality of digital components) the given winning digital component specified in the server request 121 and send digital component data (Digital Component data, DC data) 122 to the client device 106 that presents the given winning digital component in the electronic document at the client device 106.
To facilitate searching electronic documents, the environment 100 may include a search system 150, wherein the search system 150 identifies electronic documents by crawling (crawl) and indexing the electronic documents (e.g., indexing the electronic documents based on the crawled content of the electronic documents). The data about the electronic document may be indexed based on the electronic document with which the data is associated. The indexed copy of the electronic document and optionally the cached copy are stored in a search index 152 (e.g., hardware storage device (s)). The data associated with the electronic document is data representing content included in the electronic document and/or metadata of the electronic document.
Client device 106 may submit a search query to search system 150 over network 102. In response, the search system 150 accesses the search index 152 to identify electronic documents relevant to the search query. The search system 150 identifies electronic documents in the form of search results and returns the search results to the client device 106 in a search results page.
The search results are data generated by the search system 150 that identifies electronic documents responsive to (e.g., related to) a particular search query and that includes an active link (e.g., a hypertext link) that causes the client device to request data from a specified network location (e.g., URL) in response to user interaction with the search results. Example search results may include a web page title, a portion of a text segment or image extracted from a web page, and a URL of the web page. Another example search result may include a title of the downloadable application, a text segment describing the downloadable application, an image depicting a user interface of the downloadable application, and/or a URL of a location from which the application may be downloaded to the client device 106.
In some cases, the search system 150 may be part of or interact with an application store (or online portal) from which applications may be downloaded for installation at the client device 106 in order to present information about downloadable applications related to submitted search queries. Like other electronic documents, the search results page may include one or more digital component slots in which digital components may be presented (e.g., video clips, audio clips, images, or other digital components that may be formatted as advertisements).
FIG. 2A is an example data flow 200 for distributing digital components in the example environment of FIG. 1. The operations of the data flow 200 are performed by the OOA or the server 110 contacting the client device 106 and the third party server 108. In some implementations, the stages of flow 200 are performed within a network environment, such as environment 100.
In some examples, the client device 106 is a mobile device, such as a cell phone, a virtual reality device (e.g., implemented in a headset or other device such as a combination of speakers and a display), a smart phone, a personal digital assistant (e.g., implemented in a desktop speaker or other device such as a combination of speakers and a display), or a tablet, and communicates over a wireless network. Servers 108 and 110 may communicate over a wired network separate from the wireless network over which client device 106 communicates. For example, client device 106 may be a smart phone that communicates over a wireless cellular network, while servers 108 and 110 may be remote servers that communicate over a wired network.
The client device 106 includes a display that presents content to a user of the client device 106. The visible portion of the content is within the viewport 130 of the display. In some implementations, the viewport 130 is a visible portion of a web page that is application-specific or that is being accessed by a user of the client device 106. For example, if the digital component is presented within an application that does not cover the entire viewable area of the display of the client device 106, the viewport 130 is determined to be the viewable portion of the application. On some web pages, there may be more content than is displayed once within viewport 130. Such content may be on the same web page as the content within the viewport 130 of the device 106, but is not actually visible to the user, and is within the out-of-line portion 132 of the client device 106. For example, content 131a and content 131b are visible within viewport 130, but content 131c is within portion 132 that is not visible to a user of client device 106.
Server 110 receives a request for content from client device 106 over network 102 through communication interface 111b and selects a digital component for presentation at client device 106 based on the request. For example, server 110 may determine that client device 106 has interacted with a digital component provided by a digital component provider through a digital component server. The digital component provider may request interactive tracking data from the client device 106 interaction with the digital component for its own analysis. Each request 112 creates an opportunity to present a digital component to the client device 106, and each opportunity is identified by a unique opportunity identifier. The interaction tracking data may include an opportunity identifier and may be stored by opt-out database 117 to determine if the user has opted-out of receiving digital content within a specified period of time.
OOA 111a of server 110 identifies a unique identifier associated with the request based on the received request. The unique identifier may be, for example, a device identifier. In some implementations, the unique identifier can be a user identifier carried across platforms and devices. For example, the unique identifier may be a user account that is used across browsers and devices, and may be used regardless of whether the user is using a software application or a web application.
The unique identifier may be protected upon transmission to a third party. For example, the unique identifier may be encrypted when transmitted in the opportunity of forwarded presentation content. In some examples, the opportunity for forwarding and the unique identifier may be sent through a secure socket layer (Secure Sockets Layer, SSL). In some examples, the unique identifier associated with the user of the client device 106 may be reset by various methods, including factory reset via the client device 106. The user may also choose to opt out of transmitting their unique identifier in any request for content.
The use of the unique identifier allows the content provider to contact more users and provide the users with content that is more relevant to the interests of the users, improving the browsing experience of the users while increasing the contact range of the various content providers.
OOA 111a accesses opt-out data from opt-out database 117 to determine whether the user associated with the unique identifier is stored in database 117 on a whitelist of users to whom content may be presented. The whitelist is determined based on whether the user has been presented with a visible opt-out opportunity within a specified period of time and the user refuses opt-out. For example, the OOA 111a may determine whether a opt-out opportunity presented to the user is within the viewport 130 of the user device 106. OOA 111a may then determine whether a visible opt-out opportunity is presented within a specified period of time. The time period may be determined based on regional regulations, such as the user's opt-out rights. Server 110 accesses opt-out database 117 via communication interface 111b to identify storage entries mapped to the identified users.
Once OOA 111a determines that the user is on a whitelist of users to whom content may be presented, OOA 111a may determine to present to the user a digital component that does not include a opt-out opportunity. If the OOA 111a determines that the user is not on a whitelist of users to whom content may be presented, the OOA 111a may determine to present a digital component to the user that includes a opt-out opportunity. In some implementations, there is no guarantee that the digital content provided by the third party server 108 includes a opt-out opportunity. Thus, in the event that OOA 111a determines that the identified user is not on the white list and must present the identified user with a digital component that includes a opt-out opportunity, DCDS110 selects the digital component from digital component database 116 a. For example, DCDS110 may select digital component 120a that includes opt-out element 123 to be presented to client device 106.
In the event that OOA 111a determines that the identified user is on a white list, OOA 111a may forward the opportunity to present the digital component to a third party, such as third party server 108. Server 108 may select the digital component from digital component database 116b, which is separate from digital component database 116 a. For example, DCDS110 may select digital component 120b that does not include a select exit element.
DCDS110 then provides the selected digital component 120 to client device 106 via network 102. For example, DCDS110 may retrieve digital component 120 from digital component database 116 (database 116a or database 116 b) and send digital component 120 to client device 106 over network 102.
FIG. 2B is an example data flow 220 for selecting and distributing digital components in the example environment of FIG. 1. The process 220 improves opt-out compliance by providing content only when a unique identifier associated with the user is recorded as having presented it with an opt-out opportunity. The opt-out opportunity may be provided by a visual opt-out element included with a digital component previously presented to the user. Flow 220 involves third party server 108 and server 110.
The server 110 receives a request 112 from the client device 106. As described above, the request 112 is a request for content to be presented. The request 112 may include interaction tracking data from the client device 106. For example, the request 112 may include tracking data, such as an indication of the network resource that the client device 106 is currently accessing and an identifier that uniquely identifies the client device 106.
In some implementations, the interaction tracking data includes a portion of code with which interactions are tracked. The interaction tracking data may include other data such as an identifier that uniquely identifies the client device 106, an identifier that uniquely identifies a digital component with which the client device 106 interacts, a server identifier, and/or location information of the client device 106. The request 112 may include a unique identifier associated with the user. The unique identifier may be, for example, a device identifier that is uniquely associated with the user's client device 106.
Server 110 identifies the unique device identifier associated with request 112 from request 112 and accesses opt-out database 117 to determine whether an entry stored in opt-out database 117 is mapped to the user associated with the unique identifier and whether the entry indicates that the user has been presented with a visible opt-out opportunity for a specified period of time using a process as described with respect to fig. 3. The opt-out database 117 stores data regarding opt-out opportunities that have been presented to a particular client device. The data includes a timestamp entry specifying when a opt-out opportunity was presented to a particular user corresponding to a particular unique identifier. This data allows the server 110 to determine whether the user is presented with a opt-out opportunity within a given amount of time. The data may also be used to determine the length of time that the user has been presented with a opt-out opportunity or a digital component. For example, the data may be used to measure and record the length of time that the opt-out opportunity is perceivable—if the user is presented with a visible opt-out opportunity from 10:10:21 a.m. to 10:10:31 a.m., the user sees the opt-out opportunity for 10 seconds.
Server 110 may determine that the user is on a white list based on the accessed data from database 117 and that the digital component need not include a opt-out element 123. Server 110 may select a digital component from digital component database 116a or server 110 may forward to third party server 108 an opportunity to present to client device 106 digital content to be selected from digital component database 116 b.
When content is provided to a user in response to a request, it may not be possible to provide a opt-out opportunity before providing a digital component in response to the request. Thus, a opt-out opportunity may be included in the provided digital component to ensure that the opportunity is provided to the user. Because third party servers, such as third party server 108, may obtain content from a variety of sources, there is no guarantee that the digital component provided by third party server 108 will include a opt-out opportunity. To ensure that the opt-out element is included in the digital component presented to the user, the digital component is selected and provided from the DCDS110 without transmitting an opportunity to present the digital component to a third party that may not include the opt-out element. When server 110 has determined that a opt-out opportunity has been presented to the user within a specified amount of time by presentation of the opt-out element, server 110 may determine that content including a digital component may be presented to the user. Because the user has been presented with the opt-out opportunity within a specified amount of time and thus may be presented with content, the server 110 may determine to provide the third party server 108 with an opportunity to present the digital component, which does not warrant inclusion of the opt-out opportunity.
Once the digital component is selected from digital component database 116a, server 110 forwards the digital component information in reply 120. Server 110 sends reply 120 to client device 106 over network 102. The reply 120 may include data representing the selected digital component, and an embedded script that causes the client device 106 to generate a response to the server 110 when the selected digital component is visible at the client device 106, the response including an opportunity identifier of the presentation opportunity. Conversely, if the opportunity to render digital content is forwarded to third party server 108, once the digital component is selected by third party server 108 from digital component database 116b, third party server 108 forwards digital component 124 to client device 106 for rendering.
In other examples, server 110 may determine that the user is not on a white list and that the digital component needs to include a opt-out element 123 based on the accessed data from database 117. Thus, to help ensure that the digital component includes a opt-out element 123, the opportunity to present the digital content to the client device 106 is retained by the server 110, and the server 110 selects the digital component from the database 116 a. Once the digital component is selected from database 116a, server 110 provides data identifying the selected digital component in reply 120.
By determining whether the digital component to be presented to the user associated with the request should include a opt-out element, the system 100 as described with respect to FIG. 2A reduces the amount of computer resources required to generate and send the digital component to the client device. Further, when the digital component does not need to include a opt-out element, the system 100 may provide the digital component to the requesting device that does not include the opt-out element, reducing the time delay between when the component is requested and when the device receives the component. Further, more users may be contacted and may receive digital content than in a system that does not determine whether the user has previously exercised a opt-out option based on a unique identifier. For example, some systems may not provide digital content to a user when the user does not have a choice to opt out. The system 100 allows users that were previously unable to opt-out across platforms to opt-out and access digital content.
FIG. 2C is an example data flow 250 for determining whether a user for whom a digital component is presented has been given a visual opportunity to opt out of receiving digital content. The process shown in flow 250 gathers data regarding interactions between the user and the presented digital components and populates the opt-out database 117, improving opt-out compliance by keeping records of users that have refused to opt-out and thus opt-in to receive digital content. In some implementations, the network resource may contain more content than is displayed once within the viewport of the client device. For example, a web page may contain several large pieces of text, and if the user does not scroll down, the user cannot view all of the text. If the digital component that includes the opt-out opportunity is presented in content that is not visible to the user, the user does not see the opt-out opportunity and therefore is not presented with an opportunity to opt-out. The system 100 ensures that the user is actually given the opportunity to opt out by determining whether the digital component comprising the opt-out element is within the viewport of the user's device. The process 250 involves the third party server 108, the server 110, and the client device 106.
The client device 106 receives the digital component and the embedded script from the server 110 or the third party server 108. The embedded script causes the client device 106 to generate a response to the server 110 that includes an opportunity identifier associated with a presentation opportunity in response to which the digital component is being provided. Server 110 selects digital component 121a for presentation to client device 106 and transmits digital component 121a to client device 106 over network 102 as described in more detail with respect to fig. 2A, 2B, and 4. Server 108 selects digital component 121B from a third party source for presentation to client device 106 over network 102, as described in more detail with respect to fig. 2A, 2B, and 4.
The digital component 121a may include a opt-out element and be presented by the client device 106 on a display of the client device 106. Server 110 determines whether digital component 121a must include a opt-out element based on whether the user has been previously provided with an opt-out opportunity within a specified period of time and the user has rejected the opportunity. When the user has selected to exit within a specified period of time, server 110 determines that digital component 121a need not include a opt-out element. In some implementations, instead, server 110 may forward to server 108 the opportunity to present a digital component without selecting an exit element.
The digital component 121b may include a opt-out element. However, because the third party server 108 presents data from various sources, there is no guarantee that the digital component provided by the server 108 includes a opt-out element (and potentially it is not possible to guarantee whether the digital component provided by the server 108 includes a opt-out element). When server 110 determines that an opportunity to present the digital component to the user does not require the digital component to include a opt-out element, server 110 may forward the opportunity to server 108. Server 108 then selects digital component 121b, which may include selecting an exit element, but is not required.
Once the client device 106 receives the digital component (either digital component 121a from server 110 or digital component 121b from server 108), the client device 106 displays the digital component. The location of the digital component within the network resource accessed by the user of the client device 106 and presented on the display of the client device 106 is varied. For example, digital component 130a is presented within a viewable portion of a display of client device 106 in viewport 140 a. In some examples, the digital component 130b is presented outside of the viewport 140a of the display of the client device 106 and instead is presented within a obscured or invisible portion of the display of the client device 106 in the portion 140 b.
Presence information and interaction information are collected and transmitted from client device 106 to server 110 over network 102 as view data 151. The presentation information may include the coordinate information of the opt-out element of the digital component 141 (either digital component 141a or digital component 141B), the coordinate information of the viewport 140a, the unique identifier associated with the user as described above with respect to fig. 2A and 2B, and the opportunity identifier of the particular presentation opportunity. The embedded script sent with the digital component may extract the digital component, select exit element, and coordinate information of the viewport of the client device 106, and return response information if it is determined that the digital component is already visible within the viewport of the client device 106, as described in detail with respect to fig. 3. In some implementations, the server 110 uses the view data 151 to determine whether the digital component and the opt-out elements included therein are visible, as described with respect to fig. 3.
Server 110 may populate opt-out database 117 with view data 151 from client device 106. Server 110 extracts and stores data in opt-out database 117, where the data includes a unique identifier associated with the user of client device 106, an opportunity identifier, and a timestamp of when the digital component was presented and visible to the user. In some implementations, the server 110 stores additional data in the opt-out database 117, including additional digital component information, such as topic or content type, user demographic information, or information about network resources being accessed by the client device 106 when generating a request for a digital component. For example, the server 110 may record that the digital component presented is related to a TV program for home improvement, and that the website the user is visiting is an online inventory of hardware stores.
In some implementations, the third party server 108 can also populate the opt-out database 117 in various ways, including collecting unique identifiers associated with users of the client device 106 through a third party software development kit (Software Development Kit, SDK) that is integrated with certain third party applications in communication with the server 108.
When the digital component is provided in response to a request, the unique identifier may be sent to server 110 or server 108. If the user has been provided with a opt-out opportunity within a specified period of time and the user has not exercised the opt-out option, the unique identifier is sent. In some implementations, whether the unique identifier is transmitted and the specified time period may depend on laws and regulations within the particular region. For example, if the client device 106 is in china and within the last 3 days the user did not opt out when presented with a visual opportunity to opt out, the executable script sent with the digital component may cause the device 106 to send a unique identifier to the server 110.
In some implementations, the opt-out database 117 may specify whether the data is accepted. For example, when a content provider attempts to populate the opt-out database 117, the opt-out database 117 may selectively accept unique identifiers for storage only when the user has been presented with a visual opportunity to opt-out within the last 30 days and the user has not done so. The different uses of the unique identifier stored in the opt-out database 117 may be controlled by factors such as the specified time period. For example, if the user is presented with a opt-out opportunity within the past 120 days, the unique identifier may be used to transition the tracking.
Server 110 and server 108 identify the unique identifier from view data 151 and access opt-out database 117 to determine if there is a corresponding entry mapped to the unique identifier. When the unique identifier is already present in the opt-out database 117, in other words, when a user associated with the unique identifier has been presented with a visible opt-out opportunity and the user refuses to opt-out, the entry in the opt-out database 117 corresponding to the unique identifier may be updated. Data such as the current digital component presentation opportunity identifier or the opt-out timestamp may be updated for entries corresponding to a particular unique identifier.
When the unique identifier does not exist in the opt-out database 117, the system 100 encounters the user for the first time, the user associated with the unique identifier has previously opted-out, the user is a new user, or the user has a new unique identifier. In such an example, server 110 or server 108 may create an entry in opt-out database 117, where the entry is indexed by the unique identifier and includes data such as a digital component presentation opportunity and a time at which the opt-out opportunity included in the digital component was visually presented to the user associated with the unique identifier.
When presenting the user with a opt-out opportunity, the user may decide to exercise the right to opt out of them. When the user selects to exit using the select-exit element included in the digital component, the executable script causes the client device 106 to send data to the server 110 to change the user state in the select-exit database 117. In other implementations, an entry indexed by a unique identifier associated with a user may be marked as opted out and should not generate an opportunity to present digital content to the user. For example, a flag bit stored in the opt-out database 117 may be toggled to indicate that the user has opted-out. In some implementations, the executable script sent with the digital component may cause the client device 106 to send data to the server 110 to completely remove entries indexed by the unique identifier associated with the user. In either case, the user is effectively removed from the whitelist of users to whom digital content may be presented. However, by removing the user entry from the opt-out database 117, the system 100 ensures that digital content is not presented to the user because some third party content providers using the whitelist stored in the opt-out database 117 may not check whether the opt-out flag is set. In some examples, the user exercising the right to opt out may be added to a separate list of users known to have opted out of receiving digital components, such as a blacklist. The blacklist may maintain information about when the user has exercised the opt-out option. For example, the blacklist may include a timestamp of when the user selected to exit receiving the digital component.
FIG. 3 is a flow diagram of an example process 300 for determining that a digital component including a opt-out element is visible. In some implementations, the process 300 can be implemented by one or more servers. For example, the process 300 may be implemented by the server 110 and the third party server 108 of fig. 1-2C. In some implementations, the process 300 may be implemented as instructions stored on a non-transitory computer-readable medium, and when executed by one or more servers, the instructions may cause the one or more servers to perform operations of the process 300.
The client device may request the digital component when accessing a particular network resource. The request is received, processed, and implemented by one or more servers that provide digital components to the client device in response to the request. The digital component includes a opt-out element by which a user may opt-out of received digital content. Once the digital component is rendered by the client device, an executable script attached to the digital component may identify the parameter values of the digital component and the environment in which the digital component is rendered.
One or more servers may determine coordinates of the digital components presented on the display (302). The digital component may be displayed on a client device communicating over a wireless communication network. In some implementations, one or more servers may be used to implement server 110 that analyzes opt-out and interaction data from client device 106. One or more servers communicate over a wired communication network independent of client devices 106, which may be mobile devices. For example, as discussed above with respect to fig. 2B, the digital component may be transmitted for rendering at the client device 106 with an executable script that identifies coordinates of the digital component and determines whether the user has interacted with the opt-out element.
The executable script may send the coordinates of the digital component and the coordinates of the visible boundary of the display. For example, the visible boundaries of the display may be implemented as viewport 130, and the executable script may determine the coordinate boundaries of the digital components of the image and the coordinates of viewport 130. When determining the coordinates of the digital component, the executable script identifies the x-y coordinates of the boundary of the digital component. For example, if the digital component is rectangular, the executable script may identify the vertices of the digital component. In some implementations, the digital component has an irregular shape, and the executable script may identify vertices of the digital component that, when connected, define boundaries around the digital component such that the entirety of the digital component is contained and such that as few regions as possible outside of the digital component are contained.
When determining the coordinates of the visible boundary of the display, the executable script may identify the x-y coordinates of the vertices of the display. In some implementations, the executable script may obtain coordinates of the boundary of the display from the client device itself. For example, parameters of the client device may be accessed by the executable script.
In some implementations, the executable script can identify x-y coordinates of the opt-out element included in the digital component. The coordinates of the opt-out element may be used in the case when the opt-out element has a smaller visible area than the digital component, so there may be a digital component visible within the viewport and the opt-out element not visible.
The executable script may also identify coordinates of other user interface elements visible within the viewport of the display. Coordinates of other user interface elements may be used to determine various visibility characteristics of the interface elements presented on a display of the client device. For example, one or more servers may use coordinates of other user interface elements visible within the viewport that may be used with coordinates of the digital component to determine whether the other user interface elements overlap or obscure the digital component. More specifically, the one or more servers may compare coordinates of boundaries of the digital component with coordinates of boundaries of other user interface elements and determine whether there is overlap in display space occupied by the digital component and the other user interface elements based on the comparison. In determining whether other user interface elements and digital components overlap, one or more servers may use other parameter values for other user interface elements or digital components identified by the executable script, such as whether an element is the forefront of (e.g., overlays) a stack of visible elements within the viewport. For example, when there is an overlap between the digital component and another user interface element, the determination of whether the digital component is actually presented will depend on whether the digital component is at the forefront of the stack (e.g., overriding the other user interface element). When the digital component is at the forefront, it will obscure (and be presented by) the other user interface element, and when the other user interface element is at the forefront, it will obscure the digital component so that the digital component is not presented even though it is at coordinates within the visual display.
The one or more servers may compare the coordinates of the digital component being presented to the visible coordinate boundaries of the display (304). One or more servers may compare coordinates of the digital component to boundary coordinates of the viewport. For example, one or more servers may compare the x-coordinate of the digital component to the x-coordinate of the viewport and the y-coordinate of the digital component to the y-coordinate of the viewport. If other user interface elements are present, the one or more servers may compare the x-coordinates of the other user interface elements to the x-coordinates of the viewport and the digital component, and the y-coordinates of the other user interface elements to the y-coordinates of the viewport and the digital component. Any particular coordinates of the digital components, other user interface elements, or viewports may be compared to one another.
One or more servers may determine whether a point is within: i) Coordinates of the digital component being presented, and ii) a visible coordinate boundary (306) of the display. The one or more servers use the determined x-y coordinates of the digital component to determine whether the point is within the coordinates of the digital component being presented. The one or more servers compare the x-y coordinates of the points with the boundary coordinates of the digital components to determine whether the x-coordinates of the points are less than both the maximum x-coordinates and greater than the minimum x-coordinates of the digital components and whether the y-coordinates of the points are less than both the maximum y-coordinates and greater than the minimum y-coordinates of the digital components. The one or more servers compare the x-y coordinates of the point with the visible coordinate boundaries of the display or viewport to determine whether the x-coordinate of the point is less than both the maximum x-coordinate of the viewport and greater than the minimum x-coordinate of the viewport, and whether the y-coordinate of the point is less than both the maximum y-coordinate of the viewport and greater than the minimum y-coordinate of the viewport. In addition, one or more servers may verify the percentage of opt-out opportunities that are visible on the screen. For example, if the opt-out opportunity consists of two pieces of text, the system may check if the entirety of the two pieces is completely in view. One or more servers may record the length of time that the opt-out opportunity is in view and determine, for example, whether the opt-out opportunity is visible for a long period of time sufficient for the user to read and understand the opt-out opportunity that is presented.
One or more servers may determine that there is overlap when the point is within: i) Coordinates of the digital component being presented, and ii) a visible coordinate boundary (308) of the display. If the point exists within the presented digital component and within the visible coordinate boundary of the display or viewport, the one or more servers may determine that at least a portion of the digital component is visible within the viewport. In some embodiments, the one or more servers determine the percentage of overlap between the digital component and the viewport by comparing the boundary coordinates of the digital component to the boundary coordinates of the viewport. One or more servers may use a threshold percentage or particular portion of the digital component that must be within the viewport in order to determine the overlap. For example, if only 2% of the digital component is visible within the viewport, the user may not notice the digital component and select the exit element thereof. In another example, if the opt-out element is placed in the bottom 10% of the digital component and only the top 10% of the digital component is visible, then the opt-out element is not visible even though the digital component is visible.
The one or more servers can also determine whether there are any other user interface elements within the viewport. This determination may be used to determine whether any elements overlay the digital component. For example, one or more servers may determine whether a point within a user interface element is within a viewport using the same comparison method described above with respect to the point and the digital component or the point and the viewport. If the user interface element overlaps the viewport, then the one or more servers may use the same comparison method as described above to determine if the user interface element overlaps the digital component. The one or more servers may also use parameter values, such as whether the user interface element is at the front of the stack of visible elements within the viewport, to determine whether there is a visible overlap. For example, if other user interface elements are in the context of and are covered by an application window in which the digital component is presented, one or more servers will not expend computing resources to determine if the user interface element overlaps the digital component. One or more servers may use temporal or spatial criteria to determine whether the digital component or a opt-out opportunity within the digital component is visible. For example, if a predetermined threshold percentage of the digital components are visible, the one or more servers may determine that the digital components are visible and that the percentage of the digital components are visible on the user display for a predetermined threshold amount of time.
If the digital component including the opt-out element is not visible within the viewport, the one or more servers may determine that no opt-out opportunity is provided to the particular user. However, if the digital component is visible within the viewport, one or more servers may determine that the user is provided with an opportunity to opt out. The one or more servers then determine whether the user interacted with the opt-out element to determine whether the user opted out of receiving the digital content, in which case no more opportunities to present the digital component to the user's client device could be generated. The one or more servers may use the interaction data provided by the executable script to determine whether the user chooses to exit the received data. In some implementations, the executable script does not provide any interaction data if the user interacts with the opt-out element. For example, if the user clicks a button to opt out of receiving more digital content, the executable script may not send the coordinates of the digital components to one or more servers, thereby conserving computing and network resources. However, if the user refuses to check the check box to opt out of receiving more digital content, the executable script may provide interaction data indicating the user.
If it is determined that there is an overlap, the executable script pings one or more servers with the unique identifier and the one or more servers may store data in a database indicating that the user has been presented with a visible digital component, as described above with respect to FIG. 2C. The one or more servers establish a whitelist of users to whom digital content may be presented by storing unique identifiers that identify users to whom to present opt-out opportunities and refuse to opt-out. The whitelist may be used by one or more servers to determine whether to select a digital component for presentation or to forward a presentation opportunity to a third party server that cannot guarantee that a opt-out element is provided for the digital component.
FIG. 4 is a flow diagram of an example process 400 for determining that a digital component including a opt-out element is visible. In some implementations, the process 400 may be implemented by one or more servers. For example, the process 400 may be implemented by the server 110 and the third party server 108 of fig. 1-2C. In some implementations, the process 400 may be implemented as instructions stored on a non-transitory computer-readable medium, and when executed by one or more servers, the instructions may cause the one or more servers to perform operations of the process 400.
One or more servers may identify opportunities to send digital components to client devices identified by a given unique identifier (402). One or more servers receive requests for digital components from client devices. The request may include client device information such as the geographic location of the client device, a software application currently used by a user of the client device or used to access network resources that triggered the request, a content presentation platform used by the client device, and an operating system of the device. The unique identifier may be, for example, a unique device identifier as described above with respect to fig. 1-2. One or more servers may use the unique identifier to access a opt-out database that stores opt-out data that maps entries of opt-out information to the unique identifier. The opt-out data stored in the database may be used, for example, as a whitelist that refuses to opt-out and thus opt-in to the user receiving the digital content when presenting an opportunity thereto, as described above with respect to fig. 1-2C.
One or more servers access a database that includes a opt-out timestamp that specifies, for each of a plurality of unique identifiers, when a opt-out opportunity is presented to a user corresponding to the plurality of unique identifiers (404). One or more servers may access a opt-out database storing opt-out data using a unique identifier. One or more servers may, for example, access a opt-out database and identify the opt-out entry corresponding to the unique identifier by identifying the entry indexed by the unique identifier. One or more servers may search for entries within the opt-out database to identify entries indexed by unique identifiers. If the unique identifier has not been encountered before, then there will be no corresponding entry in the opt-out database. In some implementations, if the user identified by the unique identifier has selected to exit the received digital content, then there will be no corresponding entry in the opt-out receiving database.
One or more servers are within the database and identify a opt-out timestamp based on the access, wherein the opt-out timestamp specifies when a opt-out opportunity was presented to a given user corresponding to a given unique identifier (406). The opt-out information contained within the entry indexed by the unique identifier includes a timestamp of when the opt-out opportunity was presented to the given user associated with the unique identifier, and a digital component presentation opportunity identifier. The opportunity identifier uniquely identifies the presentation opportunity and one or more servers may use the opportunity identifier to access information about the opportunity, including the network resource the client device is accessing, the subject of the network resource, or the host of the network resource. One or more servers identify the entry indexed by the unique identifier and retrieve the latest timestamp. In some implementations, when a user identified by the unique identifier opts out of receiving more digital content, the entries indexed by the unique identifier are removed and merely opting out of entries within the database is an entry in which the user is presented with a opt-out opportunity and the user refuses to exercise the option. The timestamp may be the timestamp of the most recent opt-out opportunity presented to the user identified by the unique identifier and may indicate the time the opt-out opportunity was last presented to the user and the user did not opt-out.
The one or more servers determine whether the opt-out timestamp indicates that a opt-out opportunity has been presented to the given user within a specified amount of time prior to the current time (408). The one or more servers compare the opt-out timestamp with the current timestamp to determine the time period that has elapsed. The one or more servers may then determine whether the time period that has elapsed is greater than a specified amount of time before the current time. The specified time period may be set by various entities including a regulatory agency, a platform on which content is presented on the client device, and one or more servers. For example, one or more servers may have a default specified period of time prior to the current time in which the user must have been presented with a opt-out opportunity. In another example, the specified period of time is determined from a regulatory agency in a region (e.g., country, state, county, etc.) from which the request to present the content at the client device is generated.
The one or more servers process the opportunity to transmit the digital component based on a determination of whether a selection to exit the opportunity is presented to the given user within a specified amount of time before the identified opportunity to transmit the digital component (410). Once the server 110 identifies the opportunity to transmit the digital component, the server 110 may determine the origin of the request. For example, the server 110 may determine whether the opportunity originates in a country having a particular opt-out rule. These opt-out rules may determine a specified amount of time to be used by one or more servers.
The specified amount of time may be determined by regulations, such as privacy regulations for a particular region, environment, platform, etc. For example, privacy regulations in a particular country may require that the user be presented with opt-out opportunities at least every fourteen days, thus the specified amount of time must be at most fourteen days. The one or more servers determine a period of time or an amount of time that has elapsed since the user was last presented with a opt-out opportunity based on a comparison of the timestamp to the current time. The one or more servers then compare the determined amount of time to the specified amount of time to determine whether a user is presented with an opt-out opportunity within the specified period of time. For example, if the determined amount of time is less than or equal to the specified amount of time, the one or more servers may make a determination that a user is presented with an opt-out opportunity within the specified period of time. The one or more servers can then use the determination to process opportunities to send the digital component to the client device.
Processing the opportunity to transmit the digital component includes submitting the opportunity to transmit the digital component to one or more third party digital component sources (412) in response to determining that the opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before the identified opportunity to transmit the digital component. If one or more servers determine that the user is presented with an opt-out opportunity within a specified amount of time, the one or more servers may determine to forward the opportunity to send the digital component to a third party server, as described with respect to fig. 2A-2C. One or more servers perform the processing in real-time and a specified period of time is determined at the beginning of process 400 relative to the current time, wherein opportunities to send digital components are identified at the beginning of process 400.
In some implementations, submitting the opportunity to send the digital component to one or more third party digital component sources is conditioned on the user not requesting a opt-out in response to determining that the opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before the identified opportunity to send the digital component. For example, the user must have refused to exercise the opt-out option and if the user has exercise the opt-out option, the user identified by the unique identifier may be removed from the opt-out database.
Processing the opportunity to transmit the digital component includes avoiding submitting the opportunity to transmit the digital component to one or more third party digital component sources (414) in response to determining that the opt-out timestamp indicates that the opt-out opportunity is not presented to the given user within a specified amount of time before the identified opportunity to transmit the digital component. If one or more servers determine that no opt-out opportunities have been presented to the user for a specified amount of time, the one or more servers may determine to avoid forwarding opportunities to send digital components to a third party server, as described with respect to fig. 2A-2C. For example, if the determined amount of time exceeds a specified amount of time, the user is not presented with a opt-out opportunity for at least the specified amount of time, and the one or more servers may determine to present the opt-out opportunity to the client device. To ensure that such a opt-out opportunity is presented to the user, one or more servers may determine to select a digital component that includes the opt-out element for presentation to the user because some third party servers may never actually obtain digital content from a resource that includes the opt-out opportunity in the digital content.
In some implementations, avoiding submitting the opportunity to send the digital component to one or more third party digital component sources includes selecting, by the one or more servers, a given digital component that includes selecting to exit the opportunity, without submitting the opportunity to the one or more third party digital component sources. Then, in response to identifying an opportunity to send a digital component to the client device, the one or more servers send to the client device a given digital component that includes a opt-out opportunity. The one or more servers determine whether a given digital component including the opt-out opportunity is visually presented at the client device, and then record data in the opt-out database based on a determination of whether the digital component including the opt-out opportunity is visually perceptible at the client device. For example, one or more servers may select and present the digital components to the client device and determine whether the digital components are visually presented at the client device, as described with respect to fig. 2-3.
In some implementations, transmitting the given digital component including selecting the exit opportunity includes transmitting the given digital component with an opportunity identifier that uniquely identifies the opportunity to transmit the digital component relative to other opportunities to transmit the digital component, and an embedded script that causes the client device to generate a response including the opportunity identifier when the given digital component is visually perceivable at the client device, as described with respect to fig. 2-3.
In some implementations, determining whether the given digital component including the opt-out opportunity is visually perceptible at the client device includes determining that a response received from the client device indicates that the given digital component is visually perceptible at the client device and includes an opportunity identifier, as described with respect to fig. 2-3.
In some implementations, recording the data in the database includes recording an updated opt-out timestamp in the database at a database location corresponding to the given unique identifier, the updated opt-out timestamp indicating a time at which the given digital component is visually perceivable at the client device, as described with respect to fig. 2-3.
Process 400 may further include identifying a subsequent opportunity to send the digital component to the client device after the updated opt-out timestamp is recorded in the database. The one or more servers may then determine that the updated opt-out timestamp indicates that the opt-out opportunity was presented to the given user within a specified amount of time before the subsequent opportunity, and in response to determining that the updated opt-out timestamp indicates that the opt-out opportunity was presented to the given user within the specified amount of time before the subsequent opportunity, submit the opportunity to send the digital component to one or more third party digital component sources, as described with respect to fig. 2-3.
FIG. 5 is a block diagram of an example computer system 500 that may be used to perform the operations described above. The system 500 includes a processor 510, a memory 520, a storage device 530, and an input/output device 540. Each of the components 510, 520, 530, and 540 may be interconnected, for example, using a system bus 550. Processor 510 is capable of processing instructions for execution within system 500. In one implementation, the processor 510 is a single-threaded processor. In another implementation, the processor 510 is a multi-threaded processor. The processor 510 is capable of processing instructions stored in the memory 520 or in the storage device 530.
Memory 520 stores information within system 500. In one implementation, the memory 520 is a computer-readable medium. In one implementation, the memory 520 is a volatile memory unit. In another embodiment, the memory 520 is a non-volatile memory unit.
The storage device 530 is capable of providing mass storage for the system 500. In one implementation, the storage device 530 is a computer-readable medium. In various different implementations, storage device 530 may include, for example, a hard disk device, an optical disk device, a storage device shared by multiple computing devices over a network (e.g., a cloud storage device), or some other mass storage device.
Input/output device 540 provides input/output operations for system 500. In one implementation, the input/output device 540 may include one or more network interface devices, such as 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 devices may include a drive device configured to receive input data and transmit output data to other input/output devices 560, such as keyboards, printers, and display devices. However, other implementations may also be used, such as mobile computing devices, mobile communication devices, set-top box television client devices, and the like.
Although an example processing system has been described in FIG. 5, implementations of the subject matter and functional operations described in this specification can be implemented in other types of digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
An electronic document (will be simply referred to as a document for brevity) does not necessarily correspond to a file. The documents may be stored in a portion of a file that holds other documents, in a single file dedicated to the document in question, or in multiple reconciliation files.
Embodiments of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter 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 (or media) for execution by, or to control the operation of, data processing apparatus. Alternatively or additionally, the program instructions may be encoded on a manually generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by data processing apparatus. The computer storage medium may be or be included in 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. Furthermore, while the computer storage medium is not a propagated signal, the computer storage medium may be a source or destination of computer program instructions encoded in an artificially generated propagated signal. Computer storage media may also be or be included in one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).
The operations described in this specification may 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.
The term "data processing apparatus" encompasses all types of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system-on-a-chip, or multiple ones or combinations of the foregoing. The apparatus may comprise a dedicated logic circuit, for example an FPGA (Field Programmable Gate Array ) or an ASIC (Application Specific Integrated Circuit, application specific integrated circuit). In addition to hardware, an apparatus may include code that creates an execution environment for the computer program in question, e.g., code that constitutes 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 them. The apparatus and execution environment may implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.
A computer program (also known as a program, 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. The computer program may, but need not, correspond to a file in a file system. A program can 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 that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable processors 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 also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data (e.g., magnetic, magneto-optical disks, or optical disks). However, the computer need not have such a device. In addition, the computer may be embedded in another device, such as a mobile phone, a personal digital assistant (Personal Digital Assistant, PDA), a mobile audio or video player, a game console, a global positioning system (Global Positioning System, GPS) receiver, or a portable storage device (e.g., universal serial bus (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 memory devices, including by way of example semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices); magnetic disks (e.g., internal hard disks or removable disks); magneto-optical disk; CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a 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) monitor) for providing information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other types of devices may also be used to provide interaction with a user; for example, feedback provided to the user may be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, voice, or tactile input. In addition, the computer may interact with the user by transmitting and receiving documents to and from the device used by the user; for example, by transmitting a web page to a web browser on a user's client device in response to a request received from the web browser.
Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that 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 an implementation described in this specification), or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication 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).
The computing system may include clients and servers. The client and server are typically remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, the server sends data (e.g., HTML pages) to the client device (e.g., for the purpose of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., results of user interactions) may be received at the server from the client device.
While this specification contains many specifics of embodiments, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the claimed combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, although operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood 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.
Thus, particular embodiments of the 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 desirable results. Additionally, the processes depicted in the accompanying drawings do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may be advantageous.

Claims (20)

1. A method, comprising:
identifying, by the one or more servers, opportunities to send the digital component to the client device identified by the given unique identifier;
Determining, by the one or more servers, whether a opt-out timestamp stored in the database indicates that a opt-out opportunity was visually presented to a given user within a viewport at the client device for a specified amount of time prior to a current time to opt-out of receiving content from one or more particular content providers;
responsive to determining that the opt-out timestamp indicates that the opt-out opportunity is not visually presented to the given user within the viewport at the client device for a specified amount of time before the opportunity to transmit the digital component is identified:
determining, by the one or more servers, that providing a display at the client device depicting a digital component of the opt-out user interface control providing the opt-out opportunity, instead of submitting the opportunity to one or more third party digital component sources; and
generating a given digital component depicting a opt-out user interface control, wherein the opt-out user interface control enables a given user to opt-out of receiving content from the one or more particular content providers; and
transmitting, by the one or more servers, a given digital component to the client device, the given digital component having an opportunity identifier that uniquely identifies the opportunity to transmit the digital component relative to other opportunities to transmit the digital component, and an embedded script that causes the client device to generate a response including the opportunity identifier when the given digital component is visually perceivable at the client device, wherein the given digital component depicts a selection exit user interface control within a viewport of the client device.
2. The method of claim 1, wherein determining whether the opt-out timestamp stored in the database indicates that the opt-out opportunity was visually presented to the given user within a specified amount of time prior to the current time comprises:
accessing a database storing opt-out timestamps specifying when a user was provided with opt-out opportunities that provided the user with an opportunity to opt-out of receiving digital components; and
identifying a timestamp within the database specifying a time at which the opt-out opportunity was last visually presented to the given user; and
it is determined whether the difference between the timestamp and the current time is within a specified amount of time.
3. The method of claim 1, further comprising:
determining whether a given digital component depicting a selection of an exit user interface control is visually presented on the client device; and
based on a determination of whether the digital component depicting the selection of the exit user interface control is visually perceptible at the client device, the data is recorded in a database.
4. The method of claim 3, wherein determining whether the given digital component depicting the selection of the exit user interface control is visually perceptible at the client device comprises determining that a response received from the client device (i) indicates that the given digital component is visually perceptible at the client device and (ii) comprises an opportunity identifier.
5. The method of claim 4, wherein recording data in a database comprises recording an updated opt-out timestamp in the database at a database location corresponding to the given user, the updated opt-out timestamp indicating a visually perceivable time of the given digital component at the client device.
6. The method of claim 5, comprising:
identifying a subsequent opportunity to send the digital component to the client device after the updated opt-out timestamp is recorded in the database;
determining that the updated opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before the subsequent opportunity; and
in response to determining that the updated opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before the subsequent opportunity, the opportunity to transmit the digital component is submitted to one or more third party digital component sources.
7. The method of claim 1, wherein submitting the opportunity to send the digital component to one or more third party digital component sources is conditioned on the given user not requesting a opt-out when presenting the opt-out opportunity, in response to determining that the updated opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before a subsequent opportunity to send the digital component.
8. A system, comprising:
one or more storage devices storing instructions;
one or more computers comprising one or more processors configured to execute instructions stored in one or more storage devices;
a front-end interface comprising a communication interface enabling communication over one or more communication networks; and
a back-end interface connected to the front-end interface, wherein the back-end interface performs operations comprising:
identifying an opportunity to transmit a digital component to a client device identified by a given unique identifier;
determining whether a opt-out timestamp stored in the database indicates that a opt-out opportunity was visually presented to a given user within a viewport at the client device within a specified amount of time prior to a current time;
responsive to determining that the opt-out timestamp indicates that the opt-out opportunity is not visually presented to the given user within the viewport at the client device for a specified amount of time before the opportunity to transmit the digital component is identified, to opt-out of receiving content from one or more particular content providers:
determining to provide a display at the client device that depicts a digital component of a opt-out user interface control that provides an opt-out opportunity, rather than submitting the opportunity to one or more third party digital component sources; and
Generating a given digital component depicting a opt-out user interface control, wherein the opt-out user interface control enables a given user to opt-out of receiving content from the one or more particular content providers; and
a given digital component is transmitted to the client device, the given digital component having an opportunity identifier that uniquely identifies the opportunity to transmit the digital component relative to other opportunities to transmit the digital component, and an embedded script that causes the client device to generate a response including the opportunity identifier when the given digital component is visually perceivable at the client device, wherein the given digital component depicts a selection exit user interface control within a viewport of the client device.
9. The system of claim 8, wherein determining whether the opt-out timestamp stored in the database indicates that the opt-out opportunity was visually presented to the given user within a specified amount of time prior to the current time comprises:
accessing a database storing opt-out timestamps specifying when a user was provided with opt-out opportunities that provided the user with an opportunity to opt-out of receiving digital components; and
Identifying a timestamp within the database specifying a time at which the opt-out opportunity was last visually presented to the given user; and
it is determined whether the difference between the timestamp and the current time is within a specified amount of time.
10. The system of claim 8, wherein the back-end interface performs operations further comprising:
determining whether a given digital component depicting a selection of an exit user interface control is visually presented on the client device; and
based on a determination of whether the digital component depicting the selection of the exit user interface control is visually perceptible at the client device, the data is recorded in a database.
11. The system of claim 10, wherein determining whether the given digital component depicting the selection of the exit user interface control is visually perceptible at the client device comprises determining that a response received from the client device (i) indicates that the given digital component is visually perceptible at the client device and (ii) comprises an opportunity identifier.
12. The system of claim 11, wherein recording data in the database comprises recording an updated opt-out timestamp in the database at a database location corresponding to the given user, the updated opt-out timestamp indicating a visually perceivable time of the given digital component at the client device.
13. The system of claim 12, wherein the back-end interface performs operations further comprising:
identifying a subsequent opportunity to send the digital component to the client device after the updated opt-out timestamp is recorded in the database;
determining that the updated opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before the subsequent opportunity; and
responsive to determining that the updated opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before the subsequent opportunity, the opportunity to transmit the digital component is presented to the one or more third party digital component sources.
14. The system of claim 8, wherein submitting the opportunity to send the digital component to the one or more third party digital component sources is conditioned on the given user not requesting a opt-out when presenting the opt-out opportunity, in response to determining that the updated opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before a subsequent opportunity to send the digital component.
15. A non-transitory computer-readable medium storing instructions that, when executed by one or more computing devices, cause the one or more computing devices to perform operations comprising:
Identifying an opportunity to transmit a digital component to a client device identified by a given unique identifier;
determining whether a opt-out timestamp stored in the database indicates that a opt-out opportunity was visually presented to a given user within a viewport at the client device within a specified amount of time prior to a current time;
responsive to determining that the opt-out timestamp indicates that the opt-out opportunity is not visually presented to the given user within the viewport at the client device for a specified amount of time before the opportunity to transmit the digital component is identified, to opt-out of receiving content from one or more particular content providers:
determining to provide a display at the client device that depicts a digital component of a opt-out user interface control that provides an opt-out opportunity, rather than submitting the opportunity to one or more third party digital component sources; and
generating a given digital component depicting a opt-out user interface control, wherein the opt-out user interface control enables a given user to opt-out of receiving content from the one or more particular content providers; and
a given digital component is transmitted to the client device, the given digital component having an opportunity identifier that uniquely identifies the opportunity to transmit the digital component relative to other opportunities to transmit the digital component, and an embedded script that causes the client device to generate a response including the opportunity identifier when the given digital component is visually perceivable at the client device, wherein the given digital component depicts a selection exit user interface control within a viewport of the client device.
16. The non-transitory computer-readable medium of claim 15, wherein determining whether a opt-out timestamp stored in the database indicates that a opt-out opportunity was visually presented to a given user within a specified amount of time prior to a current time comprises:
accessing a database storing opt-out timestamps specifying when a user was provided with opt-out opportunities that provided the user with an opportunity to opt-out of receiving digital components; and
identifying a timestamp within the database specifying a time at which the opt-out opportunity was last visually presented to the given user; and
it is determined whether the difference between the timestamp and the current time is within a specified amount of time.
17. The non-transitory computer-readable medium of claim 15, wherein the instructions cause the one or more computing devices to perform operations further comprising:
determining whether a given digital component depicting a selection of an exit user interface control is visually presented on the client device; and
based on a determination of whether the digital component depicting the selection of the exit user interface control is visually perceptible at the client device, the data is recorded in a database.
18. The non-transitory computer-readable medium of claim 17, wherein determining whether the given digital component depicting the selection of the exit user interface control is visually perceptible at the client device comprises determining that a response received from the client device (i) indicates that the given digital component is visually perceptible at the client device and (ii) includes an opportunity identifier.
19. The non-transitory computer-readable medium of claim 18, wherein recording data in a database comprises recording an updated opt-out timestamp in the database at a database location corresponding to a given user, the updated opt-out timestamp indicating a time at which a given digital component is visually perceivable at a client device.
20. The non-transitory computer-readable medium of claim 19, wherein the instructions cause the one or more computing devices to perform operations further comprising:
identifying a subsequent opportunity to send the digital component to the client device after the updated opt-out timestamp is recorded in the database;
determining that the updated opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before the subsequent opportunity; and
Responsive to determining that the updated opt-out timestamp indicates that the opt-out opportunity is presented to the given user within a specified amount of time before the subsequent opportunity, the opportunity to transmit the digital component is presented to the one or more third party digital component sources.
CN202311182883.8A 2017-11-14 2017-11-14 Improving opt-out compliance Pending CN117453989A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311182883.8A CN117453989A (en) 2017-11-14 2017-11-14 Improving opt-out compliance

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202311182883.8A CN117453989A (en) 2017-11-14 2017-11-14 Improving opt-out compliance
PCT/US2017/061482 WO2019098989A1 (en) 2017-11-14 2017-11-14 Improving opt-out compliance
CN201780090572.5A CN110622159B (en) 2017-11-14 2017-11-14 Improving opt-out compliance

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201780090572.5A Division CN110622159B (en) 2017-11-14 2017-11-14 Improving opt-out compliance

Publications (1)

Publication Number Publication Date
CN117453989A true CN117453989A (en) 2024-01-26

Family

ID=60515823

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311182883.8A Pending CN117453989A (en) 2017-11-14 2017-11-14 Improving opt-out compliance
CN201780090572.5A Active CN110622159B (en) 2017-11-14 2017-11-14 Improving opt-out compliance

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201780090572.5A Active CN110622159B (en) 2017-11-14 2017-11-14 Improving opt-out compliance

Country Status (3)

Country Link
EP (1) EP3607455A1 (en)
CN (2) CN117453989A (en)
WO (1) WO2019098989A1 (en)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819141B2 (en) * 2003-05-16 2014-08-26 Syniverse Icx Corporation Centralized mobile and wireless messaging opt-out registry system and method
US20050177599A1 (en) * 2004-02-09 2005-08-11 Microsoft Corporation System and method for complying with anti-spam rules, laws, and regulations
CN102065380B (en) * 2009-11-18 2013-07-31 中国联合网络通信集团有限公司 Silent order relation prompting method and device and value added service management system
WO2011150369A2 (en) * 2010-05-27 2011-12-01 Vivotech Inc. Methods, systems and computer readable media for utilizing a consumer opt-in management system
CN101901453A (en) * 2010-08-02 2010-12-01 朱彦民 Interactive network advertising method
US9544802B2 (en) * 2013-03-13 2017-01-10 Qualcomm Incorporated System and methods for determining opt in/opt out status of middleware reception reporting for eMBMS services
US9478042B1 (en) * 2014-08-12 2016-10-25 Google Inc. Determining visibility of rendered content
US10460349B2 (en) * 2015-02-11 2019-10-29 Oath Inc. Systems and methods for opting-out of targeted advertising in an online advertising environment

Also Published As

Publication number Publication date
CN110622159B (en) 2023-09-29
WO2019098989A1 (en) 2019-05-23
EP3607455A1 (en) 2020-02-12
CN110622159A (en) 2019-12-27

Similar Documents

Publication Publication Date Title
US11228663B2 (en) Controlling content distribution
US11032388B2 (en) Methods for prerendering and methods for managing and configuring prerendering operations
US20170221106A1 (en) Interaction-aware advertising for minimizing banner blindness
US20140129661A1 (en) Smart Web Notifications
CN107832409B (en) Accessing location-based content
US11336737B2 (en) Opt-out compliance
CN111684448B (en) Enhanced online privacy
US20140033228A1 (en) Configuring content display dimensions
JP6626540B2 (en) Application install conversion and identification
US11403653B2 (en) Distributing electronic surveys via third-party content
US9720889B1 (en) Systems and methods for detecting auto-redirecting online content
US8984091B1 (en) Providing content based on timestamp of last request for content
US9565224B1 (en) Methods, systems, and media for presenting a customized user interface based on user actions
CN110622159B (en) Improving opt-out compliance
US9479615B1 (en) Systems and methods for providing interstitial content

Legal Events

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