# US 12,111,950 B2 · Privacy preserving data collection and analysis

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,111,950 B2
- Document ID: US12111950B2
- Status: Granted
- Kind: B2
- Application number: 17/763,492
- Filed: 2021-02-08
- Published: 2022-11-24
- Granted: 2024-10-08
- Earliest claimed: 2020-07-15
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Gang Wang; Marcel M. Moti Yung; Andres Munoz Medina
- Web page: https://patentgrep.com/patent/US12111950B2

## CPC

- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06Q 30/0255: {based on user history}
- G06Q 30/0277: {Online advertisement}
- G06Q 30/08: Auctions
- H04L 9/3213: {using tickets or tokens, e.g. Kerberos (network architectures or network communication protocols for entities authentication using tickets in a packet data network H04L63/0807)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION 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
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method includes receiving, by a data processing apparatus and from a content distribution system, a message comprising a probabilistic data structure representing a set of content items that should not be provided to a user device, content item data for content items available to be provided, and a request to determine whether any content item data is invalid, determining that the content item data for a given content item is invalid because the given content item may be in the set of content items represented by the probabilistic data structure, including removing the content item data for the given content item that was determined to be invalid; and preventing distribution of content items including the given content item.

## Claims

### Claim 1

A computer implemented method, comprising:
receiving, by a data processing apparatus and from a content distribution system, a message comprising (i) a probabilistic data structure representing a set of content items that should not be provided to a user device, (ii) content item data for content items available to be provided to the user device, and (iii) a request to determine whether any content item data is invalid based on the probabilistic data structure;
querying, by the data processing apparatus, the probabilistic data structure to determine whether the probabilistic data structure encodes an identifier for a given content item among the content items;
determining, by the data processing apparatus using based on querying the probabilistic data structure, that the content item data for the given content item is invalid because the probabilistic data structure encodes the identifier for the given content item; and
in response to determining that the content item data for the given content item is invalid, removing, by the data processing apparatus and from the content item data, the content item data for the given content item that was determined to be invalid; and
preventing, by the data processing apparatus, distribution of the given content item in response to a request to provide content to the user device.

### Claim 2 (depends on 1)

The method of claim 1, wherein
the data processing apparatus is a server independent from the content distribution system and content providers that provide (i) the set of content items that should not be provided to a user device and (ii) the content items available to be provided to the user device.

### Claim 3 (depends on 1)

The method of claim 1, wherein the probabilistic data structure is encrypted, the method further comprising:
decrypting, by the data processing apparatus and using a private key held only by the data processing apparatus, the encrypted probabilistic data structure to obtain the probabilistic data structure,
wherein the probabilistic data structure was encrypted using a public key corresponding to the private key to create the encrypted probabilistic data structure.

### Claim 4 (depends on 1)

The method of claim 1, wherein the probabilistic data structure is a bloom filter that is specific to one of: the user device, a web page, a publisher's website, or a request to provide content to the user device.

### Claim 5 (depends on 1)

The method of claim 1, wherein the set of content items represented by the probabilistic data structure comprises a union of (1) a first set of content items that should not be provided to a user device and (2) a second set of content items that were randomly selected.

### Claim 6 (depends on 1)

The method of claim 1, wherein preventing distribution of a set of content items comprises refraining from providing content items having a specified type of content to the user.

### Claim 7 (depends on 1)

The method of claim 1, wherein the content item data for each of the content items comprises a globally unique identifier generated using a hash function based on at least one of: a domain of the content provider, the content item identifier unique within each content provider, the content provider's secret key, the browser's public key generated by trust token.

### Claim 8 (depends on 1)

The method of claim 1, comprising:
transmitting, by the data processing apparatus and to the user device, data that facilitates display of a first content item, the first content item comprising a content item script that instructs a browser of the user device to update a frequency count for one or more content items including the first content item, wherein the set of content items represented by the probabilistic data structure comprises a plurality of content items of multiple content providers that are frequency capped or have been muted by a user of the user device;
obtaining, from a plurality of content providers, responses indicating particular content items, wherein at least one particular content item is the first content item;
determining, by the data processing apparatus and using the probabilistic data structure, that the first content item is invalid because the first content item is in the set of content items that should not be provided to the user device represented by the probabilistic data structure;
in response to determining that the first content item is invalid, preventing, by the data processing apparatus, each of the plurality of content providers from distributing the first content item to the user device by removing content item data for the first content item from content item data for content items that are available to be provided to the user device;
selecting, by the data processing apparatus and using the content item data for the content items that are available to be provided to the user device, a second content item that is still eligible after the content item data for the first content item has been removed; and
transmitting, by the data processing apparatus, the second content item to the user device.

### Claim 9

A system comprising:
one or more processors; and
one or more memory elements including instructions that, when executed, cause the one or more processors to perform operations including:
receiving, by the one or more processors and from a content distribution system, a message comprising (i) a probabilistic data structure representing a set of content items that should not be provided to a user device, (ii) content item data for content items available to be provided to the user device, and (iii) a request to determine whether any content item data is invalid based on the probabilistic data structure;
querying, by the one or more processors, the probabilistic data structure to determine whether the probabilistic data structure encodes an identifier for a given content item among the content items;
determining, by the one or more processors using based on querying the probabilistic data structure, that the content item data for the given content item is invalid because the probabilistic data structure encodes the identifier for the given content item; and
in response to determining that the content item data for the given content item is invalid, removing, by the one or more processors and from the content item data, the content item data for the given content item that was determined to be invalid; and
preventing, by the one or more processors, distribution of the given content item in response to a request to provide content to the user device.

### Claim 10 (depends on 9)

The system of claim 9, wherein
the one or more processors are a server independent from the content distribution system and content providers that provide (i) the set of content items that should not be provided to a user device and (ii) the content items available to be provided to the user device.

### Claim 11 (depends on 9)

The system of claim 9, wherein the probabilistic data structure is encrypted and the operations comprise:
decrypting, by the data processing apparatus and using a private key held only by the data processing apparatus, the encrypted probabilistic data structure to obtain the probabilistic data structure,
wherein the probabilistic data structure was encrypted using a public key corresponding to the private key to create the encrypted probabilistic data structure.

### Claim 12 (depends on 9)

The system of claim 9, wherein the probabilistic data structure is a bloom filter that is specific to one of: the user device, a web page, a publisher's website, or a request to provide content to the user device.

### Claim 13 (depends on 9)

The system of claim 9, wherein the set of content items that should not be provided to a user device represented by the probabilistic data structure comprises a union of (1) a first set of content items that should not be provided to a user device and (2) a second set of content items that were randomly selected.

### Claim 14 (depends on 9)

The system of claim 9, wherein preventing distribution of a set of content items comprises refraining from providing content items having a specified type of content to the user.

### Claim 15 (depends on 9)

The system of any of claim 9, wherein the content item data for each of the content items comprises a globally unique identifier generated using a hash function based on at least one of: a domain of the content provider, the content item identifier unique within each content provider, the content provider's secret key, the browser's public key generated by trust token.

### Claim 16

A non-transitory computer storage medium encoded with instructions that when executed by a distributed computing system cause the distributed computing system to perform operations comprising:
receiving, by one or more processors and from a content distribution system, a message comprising (i) a probabilistic data structure representing a set of content items that should not be provided to a user device, (ii) content item data for content items available to be provided to the user device, and (iii) a request to determine whether any content item data is invalid based on the probabilistic data structure;
querying, by the one or more processors, the probabilistic data structure to determine whether the probabilistic data structure encodes an identifier for a given content item among the content items;
determining, by the one or more processors based on querying the probabilistic data structure, that the content item data for the given content item is invalid because the probabilistic data structure encodes the identifier for the given content item; and
in response to determining that the content item data for the given content item is invalid, removing, by the one or more processors and from the content item data, the content item data for the given content item that was determined to be invalid; and
preventing, by the one or more processors, distribution of the given content item in response to a request to provide content to the user device.

### Claim 17 (depends on 16)

The non-transitory computer storage medium of claim 16, wherein
the one or more processors are a server independent from the content distribution system and content providers that provide (i) the set of content items that should not be provided to a user device and (ii) the content items available to be provided to the user device.

### Claim 18 (depends on 16)

The non-transitory computer storage medium of claim 16, wherein the probabilistic data structure is encrypted and the operations comprise:
decrypting, by the data processing apparatus and using a private key held only by the data processing apparatus, the encrypted probabilistic data structure to obtain the probabilistic data structure,
wherein the probabilistic data structure was encrypted using a public key corresponding to the private key to create the encrypted probabilistic data structure.

### Claim 19 (depends on 16)

The non-transitory computer storage medium of claim 16, wherein the probabilistic data structure is a bloom filter that is specific to one of: the user device, a web page, a publisher's website, or a request to provide content to the user device.

### Claim 20 (depends on 16)

The non-transitory computer storage medium of claim 16, wherein the set of content items that should not be provided to a user device represented by the probabilistic data structure comprises a union of (1) a first set of content items that should not be provided to a user device and (2) a second set of content items that were randomly selected.
