IP Library Granted Patent US 11,860,763
Granted Patent B2
US 11,860,763 · App. 17/876,548 · Granted Jan 2, 2024

Segmented customization

Inventors: Jeff DiTullio (Menlo Park, CA); Wesley Reitzfeld (Chattanooga, TN)
Assignee: Apptimize, LLC
G06F11/3612G06F8/72H04L67/34H04L67/535H04W4/50H04W4/60
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,860,763
App. No.
17/876,548
Granted
Jan 2, 2024
Kind
B2
Abstract

Techniques to facilitate provision of different user experiences to different groups of users of a mobile application are disclosed herein. In at least one implementation, a manifest provided by an application development and optimization platform is received that defines a plurality of user segments and a plurality of feature variants individually associated with the plurality of user segments. The manifest is processed to determine a segment of the plurality of user segments associated with a user of the mobile application along with a feature variant of the plurality of feature variants associated with the segment of the user. Execution of the mobile application is monitored for an occurrence of an event that triggers a default feature of the mobile application, and responsive to the event, the default feature is replaced with the feature variant associated with the segment of the user.

Claims (46)

1. A method to facilitate provision of different user experiences in an application, the method comprising:

receiving, for a plurality of instances of the application that is each installed on a computing device, a manifest that defines a plurality of user segments and a plurality of feature variants, the manifest originated from an application developer of the application, each feature variant associated with at least one of the user segments, wherein the plurality of user segments comprise categorizations of different groups of users of the plurality of instances of the application, the categorizations of different groups of users are determined based on events of the users taken in the application, and the application is associated with a default feature;

processing the manifest to determine the plurality of user segments and the plurality of feature variants corresponding to the plurality of user segments;

tracking one or more metrics associated with a particular instance of the application with respect to a feature variant;

monitoring, through a software development kit (SDK), program instructions executing the particular instance of the application in a particular computing device for an occurrence of an event at the particular instance of the application, the event associated with how the categorizations of different groups of users are determined;

determining that a user associated with the particular instance of the application belongs to one of the user segments;

causing, through the SDK that retrieves an object data associated with the feature variant associated with said one of the user segments of the user and responsive to determining that the user associated with the particular instance of the application belonging to one of the user segments, an execution of a changed code block instead of a default code block to be executed by the particular instance of the applications, the default code block corresponding to the default feature and the changed code block corresponding to the feature variant associated with said one of the user segments of the user, the default code block and the changed code block both being part of the particular instance of the application at a time the particular instance of the applications is installed on the particular computing device associated with the user,

triggering, at the particular instance of the application, the feature variant associated with said one of the user segments of the user instead of the default feature by executing the changed code block, and

receiving data tracking performance of the particular instance of the application from the particular computing device.

2. The method of claim 1 , wherein triggering the feature variant comprises replacing a default visual element with a variant visual element.

3. The method of claim 1 , wherein the feature variant associated with said one of the user segments is defined based on analysis of test results for the plurality of feature variants over the plurality of user segments.

4. The method of claim 1 , wherein the plurality of user segments are defined partially based on criteria set forth by the application developer associated with the applications.

5. The method of claim 1 , wherein the event comprises a function call.

6. The method of claim 5 , wherein triggering the feature variant associated with said one of the user segments of the user comprises identifying an original function that invokes the function call and responsively intercepting the function call and executing the feature variant instead of the function call.

7. The method of claim 1 , wherein the event comprises a user login.

8. The method of claim 1 , wherein the changed code block includes a dynamic variable.

9. A system comprising:

a particular instance of an application installed on a computing device associated with a user; and

a computing server in communication with the particular instance of the application, the computing server comprising one or more processors and memory, the memory configured to store computer instructions that, when executed by the one or more processors, cause the one or more processors to:

receive a manifest that defines a plurality of user segments and a plurality of feature variants, the manifest originated from an application developer of the application, each feature variant associated with at least one of the user segments, wherein the plurality of user segments comprise categorizations of different groups of users of a plurality of instances of the application, the categorizations of different groups of users are determined based on events of the users taken in the application, and the application is associated with a default feature;

process the manifest to determine the plurality of user segments and the plurality of feature variants corresponding to the plurality of user segments;

track one or more metrics associated with the particular instance of the application with respect to a feature variant;

monitor, through a software development kit (SDK), program instructions executing the particular instance of the application in a particular computing device for an occurrence of an event at the particular instance of the application, the event associated with how the categorizations of different groups of users are determined;

determine that the user associated with the particular instance of the application belongs to one of the user segments; and

cause, through the SDK that retrieves an object data associated with the feature variant associated with said one of the user segments of the user and responsive to determining that the user associated with the particular instance of the application belonging to one of the user segments, an execution of a changed code block instead of a default code block to be executed by the particular instance of the applications, the default code block corresponding to the default feature and the changed code block corresponding to the feature variant associated with said one of the user segments of the user, the default code block and the changed code block both being part of the particular instance of the application at a time the particular instance of the applications is installed on the particular computing device associated with the user, and

wherein the particular instance of the application is configured to (i) trigger the feature variant associated with said one of the user segments of the user instead of the default feature by executing the changed code block, and (ii) transmit data tracking performance of the particular instance of the application to the computing server.

10. The system of claim 9 , wherein the application, in triggering the feature variant, is configured to replace a default visual element with a variant visual element.

11. The system of claim 9 , wherein the plurality of user segments are defined partially based on criteria set forth by the application developer associated with the applications.

12. The system of claim 9 , wherein the event comprises a function call.

13. The system of claim 12 , wherein the application, in triggering the feature variant, is configured to identify an original function that invokes the function call, responsively intercept the function call, and execute the feature variant instead of the function call.

14. The system of claim 9 , wherein the event comprises a user login.

15. The system of claim 9 , wherein the changed code block includes a dynamic variable.

16. A system comprising:

one or more processors;

memory configured to store instructions, the instructions, when executed by the one or more processors, cause the one or more processors to perform at least:

receive a manifest that defines a plurality of user segments and a plurality of feature variants, the manifest originated from an application developer of an application, each feature variant associated with at least one of the user segments, wherein the plurality of user segments comprise categorizations of different groups of users of a plurality of instances of the application, the categorizations of different groups of users are determined based on events of the users taken in the application, and the application is associated with a default feature;

process the manifest to determine the plurality of user segments and the plurality of feature variants corresponding to the plurality of user segments;

track one or more metrics associated with a particular instance of the application with respect to a feature variant;

monitor, through a software development kit (SDK), program instructions executing the particular instance of the application in a particular computing device for an occurrence of an event at the particular instance of the application, the event associated with how the categorizations of different groups of users are determined;

determine that a user associated with the particular instance of the application belongs to one of the user segments; and

cause, through the SDK that retrieves an object data associated with the feature variant associated with said one of the user segments of the user and responsive to determining that the user associated with the particular instance of the application belonging to one of the user segments, an execution of a changed code block instead of a default code block to be executed by the particular instance of the applications, the default code block corresponding to the default feature and the changed code block corresponding to the feature variant associated with said one of the user segments of the user, the default code block and the changed code block both being part of the particular instance of the application at a time the particular instance of the applications is installed on the particular computing device associated with the user, and

wherein the particular instance of the application is configured to (i) trigger the feature variant associated with said one of the user segments of the user instead of the default feature by executing the changed code block, and (ii) transmit data tracking performance of the particular instance of the application to a computing server.

17. The system of claim 16 , wherein the application, in triggering the feature variant, is configured to replace a default visual element with a variant visual element.

18. The system of claim 16 , wherein the event comprises a function call.

19. The system of claim 16 , wherein the event comprises a user login.

20. The system of claim 16 , wherein the changed code block includes a dynamic variable.

Assignments (4)
SECURITY INTEREST Recorded Jul 1, 2024
From: AIRSHIP GROUP, INC.; APPTIMIZE, LLC
To: RUNWAY GROWTH FINANCE CORP.
Reel/Frame 068099/0779 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 0606787 FRAME: 0976. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 7, 2023
From: DITULLIO, JEFF; REITZFELD, WESLEY
To: APPTIMIZE, INC.
Reel/Frame 064835/0826 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2022
From: DITULLIO, JEFF; REITZFELD, WESLEY
To: APPTIMIZE LLC
Reel/Frame 060677/0976 →
CHANGE OF NAME Recorded Jul 30, 2022
From: APPTIMIZE, INC.
To: APPTIMIZE LLC
Reel/Frame 061034/0575 →