IP Library Granted Patent US 12,585,809
Granted Patent B2
US 12,585,809 · App. 18/574,715 · Granted Mar 24, 2026

Privacy-preserving data processing for content distribution

Inventors: Wei Huang (Mountain View, CA); Zhenyu Liu (Mountain View, CA)
Assignee: Google LLC
G06F21/6218
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,585,809
App. No.
18/574,715
Granted
Mar 24, 2026
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for distributing digital contents to client devices are described. For each of a plurality of client devices, the system receives a digital component request, identifies one or more user attributes of a user based on the digital component request, and sends the identified user attributes to the client device. The system obtains, from a shared storage of each client device, accumulated user attribute data and generates an aggregated user attribute report for a set of aggregation keys using the obtained accumulated user attribute data. The system distributes digital components to the client devices based on distribution parameters adjusted based on the aggregated user attribute report.

Claims (60)

1 . A computer-implemented method, comprising:

for each of a plurality of client devices,

receiving, from an application running on the client device of a user and by a digital component distribution system, a digital component request;

identifying, by the digital component distribution system and based on the digital component request, one or more user attributes of the user; and

sending, by the digital component distribution system and to the application, a digital component response in response to the digital component request, the digital component response comprising (i) one or more digital components and (ii) attribute data comprising the one or more user attributes of the user, wherein the application is configured to update, based on the one or more user attributes, accumulated user attribute data stored in a shared storage of the client device in response to receiving the attribute data;

obtaining, by the digital component distribution system and from the shared storage of each of the plurality of client devices, the accumulated user attribute data stored in the shared storage of each client device;

generating, by the digital component distribution system, an aggregated user attribute report for one or more aggregation keys using the obtained accumulated user attribute data, comprising, for each of the one or more aggregation keys, obtaining an aggregated data profile that is generated by aggregating the accumulated user attribute data from a subset of the plurality of client devices that have accessed an electronic resource or a digital component identified by the aggregation key, wherein each aggregation key specifies a combination of contextual signals that defines a cohort of users for which user attribute data is aggregated;

adjusting, by the digital component distribution system and based on the aggregated data profiles, one or more distribution parameters for distributing digital components to client devices in response to digital component requests; and

distributing, by the digital component distribution system, digital components to the client devices based on the distribution parameters.

2 . The method of claim 1 , wherein generating the aggregated user attribute report comprises:

sending, to a secure aggregation system, an aggregation request comprising the accumulated user attribute data obtained from each of the plurality of client devices and the one or more aggregation keys; and

receiving, from the secure aggregation system, the aggregated data profile generated in response to the aggregation request.

3 . The method of claim 2 , wherein the accumulated user attribute data received from each client device is encrypted by the client device using an encryption key of the secure aggregation system.

4 . The method of claim 1 , wherein the digital component request comprises contextual data related to an environment in which the one or more digital components will be displayed at the client device.

5 . The method of claim 4 , wherein the environment includes an electronic resource and the contextual data comprises one or more of: a resource locator for an electronic resource in which the one or more digital components will be displayed at the client device, or topics of content of the electronic resource.

6 . The method of claim 1 , wherein the one or more user attributes are identified using a predictive model configured to predict attributes of users that have accessed the electronic resource or topics of contents of the electronic resource.

7 . The method of claim 6 , wherein the application is configured to, in response to receiving the user attributes identified using the predictive model:

determine whether the accumulated user attribute data stored in the shared storage of the client device includes a keyed entry for the one or more user attributes;

in response to the accumulated user attribute data not including the keyed entry, generate a new keyed entry in the accumulated user attribute data, and assign an entry value for the new keyed entry based on the one or more user attributes identified using the predictive model; and

in response to the accumulated user attribute data including the keyed entry, update a current entry value of the keyed entry in the accumulated user attribute data based on the one or more user attributes identified using the predictive model.

8 . The method of claim 7 , wherein updating the current entry value of the keyed entry comprises:

in response to the accumulated user attribute data including the keyed entry, incrementing or decrementing the current entry value of the keyed entry.

9 . The method of claim 1 , wherein the user is subscribed to the electronic resource with a user identifier, and the one or more user attributes are identified using a user profile associated with the user identifier.

10 . The method of claim 9 , wherein the application is configured to, in response to receiving the user attributes identified using the user profile:

determine whether the accumulated user attribute data stored in the shared storage of the client device includes a keyed entry for the one or more user attributes;

in response to the aggregated user attribute data not including the keyed entry, generate a new keyed entry in the accumulated user attribute data, and assign an entry value for the new keyed entry based on the one or more user attributes identified using the user profile; and

in response to the accumulated user attribute data including the keyed entry, update the entry value of the keyed entry in the accumulated user attribute data based on the one or more user attributes identified using the user profile.

11 . The method of claim 10 , wherein a user interface of the electronic resource comprises a code to cause the application to update the accumulated user attribute data based on the one or more user attributes in response to receiving the user attributes.

12 . The method of claim 1 , wherein the aggregated data profile for an aggregation key includes one or more metrics for the electronic resource or the digital component identified by the aggregation key.

13 . The method of claim 12 , wherein the one or more metrics include a reach metric measuring a number of unique users in the subset of client devices that have accessed the electronic resource or the digital component identified by the aggregation key.

14 . The method of claim 1 , wherein aggregating the user attribute data from the subset of client devices comprises adding a random noise to the user attribute data of each of the subset of client devices before aggregating.

15 . A digital component distribution system comprising:

one or more computers; and

one or more storage devices storing instructions that when executed by the one or more computers, cause the one or more computers to perform operations comprising:

for each of a plurality of client devices,

receiving, from an application running on the client device of a user, a digital component request;

identifying, based on the digital component request, one or more user attributes of the user; and

sending, to the application, a digital component response comprising (i) one or more digital components and (ii) attribute data comprising the one or more user attributes of the user, wherein the application is configured to update, based on the one or more user attributes, accumulated user attribute data stored in a shared storage of the client device in response to receiving the attribute data;

obtaining, from the shared storage of each of the plurality of client devices, the accumulated user attribute data stored in the shared storage of each client device;

generating an aggregated user attribute report for one or more aggregation keys using the obtained accumulated user attribute data, comprising, for each of the one or more aggregation keys, obtaining an aggregated data profile that is generated by aggregating the accumulated user attribute data from a subset of the plurality of client devices that have accessed an electronic resource or a digital component identified by the aggregation key, wherein each aggregation key specifies a combination of contextual signals that defines a cohort of users for which user attribute data is aggregated;

adjusting, based on the aggregated data profiles, one or more distribution parameters for distributing digital components to client devices in response to digital component requests; and

distributing digital components to the client devices based on the distribution parameters.

16 . One or more non-transitory computer-readable storage media storing instructions that, when executed by one or more computers of a digital component distribution system, cause the one or more computers to perform operations comprising:

for each of a plurality of client devices,

receiving, from an application running on the client device of a user, a digital component request;

identifying, based on the digital component request, one or more user attributes of the user; and

sending, to the application, a digital component response comprising (i) one or more digital components and (ii) attribute data comprising the one or more user attributes of the user, wherein the application is configured to update, based on the one or more user attributes, accumulated user attribute data stored in a shared storage of the client device in response to receiving the attribute data;

obtaining, from the shared storage of each of the plurality of client devices, the accumulated user attribute data stored in the shared storage of each client device;

generating an aggregated user attribute report for one or more aggregation keys using the obtained accumulated user attribute data, comprising, for each of the one or more aggregation keys, obtaining an aggregated data profile that is generated by aggregating the accumulated user attribute data from a subset of the plurality of client devices that have accessed an electronic resource or a digital component identified by the aggregation key, wherein each aggregation key specifies a combination of contextual signals that defines a cohort of users for which user attribute data is aggregated;

adjusting, based on the aggregated data profiles, one or more distribution parameters for distributing digital components to client devices in response to digital component requests; and

distributing digital components to the client devices based on the distribution parameters.

17 . The digital component distribution system of claim 15 , wherein generating the aggregated user attribute report comprises:

sending, to a secure aggregation system, an aggregation request comprising the accumulated user attribute data obtained from each of the plurality of client devices and the one or more aggregation keys; and

receiving, from the secure aggregation system, the aggregated data profile generated in response to the aggregation request.

18 . The digital component distribution system of claim 17 , wherein the accumulated user attribute data received from each client device is encrypted by the client device using an encryption key of the secure aggregation system.

19 . The one or more non-transitory computer-readable storage media of claim 16 , wherein the one or more user attributes are identified using a predictive model configured to predict attributes of users that have accessed the electronic resource or topics of contents of the electronic resource.

20 . The one or more non-transitory computer-readable storage media of claim 19 , wherein the application is configured to, in response to receiving the user attributes identified using the predictive model:

determine whether the accumulated user attribute data stored in the shared storage of the client device includes a keyed entry for the one or more user attributes;

in response to the accumulated user attribute data not including the keyed entry, generate a new keyed entry in the accumulated user attribute data, and assign an entry value for the new keyed entry based on the one or more user attributes identified using the predictive model; and

in response to the accumulated user attribute data including the keyed entry, update a current entry value of the keyed entry in the accumulated user attribute data based on the one or more user attributes identified using the predictive model.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: HUANG, WEI; LIU, ZHENYU
To: GOOGLE LLC
Reel/Frame 066542/0539 →
Continuity (1)
Related Publication 20250086300A1 · Mar 13, 2025
References Cited (18)
US 10762895B2 · Togwe · 2020 [cited by examiner]
US 11593510B1 · Knox et al. · 2023 [cited by applicant]
US 12160481B2 · Wu · 2024 [cited by examiner]
US 20090247193A1 · Kalavade · 2009 [cited by applicant]
US 20170116552A1 · Deodhar · 2017 [cited by examiner]
US 20200257741A1 · Breaux · 2020 [cited by examiner]
US 20220019689A1 · Lau et al. · 2022 [cited by applicant]
US 20220180389A1 · Yates · 2022 [cited by applicant]
US 20220405407A1 · Bai · 2022 [cited by examiner]
EP 1869870 · 2007 [cited by applicant]
JP 2008535079 · 2008 [cited by applicant]
Developer.google.com [online], “Shared storage” Apr. 25, 2022, retrieved on Mar. 28, 2024, retrieved from URL<https://developers.google.com/privacy-sandbox/relevance/shared-storage>, 7 pages. [cited by applicant]
Developer.google.com [online], “Private aggregation API” Oct. 11, 2022, retrieved on Mar. 28, 2024, retrieved from URL<https://developers.google.com/privacy-sandbox/relevance/private-aggregation>, 10 pages. [cited by applicant]
Github.com [online], “Aggregated reporting API,” 2020, retrieved on Mar. 29, 2024, retrieved from URL<https://github.com/csharrison/aggregate-reporting-api>, 6 pages. [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/US2023/019580, mailed on Nov. 20, 2023, 13 pages. [cited by applicant]
Saunderson et al., “Semidefinite descriptions of the convex hull of rotation matrices,” SIAM Journal on Optimization, 2015, 25(3):1314-43. [cited by applicant]
Office Action in Japanese Appln. No. 2024-535285, mailed on Aug. 5, 2025, 4 pages (with English translation). [cited by applicant]
Notice of Allowance in Japanese Appln. No. 2024-535285, mailed on Oct. 14, 2025, 5 pages (with English translation). [cited by applicant]