IP Library Granted Patent US 10,999,201
Granted Patent B2
US 10,999,201 · App. 15/996,112 · Granted May 4, 2021

Dynamic advertisement routing

Inventors: Louis Clayton Ashner (New York, NY); John Patrick Roach (New York, NY); Michael Zacharski (Pawling, NY)
Assignee: ENGINE MEDIA, LLC
H04L47/125G06F9/45533G06F9/45558H04L43/0858H04L43/0888H04L43/10H04L43/16H04L45/02H04L45/54H04L47/24H04L47/283H04L67/1027H04L67/141G06F2009/45595H04L67/16
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,999,201
App. No.
15/996,112
Filed
Jun 1, 2018
Granted
May 4, 2021
Kind
B2
Art Unit
2414
USPC
370/237
Abstract

Dynamic advertisement routing is disclosed. For example, a plurality of internet protocol (“IP”) addresses associated with respective plurality of target nodes is stored in a routing pool. Each IP address in the routing pool is pinged through each of first and second load balancer network interfaces. Network routes associated with target nodes are updated based on a first plurality of ping responses. Communications sessions are established with target nodes through respective network routes. IP addresses are pinged and respective latencies in a latency cache are updated based on a second plurality of ping responses. A first request directed to the plurality of target nodes is received and is determined to be sent to a first target node based on the latency cache forwarded to the first target node via the first network route.

Claims (43)

1. A system of network latency optimization for an online advertisement auction system, the system comprising:

a memory storing a latency cache and a routing pool, wherein the routing pool stores a plurality of target addresses for an advertiser including a first target address and a second target address;

a plurality of network interfaces including a first network interface and a second network interface; and

a load balancer executing on one or more processors to:

determine a first plurality of latencies to each of the plurality of target addresses stored in the routing pool, including a first latency of a first network route from the first network interface to the first target address, a second latency of a second network route from the second network interface to the first target address, a third latency of a third network route from the first network interface to the second target address, and a fourth latency of a fourth network route from the second network interface to the second target address;

establish a first session through the first network route and a second session through the third network route, wherein a plurality of current latencies are stored in the latency cache including a current first latency of the first network route and a current third latency of the third network route;

responsive to receiving a first request from a publisher for a bid for an advertisement slot and based on the latency cache, select the first target address via the first network route for sending the first request to the advertiser; and

determine a fifth latency of a fifth network route from the second network interface to the first target address and a sixth latency of a sixth network route from the second network interface to the second target address, wherein the first session through the first network route and the second session through the third network route are kept alive while the fifth latency and the sixth latency are determined.

2. The system of claim 1 , wherein the first network route and the third network route are stored in a routing table respectively as a first selected route to the first target address and a second selected route to the second target address.

3. The system of claim 2 , wherein the latency cache stores current latencies of the first network route and the third network route based on the first network route and the third network route being included in the routing table.

4. The system of claim 3 , wherein a latency service periodically pings each target address of the plurality of target addresses through a respective selected route to each respective target address.

5. The system of claim 2 , wherein the load balancer further executes to replace the first network route with the fifth network route as the first selected route to the first target address.

6. The system of claim 5 , wherein a current fifth latency of the fifth network route is stored in the latency cache after the fifth network route becomes the first selected route.

7. The system of claim 5 , wherein the load balancer further executes to

responsive to receiving a second request from a second publisher for a bid for an advertisement slot and based on the latency cache, select a third session through the fifth network route for sending the second request to the first target address.

8. The system of claim 1 , wherein a routing service periodically pings each of the plurality of target addresses in the routing pool from each of the plurality of network interfaces.

9. The system of claim 1 , wherein the first request is high priority and a second request is low priority.

10. The system of claim 9 , wherein the second request is forwarded to the second target address based on the current third latency being higher than the current first latency.

11. The system of claim 1 , wherein a third target address of the plurality of target addresses is discovered based on a request sent to a domain name associated with the first target address, and a routing service pings the third target address from each of the first network interface and the second network interface.

12. The system of claim 11 , wherein a third session is established through a seventh network route from the first network interface to the third target address, and the third session is kept alive while the routing service pings the third target address through an eighth network route from the second network interface to the third target address, and then pings the third target address again through a different ninth network route from the second network interface to the third target address.

13. The system of claim 1 , wherein the load balancer executes instructions to select the first network route based at least in part on a response deadline for loading an advertisement for the advertisement slot.

14. The method of claim 1 , wherein selecting the first network route is also based at least in part on a response deadline for loading an advertisement for the advertisement slot.

15. A method of network latency optimization for an online advertising auction system, the method comprising:

determining a first plurality of latencies to each of a plurality of target addresses for an advertiser stored in a routing pool, including a first latency of a first network route from a first network interface of a plurality of network interfaces to a first target address of the plurality of target addresses, a second latency of a second network route from a second network interface of the plurality of network interfaces to the first target address, a third latency of a third network route from the first network interface to a second target address of the plurality of target addresses, and a fourth latency of a fourth network route from the second network interface to the second target address;

establishing a first session through the first network route and a second session through the third network route, wherein a plurality of current latencies are stored in a latency cache including a current first latency of the first network route and a current third latency of the third network route;

responsive to receiving a first request for bids on an online advertising slot from a publisher and based on the latency cache, sending the first request to the advertiser via the first network route; and

determining a fifth latency of a fifth network route from the second network interface to the first target address and a sixth latency of a sixth network route from the second network interface to the second target address, wherein the first session through the first network route and the second session through the third network route are kept alive while the fifth latency and the sixth latency are determined.

16. The method of claim 15 , further comprising storing the first network route and the third network route in a routing table as a first selected route to the first target address and a second selected route to the second target address.

17. The method of claim 16 , further comprising: periodically pinging each target address of the plurality of target addresses through a respective selected route to each respective target address.

18. The method of claim 16 further comprising,

replacing the first network route with the fifth network route as the first selected route to the first target address;

storing a current fifth latency of the fifth network route in the latency cache; and

selecting a third session through the fifth network route for a second request to the first target address.

19. The method of claim 15 , further comprising periodically pinging each of the plurality of target addresses in the routing pool from each of the plurality of network interfaces.

20. The method of claim 15 , further comprising discovering a third target address of the plurality of target addresses based on a request sent to a domain name associated with the first target address; and

pinging the third target address from each of the first network interface and the second network interface.

21. The method of claim 20 , further comprising establishing a third session through a seventh network route from the first network interface to the third target address; and keeping the third session alive while the routing service pings the third target address through an eighth network route from the second network interface to the third target address, and then pings the third target address again through a different ninth network route from the second network interface to the third target address.

22. A computer-readable non-transitory storage medium storing executable instructions of network latency optimization for an online advertising auction system, which when executed by a computer system, cause the computer system to:

determine a first plurality of latencies to each of a plurality of target addresses for an advertiser stored in a routing pool, including a first latency of a first network route from a first network interface of a plurality of network interfaces to a first target address of the plurality of target addresses, a second latency of a second network route from a second network interface of the plurality of network interfaces to the first target address, a third latency of a third network route from the first network interface to a second target address of the plurality of target addresses, and a fourth latency of a fourth network route from the second network interface to the second target address;

establish a first session through the first network route and a second session through the third network route, wherein a plurality of current latencies are stored in a latency cache including a current first latency of the first network route and a current third latency of the third network route;

responsive to receiving a first request for bids for on an online advertising slot from a publisher and based on the latency cache, send the first request to the advertiser to the first target address via the first network route; and

determine a fifth latency of a fifth network route from the second network interface to the first target address and a sixth latency of a sixth network route from the second network interface to the second target address, wherein the first session through the first network route and the second session through the third network route are kept alive while the fifth latency and the sixth latency are determined.

23. The medium of claim 22 , wherein the executable instructions further cause the computer system to select the first network route based at least in part on a response deadline for loading an advertisement for the advertisement slot.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2023
From: BIG VILLAGE MEDIA, LLC
To: CADENT, LLC
Reel/Frame 063450/0344 →
CHANGE OF NAME Recorded Apr 24, 2023
From: ENGINE MEDIA, LLC
To: BIG VILLAGE MEDIA LLC
Reel/Frame 063424/0199 →
SECURITY INTEREST Recorded Nov 19, 2020
From: ENGINE MEDIA, LLC
To: BNP PARIBAS, AS COLLATERAL AGENT FOR THE SECURED PARTIES
Reel/Frame 054416/0019 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2018
From: ASHNER, LOUIS CLAYTON; ROACH, JOHN PATRICK; ZACHARSKI, MICHAEL
To: ENGINE MEDIA, LLC
Reel/Frame 045996/0120 →
Continuity (3)
Continuation 15815063 · Nov 16, 2017
Continuation 15463820 · Mar 20, 2017
Related Publication 20180278532A1 · Sep 27, 2018
Cited By (1)
US 12,670,280