IP Library Granted Patent US 12,437,021
Granted Patent B2
US 12,437,021 · App. 17/744,247 · Granted Oct 7, 2025

Search and retrieval of keyed data maintained using a keyed database

Inventors: Justin Lewis (South San Francisco, CA); Richard Dominick Rapp (Downey, CA)
Assignee: Google LLC
G06F16/957G06F16/951G06F16/9538G06F16/972G06F21/6209G06Q30/0241
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,437,021
App. No.
17/744,247
Granted
Oct 7, 2025
Kind
B2
Abstract

This document describes a digital component deduplication system for generating packetized data with encryption tokens for transmittal over one or more packetized networks. A packetized data search determines that an encryption token is included with the packetized data. The encryption token includes keyed data representing a first digital component. The packetized data search engine searches the keyed database to identify contents, in the keyed database, of one or more entries that includes the keyed data representing the first digital component. A list of candidate digital components is generated. For candidate digital components associated with a data interface for requesting an eligibility value from a second client device associated with the candidate digital component, a security server generates, using the data interface, additional packetized data comprising i) a request for the eligibility value from the second client device, and ii) the encryption token.

Claims (52)

1. A method for digital component deduplication, the method comprising:

receiving, from a first client device, (i) a request for a digital component and (ii) encryption token data representing a first digital component that has already been transmitted to the first client device;

determining that the first digital component has already been provided to the client device in response to a previous request for a digital component based on identifying a match between the encryption token data received from the first client device and a stored identifier of the first digital component;

disqualifying the first digital component from consideration and removing the first digital component from a list of candidate digital components that are eligible to be served to the first client device based on (i) the encryption token data being received from the first client device and (ii) the determination that the first digital component has already been transmitted to the first client device based on the identified match between the stored identifier of the first digital component and the encryption token data;

selecting, from the list of candidate digital components from which the first digital component that has already been transmitted to the first client device was removed, a second digital component for transmission to the first client device in response to the request for the digital component, wherein selecting the second digital component for transmission to the first client device comprises:

determining that a particular candidate digital component of the list is associated with an interface for requesting an eligibility value for the particular candidate digital component from a second client device associated with the particular candidate digital component;

obtaining the eligibility value for the particular digital component from the second client device using the interface; and

selecting, from the list of candidate digital components, the second digital component for transmission to the first client device based at least in part on the eligibility value, wherein the second digital component is different than the first digital component; and

transmitting the second digital component to the first client device.

2. The method of claim 1 , wherein obtaining the eligibility value for the particular digital component from the second client device using the interface comprises:

generating a request for the eligibility value;

transmitting the request for the eligibility value to the second client device using the interface; and

receiving the eligibility value from the second client device.

3. The method of claim 2 , wherein the request for the eligibility value includes the data representing the first digital component that has already been transmitted to the first client device.

4. The method of claim 1 , further comprising:

receiving an encryption key from the second client device; and

using the encryption key to decrypt the encryption token representing the first digital component that has already been transmitted to the first client device.

5. The method of claim 4 , wherein the encryption key comprises a private key of the second client device.

6. The method of claim 1 , wherein the encryption token comprises keyed data representing the first digital component that has already been transmitted to the first client device, wherein generating the list of candidate digital components that excludes the first digital component that has already been transmitted to the first client device comprises:

searching a keyed database storing keyed data, with each item of keyed data representing a particular digital component, to identify contents of one or more entries in the keyed database that includes keyed data representing the first digital component.

7. The method of claim 6 , wherein the keyed data of the encryption token uniquely identifies the first digital component that has already been transmitted to the first client device, and when the keyed data is decrypted, the keyed data matches an identifier of the first digital component that has already been transmitted to the first client device.

8. The method of claim 1 , further comprising transmitting, to the first client device, an encryption token representing the second digital component.

9. A system comprising:

one or more computers; and

one or more storage devices communicatively coupled to the one or more computers, wherein the one or more storage devices store instructions that, when executed by the one or more computers, cause the one or more computers to perform operations for digital component deduplication, the operations comprising:

receiving, from a first client device, (i) a request for a digital component and (ii) encryption token data representing a first digital component that has already been transmitted to the first client device;

determining that the first digital component has already been provided to the client device in response to a previous request for a digital component based on identifying a match between the encryption token data received from the first client device and a stored identifier of the first digital component;

excluding the first digital component from a list of candidate digital components that are eligible to be served to the first client device based on (i) the encryption token data being received from the first client device and (ii) the determination that the first digital component has already been transmitted to the first client device based on the identified match between the stored identifier of the first digital component and the encryption token data;

selecting, from the list of candidate digital components that excludes the first digital component that has already been transmitted to the first client device, a second digital component for transmission to the first client device in response to the request for the digital component, wherein selecting the second digital component for transmission to the first client device comprises:

determining that a particular candidate digital component of the list is associated with an interface for requesting an eligibility value for the particular candidate digital component from a second client device associated with the particular candidate digital component;

obtaining the eligibility value for the particular digital component from the second client device using the interface; and

selecting, from the list of candidate digital components, the second digital component for transmission to the first client device based at least in part on the eligibility value, wherein the second digital component is different than the first digital component; and

transmitting the second digital component to the first client device.

10. The system of claim 9 , wherein obtaining the eligibility value for the particular digital component from the second client device using the interface comprises:

generating a request for the eligibility value;

transmitting the request for the eligibility value to the second client device using the interface; and

receiving the eligibility value from the second client device.

11. The system of claim 10 , wherein the request for the eligibility value includes the data representing the first digital component that has already been transmitted to the first client device.

12. One or more non-transitory computer storage media storing instructions that when executed by one or more computers cause the one or more computers to perform operations for digital component deduplication, the operations comprising:

receiving, from a first client device, (i) a request for a digital component and (ii) encryption token data representing a first digital component that has already been transmitted to the first client device;

determining that the first digital component has already been provided to the client device in response to a previous request for a digital component based on identifying a match between the encryption token data received from the first client device and a stored identifier of the first digital component;

excluding the first digital component from a list of candidate digital components that are eligible to be served to the first client device based on (i) the encryption token data being received from the first client device and (ii) the determination that the first digital component has already been transmitted to the first client device based on the identified match between the stored identifier of the first digital component and the encryption token data;

selecting, from the list of candidate digital components that excludes the first digital component that has already been transmitted to the first client device, a second digital component for transmission to the first client device in response to the request for the digital component, wherein selecting the second digital component for transmission to the first client device comprises:

determining that a particular candidate digital component of the list is associated with an interface for requesting an eligibility value for the particular candidate digital component from a second client device associated with the particular candidate digital component;

obtaining the eligibility value for the particular digital component from the second client device using the interface; and

selecting, from the list of candidate digital components, the second digital component for transmission to the first client device based at least in part on the eligibility value, wherein the second digital component is different than the first digital component; and

transmitting the second digital component to the first client device.

13. The one or more non-transitory computer storage media of claim 12 , wherein obtaining the eligibility value for the particular digital component from the second client device using the interface comprises:

generating a request for the eligibility value;

transmitting the request for the eligibility value to the second client device using the interface; and

receiving the eligibility value from the second client device.

14. The one or more non-transitory computer storage media of claim 13 , wherein the request for the eligibility value includes the data representing the first digital component that has already been transmitted to the first client device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2022
From: LEWIS, JUSTIN; RAPP, RICHARD DOMINICK
To: GOOGLE INC.
Reel/Frame 059933/0153 →
ENTITY CONVERSION Recorded May 17, 2022
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 060083/0951 →
Continuity (3)
Continuation 16845237 · Apr 10, 2020
Continuation 15571297
Related Publication 20220269739A1 · Aug 25, 2022
References Cited (44)
US 8363550B1 · Yuan et al. · 2013 [cited by applicant]
US 8832034B1 · Ramarao · 2014 [cited by applicant]
US 9679007B1 · Feldman · 2017 [cited by examiner]
US 10671690B2 · Lewis et al. · 2020 [cited by applicant]
US 20060174300A1 · Gu · 2006 [cited by examiner]
US 20100042590A1 · Smyros et al. · 2010 [cited by applicant]
US 20100080461A1 · Ferman · 2010 [cited by examiner]
US 20100125569A1 · Nair et al. · 2010 [cited by applicant]
US 20110016178A1 · Palmieri · 2011 [cited by applicant]
US 20120136726A1 · Caller · 2012 [cited by applicant]
US 20120173656A1 · Sorenson, III · 2012 [cited by applicant]
US 20120216052A1 · Dunn · 2012 [cited by examiner]
US 20130305039A1 · Gauda · 2013 [cited by examiner]
US 20140108332A1 · Haze · 2014 [cited by examiner]
US 20140280691A1 · Buerner et al. · 2014 [cited by applicant]
US 20140289042A1 · Merriman · 2014 [cited by applicant]
US 20150365345A1 · Sorenson, III · 2015 [cited by applicant]
US 20160254917A1 · Cooley · 2016 [cited by applicant]
US 20170068870A1 · Lindholm · 2017 [cited by examiner]
US 20170257456A1 · Vaish · 2017 [cited by examiner]
US 20170286698A1 · Shetty · 2017 [cited by examiner]
US 20190311012A1 · Lewis et al. · 2019 [cited by applicant]
US 20200242175A1 · Lewis et al. · 2020 [cited by applicant]
CN 101694672 · 2010 [cited by applicant]
CN 102246166 · 2011 [cited by applicant]
CN 102708216 · 2012 [cited by applicant]
CN 104050098 · 2014 [cited by applicant]
CN 104615692 · 2015 [cited by applicant]
CN 104885093 · 2015 [cited by applicant]
CN 105608627 · 2016 [cited by applicant]
JP 2003518820 · 2003 [cited by applicant]
JP 2003186787 · 2003 [cited by applicant]
JP 2009282833 · 2009 [cited by applicant]
JP 2003150543 · 2010 [cited by applicant]
JP 2016531347 · 2016 [cited by applicant]
Office Action in European Appln. No. 19164122.4, dated Jan. 13, 2023, 10 pages. [cited by applicant]
Office Action in European Appln. No. 19164122.4, dated Aug. 12, 2022, 12 pages. [cited by applicant]
European Extended Search Report in European Application No. 19164122.4, dated Aug. 14, 2019, 9 page. [cited by applicant]
International Search Report and Written Opinion issued in International Application No. PCT/US2016/069293, mailed on Sep. 8, 2017, 13 pages. [cited by applicant]
Office Action in Chinese Appln. No. 201680031771.4, dated Apr. 6, 2021, 11 pages (with English translation). [cited by applicant]
Office Action in European Appln. No. 19164122.4, dated Dec. 21, 2021, 9 pages. [cited by applicant]
Office Action in Japanese Appln. No. 2019-160301, dated Apr. 1, 2016, 13 pages (with English translation). [cited by applicant]
Office Action Japanese Appln. No. 2019-160301, dated Apr. 5, 2021, 5 pages (with English translation). [cited by applicant]
Office Action in Chinese Appln. No. 202111580571.3, mailed on Apr. 15, 2025, 18 pages (with English translation). [cited by applicant]