IP Library Granted Patent US 10,255,173
Granted Patent B2
US 10,255,173 · App. 15/391,697 · Granted Apr 9, 2019

Experimentation in internet-connected applications and devices

Inventors: Vijay Jambu (Dublin, CA); John Provine (San Francisco, CA); Rama Ranganath (Tiburon, CA); Ali Abbas Rizvi (San Francisco, CA)
Assignee: Optimizely, Inc.
G06F11/3688G06F11/3672H04L67/02H04L67/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,255,173
App. No.
15/391,697
Granted
Apr 9, 2019
Kind
B2
Abstract

A content variation experiment system for performing variation testing of web pages is disclosed. A content provider receives requests for a web page undergoing an experiment. The content provider determines a variation from a plurality of variations of the web page to provide to the user. The content provider makes the determination without sending a network request to an experiment definition system used to define the experiment thereby reducing network latency.

Claims (65)

1. A computer-implemented method for determining a variation of a web page to provide to a client device, the method comprising:

providing, by a content provider, attributes of a variation experiment to an experiment definition system, the attributes including a definition for each of a plurality of different variations of a web page provided by the content provider;

storing, by the content provider, an experiment definition file received from the experiment definition system, the experiment definition file describing the attributes of the variation experiment for the web page provided by the content provider;

receiving, by the content provider, a first code block generated by the experiment definition system that allocates users requesting the web page to one of the plurality of different variations of the web page defined in the attributes of the variation experiment;

including, by the content provider, the first code block in source code of the web page provided by the content provider;

receiving, by the content provider, a request for the web page from a client device;

determining, by the content provider, a variation from the plurality of different variations of the web page to provide to the client device without communicating with the experiment definition system, the determination based on the stored experiment definition file and the first code block; and

providing, by the content provider, the determined variation of the web page to the client device.

2. The computer-implemented method of claim 1 , wherein the first code block is provided by the experiment definition system in a plurality of different programming languages and the method further comprising:

selecting, by the content provider, one of the plurality of different programming languages; and

receiving, by the content provider, the first code block from the experiment definition system in the selected programming language that corresponds to the programming language used to implement the web page.

3. The computer-implemented method of claim 1 , wherein the attributes of the variation experiment provided to the experiment definition system include a conversion metric for tracking during the variation experiment of the web page and the method further comprising:

receiving, by the content provider, a second code block generated by the experiment definition system that tracks events with the web page that are related to the conversion metric;

wherein the second code block generated by the experiment definition system is included in source code of the web page created by the content provider.

4. The computer-implemented method of claim 3 , wherein the second code block is provided by the experiment definition system in a plurality of different programming languages and the method further comprising:

selecting, by the content provider, one of the plurality of different programming languages; and

receiving, by the content provider, the second code block from the experiment definition system in the selected programming language that corresponds to the programming language used to implement the web page.

5. The computer-implemented method of claim 3 , further comprising:

tracking the events with the web page according to the second code block; and

reporting the tracked events to the experiment definition system.

6. The computer-implemented method of claim 5 , further comprising;

transmitting, by the content provider, a request for statistics associated with the variation experiment of the web page to the experiment definition system; and

receiving, by the content provider, the statistics associated with the variation experiment of the web page from the experiment definition system, the statistics calculated based on the tracked events reported to the experiment definition system.

7. The computer-implemented method of claim 1 , wherein the attributes of the variation experiment included in the experiment definition file describe a traffic distribution allocated to each of the plurality of different variations of the web page and wherein determining the variation of the web page comprises:

randomly assigning, by the content provider, a user of the client device to one of the plurality of different variations of the web page while satisfying the traffic distribution allocated to each of the plurality of different variations of the web page.

8. A computer program product comprising a non-transitory computer-readable storage medium storing executable code for determining a variation of a web page to provide to a client device, the code when executed causing a computer to perform steps comprising:

providing, by a content provider, attributes of a variation experiment to an experiment definition system, the attributes including a definition for each of a plurality of different variations of a web page provided by the content provider;

storing, by the content provider, an experiment definition file received from the experiment definition system, the experiment definition file describing the attributes of the variation experiment for the web page provided by the content provider;

receiving, by the content provider, a first code block generated by the experiment definition system that allocates users requesting the web page to one of the plurality of different variations of the web page defined in the attributes of the variation experiment;

including, by the content provider, the first code block in source code of the web page provided by the content provider;

receiving, by the content provider, a request for the web page from a client device;

determining, by the content provider, a variation from the plurality of different variations of the web page to provide to the client device without communicating with the experiment definition system, the determination based on the stored experiment definition file and the first code block; and

providing, by the content provider, the determined variation of the web page to the client device.

9. The computer program product of claim 8 , wherein the first code block is provided by the experiment definition system in a plurality of different programming languages and the method further comprising:

selecting, by the content provider, one of the plurality of different programming languages; and

receiving, by the content provider, the first code block from the experiment definition system in the selected programming language that corresponds to the programming language used to implement the web page.

10. The computer program product of claim 8 , wherein the attributes of the variation experiment provided to the experiment definition system include a conversion metric for tracking during the variation experiment of the web page and the method further comprising:

receiving, by the content provider, a second code block generated by the experiment definition system that tracks events with the web page that are related to the conversion metric;

wherein the second code block generated by the experiment definition system is included in source code of the web page created by the content provider.

11. The computer program product of claim 10 , wherein the second code block is provided by the experiment definition system in a plurality of different programming languages and the method further comprising:

selecting, by the content provider, one of the plurality of different programming languages; and

receiving, by the content provider, the second code block from the experiment definition system in the selected programming language that corresponds to the programming language used to implement the web page.

12. The computer program product of claim 10 , wherein the code when executed by the computer further causes the computer to perform further steps comprising:

tracking the events with the web page according to the second code block; and reporting the tracked events to the experiment definition system.

13. The computer program product of claim 12 , wherein the code when executed by the computer further causes the computer to perform further steps comprising;

transmitting, by the content provider, a request for statistics associated with the variation experiment of the web page to the experiment definition system; and

receiving, by the content provider, the statistics associated with the variation experiment of the web page from the experiment definition system, the statistics calculated based on the tracked events reported to the experiment definition system.

14. The computer program product of claim 8 , wherein the attributes of the variation experiment included in the experiment definition file describe a traffic distribution allocated to each of the plurality of different variations of the web page and wherein determining the variation of the web page comprises:

randomly assigning, by the content provider, a user of the client device to one of the plurality of different variations of the web page while satisfying the traffic distribution allocated to each of the plurality of different variations of the web page.

15. A content provider computer system for determining a variation of a web page to provide to a client device, the computer system comprising:

a computer processor;

a non-transitory computer-readable storage medium storing executable code, the code when executed by the computer processor causes the computer processor to perform steps comprising:

providing, by the content provider computer system, attributes of a variation experiment to an experiment definition system, the attributes including a definition for each of a plurality of different variations of a web page provided by the content provider computer system;

storing, by the content provider computer system, an experiment definition file received from the experiment definition system, the experiment definition file describing attributes of the variation experiment for the web page provided by the content provider;

receiving, by the content provider computer system, a first code block generated by the experiment definition system that allocates users requesting the web page to one of the plurality of different variations of the web page defined in the attributes of the variation experiment;

including, by the content provider computer system, the first code block in source code of the web page provided by the content provider computer system;

receiving, by the content provider computer system, a request for the web page from a client device;

determining, by the content provider computer system, a variation from the plurality of different variations of the web page to provide to the client device without communicating with the experiment definition system, the determination based on the stored experiment definition file and the first code block; and

providing, by the content provider computer system, the determined variation of the web page to the client device.

16. The computer system of claim 15 , wherein the first code block is provided by the experiment definition system in a plurality of different programming languages and the method further comprising:

selecting, by the content provider computer system, one of the plurality of different programming languages; and

receiving, by the content provider computer system, the first code block from the experiment definition system in the selected programming language that corresponds to the programming language used to implement the web page.

17. The computer system of claim 15 , wherein the attributes of the variation experiment provided to the experiment definition system include a conversion metric for tracking during the variation experiment of the web page and the method further comprising:

receiving, by the content provider computer system, a second code block generated by the experiment definition system that tracks events with the web page that are related to the conversion metric;

wherein the second code block generated by the experiment definition system is included in source code of the web page created by the content provider.

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 Dec 27, 2016
From: JAMBU, VIJAY; PROVINE, JOHN; RANGANATH, RAMA; RIZVI, ALI ABBAS
To: OPTIMIZELY, INC.
Reel/Frame 040776/0842 →
Continuity (1)
Related Publication 20180181484A1 · Jun 28, 2018