IP Library Granted Patent US 11,743,348
Granted Patent B2
US 11,743,348 · App. 17/835,471 · Granted Aug 29, 2023

Custom digital components

Inventors: Christopher Dawson (Long Island City, NY); Haskell Aaron Garon (Brooklyn, NY); James Giles (Yorktown Heights, NY); Vishal Viresh Kumar (San Francisco, CA); Stephen Rhys Norum (San Jose, CA); George Jacob Levitte (New York, NY)
Assignee: Google LLC
H04L67/34G06F9/451G06F9/547G06F21/602H04L67/53
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 11,743,348
App. No.
17/835,471
Granted
Aug 29, 2023
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for processing requests for digital components. A method includes receiving a request from a client device for a digital component generated by a first SDK installed at a client device, examining data fields of the request by servers, generating real-time requests by the servers, and transmitting each real-time request to a third-party digital component provider by the servers. The method further includes receiving responses to the real-time requests from the third party digital component provider by the servers, selecting a particular response to transmit to the client device responsive to the request for the digital component by the servers, and transmitting the particular response to the first SDK with instructions specifying which SDK installed at the client device is required to render a digital component included in the particular response by the servers.

Claims (55)

1. A system, comprising:

a front-end server that receives, from a client device, a first request for a digital component that was generated by a first software development kit (SDK) installed at the client device; and

a custom digital component server that processes the first request by performing operations comprising:

receiving, from the front end server, the first request for the digital component that was generated by the first SDK installed at the client device;

identifying, within one or more data fields of the first request, data (i) corresponding to a set of other SDKs installed at the client device and (ii) included in the first request generated by the first SDK;

transmitting, responsive to the first request generated by the first SDK, instructions specifying which SDK from among the set of other SDKs installed at the client device is required to render a digital component selected for delivery to the client device.

2. The system of claim 1 , wherein the operations further comprise:

accessing a mapping of application data to installed SDKs; and

identifying, within the mapping, an application specified in the application data and a version of the application that initiated the first request, wherein:

identifying data corresponding to the set of other SDKs installed at the client device comprises identifying the set of other SDKs that are mapped to the application and the version of the application that initiated the first request.

3. The system of claim 2 , wherein the operations further comprise generating the mapping of application data to installed SDKs, including:

identifying, from a response log stored in a data structure, previous responses that were previously provided to the version of the application in response to previous requests that were initiated by the version of the application;

identifying, from the previous responses, a set of multiple different SDKs that were specified in the previous responses; and

mapping each SDK in the set of multiple different SDKs to the version of the application in the data structure.

4. The system of claim 1 , wherein transmitting the instructions specifying which SDK installed at the client device is required to render the digital component comprises transmitting instructions specifying an application program interface (API) call to render the digital component.

5. The system of claim 1 , wherein the operations further comprise:

generating a second request that includes data specifying one or more SDKs from the set of other SDKs that are installed at the client device that initiated the first request; and

transmitting, over a network, the second request to a third party digital component provider without decrypting the data corresponding to the set of other SDKs installed at the client device.

6. The system of claim 5 , wherein the operations further comprise providing a custom digital component specified by a response to the second request for presentation by a particular SDK in an electronic document at the client device.

7. The system of claim 6 , wherein the operations further comprise receiving the response to the second request specifying a particular SDK, other than the first SDK, that is required to render a particular digital component specified by the response to the second request.

8. A non-transitory computer readable medium storing instructions that, upon execution, cause one or more data processing apparatus to perform operations comprising:

receiving, from a client device, a first request for a digital component that was generated by a first software development kit (SDK) installed at the client device; and

identifying, within one or more data fields of the first request, data (i) corresponding to a set of other SDKs installed at the client device and (ii) included in the first request generated by the first SDK;

transmitting, responsive to the first request generated by the first SDK, instructions specifying which SDK from among the set of other SDKs installed at the client device is required to render a digital component selected for delivery to the client device.

9. The non-transitory computer readable medium of claim 8 , wherein the operations further comprise:

accessing a mapping of application data to installed SDKs; and

identifying, within the mapping, an application specified in the application data and a version of the application that initiated the first request, wherein:

identifying data corresponding to the set of other SDKs installed at the client device comprises identifying the set of other SDKs that are mapped to the application and the version of the application that initiated the first request.

10. The non-transitory computer readable medium of claim 9 , wherein the operations further comprise generating the mapping of application data to installed SDKs, including:

identifying, from a response log stored in a data structure, previous responses that were previously provided to the version of the application in response to previous requests that were initiated by the version of the application;

identifying, from the previous responses, a set of multiple different SDKs that were specified in the previous responses; and

mapping each SDK in the set of multiple different SDKs to the version of the application in the data structure.

11. The non-transitory computer readable medium of claim 8 , wherein transmitting the instructions specifying which SDK installed at the client device is required to render the digital component comprises transmitting instructions specifying an application program interface (API) call to render the digital component.

12. The non-transitory computer readable medium of claim 8 , wherein the operations further comprise:

generating a second request that includes data specifying one or more SDKs from the set of other SDKs that are installed at the client device that initiated the first request; and

transmitting, over a network, the second request to a third party digital component provider without decrypting the data corresponding to the set of other SDKs installed at the client device.

13. The non-transitory computer readable medium of claim 12 , wherein the operations further comprise providing a custom digital component specified by a particular SDK in an electronic document at the client device.

14. The non-transitory computer readable medium of claim 13 , wherein the operations further comprise receiving the response to the second request specifying a particular SDK, other than the first SDK, that is required to render a particular digital component specified by the response to the second request.

15. A method, comprising:

receiving, from a client device, a first request for a digital component that was generated by a first software development kit (SDK) installed at the client device; and

identifying, within one or more data fields of the first request, data (i) corresponding to a set of other SDKs installed at the client device and (ii) included in the first request generated by the first SDK;

transmitting, responsive to the first request generated by the first SDK, instructions specifying which SDK from among the set of other SDKs installed at the client device is required to render a digital component selected for delivery to the client device.

16. The method of claim 15 , further comprising:

accessing a mapping of application data to installed SDKs; and

identifying, within the mapping, an application specified in the application data and a version of the application that initiated the first request, wherein:

identifying data corresponding to the set of other SDKs installed at the client device comprises identifying the set of other SDKs that are mapped to the application and the version of the application that initiated the first request.

17. The method of claim 16 , further comprising generating the mapping of application data to installed SDKs, including:

identifying, from a response log stored in a data structure, previous responses that were previously provided to the version of the application in response to previous requests that were initiated by the version of the application;

identifying, from the previous responses, a set of multiple different SDKs that were specified in the previous responses; and

mapping each SDK in the set of multiple different SDKs to the version of the application in the data structure.

18. The method of claim 15 , wherein transmitting the instructions specifying which SDK installed at the client device is required to render the digital component comprises transmitting instructions specifying an application program interface (API) call to render the digital component.

19. The method of claim 15 , further comprising:

generating a second request that includes data specifying one or more SDKs from the set of other SDKs that are installed at the client device that initiated the first request; and

transmitting, over a network, the second request to a third party digital component provider without decrypting the data corresponding to the set of other SDKs installed at the client device.

20. The method of claim 19 , further comprising providing a custom digital component specified by a response to the second request for presentation by a particular SDK in an electronic document at the client device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2022
From: DAWSON, CHRISTOPHER; GARON, HASKELL AARON; GILES, JAMES; KUMAR, VISHAL VIRESH; NORUM, STEPHEN RHYS; LEVITTE, GEORGE JACOB
To: GOOGLE INC.
Reel/Frame 060374/0497 →
CHANGE OF NAME Recorded Jun 30, 2022
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 060558/0102 →
Continuity (4)
Continuation 17089124 · Nov 4, 2020
Continuation 16570130 · Sep 13, 2019
Continuation 15546442
Related Publication 20220303353A1 · Sep 22, 2022