IP Library Granted Patent US 12,212,632
Granted Patent B2
US 12,212,632 · App. 18/380,105 · Granted Jan 28, 2025

User interface modification and usage tracking

Inventors: Dustin Howett (Menlo Park, CA); James Koppel (Cambridge, MA); Jeremy Orlow (Menlo Park, CA); Nancy Hua (Menlo Park, CA)
Assignee: Apptimize, LLC
H04L67/535G06F8/38G06F9/451H04L67/01H04L67/34
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 12,212,632
App. No.
18/380,105
Granted
Jan 28, 2025
Kind
B2
Abstract

Techniques are provided to facilitate tracking events associated with a user interface display of an application at runtime. In at least one implementation, one or more information structures that associate an event tracking indicator with a view selector are stored, wherein the event tracking indicator indicates an event to be tracked, and the view selector indicates one or more constraints to be matched to select a view of the application. During execution of the application, the view selector is evaluated with views used by the application to determine whether each of the one or more constraints of the view selector matches properties of the views. In response to determining that each of the one or more constraints of the view selector matches the properties of at least one of the views, an occurrence of the event indicated by the event tracking indicator associated with the view selector is tracked.

Claims (38)

1. A computer-implemented method comprising:

providing a developer user interface to a developer to create an application user interface, the developer user interface configured to display a sequence of illustrations of the application user interface viewable from a client device running a software application;

receiving, via the developer user interface, settings created by the developer regarding the application user interface;

storing, based on the settings created by the developer, an information structure that includes a view hierarchy that describes relative placements of user interface elements in the application user interface, wherein the information structure comprises instructions that cause the software application to:

determine whether a constraint matches one or more properties of a subview hierarchy of a view within an impending view hierarchy, and

modify, in response to determining that the constraint matches the properties of the subview hierarchy, the subview hierarchy according to a view modification indicator in association with a view selector; and

transmitting a payload that is in a format of the information structure to the client device, the payload comprising content of one of the user interface elements, wherein the software application receiving the payload causes content of the one of the user interface elements to be modified at runtime of the software application.

2. The computer-implemented method of claim 1 , wherein the payload is in a JSON file format.

3. The computer-implemented method of claim 1 , wherein the information structure is configured to provide an indication of changes to be made to the user interface elements of the software application.

4. The computer-implemented method of claim 1 , wherein the view hierarchy includes object classes, attributes, and hierarchical relationships between the object classes.

5. The computer-implemented method of claim 1 , wherein the information structure includes an indication that identifies an event type and the view hierarchy includes a user interface element that is to be tracked for an occurrence of the event.

6. The computer-implemented method of claim 1 , wherein the information structure comprises the view modification indicator with the view selector, wherein the view modification indicator describes a modification that can be applied to one or more views of the software application that has been installed on the client device, and the view selector indicates one or more constraints to be matched to select views of the software application at runtime for modifying using the view modification indicator, the views displayed in response to a user input trigger event, at least one of the constraints related to a visual property of a view at runtime.

7. The computer-implemented method of claim 1 , wherein the user interface elements include one or more of the following: a navigation panel, an item name panel, an image panel, a button, a slider, and/or a user input element.

8. A system comprising:

one or more processors; and

memory configured to store code comprising instructions, wherein the instructions, when executed by the one or more processors, cause the one or more processors individually or distributedly to:

provide a developer user interface to a developer to create an application user interface, the developer user interface configured to display a sequence of illustrations of the application user interface viewable from a client device running a software application;

receive, via the developer user interface, settings created by the developer regarding the application user interface;

store, based on the settings created by the developer, an information structure that includes a view hierarchy that describes relative placements of user interface elements in the application user interface, wherein the information structure comprises instructions that cause the software application to:

determine whether a constraint matches one or more properties of a subview hierarchy of a view within an impending view hierarchy, and

modify, in response to determining that the constraint matches the properties of the subview hierarchy, the subview hierarchy according to a view modification indicator in association with a view selector; and

transmit a payload that is in a format of the information structure to the client device, the payload comprising content of one of the user interface elements, wherein the software application receiving the payload causes content of the one of the user interface elements to be modified at runtime of the software application.

9. The system of claim 8 , wherein the payload is in a JSON file format.

10. The system of claim 8 , wherein the information structure is configured to provide an indication of changes to be made to the user interface elements of the software application.

11. The system of claim 8 , wherein the view hierarchy includes object classes, attributes, and hierarchical relationships between the object classes.

12. The system of claim 8 , wherein the information structure includes an indication that identifies an event type and the view hierarchy includes a user interface element that is to be tracked for an occurrence of the event.

13. The system of claim 8 , wherein the information structure comprises the view modification indicator with the view selector, wherein the view modification indicator describes a modification that can be applied to one or more views of the software application that has been installed on the client device, and the view selector indicates one or more constraints to be matched to select views of the software application at runtime for modifying using the view modification indicator, the views displayed in response to a user input trigger event, at least one of the constraints related to a visual property of a view at runtime.

14. The system of claim 8 , wherein the user interface elements include one or more of the following: a navigation panel, an item name panel, an image panel, a button, a slider, and/or a user input element.

15. A non-transitory computer readable medium configured to store code comprising instructions, wherein the instructions, when executed by one or more processors, cause the one or more processors individually or distributedly to:

provide a developer user interface to a developer to create an application user interface, the developer user interface configured to display a sequence of illustrations of the application user interface viewable from a client device running a software application;

receive, via the developer user interface, settings created by the developer regarding the application user interface;

store, based on the settings created by the developer, an information structure that includes a view hierarchy that describes relative placements of user interface elements in the application user interface, wherein the information structure comprises instructions that cause the software application to:

determine whether a constraint matches one or more properties of a subview hierarchy of a view within an impending view hierarchy, and

modify, in response to determining that the constraint matches the properties of the subview hierarchy, the subview hierarchy according to a view modification indicator in association with a view selector; and

transmit a payload that is in a format of the information structure to the client device, the payload comprising content of one of the user interface elements, wherein the software application receiving the payload causes content of the one of the user interface elements to be modified at runtime of the software application.

16. The non-transitory computer readable medium of claim 15 , wherein the information structure is configured to provide an indication of changes to be made to the user interface elements of the software application.

17. The non-transitory computer readable medium of claim 15 , wherein the view hierarchy includes object classes, attributes, and hierarchical relationships between the object classes.

18. The non-transitory computer readable medium of claim 15 , wherein the information structure includes an indication that identifies an event type and the view hierarchy includes a user interface element that is to be tracked for an occurrence of the event.

Assignments (3)
SECURITY INTEREST Recorded Jul 1, 2024
From: AIRSHIP GROUP, INC.; APPTIMIZE, LLC
To: RUNWAY GROWTH FINANCE CORP.
Reel/Frame 068099/0779 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2023
From: HOWETT, DUSTIN; KOPPEL, JAMES; ORLOW, JEREMY; HUA, NANCY
To: APPTIMIZE, INC.
Reel/Frame 065221/0308 →
CHANGE OF NAME Recorded Oct 15, 2023
From: APPTIMIZE, INC.
To: APPTIMIZE, LLC
Reel/Frame 065238/0768 →
Continuity (5)
Continuation 17331250 · May 26, 2021
Continuation 16381590 · Apr 11, 2019
Continuation 14506990 · Oct 6, 2014
Provisional Application 61929939 · Jan 21, 2014
Related Publication 20240089335A1 · Mar 14, 2024
References Cited (28)
US 5873106A · Joseph · 1999 [cited by applicant]
US 6230309B1 · Turner et al. · 2001 [cited by applicant]
US 6343297B1 · D'Anjou · 2002 [cited by examiner]
US 8065600B2 · Chory et al. · 2011 [cited by applicant]
US 10732782B1 · Krivopaltsev et al. · 2020 [cited by applicant]
US 20040183838A1 · Lahiri · 2004 [cited by applicant]
US 20050050438A1 · Cheung · 2005 [cited by examiner]
US 20060284878A1 · Zimmer · 2006 [cited by applicant]
US 20060294199A1 · Bertholf · 2006 [cited by applicant]
US 20100287566A1 · Hauser · 2010 [cited by applicant]
US 20110264996A1 · Norris · 2011 [cited by applicant]
US 20120227000A1 · McCoy · 2012 [cited by examiner]
US 20130019182A1 · Gil et al. · 2013 [cited by applicant]
US 20130212487A1 · Cote · 2013 [cited by applicant]
US 20130219307A1 · Raber · 2013 [cited by examiner]
US 20140040786A1 · Swanson · 2014 [cited by examiner]
US 20140100669A1 · Hammack et al. · 2014 [cited by applicant]
US 20140282218A1 · Kaufman et al. · 2014 [cited by applicant]
US 20150160931A1 · Glazer et al. · 2015 [cited by applicant]
US 20150161088A1 · Kamada · 2015 [cited by applicant]
Boltclock. “Revision,” Dec. 8, 2011, one page, [Online] [Retrieved on Jan. 2, 2024] Retrieved from the Internet <URL: https://stackoverflow.com/revisions/8426901/2>. [cited by applicant]
European Patent Office, Extended European Search Report and Opinion, EP Patent Application No. 20162248.7, Jun. 25, 2020, nine pages. [cited by applicant]
Extended European Search Report, European Application No. 15739969.2, Aug. 30, 2017, 12 pages. [cited by applicant]
Leiva, L., “ACE: An Adaptive CSS Engine for Web Pages and Web-based Applications,” WWW2012 Developer Track, Apr. 2012, pp. 1-4. [cited by applicant]
Leiva, L., “Interaction-based user interface redesign,” Proceedings of the 2012 ACM International Conference on Intelligent User Interfaces, Feb. 2012, pp. 311-312. [cited by applicant]
PCT International Search Report and Written Opinion, PCT Application No. PCT/US15/11986, Apr. 9, 2015, 9 pages. [cited by applicant]
W3C, “Selectors API Level 1,” Feb. 21, 2013, eight pages, [Online] [Retrieved on Jun. 12, 2020] Retrieved on the Internet <URL: https://www.w3.org/TR/selectors-api/>. [cited by applicant]
W3SCHOOLS. “CSS Selector Reference,” Jan. 1, 2014, two pages, [Online] [Retrieved on Jan. 2, 2024] Retrieved from the Internet <URL: https://web.archive.org/web/20140101081234/https://www.w3schools.com/cssref/css_select… [cited by applicant]