IP Library Granted Patent US 10,455,008
Granted Patent B2
US 10,455,008 · App. 16/102,188 · Granted Oct 22, 2019

Individualized connectivity based request handling

Inventors: Louis Clayton Ashner (New York, NY); Michael Zacharski (Pawling, NY); Michael Adam Grosinger (New York, NY); Mickey Alexander Schwab (Chicago, IL); John Patrick Roach (New York, NY)
Assignee: ENGINE MEDIA, LLC
H04L67/101H04L43/0852H04L67/14H04L41/50H04L43/0882H04L67/2814H04L67/32
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,455,008
App. No.
16/102,188
Granted
Oct 22, 2019
Kind
B2
Abstract

Individualized connectivity based request handling is disclosed. For example, a content source is accessed by a client device and a load balancer executes on a processor to receive a first request based on the client device accessing the content source. A first session variable is set to a first value in a first session and a first latency to the client device is measured. A first plurality of target nodes is selected based on the first session variable. A first plurality of messages is sent to the first plurality of target nodes. A second request is received from the client device after the first session expires, starting a second session. The first session variable is set to a different second value in the second session. A second plurality of messages is sent to a second plurality of target nodes different from the first plurality of target nodes.

Claims (64)

1. A system comprising:

a content source accessed by a client device over a network; and

a load balancer service across the network from the client device executing on one or more processors to:

receive a first request based on the client device accessing the content source;

establish a first session between the client device and the load balancer service;

set a first session variable to a first value in the first session;

send a first plurality of messages to a first plurality of target nodes selected based on the first value of the first session variable;

update the first value to a second value responsive to receiving a result of a probe sent by one of the load balancer service and the client device, wherein the result of the probe is stored by at least one of the load balancer service and the client device as a client device variable;

receive a second request in the first session from the client device;

send a second plurality of messages to a second plurality of target nodes different from the first plurality of target nodes based on the second value of the first session variable;

establish a second session between the load balancer service and the client device after the first session is terminated; and

in the second session, setting a first session variable of the second session to a third value based on the client device variable stored from the first session.

2. The system of claim 1 , wherein the first session variable is one of a timeout value, a request class, a client device type, and a network connection type.

3. The system of claim 1 , wherein a first latency between the load balancer service and the client device is computed from an elapsed time between at least one of (i) the client device accessing the content source and the load balancer service receiving the first request, (ii) the content source responding to the client device and the load balancer service receiving the first request, and (iii) the client device sending the first request and the load balancer service receiving the first request.

4. The system of claim 1 , wherein the first plurality of target nodes is selected based on a respective average response time from each of the first plurality of target nodes.

5. The system of claim 1 , wherein the probe measures at least one of a round trip latency between the load balancer service and the client device and a network bandwidth of the client device.

6. The system of claim 1 , wherein the probe is triggered based on one of (i) the client device accessing one of the content source and the load balancer service and (ii) a timing discrepancy between the load balancer service and the client device.

7. The system of claim 1 , wherein the client device variable is one of a measured latency between the load balancer service and the client device, a network bandwidth of the client device, a screen resolution of the client device, a user account logged into the client device, and a measurable physical attribute of the client device.

8. The system of claim 1 , wherein the first plurality of target nodes is a plurality of advertisers, the load balancer service conducts a first auction with the first plurality of target nodes for a first advertisement impression associated with a first view of the content source accessed by the client device.

9. The system of claim 8 , wherein an advertisement type is selected based on a client device variable, an advertisement auction setting is adjusted based on a client device variable, and the advertisement auction setting includes at least one of an auction timeout setting and an auction target setting.

10. A method comprising:

receiving a first request based on a client device accessing a content source over a network;

establishing a first session between the client device and a load balancer service over the network;

setting a first session variable to a first value in the first session;

sending a first plurality of messages to a first plurality of target nodes selected based on the first value of the first session variable;

updating the first value to a second value responsive to receiving a result of a probe sent by one of the load balancer service and the client device, wherein the result of the probe is stored by at least one of the load balancer service and the client device as a client device variable;

receiving a second request in the first session from the client device; and

sending a second plurality of messages to a second plurality of target nodes different from the first plurality of target nodes based on the second value of the first session variable;

establishing a second session between the load balancer service and the client device after the first session is terminated; and

in the second session, setting a first session variable of the second session to a third value based on the client device variable stored from the first session.

11. The method of claim 10 , wherein the first session variable is one of a timeout value, a request class, a client device type, and a network connection type.

12. The method of claim 10 , further comprising:

computing a first latency between the load balancer service and the client device from an elapsed time between at least one of (i) the client device accessing the content source and the load balancer service receiving the first request, (ii) the content source responding to the client device and the load balancer service receiving the first request, and (iii) the client device sending the first request and the load balancer service receiving the first request.

13. The method of claim 10 , further comprising:

selecting the first plurality of target nodes based on a respective average response time from each of the first plurality of target nodes.

14. The method of claim 10 , wherein a second session variable includes at least one of a motion setting, an orientation setting, and a network bandwidth setting.

15. The method of claim 10 , further comprising:

measuring, by the probe, a round trip latency between the load balancer service and the client device.

16. The method of claim 10 , further comprising:

measuring, by the probe, a network bandwidth of the client device.

17. The method of claim 10 , further comprising:

triggering the probe based on the client device accessing one of the content source and the load balancer service.

18. The method of claim 10 , further comprising:

triggering the probe based on a timing discrepancy between the load balancer service and the client device.

19. The method of claim 10 , wherein the client device variable is one of a measured latency between the load balancer service and the client device, a network bandwidth of the client device, a screen resolution of the client device, a user account logged into the client device, and a measurable physical attribute of the client device.

20. The method of claim 10 , further comprising:

storing the client device variable in a cookie.

21. The method of claim 10 , wherein the first plurality of target nodes is a plurality of advertisers, the load balancer service conducts a first auction with the first plurality of target nodes for a first advertisement impression associated with a first view of the content source accessed by the client device.

22. The method of claim 21 , further comprising:

selecting an advertisement type based on a client device variable.

23. The method of claim 22 , further comprising:

adjusting an advertisement auction setting based on a client device variable.

24. The method of claim 23 , wherein the advertisement auction setting includes at least one of an auction timeout setting and an auction target setting.

25. The method of claim 24 , wherein the auction target setting is based on the auction timeout setting.

26. A computer-readable non-transitory storage medium storing executable instructions, which when executed by a computer system, cause the computer system to:

receive a first request based on a client device accessing a content source over a network;

establish a first session between the client device and a load balancer service over the network;

set a first session variable to a first value in the first session;

send a first plurality of messages to a first plurality of target nodes selected based on the first value of the first session variable;

update the first value to a second value responsive to receiving a result of a probe sent by one of the load balancer service and the client device, wherein the result of the probe is stored by at least one of the load balancer service and the client device as a client device variable;

receive a second request in the first session from the client device; and

send a second plurality of messages to a second plurality of target nodes different from the first plurality of target nodes based on the second value of the first session variable;

establish a second session between the load balancer service and the client device after the first session is terminated; and

in the second session, setting a first session variable of the second session to a third value based on the client device variable stored from the first session.

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 Dec 21, 2018
From: ASHNER, LOUIS CLAYTON; GROSINGER, MICHAEL ADAM; SCHWAB, MICKEY ALEXANDER; ZACHARSKI, MICHAEL; ROACH, JOHN PATRICK
To: ENGINE MEDIA, LLC
Reel/Frame 047844/0397 →