IP Library Granted Patent US 11,875,376
Granted Patent B2
US 11,875,376 · App. 16/443,597 · Granted Jan 16, 2024

Minimizing impact of experimental content delivery on computing devices

Inventors: Whelan Boyd (New York, NY); Tyler Brandt (Alameda, CA); James Fox (San Francisco, CA); Greeshma Yellareddy (San Francisco, CA); Lauren Pappone (Berkeley, CA); Michael Hood (San Francisco, CA)
Assignee: Optimizely North America Inc.
G06Q30/0243G06Q10/06375G06Q30/0202G06Q30/0255
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,875,376
App. No.
16/443,597
Granted
Jan 16, 2024
Kind
B2
Abstract

A method includes receiving, from a computing device, a request for content from a content provider and determining one or more experiment variations of the requested content that the computing device is assigned to based, at least in part, on the request. The method further includes generating, by a processing device, code indicating the determined one or more experiment variations and inserting the code into executable code corresponding to the requested content. The executable code is transmitted to the browser.

Claims (55)

1. A method comprising:

receiving, at a processing device of an edge node device from a destination computing device, a request for content hosted by a content provider, wherein the edge node device is a separate device from the destination computing device;

determining, by the processing device, a plurality of content experiments that the destination computing device is eligible for from a set of content experiments associated with the requested content;

determining, by the processing device, from a set of content variations associated with the determined plurality of content experiments, a plurality of content variations to be provided to the destination computing device based on respective targeting criteria for each content variation of the set of content variations, wherein the determined plurality of content variations are a subset that is less than all of the set of content variations,

wherein determining the plurality of content variations comprises:

assigning, by the processing device, for each of the plurality of content experiments for which the destination computing device is eligible, a content variation to be provided to the destination computing device randomly, and

wherein the respective targeting criteria for each content variation of the set of content variations includes one or more of: a browser type, a type of the destination computing device, a source the request originated from, cookies on the destination computing device, query parameters in the request, geographic location of the destination computing device, a language of the destination computing device, a uniform resource locator (URL), a uniform resource identifier, a header, a flag or an internet protocol (IP) address;

generating, by the processing device, a snippet comprising portions of the targeting criteria, unique identification values of the determined plurality of content experiments, and code to interface with the requested content and execute changes associated with the determined plurality of content experiments, wherein the snippet excludes code, data, configuration, and other content associated with content variations of the set of content variations that are not to be provided to the destination computing device;

generating, by the processing device of the edge node device, a hash value of the snippet and a visitor identifier (ID) associated with the destination computing device and the snippet, the hash value representing the determined plurality of content experiments and the plurality of content variations to be provided to the destination computing device associated with the visitor ID;

prior to receiving an initial request for one of the plurality of content variations from the destination computing device at a content delivery network (CDN), transmitting the hash value directly from the edge node device to the destination computing device and directly from the edge node device to the CDN;

prior to receiving the initial request for one of the plurality of content variations from the destination computing device, identifying the determined plurality of content experiments for which the destination computing device is eligible by decoding the hash value and caching each of the plurality of content variations associated with the determined plurality of content experiments for which the destination computing device is eligible at the CDN based on the plurality of content experiments represented by the hash value;

receiving the request for one of the plurality of content variations from the destination computing device, the request comprising the hash value as part of a caching cookie; and

in response to receiving the request for one of the plurality of content variations from the destination computing device, returning the one of the plurality of content variations for which the destination computing device is eligible that is cached by the CDN.

2. The method of claim 1 , wherein determining the plurality of content variations comprises:

receiving, at the processing device, information regarding the destination computing device, wherein the information indicates characteristics of one or more of the request for the content hosted by the content provider, the destination computing device, a user of the destination computing device, an application running on the destination computing device, or information stored on the destination computing device;

comparing, by the processing device, the information to the respective targeting criteria for each of the set of content variations; and

identifying as the plurality of content variations, by the processing device, those content variations having respective targeting criteria that matches the information.

3. The method of claim 1 , wherein the request for the one of the plurality of content variations from the destination computing device is received at the edge node device.

4. A system comprising:

a memory;

a processing device coupled to the memory, the processing device to:

receive, at an edge node device, a request for content hosted by a content provider from a destination computing device, wherein the edge node device is a separate device from the destination computing device;

determine a plurality of content experiments that the destination computing device is eligible for from a set of content experiments associated with the requested content;

determine, from a set of content variations associated with the determined plurality of content experiments, a plurality of content variations to be provided to the destination computing device based on respective targeting criteria for each content variation of the set of content variations, wherein the determined plurality of content variations are a subset that is less than all of the set of content variations,

wherein, to determine the plurality of content variations, the processing device is to:

assign for each of the plurality of content experiments for which the destination computing device is eligible, a content variation to be provided to the destination computing device randomly, and

wherein the respective targeting criteria for each content variation of the set of content variations includes one or more of: a browser type, a type of the destination computing device, a source the request originated from, cookies on the destination computing device, query parameters in the request, geographic location of the destination computing device, a language of the destination computing device, a uniform resource locator (URL), a uniform resource identifier, a header, a flag or an internet protocol (IP) address;

generate a snippet comprising portions of the targeting criteria, unique identification values of the determined plurality of content experiments, and code to interface with the requested content and execute changes associated with the determined plurality of content experiments, wherein the snippet excludes code, data, configuration, and other content associated with content variations of the set of content variations that are not to be provided to the destination computing device;

generate a hash value of the snippet and a visitor identifier (ID) associated with the destination computing device, the hash value representing the determined plurality of content experiments and the plurality of content variations to be provided to the destination computing device associated with the visitor ID;

prior to receiving an initial request for one of the plurality of content variations from the destination computing device at a content delivery network (CDN), transmit the hash value directly from the edge node device to the destination computing device and directly from the edge node device to the CDN;

prior to receiving the initial request for one of the plurality of content variations from the destination computing device, identify the determined plurality of content experiments for which the destination computing device is eligible by decoding the hash value and cache each of the plurality of content variations associated with the determined plurality of content experiments for which the destination computing device is eligible at the CDN based on the plurality of content experiments represented by the hash value;

receive the request for one of the plurality of content variations from the destination computing device, the request comprising the hash value as part of a caching cookie; and

in response to receiving the request for one of the plurality of content variations from the destination computing device, return the one of the plurality of content variations for which the destination computing device is eligible that is cached by the CDN.

5. The system of claim 4 , wherein to determine the plurality of content variations, the processing device is to:

receive information regarding the destination computing device, wherein the information indicates characteristics of one or more of the request for the content hosted by the content provider, the destination computing device, a user of the destination computing device, an application running on the destination computing device, or information stored on the destination computing device;

compare the information to the respective targeting criteria for each of the set of content variations; and

identify as the plurality of content variations, those content variations having respective targeting criteria that matches the information.

6. The system of claim 4 , wherein the request for the one of the plurality of content variations from the destination computing device is received at the edge node device.

7. A non-transitory computer-readable storage medium including instructions that, when executed by a processing device, cause the processing device to:

receive, at an edge node device, a request for content hosted by a content provider from a destination computing device, wherein the edge node device is a separate device from the destination computing device;

determine a plurality of content experiments that the destination computing device is eligible for from a set of content experiments associated with the requested content;

determine, from a set of content variations associated with the determined plurality of content experiments, a plurality of content variations to be provided to the destination computing device based on respective targeting criteria for each content variation of the set of content variations, wherein the determined plurality of content variations are a subset that is less than all of the set of content variations,

wherein, to determine the plurality of content variations, the processing device is to:

assign for each of the plurality of content experiments for which the destination computing device is eligible, a content variation to be provided to the destination computing device randomly, and

wherein the respective targeting criteria for each content variation of the set of content variations includes one or more of: a browser type, a type of the destination computing device, a source the request originated from, cookies on the destination computing device, query parameters in the request, geographic location of the destination computing device, a language of the destination computing device, a uniform resource locator (URL), a uniform resource identifier, a header, a flag or an internet protocol (IP) address;

generate a snippet comprising portions of the targeting criteria, unique identification values of the determined plurality of content experiments, and code to interface with the requested content and execute changes associated with the determined plurality of content experiments, wherein the snippet excludes code, data, configuration, and other content associated with content variations of the set of content variations that are not to be provided to the destination computing device;

generate a hash value of the snippet and a visitor identifier (ID) associated with the destination computing device, the hash value representing the determined plurality of content experiments and the plurality of content variations to be provided to the destination computing device associated with the visitor ID;

prior to receiving an initial request for one of the plurality of content variations from the destination computing device at a content delivery network (CDN), transmit the hash value directly from the edge node device to the destination computing device and directly from the edge node device to the CDN;

prior to receiving the initial request for one of the plurality of content variations from the destination computing device, identify the determined plurality of content experiments for which the destination computing device is eligible by decoding the hash value and cache each of the plurality of content variations associated with the determined plurality of content experiments for which the destination computing device is eligible at the CDN based on the plurality of content experiments represented by the hash value;

receive the request for one of the plurality of content variations from the destination computing device, the request comprising the hash value as part of a caching cookie; and

in response to receiving the request for one of the plurality of content variations from the destination computing device, return the one of the plurality of content variations for which the destination computing device is eligible that is cached by the CDN.

8. The non-transitory computer-readable storage medium of claim 7 , wherein to determine the plurality of content variations, the processing device is to:

receive information regarding the destination computing device, wherein the information indicates characteristics of one or more of the request for the content hosted by the content provider, the destination computing device, a user of the destination computing device, an application running on the destination computing device, or information stored on the destination computing device;

compare the information to the respective targeting criteria for each of the set of content variations; and

identify as the plurality of content variations, those content variations having respective targeting criteria that matches the information.

Assignments (10)
TERMINATION AND RELEASE OF SECURITY INTEREST Recorded Oct 31, 2024
From: GOLUB CAPITAL MARKETS LLC
To: OPTIMIZELY NORTH AMERICA INC.
Reel/Frame 069285/0225 →
SECURITY INTEREST Recorded Oct 31, 2024
From: OPTIMIZELY NORTH AMERICA, INC.
To: GOLUB CAPITAL MARKETS LLC
Reel/Frame 069089/0588 →
MERGER Recorded Jul 3, 2023
From: OPTIMIZELY OPERATIONS HOLDCO INC.
To: OPTIMIZELY NORTH AMERICA INC.
Reel/Frame 064139/0628 →
MERGER Recorded Jun 20, 2023
From: OPTIMIZELY OPERATIONS INC.
To: OPTIMIZELY OPERATIONS HOLDCO INC.
Reel/Frame 063995/0874 →
CHANGE OF NAME Recorded Jun 8, 2023
From: OPTIMIZELY, INC.
To: OPTIMIZELY OPERATIONS INC.
Reel/Frame 063939/0656 →
CORRECTIVE ASSIGNMENT TO CORRECT THE UNDERLYING DOCUMENT PREVIOUSLY RECORDED ON REEL 056588 FRAME 0075. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL. Recorded Jul 22, 2021
From: HERCULES CAPITAL, INC., AS COLLATERAL AGENT
To: OPTIMIZELY, INC.
Reel/Frame 056958/0064 →
PATENT SECURITY AGREEMENT Recorded Jul 6, 2021
From: OPTIMIZELY, INC.
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 056768/0917 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Jun 14, 2021
From: HERCULES CAPITAL, INC., AS COLLATERAL AGENT
To: OPTIMIZELY, INC.
Reel/Frame 056588/0075 →
SECURITY INTEREST Recorded Oct 19, 2020
From: OPTIMIZELY, INC.
To: HERCULES CAPITAL, INC., AS COLLATERAL AGENT
Reel/Frame 054093/0019 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2019
From: BOYD, WHELAN; BRANDT, TYLER; FOX, JAMES; YELLAREDDY, GREESHMA; PAPPONE, LAUREN; HOOD, MICHAEL
To: OPTIMIZELY, INC.
Reel/Frame 049508/0037 →