US10324960B1 - Determining a number of unique viewers of a content item - Google Patents

Determining a number of unique viewers of a content item Download PDF

Info

Publication number
US10324960B1
US10324960B1 US14/858,825 US201514858825A US10324960B1 US 10324960 B1 US10324960 B1 US 10324960B1 US 201514858825 A US201514858825 A US 201514858825A US 10324960 B1 US10324960 B1 US 10324960B1
Authority
US
United States
Prior art keywords
user
pseudo
users
identifier
category
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.)
Active, expires
Application number
US14/858,825
Inventor
Evgeny Skvortsov
Lukas Rutishauser
Cuizhu Shi
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 US14/858,825 priority Critical patent/US10324960B1/en
Assigned to GOOGLE INC. reassignment GOOGLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SKVORTSOV, Evgeny, RUTISHAUSER, Lukas, SHI, CUIZHU
Assigned to GOOGLE LLC reassignment GOOGLE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: GOOGLE INC.
Application granted granted Critical
Publication of US10324960B1 publication Critical patent/US10324960B1/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • G06F16/287Visualization; Browsing
    • 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/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0242Determining effectiveness of advertisements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0242Determining effectiveness of advertisements
    • G06Q30/0246Traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement
    • 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/954Navigation, e.g. using categorised browsing

Definitions

  • the Internet enables access to a wide variety of resources. For example, video, audio, webpages directed to particular subject matter, news articles, images, and other resources are accessible over the Internet.
  • the wide variety of resources that are accessible over the Internet has enabled opportunities for content distributors to provide content items with resources that are requested by users.
  • Content items are units of content (e.g., individual files or a set of files) that are presented at a user device.
  • An advertisement is an example of a content item that advertisers can provide for presentation with particular resources, such as web pages and search results pages.
  • An advertisement can be made eligible for presentation with specific resources and/or resources that are determined to match specified distribution criteria, such as distribution keywords.
  • one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving an identifier specifying characteristics of a user associated with a device that was used to present a given content item; identifying, from a set of user categories, a user category for the received identifier based on the characteristics, each user category of the set of user categories including a respective number of pseudo-users; assigning the received identifier to a given pseudo-user in the identified user category based on a non-linear distribution of identifiers per actual user in the identified user category; determining a number of unique users, including the given pseudo-user, that have viewed the given content item based on a total number of pseudo-users that have been assigned an identifier corresponding to presentation of the given content item; and generating and providing data that causes a device to present the number of unique viewers.
  • 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.
  • Assigning the received identifier to the given pseudo-user can include selecting a first number from a range of numbers; determining a pseudo-user identifier based on a function of the first number, a product logarithmic function that uses the first number, and a number of actual users in the identified user category; and selecting the given pseudo-user based on the pseudo-user identifier.
  • the first number is selected randomly from a uniform distribution of numbers in the range of numbers.
  • assigning the received identifier to the given pseudo-user comprises assigning the received identifier to the given pseudo-user based on a respective probability for each pseudo-user of the identified user category, the probability of each pseudo-user being determined based on the distribution of identifiers for actual users in the identifier user category.
  • the probability for a first pseudo-user of the identified user category may be different from the probability for a second pseudo-user of the identified user category.
  • each user category includes a number of pseudo-users based on a number of actual users in a population of users that match user criteria for the user category.
  • the received identifier includes a cookie.
  • a content item provider can be provided an estimate of the number of unique viewers of a content item in real time or near real time as data regarding impressions of the content item are received.
  • Other data regarding views of the content item can also be provided in real time or near real time, such as a demographic distribution of an audience of the content item, a reach of the content item, a frequency for the content item, and/or a gross rating point for the content item.
  • the techniques described in this document enable a data processing apparatus to obtain more accurate estimates (and/or provide estimates faster) of the number of unique viewers of content items than analyzing previously received identifiers to determine updated estimates or simply counting the number of identifiers received.
  • FIG. 1 is an example environment in which a content management system distributes content items.
  • FIG. 2 is a graph of an example distribution of identifiers per unique viewer.
  • FIG. 3 is a flow chart of an example process for creating pseudo-users for a user category.
  • FIG. 4 is a flow chart of an example process for determining a distribution of identifiers per unique viewer for a user category.
  • FIG. 5 is a flow chart of an example process for determining a number of unique viewers of a content item and providing data specifying the number of unique viewers.
  • FIG. 6 is a block diagram of an example computer system.
  • a content provider may want to know the performance of a content item campaign or web resource. For example, the content provider may want to know how many people viewed a content item, how many times the content item was viewed, and which types of users viewed a given content item.
  • a content item is a unit of content that can be presented at a user device. Examples of content items include advertisements, images, videos, documents, web pages, and applications (e.g., mobile apps).
  • a content management system can generate and provide to a content provider a report that specifies information, such as reach, frequency, gross rating point (GRP), and/or demographic distribution of a reached audience. Reach can be defined as the number of unique users exposed to (e.g., viewed) a given content item during a given time period. Frequency refers to the average number of times that a unique user viewed a given content item over a given time period.
  • Gross rating point is a measure that can be calculated, such as normalized reach multiplied by frequency.
  • the number of unique viewers exposed to a content item can be determined based on a number of identifiers received for the content item (e.g., that specifies a presentation of the content item).
  • An identifier is data item (e.g., a cookie) associated with a user device at which a content item is presented and that uniquely identifies the user device.
  • An identifier may be sent from a user device to the content management system in response to a presentation of a content item.
  • the total number of identifiers received for the content item may not accurately reflect the actual number of unique viewers of the content item as multiple people may use the same device having the same identifier (e.g., same cookie) resulting in multiple unique viewers being considered a single unique viewer.
  • an individual may view the content item using multiple devices, each with different identifiers, resulting in an individual counting as multiple unique viewers.
  • the number of unique viewers of a content item can be estimated based on a known distribution of identifiers for a population of users. For example, an analysis of historical data, e.g., panel data, may indicate that the distribution of identifiers per unique viewer (e.g., per actual user) follows a particular non-linear (or linear) function. This distribution can be used to assign received identifiers to pseudo-users (e.g., online or in real time) such that a total number of pseudo-users that have been assigned an identifier follows the distribution, for example, at any given time during a given time period.
  • the pseudo-users are non-real users that represent a population of users.
  • the total number of unique viewers of a content item can be estimated based on an estimated number of unique viewers for each of multiple user categories.
  • User categories may be defined based on characteristics of the users, such as inferred interests (e.g., in fishing, camping, baseball, etc.), demographic characteristics, and/or geography (e.g., one category for a particular city and another category for a different city).
  • the distribution of identifiers per unique viewer may differ for different user categories.
  • a received identifier may be assigned to a pseudo-user of a user category in which the identifier belongs based on the distribution for that user category.
  • the number of unique viewers of a content item can be estimated based on the number of pseudo-users of the user category to which an identifier for the content item (e.g., an identifier that specifies a view of the content item) was assigned.
  • the total number of unique viewers of the content item can then be estimated by summing the estimated number of unique viewers of the content item for each user category.
  • each identifier is assigned to a pseudo-user that belongs to a single category. In this way, the total number of unique viewers of a content item can be determined by summing the estimated number of unique viewers of the content item for each user category without counting an identifier multiple times (e.g., if the identifier was assigned to multiple user categories).
  • the users may be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user.
  • user information e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location
  • certain data may be treated in one or more ways before it is stored or used, so that certain information about the user is removed.
  • a user's identity may be treated so that no identifying information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined.
  • location information such as to a city, ZIP code, or state level
  • FIG. 1 is an example environment 100 in which a content management system 150 distributes content items.
  • the example environment 100 includes a network 110 such as a local area network (LAN), wide area network (WAN), the Internet, or a combination thereof.
  • the network 110 connects user devices 120 , publishers 130 , content providers 140 , and the content management system 150 .
  • the example environment 100 may include many user devices 120 , publishers 130 , and content providers 140 .
  • a user device 120 is an electronic device that is capable of requesting and receiving resources over the network 110 .
  • Example user devices 120 include personal computers, mobile communication devices (e.g., smartphones, tablet computing devices, and/or smart watches), and other devices that can send and receive data over the network 110 .
  • a user device 120 typically includes a user application, such as a web browser, to facilitate the sending and receiving of data over the network 110 .
  • the web browser can enable a user to display and interact with text, images, videos, music, and other information typically located on a web page at a website.
  • the user devices 120 can also include applications (also referred to as apps) that can enable a user to display and interact with similar content.
  • Publishers 130 can be network content providers that publish websites and/or applications (e.g., mobile apps).
  • a website includes one or more resources 135 associated with a domain name and hosted by one or more servers.
  • An example website is a collection of web pages formatted in hypertext markup language (HTML) that can contain text, images, multimedia content, and programming elements, such as scripts.
  • HTML hypertext markup language
  • a resource 135 is any data that can be provided by the publisher 130 over the network 110 .
  • Resources include HTML pages, word processing documents, and portable document format (PDF) documents, images, video, maps, and feed sources, to name just a few.
  • the resources can include content, such as words, phrases, pictures, and so on, and may include embedded information (e.g., meta information and hyperlinks) and/or embedded instructions (e.g., scripts).
  • the publishers 130 can receive requests for content from the user devices 120 and provide content (e.g., a resource 135 ) for presentation in response to the requests.
  • the content management system 150 may receive a request for one or more content items to be provided with the resource 135 .
  • the request for content items can include characteristics of one or more slots or impressions that are defined for the requested resource 135 .
  • a reference e.g., URL
  • keywords associated with a requested resource (“resource keywords”) can also be provided to the content management system 150 to facilitate identification of content that is relevant to the resource 135 .
  • a request for a resource 135 can also include an identifier, such as a cookie, identifying the requesting user device 120 (e.g., in instances in which the user consents in advance to the use of such an identifier).
  • the content management system 150 can select content items that are eligible to be provided in response to the request, such as content items having characteristics matching the characteristics of a given slot.
  • content items having selection keywords that match the resource keywords may be selected as eligible content items by the content management system 150 .
  • One or more selected content items can be provided to the user device 120 in association with providing an associated resource 135 .
  • the content management system 150 can select content items based at least in part on results of an auction. For example, for the eligible content items, the content management system 150 can receive bids from content providers 140 and allocate the slots, based at least in part on the received bids (e.g., based on the highest bidders at the conclusion of the auction).
  • the content management system 150 includes a unique viewer engine 152 that determines a number of unique viewers to which content items and/or resources 135 have been provided.
  • a resource 135 is considered a content item for which a number of unique viewers can be determined or estimated.
  • the unique viewer engine 152 may determine an estimated number of unique viewers of a content item based on a number of identifiers that specify that the content item was viewed.
  • An identifier is a data item (e.g., a cookie) associated with a user device 120 and that uniquely identifies the user device 120 .
  • a user device 120 may provide an identifier in response to presentation of a content item.
  • the user device 120 may provide the identifier with a request for content items or after a content item has been presented at the user device 120 .
  • the publisher 130 may receive data from an identifier (e.g., an identifier placed on the user device 120 by its website) when the user device requests the resource 135 from the publisher's website.
  • the publisher 130 may provide the identifier (or certain data included in the identifier) to the content management system 150 .
  • An identifier for a user device 120 may include data that specifies one or more content items that have been presented at the user device 120 and/or characteristics (e.g., inferred interests and/or demographic information) of a user associated with the user device 120 .
  • the content management system 150 may provide controls that allow the user to select which, if any, information is included in an identifier of the user's device(s).
  • the content management system 150 can determine the estimated number of unique viewers of a content item based on one or more distributions of identifiers per unique viewer.
  • the estimated number of unique viewers is determined using a single distribution for an entire population (e.g., the online population of the U.S.).
  • a distribution is determined for each user category in a set of user categories.
  • Each user category can be defined based on characteristics of the users (e.g., inferred interests and/or demographic characteristics). For example, there may be a user category for users that are interested in fishing and another user category for users interested in football.
  • the distribution of identifiers per unique viewer for a user category can be approximated using Relationship (1) below.
  • the parameter “k” for each distribution can be determined using actual (e.g., historical) data regarding identifiers and unique viewers.
  • the parameter “k” is determined using panel data 154 for a virtual panel.
  • the virtual panel can include actual users that use one or more application programs that provide page link analysis browser request data, which can be used to infer characteristics of users based on users' web browsing history data while preserving the privacy of individual users and their browsing history.
  • the page link analysis browser request data can include the web page browsing history of a user, e.g., identity of content items viewed and other data related to the user and resources viewed by the user.
  • the virtual panel data can then be used to determine the number of unique viewers of a content item and the number of identifiers that correspond to the unique viewers.
  • the virtual panel can include a large number (e.g., thousands or millions) of users, allowing the unique viewer engine 152 to determine an appropriate value for the parameter “k.”
  • Other appropriate methods of gathering web usage data can also be used to determine the number of unique viewers of a content item and the number of identifiers that correspond to the unique viewers.
  • the unique viewer engine 152 can determine the estimated number of unique viewers of a content item based on one or more distributions and a number of identifiers received by the content management system 150 that specify the a presentation of the content item. In some implementations, the unique viewer engine 152 creates pseudo-users for each user category based on a number of actual people that have characteristics that meet user criteria of the user category. For example, if there is a user category for users interested in scuba diving and there are 25,000 actual users that are interested in scuba diving, the unique viewer engine 152 may create 25,000 pseudo-users for a user category corresponding to users that are interested in scuba diving.
  • the unique viewer engine 152 can identify a user category that corresponds to the identifier. Continuing the previous example, if an identifier is received for a user that is interested in scuba diving, the user category for scuba diving may be identified for the identifier. The unique viewer engine 152 may then assign the identifier to a pseudo-user in the identified user category based on the distribution determined for the user category. For example, the unique viewer engine 152 may assign the identifier to a pseudo-user such that the distribution of identifiers per unique viewer in the identified user category matches or approximates the distribution for the user category.
  • the unique viewer engine 152 assigns the received identifier to a pseudo-user within the identified user category based on probabilities associated with each pseudo-user in the user category. For example, the probabilities for each pseudo-user may be selected such that the identifiers are distributed to pseudo-users in a manner that matches the distribution for the user category.
  • the unique viewer engine 152 assigns the received identifier to a pseudo-user within the identified user category based on a product log function (also called a Lambert W function or omega function). Other appropriate functions may also be used. For example, if the parameter “k” for a user category has a value of one or close to one, identifiers that correspond to the user category can be assigned to pseudo-users using Relationship (2) below.
  • “Pseudo-User” is a unique identifier for a pseudo-user in the user category; population is the total actual population for the user category (e.g., 50,000 if there are 50,000 actual people that match the user criteria for the user category); “t” is a number (e.g., selected randomly or pseudo-randomly for the identifier); and
  • W ⁇ ( - t e , - 1 ) is the first branch of the product log function.
  • each pseudo-user has a unique identifier based on the number of actual people in the user category. For example, if the user category includes 50,000 people, the unique identifiers for the pseudo-users in the user category would be in the range of 1-50,000 and each pseudo-user would be assigned one of the integers in that range.
  • the value of the parameter “t” can be selected randomly for each identifier, e.g., when (or after) the identifier is received.
  • the value of “t” can be within a normalized range of the population range for the user category. For example, the population range can be normalized to a range from 0-1 and the value of “t” can be selected from this range for a received identifier.
  • the selected value for “t” can then be used in Relationship (2) to determine which pseudo-user to assign the identifier.
  • Data specifying a mapping between received identifiers and their assigned pseudo-users can be stored in a pseudo-user data 156 .
  • the mapping between identifiers and pseudo-users can be used to determine an estimated number of unique viewers that have viewed content items. For example, to determine the number of unique users that have viewed a given content item, the unique viewer engine 152 can determine the number of pseudo-users that have been assigned an identifier that specifies an impression of that content item. The unique viewer engine 152 can maintain, e.g., in performance data 158 , a running total of the estimated number of unique viewers of each content item and update the running totals based on newly received identifiers.
  • the unique viewer engine 152 can also determine other performance data based on the assignment of received identifiers to pseudo-users. For example, the unique viewer engine 152 may determine an estimated number of unique viewers in each user category that viewed a content item based on the number of pseudo-users in the user category that has been assigned an identifier that specified a view of the content item. Other performance data, such as estimated reach, estimated GRP, and estimated frequency can also be determined based on the assignments of received identifiers to pseudo-users.
  • FIG. 2 is a graph 200 of an example distribution 205 of identifiers per unique viewer.
  • the example distribution 205 may be for a total population (e.g., in a particular location) or for the population of a particular user category.
  • the number of unique viewers increases non-linearly with an increase in identifiers, but the number of unique viewers does not reach the amount of the total population of actual users (represented by the top of the graph 200 ). That is, in this example, an identifier has not been received for every member of the population.
  • FIG. 3 is a flow chart of an example process 300 for creating pseudo-users for a user category.
  • Operations of the process 300 can be implemented, for example, by a data processing apparatus, such as the content management system 150 of FIG. 1 .
  • the process 300 can also be implemented by instructions stored on computer storage medium, where execution of the instructions by a data processing apparatus cause the data processing apparatus to perform the operations of the process 300 .
  • Data is obtained for a population of users ( 302 ).
  • the obtained data can include data that specifies a total population for a particular area.
  • this data may include census data that specifies the total number of people that live in particular areas.
  • This data may also specify characteristics of users, such as inferred interests or demographic data.
  • the users in the population are assigned to user categories ( 304 ). For example, a number of user categories may be defined for a content item campaign or for multiple content item campaigns. Each user category can be associated with respective user criteria. For example, the user criteria for a particular user category may specify a particular interest, e.g., traveling. Each user can be assigned to a user category based on the user's characteristics and the user criteria of the user categories.
  • Pseudo-users are created for the population of users ( 306 ).
  • a pseudo-user is a non-real user that represents a user of the population.
  • the number of pseudo-users may be equal to the number of actual users in the population.
  • Pseudo-users may be created for each user category based on the number of actual users in each user category. For example, if there are 10,000 users in the population that match the user criteria for a user category, 10,000 users may be created for the user category.
  • the pseudo-users are not real users, the pseudo-users may not, in some implementations, be associated with actual user data. Instead, each pseudo-user may be associated with its corresponding user category, a unique identifier that identifies the pseudo-user, and any identifiers assigned to the pseudo-user, as described in more detail below.
  • FIG. 4 is a flow chart of an example process 400 for determining a distribution of identifiers per unique viewer for a user category.
  • Operations of the process 400 can be implemented, for example, by a data processing apparatus, such as the content management system 150 of FIG. 1 .
  • the process 400 can also be implemented by instructions stored on computer storage medium, where execution of the instructions by a data processing apparatus cause the data processing apparatus to perform the operations of the process 400 .
  • Panel data is obtained for a panel of users ( 402 ).
  • the virtual panel can include actual users that allow page link analysis browser request data to be provided to a content management system.
  • the panel data can include the page link analysis browser request data, which includes the web page browsing history of the panel users.
  • the web page browsing history for a panel user can include the identity of content items viewed by panel user and other data related to the panel user and resources viewed by the panel user.
  • the panel users are assigned to user categories ( 404 ).
  • the panel users may be assigned to the same set of user categories as the population of users in the process 300 of FIG. 3 .
  • Each panel user may be assigned to a particular user category based on the characteristics (e.g., inferred interests) of the panel user (or actual provided characteristics of the panel user) and the user criteria of the particular user category.
  • a distribution of identifiers per unique viewer is determined for each user category using the panel data ( 406 ).
  • the distribution for a user category can be determined by identifying the number of identifiers received for each panel user assigned to the user category. Based on the number of identifiers for each panel user, a distribution can be approximated, for example, using Relationship (1) above. For example, the parameter “k” can be approximated such that a distribution curve resulting from Relationship (1) and the value of parameter “k” fits the panel data for the user category.
  • FIG. 5 is a flow chart of an example process 500 for determining a number of unique viewers of a content item and providing data specifying the number of unique viewers.
  • Operations of the process 500 can be implemented, for example, by a data processing apparatus, such as the content management system 150 of FIG. 1 .
  • the process 500 can also be implemented by instructions stored on computer storage medium, where execution of the instructions by a data processing apparatus cause the data processing apparatus to perform the operations of the process 500 .
  • An identifier is received for a content item presentation ( 502 ).
  • a user device may send the identifier with a content request and/or in response to presentation of a content item.
  • the identifier may include characteristics of a user (e.g., inferred interests or demographic data) of the user device and information identifying one or more content items presented at the user device, for each, in a particular time period.
  • a user category is identified for the received identifier ( 504 ).
  • the user category for the received identifier may be identified by comparing characteristics of the user (e.g., from the received identifier) to user criteria of each user category.
  • the received identifier may be assigned to the user category for which the user data of the received identifier matches or best matches.
  • the received identifier is assigned to a pseudo-user of the identified user category ( 506 ).
  • Received identifiers may be assigned to pseudo-users of the user categories in a manner such that the distribution of identifiers assigned to the user category per pseudo-user matches or approximately matches the distribution of identifiers per unique viewer of the user category.
  • each pseudo-user of the user category is assigned a probability such that the distribution of identifiers per pseudo-user follows the distribution of identifiers per unique viewer of the user category.
  • the probabilities of the pseudo-users may differ to simulate the different numbers of identifiers per unique viewer of the user category. For example, one actual user in the user category may have multiple identifiers, each corresponding to a particular user device while another actual user may have only one identifier. Similarly, a first pseudo-user may have a higher probability than a second pseudo-user such that the first pseudo-user is more likely to be assigned multiple received identifiers over time than the second pseudo-user.
  • the received identifier may be randomly assigned to a pseudo-user in the user category based on the probabilities. If a same identifier is received multiple times, the identifier may remain assigned to the same pseudo-user.
  • the received identifier is assigned to a pseudo-user in the user category using a function that is based on a product log function, such as Relationship (2) above.
  • the number of pseudo-users in the user category may be normalized to a range between zero and one. For example, if there are 15,000 pseudo-users in the user category, the numerical range of 0-10 may be normalized to 0-1. The received identifier may then be assigned to a number in the normalized range of 0-1.
  • a number from the set [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, and 1.0] may be selected for the received identifier. If there were only two pseudo-users in the user category, the number for the received identifier may be selected from the set of [0.5, 1.0]. This selected number represents the “t” parameter of Relationship (2).
  • the number for the identifier used as the “t” parameter may be selected randomly (e.g., based on a uniform distribution) or pseudo-randomly.
  • the value of the “t” parameter is then used in the function of Relationship (2) to determine a pseudo-user identifier.
  • the pseudo-user identifier is determined based on a function of a first number (the value of parameter “t”), a product logarithmic function that uses the first number, and a number of actual users in the identified user category.
  • the received identifier may be assigned to the pseudo-user uniquely identified by the determined pseudo-user identifier.
  • An estimated number of unique viewers that have viewed the content item is determined ( 508 ).
  • the estimated number of unique viewers of the content item can be determined by identifying each pseudo-user that has been assigned a received identifier that specifies a view of the content item. For example, if 1,000 identifiers have been received that specify a particular content item and those 1,000 identifiers have been assigned to 9,500 different pseudo-users, the estimated number of unique viewers of the content item is 9,500.
  • the estimated number of unique viewers of the content item can also be determined for each user category by counting the number of pseudo-users in the user category that has been assigned an identifier that specifies the content item.
  • Data is generated and provided to a device ( 510 ).
  • the data may include instructions that cause the device to present the estimated number of unique viewers of the content item at the device.
  • the device may execute the instructions and the instructions, upon execution, may cause the device to present the estimated number of viewers of the content item.
  • a report may be provided that described the estimated number of viewers of the content item across a population of users and/or for one or more user categories.
  • the example process 500 can be performed online and/or in real time in response to receiving an identifier, for example, without re-evaluating the distributions of identifiers and unique viewers.
  • a running count can be maintained for each content item and the count(s) can be updated based on the assignment of newly received identifiers to pseudo-users.
  • the estimated number of unique viewers of a content item can be used for many purposes.
  • the content management system 150 of FIG. 1 can automatically generate reports that specify the number of unique viewers of content items provided by a content provider and transmit the reports to the content provider.
  • the content management system 150 may generate the reports periodically, e.g., daily, weekly, or hourly, so that the content providers can monitor the performance of their content items.
  • the reports may include the total number of unique viewers of a content item and/or the number of unique viewers for each user category.
  • the reports may include data, e.g., code, that causes a server of the content provider to present the report.
  • the number of unique viewers of a content item can be used to determine how much a content provider should pay for presentations of its content items. For example, a content provider may agree to pay a certain amount for each unique viewer that views a content item. The number of unique viewers and the amount that the content provider agrees to pay for each unique viewer of the content item can be used to determine a total amount that the content provider should pay.
  • the number of unique viewers of a content item can be used for forecasting purposes. For example, the number of unique viewers of a content item during a given period of time can be used to forecast the number of unique viewers that will view the content item during future time periods.
  • the content management system 150 can include this forecasted number in reports generated and transmitted to the content provider.
  • the number of unique viewers of a content item during a given time period can be used to pace the number of presentations of the content item. For example, a content provider may want to have its content item presented to a total of 100 unique viewers over a 10 day period. In this example, the content provider may want to have its content item presented to about 10 unique viewers each day of the 10 day period. If the unique viewer engine 152 of the content management system 150 determines that more than 10 unique viewers viewed the content item on the first of the 10 days, the content provider (or a server of the content provider) or the content management system 150 (if permitted to by the content provider) may automatically adjust campaign criteria (e.g., bid amounts, keywords for which the content item is distributed, user categories, budgets, etc.) for the content item. In this example, the bid for the content item may be reduced and/or the number of keywords for which the content item is distributed may be reduced to reduce the number of unique viewers that will view the content item over the next 9 days.
  • campaign criteria e.g., bid amounts, keywords for which the content
  • the number of unique viewers of a content item can be used to automatically adjust campaign criteria for the content item and/or to recommend adjustments to the content provider that provides the content item.
  • the content management system 150 can automatically adjust campaign criteria (e.g., bid amounts, keywords, user categories, and/or budget) to increase the reach of the content item overall or in particular user categories.
  • campaign criteria e.g., bid amounts, keywords, user categories, and/or budget
  • the content management system 150 can generate a recommendation that specifies adjustments to the campaign criteria for a content item and transmit the recommendation for presentation to the content provider that provides the content item.
  • the techniques described above for determining the number of unique viewers of a content item can also be used to determine the number of unique viewers of other items, such as electronic resources (e.g., web pages).
  • the content management system 150 (or the publisher itself) may determine the number of unique viewers of a web page and provide a report to the publisher of the web page that specifies the number of unique viewers (overall number and/or category specific number).
  • FIG. 6 is a block diagram of an example computer system 600 that can be used to perform operations described above.
  • the system 600 includes a processor 610 , a memory 620 , a storage device 630 , and an input/output device 640 .
  • Each of the components 610 , 620 , 630 , and 640 can be interconnected, for example, using a system bus 650 .
  • the processor 610 is capable of processing instructions for execution within the system 600 .
  • the processor 610 is a single-threaded processor.
  • the processor 610 is a multi-threaded processor.
  • the processor 610 is capable of processing instructions stored in the memory 620 or on the storage device 630 .
  • the memory 620 stores information within the system 600 .
  • the memory 620 is a computer-readable medium.
  • the memory 620 is a volatile memory unit.
  • the memory 620 is a non-volatile memory unit.
  • the storage device 630 is capable of providing mass storage for the system 600 .
  • the storage device 630 is a computer-readable medium.
  • the storage device 630 can include, for example, a hard disk device, an optical disk device, a storage device that is shared over a network by multiple computing devices (e.g., a cloud storage device), or some other large capacity storage device.
  • the input/output device 640 provides input/output operations for the system 600 .
  • the input/output device 640 can include one or more of a network interface device, e.g., an Ethernet card, a serial communication device, e.g., an RS-232 port, and/or a wireless interface device, e.g., and 802.11 card.
  • the input/output device can include driver devices configured to receive input data and send output data to other input/output devices, e.g., keyboard, printer and display devices 660 .
  • Other implementations, however, can also be used, such as mobile computing devices, mobile communication devices, set-top box television client devices, etc.
  • 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 computer storage medium for execution by, or to control the operation of, data processing apparatus.
  • the program instructions can be encoded on an artificially-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 a data processing apparatus.
  • a computer storage medium can 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.
  • a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal.
  • the computer storage medium can 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 can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
  • the term “data processing apparatus” encompasses all kinds 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 can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
  • the apparatus can also include, in addition to hardware, 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 can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
  • a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment.
  • a computer program may, but 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 that are located 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, and any one or more processors of any kind of digital computer.
  • 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.
  • 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.
  • mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
  • a computer need not have such devices.
  • a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few.
  • 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 disks; and CD-ROM and DVD-ROM disks.
  • the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
  • a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer.
  • a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
  • keyboard and a pointing device e.g., a mouse or a trackball
  • Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
  • a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a
  • 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 of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components.
  • the components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network.
  • Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
  • LAN local area network
  • WAN wide area network
  • inter-network e.g., the Internet
  • peer-to-peer networks e.g., ad hoc peer-to-peer networks.
  • the computing system can include clients and servers.
  • a client and server are generally 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.
  • a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device).
  • client device e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device.
  • Data generated at the client device e.g., a result of the user interaction

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Databases & Information Systems (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for determining a number of unique viewers of a content item. In one aspect, a method includes receiving an identifier specifying characteristics of a user associated with a device that was used to present a given content item. A user category is identified for the received identifier based on the characteristics. Each user category of a set of user categories include a respective number of pseudo-users. The received identifier is assigned to a given pseudo-user in the identified user category based on a non-linear distribution of identifiers per actual user in the identified user category. A number of unique users, including the given pseudo-user, that have viewed the given content item is determined based on a total number of pseudo-users that have been assigned an identifier corresponding to presentation of the given content item.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit under 35 U.S.C. § 119(e) of U.S. Patent Application No. 62/052,932, entitled “DETERMINING A NUMBER OF UNIQUE VIEWERS OF A CONTENT ITEM,” filed Sep. 19, 2014. The disclosure of the foregoing application is incorporated herein by reference in its entirety for all purposes.
BACKGROUND
The Internet enables access to a wide variety of resources. For example, video, audio, webpages directed to particular subject matter, news articles, images, and other resources are accessible over the Internet. The wide variety of resources that are accessible over the Internet has enabled opportunities for content distributors to provide content items with resources that are requested by users. Content items are units of content (e.g., individual files or a set of files) that are presented at a user device. An advertisement is an example of a content item that advertisers can provide for presentation with particular resources, such as web pages and search results pages. An advertisement can be made eligible for presentation with specific resources and/or resources that are determined to match specified distribution criteria, such as distribution keywords.
SUMMARY
In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving an identifier specifying characteristics of a user associated with a device that was used to present a given content item; identifying, from a set of user categories, a user category for the received identifier based on the characteristics, each user category of the set of user categories including a respective number of pseudo-users; assigning the received identifier to a given pseudo-user in the identified user category based on a non-linear distribution of identifiers per actual user in the identified user category; determining a number of unique users, including the given pseudo-user, that have viewed the given content item based on a total number of pseudo-users that have been assigned an identifier corresponding to presentation of the given content item; and generating and providing data that causes a device to present the number of unique viewers. 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.
These and other embodiments can each optionally include one or more of the following features. Assigning the received identifier to the given pseudo-user can include selecting a first number from a range of numbers; determining a pseudo-user identifier based on a function of the first number, a product logarithmic function that uses the first number, and a number of actual users in the identified user category; and selecting the given pseudo-user based on the pseudo-user identifier. In some aspects, the first number is selected randomly from a uniform distribution of numbers in the range of numbers.
In some aspects, assigning the received identifier to the given pseudo-user comprises assigning the received identifier to the given pseudo-user based on a respective probability for each pseudo-user of the identified user category, the probability of each pseudo-user being determined based on the distribution of identifiers for actual users in the identifier user category. The probability for a first pseudo-user of the identified user category may be different from the probability for a second pseudo-user of the identified user category.
In some aspects, each user category includes a number of pseudo-users based on a number of actual users in a population of users that match user criteria for the user category. In some aspects, the received identifier includes a cookie.
Particular embodiments of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages. A content item provider can be provided an estimate of the number of unique viewers of a content item in real time or near real time as data regarding impressions of the content item are received. Other data regarding views of the content item can also be provided in real time or near real time, such as a demographic distribution of an audience of the content item, a reach of the content item, a frequency for the content item, and/or a gross rating point for the content item. The techniques described in this document enable a data processing apparatus to obtain more accurate estimates (and/or provide estimates faster) of the number of unique viewers of content items than analyzing previously received identifiers to determine updated estimates or simply counting the number of identifiers received.
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.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is an example environment in which a content management system distributes content items.
FIG. 2 is a graph of an example distribution of identifiers per unique viewer.
FIG. 3 is a flow chart of an example process for creating pseudo-users for a user category.
FIG. 4 is a flow chart of an example process for determining a distribution of identifiers per unique viewer for a user category.
FIG. 5 is a flow chart of an example process for determining a number of unique viewers of a content item and providing data specifying the number of unique viewers.
FIG. 6 is a block diagram of an example computer system.
Like reference numbers and designations in the various drawings indicate like elements.
DETAILED DESCRIPTION
A content provider may want to know the performance of a content item campaign or web resource. For example, the content provider may want to know how many people viewed a content item, how many times the content item was viewed, and which types of users viewed a given content item. A content item is a unit of content that can be presented at a user device. Examples of content items include advertisements, images, videos, documents, web pages, and applications (e.g., mobile apps). A content management system can generate and provide to a content provider a report that specifies information, such as reach, frequency, gross rating point (GRP), and/or demographic distribution of a reached audience. Reach can be defined as the number of unique users exposed to (e.g., viewed) a given content item during a given time period. Frequency refers to the average number of times that a unique user viewed a given content item over a given time period. Gross rating point is a measure that can be calculated, such as normalized reach multiplied by frequency.
The number of unique viewers exposed to a content item can be determined based on a number of identifiers received for the content item (e.g., that specifies a presentation of the content item). An identifier is data item (e.g., a cookie) associated with a user device at which a content item is presented and that uniquely identifies the user device. An identifier may be sent from a user device to the content management system in response to a presentation of a content item. The total number of identifiers received for the content item may not accurately reflect the actual number of unique viewers of the content item as multiple people may use the same device having the same identifier (e.g., same cookie) resulting in multiple unique viewers being considered a single unique viewer. Similarly, an individual may view the content item using multiple devices, each with different identifiers, resulting in an individual counting as multiple unique viewers.
The number of unique viewers of a content item can be estimated based on a known distribution of identifiers for a population of users. For example, an analysis of historical data, e.g., panel data, may indicate that the distribution of identifiers per unique viewer (e.g., per actual user) follows a particular non-linear (or linear) function. This distribution can be used to assign received identifiers to pseudo-users (e.g., online or in real time) such that a total number of pseudo-users that have been assigned an identifier follows the distribution, for example, at any given time during a given time period. The pseudo-users are non-real users that represent a population of users.
The total number of unique viewers of a content item can be estimated based on an estimated number of unique viewers for each of multiple user categories. User categories may be defined based on characteristics of the users, such as inferred interests (e.g., in fishing, camping, baseball, etc.), demographic characteristics, and/or geography (e.g., one category for a particular city and another category for a different city). The distribution of identifiers per unique viewer may differ for different user categories. A received identifier may be assigned to a pseudo-user of a user category in which the identifier belongs based on the distribution for that user category. For each user category, the number of unique viewers of a content item can be estimated based on the number of pseudo-users of the user category to which an identifier for the content item (e.g., an identifier that specifies a view of the content item) was assigned. The total number of unique viewers of the content item can then be estimated by summing the estimated number of unique viewers of the content item for each user category.
In some implementations, each identifier is assigned to a pseudo-user that belongs to a single category. In this way, the total number of unique viewers of a content item can be determined by summing the estimated number of unique viewers of the content item for each user category without counting an identifier multiple times (e.g., if the identifier was assigned to multiple user categories).
For situations in which the systems described here collect information about users, or may make use of information about users, the users may be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user. In addition, certain data may be treated in one or more ways before it is stored or used, so that certain information about the user is removed. For example, a user's identity may be treated so that no identifying information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, users may have control over how information is collected about them and used by a content server.
FIG. 1 is an example environment 100 in which a content management system 150 distributes content items. The example environment 100 includes a network 110 such as a local area network (LAN), wide area network (WAN), the Internet, or a combination thereof. The network 110 connects user devices 120, publishers 130, content providers 140, and the content management system 150. The example environment 100 may include many user devices 120, publishers 130, and content providers 140.
A user device 120 is an electronic device that is capable of requesting and receiving resources over the network 110. Example user devices 120 include personal computers, mobile communication devices (e.g., smartphones, tablet computing devices, and/or smart watches), and other devices that can send and receive data over the network 110. A user device 120 typically includes a user application, such as a web browser, to facilitate the sending and receiving of data over the network 110. The web browser can enable a user to display and interact with text, images, videos, music, and other information typically located on a web page at a website. The user devices 120 can also include applications (also referred to as apps) that can enable a user to display and interact with similar content.
Publishers 130 can be network content providers that publish websites and/or applications (e.g., mobile apps). A website includes one or more resources 135 associated with a domain name and hosted by one or more servers. An example website is a collection of web pages formatted in hypertext markup language (HTML) that can contain text, images, multimedia content, and programming elements, such as scripts.
A resource 135 is any data that can be provided by the publisher 130 over the network 110. Resources include HTML pages, word processing documents, and portable document format (PDF) documents, images, video, maps, and feed sources, to name just a few. The resources can include content, such as words, phrases, pictures, and so on, and may include embedded information (e.g., meta information and hyperlinks) and/or embedded instructions (e.g., scripts). The publishers 130 can receive requests for content from the user devices 120 and provide content (e.g., a resource 135) for presentation in response to the requests.
When a resource 135 is requested by a user device 120, the content management system 150 may receive a request for one or more content items to be provided with the resource 135. The request for content items can include characteristics of one or more slots or impressions that are defined for the requested resource 135. For example, a reference (e.g., URL) to the resource 135, a size of the slot, and/or media types that are available for presentation in the slot can be provided to the content management system 150. Similarly, keywords associated with a requested resource (“resource keywords”) can also be provided to the content management system 150 to facilitate identification of content that is relevant to the resource 135. A request for a resource 135 can also include an identifier, such as a cookie, identifying the requesting user device 120 (e.g., in instances in which the user consents in advance to the use of such an identifier).
Based, for example, on data included in the request for content, the content management system 150 can select content items that are eligible to be provided in response to the request, such as content items having characteristics matching the characteristics of a given slot. As another example, content items having selection keywords that match the resource keywords may be selected as eligible content items by the content management system 150. One or more selected content items can be provided to the user device 120 in association with providing an associated resource 135. In some implementations, the content management system 150 can select content items based at least in part on results of an auction. For example, for the eligible content items, the content management system 150 can receive bids from content providers 140 and allocate the slots, based at least in part on the received bids (e.g., based on the highest bidders at the conclusion of the auction).
The content management system 150 includes a unique viewer engine 152 that determines a number of unique viewers to which content items and/or resources 135 have been provided. For the purposes of this document, a resource 135 is considered a content item for which a number of unique viewers can be determined or estimated. The unique viewer engine 152 may determine an estimated number of unique viewers of a content item based on a number of identifiers that specify that the content item was viewed. An identifier is a data item (e.g., a cookie) associated with a user device 120 and that uniquely identifies the user device 120. A user device 120 may provide an identifier in response to presentation of a content item. For example, the user device 120 may provide the identifier with a request for content items or after a content item has been presented at the user device 120. In another example, the publisher 130 may receive data from an identifier (e.g., an identifier placed on the user device 120 by its website) when the user device requests the resource 135 from the publisher's website. In this example, the publisher 130 may provide the identifier (or certain data included in the identifier) to the content management system 150.
An identifier for a user device 120 may include data that specifies one or more content items that have been presented at the user device 120 and/or characteristics (e.g., inferred interests and/or demographic information) of a user associated with the user device 120. The content management system 150 may provide controls that allow the user to select which, if any, information is included in an identifier of the user's device(s).
The content management system 150 can determine the estimated number of unique viewers of a content item based on one or more distributions of identifiers per unique viewer. In one example, the estimated number of unique viewers is determined using a single distribution for an entire population (e.g., the online population of the U.S.). In another example, a distribution is determined for each user category in a set of user categories. Each user category can be defined based on characteristics of the users (e.g., inferred interests and/or demographic characteristics). For example, there may be a user category for users that are interested in fishing and another user category for users interested in football.
In some implementations, the distribution of identifiers per unique viewer for a user category (or for an entire population) can be approximated using Relationship (1) below.
y = kxP kx + P Relationship ( 1 )
In Relationship (1), “y” is the number of unique viewers; “x” is the number of identifiers; “P” is the actual population of users in a user category; and “k” is a parameter specific to the user category.
The parameter “k” for each distribution (and thus the distribution itself) can be determined using actual (e.g., historical) data regarding identifiers and unique viewers. In some implementations, the parameter “k” is determined using panel data 154 for a virtual panel. The virtual panel can include actual users that use one or more application programs that provide page link analysis browser request data, which can be used to infer characteristics of users based on users' web browsing history data while preserving the privacy of individual users and their browsing history. The page link analysis browser request data can include the web page browsing history of a user, e.g., identity of content items viewed and other data related to the user and resources viewed by the user. The virtual panel data can then be used to determine the number of unique viewers of a content item and the number of identifiers that correspond to the unique viewers. The virtual panel can include a large number (e.g., thousands or millions) of users, allowing the unique viewer engine 152 to determine an appropriate value for the parameter “k.” Other appropriate methods of gathering web usage data can also be used to determine the number of unique viewers of a content item and the number of identifiers that correspond to the unique viewers.
The unique viewer engine 152 can determine the estimated number of unique viewers of a content item based on one or more distributions and a number of identifiers received by the content management system 150 that specify the a presentation of the content item. In some implementations, the unique viewer engine 152 creates pseudo-users for each user category based on a number of actual people that have characteristics that meet user criteria of the user category. For example, if there is a user category for users interested in scuba diving and there are 25,000 actual users that are interested in scuba diving, the unique viewer engine 152 may create 25,000 pseudo-users for a user category corresponding to users that are interested in scuba diving.
When an identifier is received by the content management system 150, the unique viewer engine 152 can identify a user category that corresponds to the identifier. Continuing the previous example, if an identifier is received for a user that is interested in scuba diving, the user category for scuba diving may be identified for the identifier. The unique viewer engine 152 may then assign the identifier to a pseudo-user in the identified user category based on the distribution determined for the user category. For example, the unique viewer engine 152 may assign the identifier to a pseudo-user such that the distribution of identifiers per unique viewer in the identified user category matches or approximates the distribution for the user category.
In some implementations, the unique viewer engine 152 assigns the received identifier to a pseudo-user within the identified user category based on probabilities associated with each pseudo-user in the user category. For example, the probabilities for each pseudo-user may be selected such that the identifiers are distributed to pseudo-users in a manner that matches the distribution for the user category.
In some implementations, the unique viewer engine 152 assigns the received identifier to a pseudo-user within the identified user category based on a product log function (also called a Lambert W function or omega function). Other appropriate functions may also be used. For example, if the parameter “k” for a user category has a value of one or close to one, identifiers that correspond to the user category can be assigned to pseudo-users using Relationship (2) below.
Pseudo User = population * - t W ( - t e , , - 1 ) Relationship ( 2 )
In Relationship (2), “Pseudo-User” is a unique identifier for a pseudo-user in the user category; population is the total actual population for the user category (e.g., 50,000 if there are 50,000 actual people that match the user criteria for the user category); “t” is a number (e.g., selected randomly or pseudo-randomly for the identifier); and
W ( - t e , - 1 )
is the first branch of the product log function. In this example, each pseudo-user has a unique identifier based on the number of actual people in the user category. For example, if the user category includes 50,000 people, the unique identifiers for the pseudo-users in the user category would be in the range of 1-50,000 and each pseudo-user would be assigned one of the integers in that range.
The value of the parameter “t” can be selected randomly for each identifier, e.g., when (or after) the identifier is received. The value of “t” can be within a normalized range of the population range for the user category. For example, the population range can be normalized to a range from 0-1 and the value of “t” can be selected from this range for a received identifier. The selected value for “t” can then be used in Relationship (2) to determine which pseudo-user to assign the identifier. Data specifying a mapping between received identifiers and their assigned pseudo-users can be stored in a pseudo-user data 156.
The mapping between identifiers and pseudo-users can be used to determine an estimated number of unique viewers that have viewed content items. For example, to determine the number of unique users that have viewed a given content item, the unique viewer engine 152 can determine the number of pseudo-users that have been assigned an identifier that specifies an impression of that content item. The unique viewer engine 152 can maintain, e.g., in performance data 158, a running total of the estimated number of unique viewers of each content item and update the running totals based on newly received identifiers.
The unique viewer engine 152 can also determine other performance data based on the assignment of received identifiers to pseudo-users. For example, the unique viewer engine 152 may determine an estimated number of unique viewers in each user category that viewed a content item based on the number of pseudo-users in the user category that has been assigned an identifier that specified a view of the content item. Other performance data, such as estimated reach, estimated GRP, and estimated frequency can also be determined based on the assignments of received identifiers to pseudo-users.
FIG. 2 is a graph 200 of an example distribution 205 of identifiers per unique viewer. The example distribution 205 may be for a total population (e.g., in a particular location) or for the population of a particular user category. In this example, the number of unique viewers increases non-linearly with an increase in identifiers, but the number of unique viewers does not reach the amount of the total population of actual users (represented by the top of the graph 200). That is, in this example, an identifier has not been received for every member of the population.
FIG. 3 is a flow chart of an example process 300 for creating pseudo-users for a user category. Operations of the process 300 can be implemented, for example, by a data processing apparatus, such as the content management system 150 of FIG. 1. The process 300 can also be implemented by instructions stored on computer storage medium, where execution of the instructions by a data processing apparatus cause the data processing apparatus to perform the operations of the process 300.
Data is obtained for a population of users (302). The obtained data can include data that specifies a total population for a particular area. For example, this data may include census data that specifies the total number of people that live in particular areas. This data may also specify characteristics of users, such as inferred interests or demographic data.
The users in the population are assigned to user categories (304). For example, a number of user categories may be defined for a content item campaign or for multiple content item campaigns. Each user category can be associated with respective user criteria. For example, the user criteria for a particular user category may specify a particular interest, e.g., traveling. Each user can be assigned to a user category based on the user's characteristics and the user criteria of the user categories.
Pseudo-users are created for the population of users (306). A pseudo-user is a non-real user that represents a user of the population. For example, the number of pseudo-users may be equal to the number of actual users in the population. Pseudo-users may be created for each user category based on the number of actual users in each user category. For example, if there are 10,000 users in the population that match the user criteria for a user category, 10,000 users may be created for the user category. As the pseudo-users are not real users, the pseudo-users may not, in some implementations, be associated with actual user data. Instead, each pseudo-user may be associated with its corresponding user category, a unique identifier that identifies the pseudo-user, and any identifiers assigned to the pseudo-user, as described in more detail below.
FIG. 4 is a flow chart of an example process 400 for determining a distribution of identifiers per unique viewer for a user category. Operations of the process 400 can be implemented, for example, by a data processing apparatus, such as the content management system 150 of FIG. 1. The process 400 can also be implemented by instructions stored on computer storage medium, where execution of the instructions by a data processing apparatus cause the data processing apparatus to perform the operations of the process 400.
Panel data is obtained for a panel of users (402). As described above, the virtual panel can include actual users that allow page link analysis browser request data to be provided to a content management system. The panel data can include the page link analysis browser request data, which includes the web page browsing history of the panel users. The web page browsing history for a panel user can include the identity of content items viewed by panel user and other data related to the panel user and resources viewed by the panel user.
The panel users are assigned to user categories (404). For example, the panel users may be assigned to the same set of user categories as the population of users in the process 300 of FIG. 3. Each panel user may be assigned to a particular user category based on the characteristics (e.g., inferred interests) of the panel user (or actual provided characteristics of the panel user) and the user criteria of the particular user category.
A distribution of identifiers per unique viewer is determined for each user category using the panel data (406). The distribution for a user category can be determined by identifying the number of identifiers received for each panel user assigned to the user category. Based on the number of identifiers for each panel user, a distribution can be approximated, for example, using Relationship (1) above. For example, the parameter “k” can be approximated such that a distribution curve resulting from Relationship (1) and the value of parameter “k” fits the panel data for the user category.
FIG. 5 is a flow chart of an example process 500 for determining a number of unique viewers of a content item and providing data specifying the number of unique viewers. Operations of the process 500 can be implemented, for example, by a data processing apparatus, such as the content management system 150 of FIG. 1. The process 500 can also be implemented by instructions stored on computer storage medium, where execution of the instructions by a data processing apparatus cause the data processing apparatus to perform the operations of the process 500.
An identifier is received for a content item presentation (502). For example, a user device may send the identifier with a content request and/or in response to presentation of a content item. The identifier may include characteristics of a user (e.g., inferred interests or demographic data) of the user device and information identifying one or more content items presented at the user device, for each, in a particular time period.
A user category is identified for the received identifier (504). The user category for the received identifier may be identified by comparing characteristics of the user (e.g., from the received identifier) to user criteria of each user category. The received identifier may be assigned to the user category for which the user data of the received identifier matches or best matches.
The received identifier is assigned to a pseudo-user of the identified user category (506). Received identifiers may be assigned to pseudo-users of the user categories in a manner such that the distribution of identifiers assigned to the user category per pseudo-user matches or approximately matches the distribution of identifiers per unique viewer of the user category.
In some implementations, each pseudo-user of the user category is assigned a probability such that the distribution of identifiers per pseudo-user follows the distribution of identifiers per unique viewer of the user category. The probabilities of the pseudo-users may differ to simulate the different numbers of identifiers per unique viewer of the user category. For example, one actual user in the user category may have multiple identifiers, each corresponding to a particular user device while another actual user may have only one identifier. Similarly, a first pseudo-user may have a higher probability than a second pseudo-user such that the first pseudo-user is more likely to be assigned multiple received identifiers over time than the second pseudo-user.
In a probability implementation, the received identifier may be randomly assigned to a pseudo-user in the user category based on the probabilities. If a same identifier is received multiple times, the identifier may remain assigned to the same pseudo-user.
In some implementations, the received identifier is assigned to a pseudo-user in the user category using a function that is based on a product log function, such as Relationship (2) above. In this example, the number of pseudo-users in the user category may be normalized to a range between zero and one. For example, if there are 15,000 pseudo-users in the user category, the numerical range of 0-10 may be normalized to 0-1. The received identifier may then be assigned to a number in the normalized range of 0-1. Continuing the previous example, as there are 10 pseudo-users represented by the normalized range of 0-1, a number from the set [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, and 1.0] may be selected for the received identifier. If there were only two pseudo-users in the user category, the number for the received identifier may be selected from the set of [0.5, 1.0]. This selected number represents the “t” parameter of Relationship (2). The number for the identifier used as the “t” parameter may be selected randomly (e.g., based on a uniform distribution) or pseudo-randomly.
The value of the “t” parameter is then used in the function of Relationship (2) to determine a pseudo-user identifier. Using Relationship (2), the pseudo-user identifier is determined based on a function of a first number (the value of parameter “t”), a product logarithmic function that uses the first number, and a number of actual users in the identified user category. The received identifier may be assigned to the pseudo-user uniquely identified by the determined pseudo-user identifier.
An estimated number of unique viewers that have viewed the content item is determined (508). The estimated number of unique viewers of the content item can be determined by identifying each pseudo-user that has been assigned a received identifier that specifies a view of the content item. For example, if 1,000 identifiers have been received that specify a particular content item and those 1,000 identifiers have been assigned to 9,500 different pseudo-users, the estimated number of unique viewers of the content item is 9,500. The estimated number of unique viewers of the content item can also be determined for each user category by counting the number of pseudo-users in the user category that has been assigned an identifier that specifies the content item.
Data is generated and provided to a device (510). The data may include instructions that cause the device to present the estimated number of unique viewers of the content item at the device. For example, the device may execute the instructions and the instructions, upon execution, may cause the device to present the estimated number of viewers of the content item. In some implementations, a report may be provided that described the estimated number of viewers of the content item across a population of users and/or for one or more user categories.
The example process 500 can be performed online and/or in real time in response to receiving an identifier, for example, without re-evaluating the distributions of identifiers and unique viewers. In addition, a running count can be maintained for each content item and the count(s) can be updated based on the assignment of newly received identifiers to pseudo-users.
The estimated number of unique viewers of a content item can be used for many purposes. For example, the content management system 150 of FIG. 1 can automatically generate reports that specify the number of unique viewers of content items provided by a content provider and transmit the reports to the content provider. The content management system 150 may generate the reports periodically, e.g., daily, weekly, or hourly, so that the content providers can monitor the performance of their content items. The reports may include the total number of unique viewers of a content item and/or the number of unique viewers for each user category. The reports may include data, e.g., code, that causes a server of the content provider to present the report.
The number of unique viewers of a content item can be used to determine how much a content provider should pay for presentations of its content items. For example, a content provider may agree to pay a certain amount for each unique viewer that views a content item. The number of unique viewers and the amount that the content provider agrees to pay for each unique viewer of the content item can be used to determine a total amount that the content provider should pay.
The number of unique viewers of a content item can be used for forecasting purposes. For example, the number of unique viewers of a content item during a given period of time can be used to forecast the number of unique viewers that will view the content item during future time periods. The content management system 150 can include this forecasted number in reports generated and transmitted to the content provider.
The number of unique viewers of a content item during a given time period can be used to pace the number of presentations of the content item. For example, a content provider may want to have its content item presented to a total of 100 unique viewers over a 10 day period. In this example, the content provider may want to have its content item presented to about 10 unique viewers each day of the 10 day period. If the unique viewer engine 152 of the content management system 150 determines that more than 10 unique viewers viewed the content item on the first of the 10 days, the content provider (or a server of the content provider) or the content management system 150 (if permitted to by the content provider) may automatically adjust campaign criteria (e.g., bid amounts, keywords for which the content item is distributed, user categories, budgets, etc.) for the content item. In this example, the bid for the content item may be reduced and/or the number of keywords for which the content item is distributed may be reduced to reduce the number of unique viewers that will view the content item over the next 9 days.
The number of unique viewers of a content item can be used to automatically adjust campaign criteria for the content item and/or to recommend adjustments to the content provider that provides the content item. For example, the content management system 150 can automatically adjust campaign criteria (e.g., bid amounts, keywords, user categories, and/or budget) to increase the reach of the content item overall or in particular user categories. In another example, the content management system 150 can generate a recommendation that specifies adjustments to the campaign criteria for a content item and transmit the recommendation for presentation to the content provider that provides the content item.
The techniques described above for determining the number of unique viewers of a content item can also be used to determine the number of unique viewers of other items, such as electronic resources (e.g., web pages). For example, the content management system 150 (or the publisher itself) may determine the number of unique viewers of a web page and provide a report to the publisher of the web page that specifies the number of unique viewers (overall number and/or category specific number).
FIG. 6 is a block diagram of an example computer system 600 that can be used to perform operations described above. The system 600 includes a processor 610, a memory 620, a storage device 630, and an input/output device 640. Each of the components 610, 620, 630, and 640 can be interconnected, for example, using a system bus 650. The processor 610 is capable of processing instructions for execution within the system 600. In one implementation, the processor 610 is a single-threaded processor. In another implementation, the processor 610 is a multi-threaded processor. The processor 610 is capable of processing instructions stored in the memory 620 or on the storage device 630.
The memory 620 stores information within the system 600. In one implementation, the memory 620 is a computer-readable medium. In one implementation, the memory 620 is a volatile memory unit. In another implementation, the memory 620 is a non-volatile memory unit.
The storage device 630 is capable of providing mass storage for the system 600. In one implementation, the storage device 630 is a computer-readable medium. In various different implementations, the storage device 630 can include, for example, a hard disk device, an optical disk device, a storage device that is shared over a network by multiple computing devices (e.g., a cloud storage device), or some other large capacity storage device.
The input/output device 640 provides input/output operations for the system 600. In one implementation, the input/output device 640 can include one or more of a network interface device, e.g., an Ethernet card, a serial communication device, e.g., an RS-232 port, and/or a wireless interface device, e.g., and 802.11 card. In another implementation, the input/output device can include driver devices configured to receive input data and send output data to other input/output devices, e.g., keyboard, printer and display devices 660. Other implementations, however, can also be used, such as mobile computing devices, mobile communication devices, set-top box television client devices, etc.
Although an example processing system has been described in FIG. 6, implementations of the subject matter and the 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.
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 computer storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially-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 a data processing apparatus. A computer storage medium can 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. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal. The computer storage medium can 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 can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
The term “data processing apparatus” encompasses all kinds 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 can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can also include, in addition to hardware, 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 can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but 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 that are located 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, and any one or more processors of any kind of digital computer. 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, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. 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 disks; and 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 displaying 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 kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests 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 of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
The computing system can include clients and servers. A client and server are generally 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, a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions 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. Moreover, 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 combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while 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 certain circumstances, 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. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.

Claims (20)

What is claimed is:
1. A method performed by data processing apparatus, the method comprising:
receiving an identifier specifying characteristics of a user associated with a device that was used to present a given content item;
identifying, from a set of user categories, a user category for the received identifier based on the characteristics, each user category of the set of user categories including a respective number of pseudo-users;
assigning the received identifier to a given pseudo-user in the identified user category based on a non-linear distribution of identifiers per actual user in the identified user category;
determining a number of unique users, including the given pseudo-user, that have viewed the given content item based on a total number of pseudo-users that have been assigned an identifier corresponding to presentation of the given content item; and
generating and providing data that causes a device to present the number of unique viewers.
2. The method of claim 1, wherein assigning the received identifier to the given pseudo-user comprises:
selecting a first number from a range of numbers;
determining a pseudo-user identifier based on a function of the first number, a product logarithmic function that uses the first number, and a number of actual users in the identified user category; and
selecting the given pseudo-user based on the pseudo-user identifier.
3. The method of claim 2, wherein the first number is selected randomly from a uniform distribution of numbers in the range of numbers.
4. The method of claim 1, wherein assigning the received identifier to the given pseudo-user comprises assigning the received identifier to the given pseudo-user based on a respective probability for each pseudo-user of the identified user category, the probability of each pseudo-user being determined based on the distribution of identifiers for actual users in the identifier user category.
5. The method of claim 4, wherein the probability for a first pseudo-user of the identified user category is different from the probability for a second pseudo-user of the identified user category.
6. The method of claim 1, wherein each user category includes a number of pseudo-users based on a number of actual users in a population of users that match user criteria for the user category.
7. The method of claim 1, wherein the received identifier comprises a cookie.
8. A system, comprising:
a data processing apparatus; and
a memory apparatus in data communication with the data processing apparatus and storing instructions executable by the data processing apparatus and that upon such execution cause the data processing apparatus to perform operations comprising:
receiving an identifier specifying characteristics of a user associated with a device that was used to present a given content item;
identifying, from a set of user categories, a user category for the received identifier based on the characteristics, each user category of the set of user categories including a respective number of pseudo-users;
assigning the received identifier to a given pseudo-user in the identified user category based on a non-linear distribution of identifiers per actual user in the identified user category;
determining a number of unique users, including the given pseudo-user, that have viewed the given content item based on a total number of pseudo-users that have been assigned an identifier corresponding to presentation of the given content item; and
generating and providing data that causes a device to present the number of unique viewers.
9. The system of claim 8, wherein assigning the received identifier to the given pseudo-user comprises:
selecting a first number from a range of numbers;
determining a pseudo-user identifier based on a function of the first number, a product logarithmic function that uses the first number, and a number of actual users in the identified user category; and
selecting the given pseudo-user based on the pseudo-user identifier.
10. The system of claim 9, wherein the first number is selected randomly from a uniform distribution of numbers in the range of numbers.
11. The system of claim 8, wherein assigning the received identifier to the given pseudo-user comprises assigning the received identifier to the given pseudo-user based on a respective probability for each pseudo-user of the identified user category, the probability of each pseudo-user being determined based on the distribution of identifiers for actual users in the identifier user category.
12. The system of claim 11, wherein the probability for a first pseudo-user of the identified user category is different from the probability for a second pseudo-user of the identified user category.
13. The system of claim 8, wherein each user category includes a number of pseudo-users based on a number of actual users in a population of users that match user criteria for the user category.
14. The system of claim 8, wherein the received identifier comprises a cookie.
15. A non-transitory computer-readable storage medium having machine instructions stored therein that when executed by one or more processors cause the one or more processors to perform operations comprising:
receiving an identifier specifying characteristics of a user associated with a device that was used to present a given content item;
identifying, from a set of user categories, a user category for the received identifier based on the characteristics, each user category of the set of user categories including a respective number of pseudo-users;
assigning the received identifier to a given pseudo-user in the identified user category based on a non-linear distribution of identifiers per actual user in the identified user category;
determining a number of unique users, including the given pseudo-user, that have viewed the given content item based on a total number of pseudo-users that have been assigned an identifier corresponding to presentation of the given content item; and
generating and providing data that causes a device to present the number of unique viewers.
16. The non-transitory computer-readable storage medium of claim 15, wherein assigning the received identifier to the given pseudo-user comprises:
selecting a first number from a range of numbers;
determining a pseudo-user identifier based on a function of the first number, a product logarithmic function that uses the first number, and a number of actual users in the identified user category; and
selecting the given pseudo-user based on the pseudo-user identifier.
17. The non-transitory computer-readable storage medium of claim 16, wherein the first number is selected randomly from a uniform distribution of numbers in the range of numbers.
18. The non-transitory computer-readable storage medium of claim 15, wherein assigning the received identifier to the given pseudo-user comprises assigning the received identifier to the given pseudo-user based on a respective probability for each pseudo-user of the identified user category, the probability of each pseudo-user being determined based on the distribution of identifiers for actual users in the identifier user category.
19. The non-transitory computer-readable storage medium of claim 18, wherein the probability for a first pseudo-user of the identified user category is different from the probability for a second pseudo-user of the identified user category.
20. The non-transitory computer-readable storage medium of claim 15, wherein each user category includes a number of pseudo-users based on a number of actual users in a population of users that match user criteria for the user category.
US14/858,825 2014-09-19 2015-09-18 Determining a number of unique viewers of a content item Active 2037-01-29 US10324960B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/858,825 US10324960B1 (en) 2014-09-19 2015-09-18 Determining a number of unique viewers of a content item

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462052932P 2014-09-19 2014-09-19
US14/858,825 US10324960B1 (en) 2014-09-19 2015-09-18 Determining a number of unique viewers of a content item

Publications (1)

Publication Number Publication Date
US10324960B1 true US10324960B1 (en) 2019-06-18

Family

ID=66825918

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/858,825 Active 2037-01-29 US10324960B1 (en) 2014-09-19 2015-09-18 Determining a number of unique viewers of a content item

Country Status (1)

Country Link
US (1) US10324960B1 (en)

Cited By (151)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10585968B2 (en) * 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10586075B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US10586072B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US10594740B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US10599870B2 (en) 2016-06-10 2020-03-24 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10614246B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US10614247B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems for automated classification of personal information from documents and related methods
US10642870B2 (en) 2016-06-10 2020-05-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US10692033B2 (en) 2016-06-10 2020-06-23 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10706447B2 (en) 2016-04-01 2020-07-07 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US10706176B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data-processing consent refresh, re-prompt, and recapture systems and related methods
US10705801B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for identity validation of data subject access requests and related methods
US10706379B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for automatic preparation for remediation and related methods
US10708305B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Automated data processing systems and methods for automatically processing requests for privacy-related information
US10706131B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US10706174B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US10713387B2 (en) 2016-06-10 2020-07-14 OneTrust, LLC Consent conversion optimization systems and related methods
US10726158B2 (en) 2016-06-10 2020-07-28 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US10754981B2 (en) 2016-06-10 2020-08-25 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10762236B2 (en) 2016-06-10 2020-09-01 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10769302B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Consent receipt management systems and related methods
US10769301B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US10776515B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10776518B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Consent receipt management systems and related methods
US10776514B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US10776517B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10791150B2 (en) 2016-06-10 2020-09-29 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US10798133B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10796020B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Consent receipt management systems and related methods
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US10803097B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10805354B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10803199B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US10803198B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US10846261B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for processing data subject access requests
US10848523B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10873606B2 (en) 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10949170B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10970675B2 (en) 2016-06-10 2021-04-06 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11243669B2 (en) * 2018-02-27 2022-02-08 Verizon Media Inc. Transmitting response content items
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11373007B2 (en) 2017-06-16 2022-06-28 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US11386341B1 (en) * 2018-03-13 2022-07-12 Meta Platforms, Inc. Inferring a reach of a content item presented to individuals by one or more content publishers for a set of impression frequencies
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11397819B2 (en) 2020-11-06 2022-07-26 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11410106B2 (en) 2016-06-10 2022-08-09 OneTrust, LLC Privacy management systems and methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11436373B2 (en) 2020-09-15 2022-09-06 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11442906B2 (en) 2021-02-04 2022-09-13 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
US11444976B2 (en) 2020-07-28 2022-09-13 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US11475165B2 (en) 2020-08-06 2022-10-18 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11494515B2 (en) 2021-02-08 2022-11-08 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US11526624B2 (en) 2020-09-21 2022-12-13 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
US11533315B2 (en) 2021-03-08 2022-12-20 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11546661B2 (en) 2021-02-18 2023-01-03 OneTrust, LLC Selective redaction of media content
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11601464B2 (en) 2021-02-10 2023-03-07 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11651402B2 (en) 2016-04-01 2023-05-16 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of risk assessments
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US11775348B2 (en) 2021-02-17 2023-10-03 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
US11797528B2 (en) 2020-07-08 2023-10-24 OneTrust, LLC Systems and methods for targeted data discovery
US11966799B2 (en) 2014-01-17 2024-04-23 Renée BUNNELL System and methods for determining character strength via application programming interface
US12045266B2 (en) 2016-06-10 2024-07-23 OneTrust, LLC Data processing systems for generating and populating a data inventory
US12052289B2 (en) 2016-06-10 2024-07-30 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US12118121B2 (en) 2016-06-10 2024-10-15 OneTrust, LLC Data subject access request processing systems and related methods
US12136055B2 (en) 2016-06-10 2024-11-05 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US12153704B2 (en) 2021-08-05 2024-11-26 OneTrust, LLC Computing platform for facilitating data exchange among computing environments
US20240420177A1 (en) * 2023-06-14 2024-12-19 Microsoft Technology Licensing, Llc Estimated unique engagement measurement with user privacy protection
US12265896B2 (en) 2020-10-05 2025-04-01 OneTrust, LLC Systems and methods for detecting prejudice bias in machine-learning models
US12299065B2 (en) 2016-06-10 2025-05-13 OneTrust, LLC Data processing systems and methods for dynamically determining data processing consent configurations

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030208594A1 (en) 2002-05-06 2003-11-06 Urchin Software Corporation. System and method for tracking unique visitors to a website
US20040243704A1 (en) 2003-04-14 2004-12-02 Alfredo Botelho System and method for determining the unique web users and calculating the reach, frequency and effective reach of user web access
US6839680B1 (en) * 1999-09-30 2005-01-04 Fujitsu Limited Internet profiling
US20100228850A1 (en) * 2009-03-04 2010-09-09 Max Fomitchev Method and System for Estimating Unique Visitors for Internet Sites
US7933818B1 (en) * 2004-07-13 2011-04-26 Amazon Technologies, Inc. Service for automatically detecting and responding to transition events that occur during browsing of an electronic catalog
US8190475B1 (en) * 2007-09-05 2012-05-29 Google Inc. Visitor profile modeling
US20140040463A1 (en) 2011-04-12 2014-02-06 Google Inc. Determining unique vistors to a network location
US20140081767A1 (en) 2012-09-19 2014-03-20 Hulu, LLC Estimating unique impressions in an online video distribution system
US20140108130A1 (en) * 2012-10-12 2014-04-17 Google Inc. Calculating audience metrics for online campaigns
US9432253B1 (en) * 2011-11-23 2016-08-30 Amazon Technologies, Inc. Automated multi-user system detection

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6839680B1 (en) * 1999-09-30 2005-01-04 Fujitsu Limited Internet profiling
US20030208594A1 (en) 2002-05-06 2003-11-06 Urchin Software Corporation. System and method for tracking unique visitors to a website
US20040243704A1 (en) 2003-04-14 2004-12-02 Alfredo Botelho System and method for determining the unique web users and calculating the reach, frequency and effective reach of user web access
US7933818B1 (en) * 2004-07-13 2011-04-26 Amazon Technologies, Inc. Service for automatically detecting and responding to transition events that occur during browsing of an electronic catalog
US8190475B1 (en) * 2007-09-05 2012-05-29 Google Inc. Visitor profile modeling
US20100228850A1 (en) * 2009-03-04 2010-09-09 Max Fomitchev Method and System for Estimating Unique Visitors for Internet Sites
US8386599B2 (en) 2009-03-04 2013-02-26 Max Fomitchev Method and system for estimating unique visitors for internet sites
US20140040463A1 (en) 2011-04-12 2014-02-06 Google Inc. Determining unique vistors to a network location
US9432253B1 (en) * 2011-11-23 2016-08-30 Amazon Technologies, Inc. Automated multi-user system detection
US20140081767A1 (en) 2012-09-19 2014-03-20 Hulu, LLC Estimating unique impressions in an online video distribution system
US20140108130A1 (en) * 2012-10-12 2014-04-17 Google Inc. Calculating audience metrics for online campaigns

Cited By (239)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11966799B2 (en) 2014-01-17 2024-04-23 Renée BUNNELL System and methods for determining character strength via application programming interface
US10706447B2 (en) 2016-04-01 2020-07-07 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US12288233B2 (en) 2016-04-01 2025-04-29 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11651402B2 (en) 2016-04-01 2023-05-16 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of risk assessments
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10956952B2 (en) 2016-04-01 2021-03-23 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US10853859B2 (en) 2016-04-01 2020-12-01 OneTrust, LLC Data processing systems and methods for operationalizing privacy compliance and assessing the risk of various respective privacy campaigns
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11120161B2 (en) 2016-06-10 2021-09-14 OneTrust, LLC Data subject access request processing systems and related methods
US10614247B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems for automated classification of personal information from documents and related methods
US10642870B2 (en) 2016-06-10 2020-05-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US10692033B2 (en) 2016-06-10 2020-06-23 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10706176B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data-processing consent refresh, re-prompt, and recapture systems and related methods
US10705801B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for identity validation of data subject access requests and related methods
US10706379B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for automatic preparation for remediation and related methods
US10708305B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Automated data processing systems and methods for automatically processing requests for privacy-related information
US10706131B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US10706174B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US10713387B2 (en) 2016-06-10 2020-07-14 OneTrust, LLC Consent conversion optimization systems and related methods
US10726158B2 (en) 2016-06-10 2020-07-28 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US10754981B2 (en) 2016-06-10 2020-08-25 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10762236B2 (en) 2016-06-10 2020-09-01 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10769303B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for central consent repository and related methods
US10769302B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Consent receipt management systems and related methods
US10769301B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US10776515B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10776518B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Consent receipt management systems and related methods
US10776514B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US10776517B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10791150B2 (en) 2016-06-10 2020-09-29 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US10798133B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10796020B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Consent receipt management systems and related methods
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US12299065B2 (en) 2016-06-10 2025-05-13 OneTrust, LLC Data processing systems and methods for dynamically determining data processing consent configurations
US10803097B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10805354B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10803199B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US10803198B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US10846261B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for processing data subject access requests
US10848523B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10867072B2 (en) 2016-06-10 2020-12-15 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US10867007B2 (en) 2016-06-10 2020-12-15 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10873606B2 (en) 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US10929559B2 (en) 2016-06-10 2021-02-23 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10949567B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10949544B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10949170B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10599870B2 (en) 2016-06-10 2020-03-24 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10586075B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US10970371B2 (en) 2016-06-10 2021-04-06 OneTrust, LLC Consent receipt management systems and related methods
US10970675B2 (en) 2016-06-10 2021-04-06 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10972509B2 (en) 2016-06-10 2021-04-06 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US10984132B2 (en) 2016-06-10 2021-04-20 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US10997542B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Privacy management systems and methods
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11023616B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11030327B2 (en) 2016-06-10 2021-06-08 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11030563B2 (en) 2016-06-10 2021-06-08 OneTrust, LLC Privacy management systems and methods
US11030274B2 (en) 2016-06-10 2021-06-08 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11036771B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11036674B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for processing data subject access requests
US11036882B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11062051B2 (en) 2016-06-10 2021-07-13 OneTrust, LLC Consent receipt management systems and related methods
US11070593B2 (en) 2016-06-10 2021-07-20 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11068618B2 (en) 2016-06-10 2021-07-20 OneTrust, LLC Data processing systems for central consent repository and related methods
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11100445B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11113416B2 (en) 2016-06-10 2021-09-07 OneTrust, LLC Application privacy scanning systems and related methods
US11244071B2 (en) 2016-06-10 2022-02-08 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US11120162B2 (en) 2016-06-10 2021-09-14 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11122011B2 (en) 2016-06-10 2021-09-14 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11126748B2 (en) 2016-06-10 2021-09-21 OneTrust, LLC Data processing consent management systems and related methods
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11138336B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11138318B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11244072B2 (en) 2016-06-10 2022-02-08 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11144670B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US12204564B2 (en) 2016-06-10 2025-01-21 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11182501B2 (en) 2016-06-10 2021-11-23 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11240273B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11195134B2 (en) 2016-06-10 2021-12-07 OneTrust, LLC Privacy management systems and methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US10585968B2 (en) * 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US10614246B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US12216794B2 (en) 2016-06-10 2025-02-04 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US12190330B2 (en) 2016-06-10 2025-01-07 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US11256777B2 (en) 2016-06-10 2022-02-22 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11301589B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Consent receipt management systems and related methods
US11308435B2 (en) 2016-06-10 2022-04-19 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11328240B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11334681B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Application privacy scanning systems and related meihods
US11334682B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data subject access request processing systems and related methods
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11347889B2 (en) 2016-06-10 2022-05-31 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11361057B2 (en) 2016-06-10 2022-06-14 OneTrust, LLC Consent receipt management systems and related methods
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US12164667B2 (en) 2016-06-10 2024-12-10 OneTrust, LLC Application privacy scanning systems and related methods
US12158975B2 (en) 2016-06-10 2024-12-03 OneTrust, LLC Data processing consent sharing systems and related methods
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US12147578B2 (en) 2016-06-10 2024-11-19 OneTrust, LLC Consent receipt management systems and related methods
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11409908B2 (en) 2016-06-10 2022-08-09 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US11410106B2 (en) 2016-06-10 2022-08-09 OneTrust, LLC Privacy management systems and methods
US11416636B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing consent management systems and related methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11416576B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing consent capture systems and related methods
US11418516B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Consent conversion optimization systems and related methods
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11416634B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Consent receipt management systems and related methods
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US12136055B2 (en) 2016-06-10 2024-11-05 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US12118121B2 (en) 2016-06-10 2024-10-15 OneTrust, LLC Data subject access request processing systems and related methods
US12086748B2 (en) 2016-06-10 2024-09-10 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US11449633B2 (en) 2016-06-10 2022-09-20 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US11461722B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Questionnaire response automation for compliance management
US11468386B2 (en) 2016-06-10 2022-10-11 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11468196B2 (en) 2016-06-10 2022-10-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US12052289B2 (en) 2016-06-10 2024-07-30 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11488085B2 (en) 2016-06-10 2022-11-01 OneTrust, LLC Questionnaire response automation for compliance management
US12045266B2 (en) 2016-06-10 2024-07-23 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US12026651B2 (en) 2016-06-10 2024-07-02 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10586072B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US11960564B2 (en) 2016-06-10 2024-04-16 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11921894B2 (en) 2016-06-10 2024-03-05 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US11544405B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11551174B2 (en) 2016-06-10 2023-01-10 OneTrust, LLC Privacy management systems and methods
US11550897B2 (en) 2016-06-10 2023-01-10 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11558429B2 (en) 2016-06-10 2023-01-17 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11556672B2 (en) 2016-06-10 2023-01-17 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US11868507B2 (en) 2016-06-10 2024-01-09 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US11586762B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11847182B2 (en) 2016-06-10 2023-12-19 OneTrust, LLC Data processing consent capture systems and related methods
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US11609939B2 (en) 2016-06-10 2023-03-21 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11645418B2 (en) 2016-06-10 2023-05-09 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11645353B2 (en) 2016-06-10 2023-05-09 OneTrust, LLC Data processing consent capture systems and related methods
US10594740B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11663359B2 (en) 2017-06-16 2023-05-30 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US11373007B2 (en) 2017-06-16 2022-06-28 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US11243669B2 (en) * 2018-02-27 2022-02-08 Verizon Media Inc. Transmitting response content items
US11386341B1 (en) * 2018-03-13 2022-07-12 Meta Platforms, Inc. Inferring a reach of a content item presented to individuals by one or more content publishers for a set of impression frequencies
US11593523B2 (en) 2018-09-07 2023-02-28 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US10963591B2 (en) 2018-09-07 2021-03-30 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11157654B2 (en) 2018-09-07 2021-10-26 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11947708B2 (en) 2018-09-07 2024-04-02 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11797528B2 (en) 2020-07-08 2023-10-24 OneTrust, LLC Systems and methods for targeted data discovery
US11444976B2 (en) 2020-07-28 2022-09-13 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
US11968229B2 (en) 2020-07-28 2024-04-23 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
US11475165B2 (en) 2020-08-06 2022-10-18 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US11704440B2 (en) 2020-09-15 2023-07-18 OneTrust, LLC Data processing systems and methods for preventing execution of an action documenting a consent rejection
US11436373B2 (en) 2020-09-15 2022-09-06 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US11526624B2 (en) 2020-09-21 2022-12-13 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
US12265896B2 (en) 2020-10-05 2025-04-01 OneTrust, LLC Systems and methods for detecting prejudice bias in machine-learning models
US11397819B2 (en) 2020-11-06 2022-07-26 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
US11615192B2 (en) 2020-11-06 2023-03-28 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
US12277232B2 (en) 2020-11-06 2025-04-15 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
US12259882B2 (en) 2021-01-25 2025-03-25 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
US11442906B2 (en) 2021-02-04 2022-09-13 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
US11494515B2 (en) 2021-02-08 2022-11-08 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US11601464B2 (en) 2021-02-10 2023-03-07 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11775348B2 (en) 2021-02-17 2023-10-03 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
US11546661B2 (en) 2021-02-18 2023-01-03 OneTrust, LLC Selective redaction of media content
US11533315B2 (en) 2021-03-08 2022-12-20 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11816224B2 (en) 2021-04-16 2023-11-14 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US12153704B2 (en) 2021-08-05 2024-11-26 OneTrust, LLC Computing platform for facilitating data exchange among computing environments
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments
US12277577B2 (en) * 2023-06-14 2025-04-15 Microsoft Technology Licensing, Llc Estimated unique engagement measurement with user privacy protection
US20240420177A1 (en) * 2023-06-14 2024-12-19 Microsoft Technology Licensing, Llc Estimated unique engagement measurement with user privacy protection

Similar Documents

Publication Publication Date Title
US10324960B1 (en) Determining a number of unique viewers of a content item
US10134058B2 (en) Methods and apparatus for identifying unique users for on-line advertising
US10163130B2 (en) Methods and apparatus for identifying a cookie-less user
CA2932686C (en) Methods and systems for creating a data-driven attribution model for assigning attribution credit to a plurality of events
US20150235258A1 (en) Cross-device reporting and analytics
US20150235275A1 (en) Cross-device profile data management and targeting
US9256688B2 (en) Ranking content items using predicted performance
US10262339B2 (en) Externality-based advertisement bid and budget allocation adjustment
WO2017139042A1 (en) Attributing conversions relating to content items
US10600078B2 (en) Methods and systems for measuring brand uplift for search campaigns
US20160210689A1 (en) Content item configuration optimization
US9626691B2 (en) Determining a bid modifier value to maximize a return on investment in a hybrid campaign
US20150245110A1 (en) Management of invitational content during broadcasting of media streams
CN109075987B (en) Optimizing digital component analysis systems
US20170039603A1 (en) Dynamic ordering of online advertisement software steps
US20150242907A1 (en) Systems and methods for optimizing impression frequency
US20140081771A1 (en) Publisher inventory extension
WO2015032096A1 (en) Identifying groups for content item distribution

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4