IP Library Granted Patent US 11,995,145
Granted Patent B2
US 11,995,145 · App. 18/186,538 · Granted May 28, 2024

Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document

Inventors: Mario Luciano Ciabarra, Jr. (Colorado Springs, CO); Yiduo Wang (Portland, OR)
Assignee: Quantum Metric, Inc.
G06F16/986G06F40/123G06F40/14G06F40/194
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,995,145
App. No.
18/186,538
Granted
May 28, 2024
Kind
B2
Abstract

The present disclosure describes how to capture events (e.g., changes and user interactions) of a document and combine those changes with the original tree data structure displayed to accurately and efficiently enable a replay engine to redisplay the tree data structure, changes, and user interactions which occurred at the client device. The data collected from a client-side capture engine can be combined with a minimal amount of contextual information to a replay engine so as to accurately and efficiently replay a session of a plurality of documents.

Claims (82)

1. A method for tracking events associated with a document on a client device, the method comprising performing, by the client device:

receiving, from a server, the document at the client device, the document having nodes in a tree data structure;

capturing, by a capture agent, a plurality of events associated with a plurality of nodes in the tree data structure, wherein each of the plurality of events includes one or more changes to the tree data structure, wherein the plurality of events include user interactions on the document;

for each of the plurality of events:

determining a timestamp for the event;

determining identification information of an associated node, wherein the associated node is associated with the one or more changes to the tree data structure, and

storing the identification information, the timestamp, and the one or more changes in an event record; and

transmitting, from the capture agent, the event records to a server-side session storage engine for replaying the user interactions according to the timestamps of the plurality of events.

2. The method of claim 1 , wherein determining the identification information of the associated node includes:

searching for a unique node identifier of the associated node.

3. The method of claim 2 , further comprising:

when the unique node identifier is not found for the associated node:

searching for a sibling or ancestor node that has a unique node identifier;

when the sibling or ancestor node that has the unique node identifier is identified, determining a path from the sibling or ancestor node to the associated node; and

storing the unique node identifier of the sibling or ancestor node and the path in the event record.

4. The method of claim 3 , wherein the path includes an order of the associated node among its siblings.

5. The method of claim 3 , further comprising:

when no sibling or ancestor node that has the unique node identifier is identified:

storing element attributes that are unique among sibling elements to identify a first node in the path to the associated node.

6. The method of claim 2 , further comprising:

when the unique node identifier is not found:

storing element attributes of the associated node that are unique.

7. The method of claim 1 , wherein the plurality of events include at least one of: an addition of one or more nodes in the tree data structure or a removal of one or more nodes in the tree data structure.

8. The method of claim 1 , further comprising:

receiving the event records at the server-side session storage engine; and

combining, by the server-side session storage engine, the event records with a server-side captured tree data structure of the document to generate a modified tree data structure from an original unmodified tree data structure.

9. The method of claim 8 , wherein the server-side captured tree data structure of the document is received by the server-side session storage engine from the server.

10. The method of claim 1 , further comprising:

identifying, by the capture agent, overlapping modification events; and

storing only one event record for the overlapping modification events.

11. The method of claim 10 , wherein a modification of a single ancestor node represents the overlapping modification events targeting a single ancestor node subtree.

12. The method of claim 1 , further comprising:

merging, by the capture agent, adjacent sibling text nodes into a single node for identification of the associated node of an event.

13. The method of claim 1 , further comprising:

storing, by the capture agent, the event records in client storage until the event records are transmitted to the server-side session storage engine; and

deleting the event records after sending the event records to the server-side session storage engine.

14. The method of claim 13 , further comprising:

subsequent to deleting the event records, capturing a plurality of additional events associated with nodes in the tree data structure;

for each of the plurality of additional events:

determining additional identification information of an additional associated node, and

storing the additional identification information in an additional event record; and

transmitting, from the capture agent, the additional event records to the server-side session storage engine.

15. The method of claim 1 , further comprising:

displaying the document, wherein the capture agent sends the event records when the client device is not making any other network requests.

16. The method of claim 1 , further comprising:

compressing, by the capture agent, the event records before transmitting the event records to the server-side session storage engine.

17. The method of claim 1 , further comprising:

stripping, by the capture agent, sensitive information before transmitting the event records to the server-side session storage engine.

18. The method of claim 1 , wherein the capture agent is received from a third party server using information from the server.

19. The method of claim 1 , wherein the capture agent is received separately from a delivery of the document.

20. The method of claim 1 , wherein capturing the plurality of events associated with the plurality of nodes in the tree data structure includes:

determining, by the capture agent, a first node modification and a second node modification to be an overlapping modification based on a first node being an ancestor of a second node in the tree data structure, the first node modification targeting a subtree of the tree data structure including the second node.

21. The method of claim 1 , wherein the method further comprises:

generating, by the capture agent, an event record for a tree modification, the event record including a first identification information for uniquely identifying a first node and a first node modification, the event record suppressing duplicate information by not including a second node modification based on a determination that the first node modification and the second node modification are overlapping.

22. A computer product comprising a computer readable medium storing a plurality of instructions for controlling a client device to perform a method to track events associated with a document on the client device, the method including:

receiving, from a server, the document at the client device, the document having nodes in a tree data structure;

capturing, by a capture agent, a plurality of events associated with a plurality of nodes in the tree data structure, wherein each of the plurality of events includes one or more changes to the tree data structure, wherein the plurality of events include user interactions on the document;

for each of the plurality of events:

determining a timestamp for the event;

determining identification information of an associated node, wherein the associated node is associated with the one or more changes to the tree data structure, and

storing the identification information, the timestamp, and the one or more changes in an event record; and

transmitting, from the capture agent, the event records to a server-side session storage engine for replaying the user interactions according to the timestamps of the plurality of events.

23. The computer product of claim 22 , wherein determining the identification information of the associated node includes:

searching for a sibling or ancestor node that has a unique node identifier; and

when no sibling or ancestor node that has a unique node identifier is identified:

storing element attributes that are unique among sibling elements to identify a first node in a path to the associated node.

24. The computer product of claim 22 , wherein determining the identification information of the associated node includes:

searching for a unique node identifier of the associated node; and

when the unique node identifier is not found:

storing element attributes of the associated node that are unique.

25. The computer product of claim 22 , wherein the plurality of events include at least one of: an addition of one or more nodes in the tree data structure or a removal of one or more nodes in the tree data structure.

26. The computer product of claim 22 , wherein the method further includes:

receiving the event records at the server-side session storage engine; and

combining, by the server-side session storage engine, the event records with a server-side captured tree data structure of the document to generate a modified tree data structure from an original unmodified tree data structure.

27. The computer product of claim 26 , wherein the server-side captured tree data structure of the document is received by the server-side session storage engine from the server.

28. The computer product of claim 22 , wherein the method further includes:

identifying, by the capture agent, overlapping modification events; and

storing only one event record for the overlapping modification events.

29. The computer product of claim 22 , wherein capturing the plurality of events associated with the plurality of nodes in the tree data structure includes:

determining, by the capture agent, a first node modification and a second node modification to be an overlapping modification based on a first node being an ancestor of a second node in the tree data structure, the first node modification targeting a subtree of the tree data structure including the second node.

30. The computer product of claim 22 , wherein the method further includes:

generating, by the capture agent, an event record for a tree modification, the event record including a first identification information for uniquely identifying a first node and a first node modification, the event record suppressing duplicate information by not including a second node modification based on a determination that the first node modification and the second node modification are overlapping.

Assignments (4)
CHANGE OF NAME Recorded Nov 13, 2024
From: QUANTUM METRIC, LLC
To: QUANTUM METRIC, INC.
Reel/Frame 069355/0685 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNEE NAME AND ADDRESS PREVIOUSLY RECORDED ON REEL 63220 FRAME 974. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT. Recorded Sep 30, 2024
From: CIABARRA, MARIO LUCIANO, JR.; WANG, YIDUO
To: QUANTUM METRIC, LLC
Reel/Frame 069170/0925 →
SECURITY INTEREST Recorded Oct 5, 2023
From: QUANTUM METRIC, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065138/0586 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2023
From: CIABARRA, MARIO LUCIANO, JR.; WANG, YIDUO
To: QUANTUM METRIC, INC.
Reel/Frame 063220/0974 →
Continuity (5)
Continuation 17336156 · Jun 1, 2021
Continuation 16206876 · Nov 30, 2018
Continuation 14984102 · Dec 30, 2015
Provisional Application 62098951 · Dec 31, 2014
Related Publication 20230229724A1 · Jul 20, 2023