IP Library Granted Patent US 10,862,999
Granted Patent B2
US 10,862,999 · App. 16/570,130 · Granted Dec 8, 2020

Custom digital components

Inventors: Christopher Dawson (Mountain View, CA); Haskell Aaron Garon (Mountain View, CA); James Giles (Mountain View, CA); Vishal Viresh Kumar (Mountain View, CA); Stephen Rhys Norum (Mountain View, CA); George Jacob Levitte (Mountain View, CA)
Assignee: Google LLC
H04L67/34G06F9/451G06F9/547G06F21/602H04L67/20
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 10,862,999
App. No.
16/570,130
Granted
Dec 8, 2020
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 (61)

1. A system, comprising:

a data structure storing a mapping of application data to installed software development kits (SDKs) that are installed in various applications;

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

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

receiving, from the client device, the 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 request, encrypted data that was generated and encrypted by a second SDK installed at the client device and included in the request generated by the first SDK;

generating a real-time request that includes data specifying a set of SDKs that are installed in an application that initiated the request at the client device;

transmitting, over a network, the real-time request to a third-party digital component provider that is authorized to decrypt the encrypted data generated by the second SDK;

receiving a response to the real-time request from the third party digital component provider; and

transmitting the response to the first SDK with instructions specifying which SDK installed at the client device is required to render a digital component specified by the response.

2. The system of claim 1 , wherein the operations further comprises identifying a set of SDKs that are installed in the application that initiated the request by:

accessing the mapping of application data to installed SDKs;

identifying, within the mapping, the application specified in the application data and a version of the application that initiated the request;

identifying the set of SDKs that are mapped to the application and the version of the application that initiated the 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 the 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 response to the first SDK with instructions specifying which SDK installed at the client device is required to render the digital component specified by the response comprises transmitting instructions specifying an application program interface (API) call to render the digital component specified by the response.

5. The system of claim 1 , wherein transmitting, over a network, the real-time request to the third party digital component provider comprises transmitting the real-time request to the third-party digital component provider without decrypting the encrypted data.

6. The system of claim 1 , wherein the operations further includes: providing a custom digital component associated with the response for presentation by a particular SDK in an electronic document at the client device.

7. The system of claim 1 , wherein:

receiving the response to the real-time request from the third party digital component provider comprises receiving the response specifies a particular SDK, other than the first SDK, that is required to render a particular digital component specified by the response.

8. A method, comprising:

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

identifying, within one or more data fields of the request, encrypted data that was generated and encrypted by a second SDK installed at the client device and included in the request generated by the first SDK;

generating, by one or more custom digital component servers, a real-time request that includes data specifying a set of SDKs that are installed in an application that initiated the request at the client device;

transmitting, over a network by the one or more custom digital component servers, the real-time request to a third-party digital component provider that is authorized to decrypt the encrypted data generated by the second SDK;

receiving, by the one or more custom digital component servers, a response to the real-time request from the third party digital component provider; and

transmitting, by the one or more custom digital component servers, the response to the first SDK with instructions specifying which SDK installed at the client device is required to render a digital component specified by the response.

9. The method of claim 8 , wherein the operations further comprise identifying a set of SDKs that are installed in the application that initiated the request by:

accessing a mapping of application data to installed SDKs;

identifying, within the mapping, the application specified in the application data and a version of the application that initiated the request;

identifying the set of SDKs that are mapped to the application and the version of the application that initiated the request.

10. The method of claim 9 , 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.

11. The method of claim 8 , wherein transmitting the response to the first SDK with instructions specifying which SDK installed at the client device is required to render a digital component specified by the response comprises transmitting instructions specifying an application program interface (API) call to render the digital component specified by the response.

12. The method of claim 8 , wherein transmitting, over a network by the one or more custom digital component servers, the real-time request to the third party digital component provider comprises transmitting the real-time request to the third-party digital component provider without decrypting the encrypted data.

13. The method of claim 8 , further comprising: providing a custom digital component associated with the response for presentation by a particular SDK in an electronic document at the client device.

14. The method of claim 8 , wherein:

receiving the response to the real-time request from the third party digital component provider comprises receiving the response specifies a particular SDK, other than the first SDK, that is required to render the digital component specified by the response.

15. A non-transitory computer storage medium encoded with a computer program, the program comprising instructions that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising:

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

identifying, within one or more data fields of the request, encrypted data that was generated and encrypted by a second SDK installed at the client device and included in the request generated by the first SDK;

generating, by one or more custom digital component servers, a real-time request that includes data specifying a set of SDKs that are installed in an application that initiated the request at the client device;

transmitting, over a network by the one or more custom digital component servers, the real-time request to a third-party digital component provider that is authorized to decrypt the encrypted data generated by the second SDK;

receiving, by the one or more custom digital component servers, a response to the real-time request from the third party digital component provider; and

transmitting, by the one or more custom digital component servers, the response to the first SDK with instructions specifying which SDK installed at the client device is required to render a digital component specified by the response.

16. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise identifying a set of SDKs that are installed in the application that initiated the request by:

accessing a mapping of application data to installed SDKs;

identifying, within the mapping, the application specified in the application data and a version of the application that initiated the request;

identifying the set of SDKs that are mapped to the application and the version of the application that initiated the request.

17. The non-transitory computer-readable medium 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 non-transitory computer-readable medium of claim 15 , wherein transmitting the response to the first SDK with instructions specifying which SDK installed at the client device is required to render a digital component specified by the response comprises transmitting instructions specifying an application program interface (API) call to render the digital component included in the response.

19. The non-transitory computer-readable medium of claim 15 , wherein transmitting, over a network, the real-time request to the third party digital component provider comprises transmitting the real-time request to the third-party digital component provider without decrypting the encrypted data.

20. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise: providing a custom digital component associated with the response for presentation by a particular SDK in an electronic document at the client device.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2021
From: DAWSON, CHRISTOPHER; GARON, HASKELL AARON; GILES, JAMES; KUMAR, VISHAL VIRESH; NORUM, STEPHEN RHYS; LEVITTE, GEORGE JACOB
To: GOOGLE INC.
Reel/Frame 054998/0648 →
CHANGE OF NAME Recorded Jan 22, 2021
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 055087/0497 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2019
From: DAWSON, CHRISTOPHER; GARON, HASKELL AARON; GILES, JAMES; KUMAR, VISHAL VIRESH; NORUM, STEPHEN RHYS; LEVITTE, GEORGE JACOB
To: GOOGLE INC.
Reel/Frame 050393/0683 →
CHANGE OF NAME Recorded Sep 16, 2019
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 050394/0377 →
Continuity (2)
Continuation 15546442
Related Publication 20200007657A1 · Jan 2, 2020