IP Library Granted Patent US 9,436,580
Granted Patent B2
US 9,436,580 · App. 14/672,718 · Granted Sep 6, 2016

Analytics for mobile applications

Inventors: Joshua Ryan Manion (Los Altos, CA); Joshua C. Goodwin (Cupertino, CA); Scott David Price (Chicago, IL); Miles A. Alden (Los Gatos, CA); Zackary Dean Ulrich (San Francisco, CA); Arthur C. Yin (San Jose, CA); Jeremy P. Woska (Seattle, WA); Gautam B. Amin (Chicago, IL); Manudath Gurudatha (Milpitas, CA); Jonathan David Chicquette (Normandy Park, WA)
Assignee: Ensighten, Inc.
G06F11/36G06F8/41G06F8/54G06F8/71
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 9,436,580
App. No.
14/672,718
Granted
Sep 6, 2016
Kind
B2
Abstract

A tag delivery network is disclosed for delivering tags to collect analytics related to use of mobile applications. The tag delivery network may include multiple servers for communicating with mobile devices executing mobile applications. The mobile applications may be any mobile application that has been recompiled with, for example, a particular line of code and a static library. A recompiled mobile application may initiate a browser when executed by a mobile device. The tag delivery network may deliver a tag container to the browser. The tag container may load a bootstrap file which in turn may load one or more rule files and code files. These files may cause the mobile device to modify an appearance of the mobile application. The modification may be performed to carry out multivariate testing (e.g., A/B testing), content swapping, optimization of the mobile application, or personalization of the mobile application.

Claims (48)

1. A system, comprising:

a plurality of servers electrically connected to a network, wherein at least one server of the plurality of servers comprises a hardware processor and a non-transitory computer readable medium that stores computer-executable instructions and the at least one server:

communicates with a remote device executing a mobile application;

sends a tag container to a browser executed by the remote device, wherein a user interface of the browser is hidden from a user of the remote device, wherein the browser is generated by the mobile application in response to launching the mobile application on the remote device, and wherein the mobile application comprises a single line of code that, when executed by the remote device, initiates generation of the browser; and

in response to interpretation of the tag container by the browser, sends at least one file to the browser, the at least one file comprising instructions configured to cause the remote device to output one of a first version of the mobile application comprising a first version of an object and a second version of the mobile application comprising a second version of the object different from the first version of the object.

2. The system of claim 1 , wherein the at least one file comprises rules that, when executed by the browser, determines which one of the first version of the mobile application and the second version of the mobile application is to be output, wherein the rules are configured to cause the browser to perform at least one of:

change a color of a background of the mobile application;

change a color of the object of the mobile application;

change a characteristic of a font used in the mobile application;

change a layout of a page in the mobile application; or

change a position of the object in the mobile application.

3. The system of claim 1 , wherein the instructions are configured to cause the remote device to output one of the first version of the mobile application and the second version of the mobile application without changing compiled code of the mobile application.

4. The system of claim 1 ,

wherein the at least one server is further configured to evaluate results of a multivariate test, including the first version of the mobile application and the second version of the mobile application, to identify an optimal configuration of the mobile application, and

wherein the at least one file comprises a rule file that, when executed, determines which one of the first version of the mobile application and the second version of the mobile application is to be output based on the optimal configuration.

5. The system of claim 1 , wherein at least one server of the plurality of servers is configured to provide an application programming interface that allows a user to establish a multivariate test.

6. The system of claim 1 ,

wherein the at least one server is further configured to send one or more tags to capture analytics regarding use of the mobile application, and

wherein at least one server of the plurality of servers is configured to receive the analytics from the mobile device and store the analytics.

7. The system of claim 1 , wherein the instructions are configured to cause the remote device to modify an appearance of the mobile application based on a user profile associated with a user of the mobile application.

8. A method, comprising:

inserting code into a mobile application;

linking a library file to the mobile application; and

compiling, by a computing device, the mobile application after inserting the code and linking the library file to generate a compiled mobile application,

wherein the library file comprises at least one instruction that is executed in response to launching the compiled mobile application on a mobile device and, when executed, causes the mobile device to launch a browser that loads at least one file comprising instructions configured to cause the mobile device to output one of a first version of the mobile application comprising a first version of an object and a second version of the mobile application comprising a second version of the object different from the first version of the object,

wherein the browser is generated by the compiled mobile application in response to launching the compiled mobile application on the mobile device, and

wherein the at least one instruction comprises a single line of computer code that, when executed by the mobile device, initiates generation of the browser.

9. The method of claim 8 , wherein the instructions of the at least one file are configured to cause the mobile device to output one of the first version of the mobile application comprising the first version of the object, the second version of the mobile application comprising the second version of the object, and a third version of the mobile application comprising a third version of the object.

10. The method of claim 8 , wherein a user interface of the browser is hidden from a user of the mobile device.

11. The method of claim 8 , wherein the library file comprises at least one instruction to capture at least one screenshot of the mobile application and transmit the at least one screenshot to a server.

12. The method of claim 8 , further comprising:

accessing a user interface that establishes a multivariate test defining the first version of the mobile application and the second version of the mobile application.

13. One or more non-transitory computer readable storage media storing computer-executable instructions that, when executed by a computing device, cause the computing device to:

communicate with a mobile device executing a mobile application;

in response to a request from a browser, send a tag container to the browser, wherein a user interface of the browser is hidden from a user of the mobile device, wherein the browser is generated by the mobile application in response to launching the mobile application on the mobile device, and wherein the mobile application comprises a single line of code that, when executed by the mobile device, initiates generation of the browser; and

in response to a request from the tag container, send one or more files to the browser, the one or more files configured to output one of a first version of the mobile application comprising a first version of an object and a second version of the mobile application comprising a second version of the object different from the first version of the object.

14. The one or more non-transitory computer readable storage media of claim 13 , wherein the one or more files are configured to cause the mobile device to output one of the first version of the mobile application and the second version of the mobile application without changing compiled code of the mobile application.

15. The one or more non-transitory computer readable storage media of claim 13 , wherein the one or more files are configured to cause the mobile device to perform at least one of:

change a color of a background of the mobile application;

change a color of an object of the mobile application;

change a characteristic of a font used in the mobile application;

change a layout of a page in the mobile application; or

change a position of an object in the mobile application.

16. The one or more non-transitory computer readable storage media of claim 13 , wherein the first version of the object comprises the object having a first color and wherein the second version of the object comprises the object having a second color different from the first color.

17. The one or more non-transitory computer readable storage media of claim 13 , wherein the one or more files comprise at least one opcode that maps an event to at least one event handler function configured to collect analytics of a multivariate test and to fire a tag in response to use of the mobile application.

18. The one or more non-transitory computer readable storage media of claim 13 , wherein the one or more files comprise code that is injected into the mobile application to modify an appearance of the mobile application based on a user profile associated with a user of the mobile application.

19. The system of claim 1 , wherein the at least one file comprising instructions configured to cause the remote device to output one of the first version of the mobile application and the second version of the mobile application comprises instructions to inject non-native code into native code of the mobile application.

20. The system of claim 1 , wherein the one of the first version of the mobile application and the second version of the mobile application to be output is selected at a runtime of the mobile application.

Assignments (12)
RELEASE OF SECURITY INTEREST Recorded Sep 23, 2025
From: KREOS CAPITAL VII AGGREGATOR SCSP
To: CHEQ AI TECHNOLOGIES (2018) LTD.
Reel/Frame 072951/0909 →
SECURITY INTEREST Recorded Feb 3, 2024
From: CHEQ AI TECHNOLOGIES (2018) LTD
To: KREOS CAPITAL VII AGGREGATOR SCSP
Reel/Frame 066335/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2023
From: ENSIGHTEN HOLDINGS, INC.
To: CHEQ TECHNOLOGIES INC.
Reel/Frame 065953/0121 →
RELEASE OF SECURITY INTEREST Recorded Dec 26, 2023
From: KREOS CAPITAL VII AGGREGATOR SCSP
To: ENSIGHTEN INC.
Reel/Frame 066128/0373 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2023
From: CHEQ TECHNOLOGIES INC.
To: CHEQ AI TECHNOLOGIES (2018) LTD.
Reel/Frame 065953/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2023
From: ENSIGHTEN, INC.
To: ENSIGHTEN HOLDINGS, INC.
Reel/Frame 065953/0085 →
SECURITY INTEREST Recorded Oct 20, 2022
From: ENSIGHTEN INC
To: KREOS CAPITAL VII AGGREGATOR SCSP
Reel/Frame 061476/0495 →
RELEASE OF SECURITY INTEREST Recorded Jun 17, 2022
From: SILICON VALLEY BANK
To: ENSIGHTEN, INC.
Reel/Frame 060238/0768 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBER 9236580 PREVIOUSLY RECORDED AT REEL: 044652 FRAME: 0062. ASSIGNOR(S) HEREBY CONFIRMS THE . Recorded Dec 7, 2018
From: ENSIGHTEN, INC.
To: SILICON VALLEY BANK
Reel/Frame 047739/0116 →
SECURITY INTEREST Recorded Jan 19, 2018
From: ENSIGHTEN, INC.
To: SILICON VALLEY BANK
Reel/Frame 044665/0337 →
SECURITY INTEREST Recorded Jan 18, 2018
From: ENSIGHTEN, INC.
To: SILICON VALLEY BANK
Reel/Frame 044652/0062 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2016
From: MANION, JOSHUA RYAN; GOODWIN, JOSHUA C.; PRICE, SCOTT DAVID; ALDEN, MILES A.; ULRICH, ZACKARY DEAN; YIN, ARTHUR C.; WOSKA, JEREMY P.; AMIN, GAUTAM B.; GURUDATHA, MANUDATH; CHICQUETTE, JONATHAN DAVID
To: ENSIGHTEN, INC.
Reel/Frame 037477/0344 →
Continuity (2)
Continuation 14490268 · Sep 18, 2014
Related Publication 20160085658A1 · Mar 24, 2016