IP Library Granted Patent US 11,663,117
Granted Patent B2
US 11,663,117 · App. 17/140,907 · Granted May 30, 2023

Customizable decision service

Inventors: Michael James Connolly, Jr. (San Francisco, CA); Michael Carlyle Davis (San Jose, CA)
Assignee: OPTIMIZELY, INC.
G06F11/3696G06F9/547G06F11/3664H04L67/56
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,663,117
App. No.
17/140,907
Granted
May 30, 2023
Kind
B2
Abstract

A method of executing an A/B testing service comprises deploying an instance of the A/B testing service between a client device and an A/B testing server and receiving by the A/B testing service from the A/B testing server a software development kit (SDK) key for a client device, the SDK key indicating an A/B testing environment to be associated with the instance. The method further comprises, in response to receiving the SDK key: storing data associated with the A/B testing environment in memory of the client device; providing a HyperText Transfer Protocol (HTTP) application programming interface (API) associated with the instance of the A/B testing service to one or more applications associated with the A/B testing environment; and executing, by a processing device, commands between the client device and the one or more applications on behalf of the A/B testing environment.

Claims (52)

1. A method of executing an A/B testing service, the method comprising:

deploying to a client device an instance of the A/B testing service between the client device and an A/B testing server;

receiving, by the A/B testing service in the client device from the A/B testing server, a software development kit (SDK) key for the client device, the SDK key indicating an A/B testing environment to be associated with the instance; and

in response to receiving the SDK key:

storing data associated with the A/B testing environment in a memory of the client device;

providing a HyperText Transfer Protocol (HTTP) application programming interface (API) associated with the instance of the A/B testing service to one or more applications associated with the A/B testing environment; and

executing, by a processing device of the client device, commands of the A/B testing service between the client device and the one or more applications on behalf of the A/B testing environment.

2. The method of claim 1 , wherein the data comprises at least one of: information associated with a feature flag or an experiment.

3. The method of claim 2 , further comprising activating at least one of: the feature flag or the experiment in response to receiving activation instructions from the client device.

4. The method of claim 2 , further comprising: receiving a request from the client device for information associated with the A/B testing environment; and in response to receiving the request, providing information associated with a state of the feature flag, a state of the experiment, or one or more variables associated with the feature flag.

5. The method of claim 1 , further comprising: receiving second data from the client device, wherein the second data corresponds to an assignment of a user to an experiment, an activation of an experiment, an activation of a feature flag, or a tracking of a conversion metric; and forwarding the second data to the A/B testing environment.

6. The method of claim 1 , further comprising:

receiving an application program interface (API) request from the client device; and

authenticating the API request to the client device.

7. The method of claim 1 , further comprising sending the commands though a proxy or load balancer between the client device and the one or more applications.

8. The method of claim 1 , further comprising:

establishing a connection to an administrative API of the A/B testing service instance; and

receiving data associated with a health of the A/B testing service instance via the connection.

9. A system comprising:

a memory; and

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

deploy to a client device an instance of the A/B testing service between the client device and an A/B testing server;

receive, by the A/B testing service in the client device from the A/B testing server, a software development kit (SDK) key for the client device, the SDK key indicating an A/B testing environment to be associated with the instance; and

in response to receiving the SDK key:

store data associated with the A/B testing environment in a memory of the client device;

providing a HyperText Transfer Protocol (HTTP) application programming interface (API) associated with the instance of the A/B testing service to one or more applications associated with the A/B testing environment; and

execute commands of the A/B testing service between the client device and the one or more applications on behalf of the A/B testing environment.

10. The system of claim 9 , wherein the data comprises at least one of: information associated with a feature flag or an experiment.

11. The system of claim 10 , the processing device further to activate at least one of: the feature flag or the experiment in response to receiving activation instructions from the client device.

12. The system of claim 10 , the processing device further to: receive a request from the client device for information associated with the A/B testing environment; and in response to receiving the request, provide information associated with a state of the feature flag, a state of the experiment, or one or more variables associated with the feature flag.

13. The system of claim 9 , the processing device further to: receive second data from the client device, wherein the second data corresponds to an assignment of a user to an experiment, an activation of an experiment, an activation of a feature flag, or a tracking of a conversion metric; and forward the second data to the A/B testing environment.

14. The system of claim 9 , the processing device further to:

receive an application program interface (API) request from the client device; and

authenticate the API request to the client device.

15. The system of claim 9 , the processing device further to send the commands though a proxy or load balancer between the client device and the one or more applications.

16. The system of claim 9 , the processing device further to:

establish a connection to an administrative API of the A/B testing service instance; and

receive data associated with a health of the A/B testing service instance via the connection.

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

deploy to a client device an instance of the A/B testing service between the client device and an A/B testing server;

receive, by the A/B testing service in the client device from the A/B testing server, a software development kit (SDK) key for the client device, the SDK key indicating an A/B testing environment to be associated with the instance; and

in response to receiving the SDK key:

store data associated with the A/B testing environment in a memory of the client device;

provide a HyperText Transfer Protocol (HTTP) application programming interface (API) associated with the instance of the A/B testing service to one or more applications associated with the A/B testing environment; and

execute commands of the A/B testing service between the client device and the one or more applications on behalf of the A/B testing environment.

18. The non-transitory computer-readable storage medium of claim 17 , the processing device further to:

receive a request from the client device for information associated with the A/B testing environment; and

in response to receiving the request, provide information associated with a state of a feature flag, a state of an experiment, or one or more variables associated with the feature flag.

19. The non-transitory computer-readable storage medium of claim 17 , the processing device further to: receive second data from the client device, wherein the second data corresponds to an assignment of a user to an experiment, an activation of an experiment, an activation of a feature flag, or a tracking of a conversion metric; and forward the second data to the A/B testing environment.

20. The non-transitory computer-readable storage medium of claim 17 , the processing device further to:

establish a connection to an administrative API of the A/B testing service instance; and

receive data associated with a health of the A/B testing service instance via the connection.

Assignments (5)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2021
From: CONNOLLY, MICHAEL JAMES, JR.; DAVIS, MICHAEL CARLYLE
To: OPTIMIZELY, INC.
Reel/Frame 055017/0139 →