IP Library Granted Patent US 11,805,186
Granted Patent B2
US 11,805,186 · App. 17/331,250 · Granted Oct 31, 2023

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 11,805,186
App. No.
17/331,250
Granted
Oct 31, 2023
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 method for modifying views associated with a user interface display of a software application at runtime on a client device, the method comprising:

storing one or more information structures that associate a view modification indicator with a 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;

evaluating, in response to an occurrence of the user input trigger event at runtime of the software application, the view selector with one or more views to be displayed by the software application based on the occurrence of the user input trigger event, evaluating the view selector comprising:

determining whether each of the one or more constraints of the view selector matches one or more properties of a subview hierarchy of a view within an impending view hierarchy, and

modifying, in response to determining that each of the one or more constraints of the view selector matches the properties of the subview hierarchy, the subview hierarchy according to the view modification indicator in association with the view selector; and

performing, responsive to determining that each of the one or more constraints of the view selector matches the properties of the subview hierarchy, the modification at runtime of the software application that has been installed on the client device, the modification described by the view modification indicator on the view.

2. The method of claim 1 , wherein the user input trigger event comprises a user interaction with a user interface element of the view.

3. The method of claim 1 , wherein performing the modification comprises modifying a user interface element of the view.

4. The method of claim 1 , wherein the one or more constraints of the view selector include a visual property constraint that matches any instance of a view property type.

5. The method of claim 4 , wherein the properties of a first proportion of views of the application match the one or more constraints of the view selector including the visual property constraint, the first proportion greater than a second proportion of views of the application that match one or more constraints of an additional view selector that do not include the visual property constraint.

6. The method of claim 1 , wherein the one or more constraints of the view selector comprise one or more of visual property constraints or structural property constraints.

7. The method of claim 6 , wherein the structural property constraints include layout properties.

8. A non-transitory computer-readable storage medium configured to store computer code comprising instructions stored for modifying views associated with a user interface display of a software application at runtime on a client device, wherein the instructions, when executed by one or more processors, cause the one or more processors to:

store one or more information structures that associate a view modification indicator with a 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;

evaluate, in response to an occurrence of the user input trigger event at runtime of the software application, the view selector with one or more views to be displayed by the software application based on the occurrence of the user input trigger event, evaluating the view selector comprising:

determining whether each of the one or more constraints of the view selector matches one or more properties of a subview hierarchy of a view within an impending view hierarchy, and

modifying, in response to determining that each of the one or more constraints of the view selector matches the properties of the subview hierarchy, the subview hierarchy according to the view modification indicator in association with the view selector; and

perform, responsive to determining that each of the one or more constraints of the view selector matches the properties of the subview hierarchy, the modification at runtime of the software application that has been installed on the client device, the modification described by the view modification indicator on the view.

9. The computer-readable storage medium of claim 8 , wherein the user input trigger event comprises a user interaction with a user interface element of the view.

10. The computer-readable storage medium of claim 8 , wherein performing the modification comprises modifying a user interface element of the view.

11. The computer-readable storage medium of claim 8 , wherein the one or more constraints of the view selector include a visual property constraint that matches any instance of a view property type.

12. The computer-readable storage medium of claim 11 , wherein the properties of a first proportion of views of the application match the one or more constraints of the view selector including the visual property constraint, the first proportion greater than a second proportion of views of the application that match one or more constraints of an additional view selector that do not include the visual property constraint.

13. The computer-readable storage medium of claim 8 , wherein the one or more constraints of the view selector comprise one or more of visual property constraints or structural property constraints.

14. The computer-readable storage medium of claim 13 , wherein the structural property constraints include layout properties.

15. A computing apparatus comprising:

a memory;

a processing system of a client device operatively coupled with the memory; and

a software application stored on memory, the software application comprising instructions stored for modifying views associated with a user interface display of the software application at runtime on the client device, wherein the instructions, when executed by one or more processors, cause the one or more processors to:

store one or more information structures that associate a view modification indicator with a 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;

evaluate, in response to an occurrence of the user input trigger event at runtime of the software application, the view selector with one or more views to be displayed by the software application based on the occurrence of the user input trigger event, evaluating the view selector comprising:

determining whether each of the one or more constraints of the view selector matches one or more properties of a subview hierarchy of a view within an impending view hierarchy, and

modifying, in response to determining that each of the one or more constraints of the view selector matches the properties of the subview hierarchy, the subview hierarchy according to the view modification indicator in association with the view selector; and

perform, responsive to determining that each of the one or more constraints of the view selector matches the properties of the subview hierarchy, the modification at runtime of the software application that has been installed on the client device, the modification described by the view modification indicator on the view.

16. The computing apparatus of claim 15 , wherein the user input trigger event comprises a user interaction with a user interface element of the view.

17. The computing apparatus of claim 15 , wherein performing the modification comprises modifying a user interface element of the view.

18. The computing apparatus of claim 15 , wherein the one or more constraints of the view selector include a visual property constraint that matches any instance of a view property type.

19. The computing apparatus of claim 18 , wherein the properties of a first proportion of views of the application match the one or more constraints of the view selector including the visual property constraint, the first proportion greater than a second proportion of views of the application that match one or more constraints of an additional view selector that do not include the visual property constraint.

20. The computing apparatus of claim 15 , wherein the one or more constraints of the view selector comprise one or more of visual property constraints or structural property constraints.

Assignments (5)
SECURITY INTEREST Recorded Jul 1, 2024
From: AIRSHIP GROUP, INC.; APPTIMIZE, LLC
To: RUNWAY GROWTH FINANCE CORP.
Reel/Frame 068099/0779 →
RELEASE OF SECURITY INTEREST Recorded Jun 28, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: AIRSHIP GROUP, INC.; APPTIMIZE, LLC
Reel/Frame 067965/0545 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2023
From: HOWETT, DUSTIN; KOPPEL, JAMES; ORLOW, JEREMY; HUA, NANCY
To: APPTIMIZE, INC.
Reel/Frame 063736/0520 →
CHANGE OF NAME Recorded May 23, 2023
From: APPTIMIZE, INC.
To: APPTIMIZE, LLC
Reel/Frame 063741/0025 →
SECURITY INTEREST Recorded Oct 21, 2021
From: AIRSHIP GROUP, INC.; APPTIMIZE, LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057869/0835 →