IP Library Granted Patent US 10,938,879
Granted Patent B2
US 10,938,879 · App. 16/430,054 · Granted Mar 2, 2021

Third-party Ad acceleration

Inventors: Sharad Jaiswal (Mountain View, CA); Madhukar Nagaraja Kedlaya (Sunnyvale, CA); Rajaram Suresh Gaunker (Santa Clara, CA); Padmapani Ganti (Fremont, CA); Hariharan Kolam (Palo Alto, CA); Mehrdad Reshadi (Sunnyvale, CA); Girish Vaitheeswaran (San Jose, CA)
Assignee: Akamai Technologies, Inc.
H04L67/02G06F40/14H04L67/20H04L67/2842
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,938,879
App. No.
16/430,054
Granted
Mar 2, 2021
Kind
B2
Abstract

A method of delivering a webpage is disclosed. It is determined that delivery of at least a portion of third-party content associated with a webpage is to be accelerated. One or more pre-conditions to be met prior to the delivery of the accelerated third-party content are determined. A loading order configuration for the webpage is determined based at least in part on the one or more pre-conditions. At least a portion of the webpage that modifies a loading order of content portions of the webpage is determined based on the loading order configuration.

Claims (56)

1. A method of delivering a webpage, comprising:

determining that delivery of at least a portion of third-party content associated with a webpage is to be accelerated or that a second portion of third-party content associated with the webpage is to be deferred;

determining one or more pre-conditions to be met prior to any delivery of the accelerated third-party content, wherein any second portion of the third-party content does not include resources that correspond to the one or more pre-conditions;

determining a loading order configuration for the webpage based at least in part on the one or more pre-conditions; and

providing at least a portion of the webpage that modifies a loading order of content portions of the webpage based on the loading order configuration;

wherein the at least a portion of the webpage also comprises a virtualization client having a wrapper function configured to intercept and delay one or more network requests corresponding to any second portion of the third-party content.

2. The method of claim 1 , wherein the accelerated third-party content comprises an advertisement, and wherein determining the one or more pre-conditions comprises determining one or more pre-conditions that are required prior to an initiation of an Advertisement (Ad) auction process.

3. The method of claim 2 , wherein the one or more pre-conditions comprise loading one or more libraries required for the Ad auction process.

4. The method of claim 2 , wherein the one or more pre-conditions comprise triggering one or more events that are required prior to the initiation of the Ad auction process.

5. The method of claim 4 , wherein the one or more events comprise DOM events.

6. The method of claim 2 , wherein the one or more pre-conditions are provided by a web publisher of the webpage.

7. The method of claim 6 , wherein the loading order configuration for the webpage comprises a list of resources that are pre-loaded in a sequential order, and wherein a resource listed earlier on the list is configured to pre-load at an earlier time than a resource listed later on the list, and wherein the loading order configuration is provided by the web publisher of the webpage.

8. The method of claim 1 , wherein the one or more pre-conditions are learned by performing a profiling process for the webpage, wherein the profiling process comprises:

determining a plurality of timelines for loading of the webpage, wherein a timeline comprises timestamps related to loading of a plurality of resources, and wherein the timeline comprises timestamps related to a plurality of DOM events, and wherein the timeline comprises timestamps of when delivery of the accelerated third-party content begins.

9. The method of claim 8 , wherein the loading order configuration for the webpage comprises a list of resources that are pre-loaded in a sequential order, and wherein a resource listed earlier on the list is configured to pre-load at an earlier time than a resource listed later on the list, and wherein the loading order configuration is based on at least some of the timestamps determined by the profiling process.

10. The method of claim 1 , wherein the virtualization client is further configured to cause a service worker to cache the at least a portion of the webpage in a browser cache.

11. The method of claim 1 , wherein the at least a portion of the webpage comprises a resource identifier corresponding to a resource, and wherein the resource identifier has a transformed domain transformed from an original domain, and wherein the transformed domain corresponds to a first server, and wherein the original domain corresponds to a second server, and wherein the first server and the second server are two different servers.

12. The method of claim 1 , wherein the at least a portion of the webpage comprises code that dynamically generates a resource identifier corresponding to a resource, and wherein the resource identifier has a transformed domain transformed from an original domain, and wherein the transformed domain corresponds to a first server, and wherein the original domain corresponds to a second server, and wherein the first server and the second server are two different servers.

13. The method of claim 1 , further comprising:

determining that delivery of at least a third portion of third-party content associated with the webpage is to be blocked.

14. The method of claim 1 , further comprising:

monitoring a first amount of network resource consumption associated with the accelerated third-party content; and

monitoring a second amount of network resource consumption associated with at least a portion of first-party content associated with the webpage; and

adjusting the delivery of the accelerated third-party content based at least in part on the first amount of network resource consumption and the second amount of network resource consumption.

15. A system for delivering a webpage, comprising:

a processor; and

a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to:

determine that delivery of at least a portion of third-party content associated with a webpage is to be accelerated or that a second portion of third-party content associated with the webpage is to be deferred;

determine one or more pre-conditions to be met prior to the delivery of the accelerated third-party content, wherein any second portion of the third-party content does not include resources that correspond to the one or more pre-conditions;

determine a loading order configuration for the webpage based at least in part on the one or more pre-conditions; and

provide at least a portion of the webpage that modifies a loading order of content portions of the webpage based on the loading order configuration;

wherein the at least a portion of the webpage also comprises a virtualization client having a wrapper function configured to intercept and delay one or more network requests corresponding to any second portion of the third-party content.

16. The system of claim 15 , wherein the accelerated third-party content comprises an advertisement, and wherein determining the one or more pre-conditions comprises determining one or more pre-conditions that are required prior to an initiation of an Advertisement (Ad) auction process.

17. The system of claim 16 , wherein the one or more pre-conditions comprise loading one or more libraries required for the Ad auction process.

18. The system of claim 16 , wherein the one or more pre-conditions comprise triggering one or more events that are required prior to the initiation of the Ad auction process.

19. The system of claim 18 , wherein the one or more events comprise DOM events.

20. The system of claim 16 , wherein the one or more pre-conditions are provided by a web publisher of the webpage.

21. The system of claim 20 , wherein the loading order configuration for the webpage comprises a list of resources that are pre-loaded in a sequential order, and wherein a resource listed earlier on the list is configured to pre-load at an earlier time than a resource listed later on the list, and wherein the loading order configuration is provided by the web publisher of the webpage.

22. The system of claim 15 , wherein the one or more pre-conditions are learned by performing a profiling process for the webpage, wherein the profiling process comprises:

determining a plurality of timelines for loading of the webpage, wherein a timeline comprises timestamps related to loading of a plurality of resources, and wherein the timeline comprises timestamps related to a plurality of DOM events, and wherein the timeline comprises timestamps of when delivery of the accelerated third-party content begins.

23. The system of claim 22 , wherein the loading order configuration for the webpage comprises a list of resources that are pre-loaded in a sequential order, and wherein a resource listed earlier on the list is configured to pre-load at an earlier time than a resource listed later on the list, and wherein the loading order configuration is based on at least some of the timestamps determined by the profiling process.

24. The system of claim 15 , wherein the virtualization client is further configured to cause a service worker to cache the at least a portion of the webpage in a browser cache.

25. The system of claim 15 , wherein the at least a portion of the webpage comprises a resource identifier corresponding to a resource, and wherein the resource identifier has a transformed domain transformed from an original domain, and wherein the transformed domain corresponds to a first server, and wherein the original domain corresponds to a second server, and wherein the first server and the second server are two different servers.

26. The system of claim 15 , wherein the at least a portion of the webpage comprises code that dynamically generates a resource identifier corresponding to a resource, and wherein the resource identifier has a transformed domain transformed from an original domain, and wherein the transformed domain corresponds to a first server, and wherein the original domain corresponds to a second server, and wherein the first server and the second server are two different servers.

27. The system of claim 15 , wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:

determine that delivery of at least a third portion of third-party content associated with the webpage is to be blocked.

28. The method of claim 15 , wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:

monitor a first amount of network resource consumption associated with the accelerated third-party content; and

monitor a second amount of network resource consumption associated with at least a portion of first-party content associated with the webpage; and

adjust the delivery of the accelerated third-party content based at least in part on the first amount of network resource consumption and the second amount of network resource consumption.

29. A computer program product for delivering a webpage, the computer program product being embodied in a tangible, non-transitory computer readable storage medium and comprising computer instructions for:

determining that delivery of at least a portion of third-party content associated with a webpage is to be accelerated or that a second portion of third-party content associated with the webpage is to be deferred;

determining one or more pre-conditions to be met prior to the delivery of the accelerated third-party content, wherein any second portion of the third-party content does not include resources that correspond to the one or more pre-conditions;

determining a loading order configuration for the webpage based at least in part on the one or more pre-conditions; and

providing at least a portion of the webpage that modifies a loading order of content portions of the webpage based on the loading order configuration;

wherein the at least a portion of the webpage also comprises a virtualization client having a wrapper function configured to intercept and delay one or more network requests corresponding to any second portion of the third-party content.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2020
From: INSTART LOGIC, INC.
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 052120/0773 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2019
From: JAISWAL, SHARAD; KEDLAYA, MADHUKAR NAGARAJA; GAUNKER, RAJARAM SURESH; GANTI, PADMAPANI; KOLAM, HARIHARAN; RESHADI, MEHRDAD; VAITHEESWARAN, GIRISH
To: INSTART LOGIC, INC.
Reel/Frame 050027/0255 →
Continuity (2)
Provisional Application 62680346 · Jun 4, 2018
Related Publication 20190373043A1 · Dec 5, 2019
Cited By (1)
US 12,614,210