IP Library Granted Patent US 12,271,286
Granted Patent B2
US 12,271,286 · App. 18/643,264 · Granted Apr 8, 2025

Techniques for capturing software application session replay data from devices

Inventors: McKenzie Bruder Welter (Somerville, MA); Aimee Su Mun (Central Islip, NY)
Assignee: LogRocket, Inc.
G06F11/3476G06F11/3438
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,271,286
App. No.
18/643,264
Granted
Apr 8, 2025
Kind
B2
Abstract

Described herein are techniques for capturing data from devices to generate replays of sessions of a software application executed by the devices. The techniques use data obtained from the device to determine whether certain events in which a session replay is to be generated have occurred in a session of the software application. When occurrence of such an event is detected during the session of the software application, the techniques determine to trigger collection of session replay data. In this case, the session replay data may be stored and/or transmitted from the device for storage, and subsequently used to generate a session replay. If none of the events are detected, then session replay data may not be transmitted. Accordingly, the techniques can selectively allocate resources (e.g., compute, storage, and/or communication resources) for sessions in which events are detected.

Claims (53)

1. A method of capturing data from a first device to replay, on a second device different from the first device, a session of a software application executed by the first device, the method comprising:

using a processor of the first device to perform:

accessing event configuration information indicating an event for which data for generating a session replay is to be transmitted from the first device, wherein the event configuration information comprises a set of one or more conditions indicating occurrence of the event;

collecting data from the software application during a time period within the session;

after collecting the data from the software application during the time period within the session:

determining whether the event occurred during the time period by determining, using the data collected during the time period and the event configuration information, whether the set of one or more conditions defining the event was met during the time period;

determining, based on whether the event occurred during the time period, whether to trigger transmission of data to a system, separate from the first device, to generate a session replay;

when it is determined to trigger transmission of data to the system to generate a session replay:

transmitting, to the system, data associated with a sequence of visualizations rendered by the first device in a graphical user interface (GUI) of the software application during the session for generation of the session replay on the second device.

2. The method of claim 1 , wherein the set of one or more conditions comprises a presence of an indication that a user of the first device has completed a transaction.

3. The method of claim 2 , wherein determining, using the data collected during the time period and the event configuration information, whether the set of one or more conditions defining the event was met during the time period comprises determining whether a page or a screen indicating that the user of the first device completed a transaction was accessed.

4. The method of claim 1 , wherein the set of one or more conditions comprises a presence of an indication that a data conversion has occurred in the session of the software application.

5. The method of claim 1 , further comprising:

collecting data from the software application during a previous time period of the session, the previous time period prior to the time period;

determining, using the data collected during the previous time period and the event configuration information, that the event did not occur during the previous time period; and

determining to not trigger collection of data to generate a session replay based on determining that the event did not occur during the previous time period.

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

suppressing transmission of data associated with a sequence of visualizations rendered by the first device in the GUI of the software application during the session when it is determined to not trigger collection of data to generate a session replay.

7. The method of claim 1 , wherein the set of one or more conditions comprises a length of the session reaching a threshold amount of time during the time period.

8. The method of claim 1 , wherein the set of one or more conditions comprises the user accessing a particular portion of the GUI of the software application during the time period.

9. The method of claim 1 , wherein the set of one or more conditions comprises the user interacting with a particular selectable element in the GUI of the software application during the time period.

10. The method of claim 1 , wherein the set of one or more conditions comprises a network communication error occurring during the time period.

11. The method of claim 1 , wherein the set of one or more conditions comprises a particular log message appearing in a software application log during the time period.

12. The method of claim 1 , wherein the set of one or more conditions comprises a particular graphical element appearing in the GUI of the software application during the time period.

13. The method of claim 1 , wherein determining whether to trigger collection of data to generate a session replay based on whether the event occurred during the time period comprises determining to trigger collection of data to generate a session replay in response to determining that the event occurred during the time period.

14. The method of claim 1 , wherein the time period is approximately 30 seconds of the session.

15. The method of claim 1 , wherein the data associated with a sequence of visualizations rendered by the first device in the graphical user interface of the software application includes data collected outside the time period.

16. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform a method of capturing data from a first device to replay, on a second device different from the first device, a session of a software application executed by the first device, the method comprising:

accessing event configuration information indicating an event for which data for generating a session replay is to be transmitted from the first device, wherein the event configuration information comprises a set of one or more conditions indicating occurrence of the event;

collecting data from the software application during a time period within the session;

after collecting data from the software application during the time period within the session:

determining whether the event occurred during the time period by determining, using the data collected during the time period and the event configuration information, whether the set of one or more conditions defining the event was met during the time period;

determining, based on whether the event occurred during the time period, whether to trigger transmission of data to a system, separate from the first device, to generate a session replay; and

when it is determined to trigger collection-transmission of data to the system to generate a session replay:

transmitting, to the system, data associated with a sequence of visualizations rendered by the first device in a GUI of the software application during the session for generation of the session replay on the second device.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the data associated with a sequence of visualizations rendered by the first device in the graphical user interface of the software application includes data collected outside the time period.

18. A system for generating replays of sessions of a software application executed by a plurality of devices on a second device different from each of the plurality of devices, the system comprising:

a processor; and

a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, cause the processor to:

generate event configuration information indicating an event in which a session replay is to be generated, wherein the event configuration information comprises a set of one or more conditions indicating occurrence of the event;

transmit, to the plurality of devices, the event configuration information, wherein the event configuration information causes the plurality of devices to monitor for occurrence of the event during execution of the software application and to transmit data for generation of a session replay based on detecting occurrence of the event and on the set of one or more conditions; and

after occurrence of the event on at least one of the plurality of devices:

obtain, from the at least one device, data associated with at least one sequence of visualizations rendered by the at least one device in a graphical user interface (GUI) of the software application during at least one session of the software application executed by the at least one device; and

generate, using the data associated with the at least one sequence of visualizations rendered by the at least one device in a GUI of the software application, at least one replay of the at least one session on the second device.

19. The system of claim 18 , wherein the event comprises at least one of:

a length of the at least one session reached a threshold amount of time;

access by a user of a particular component of the GUI of the software application;

user interaction with a particular selectable element in the GUI of the software application;

a network communication error;

a particular log message appeared in a software application log; or

appearance of a particular graphical element in the GUI of the software application.

20. The system of claim 18 , wherein generating, using the data associated with the at least one sequence of visualizations rendered by the at least one device in the GUI of the software application, the at least one replay of the at least one session on the second device comprises:

determining a set of operations that, when executed by the second device, replicate one or more visualizations of the at least one sequence of visualizations in a replay GUI displayed by the second device.

Assignments (2)
SECURITY INTEREST Recorded Jan 9, 2025
From: LOGROCKET, INC.
To: COMERICA BANK; COMERICA BANK
Reel/Frame 069801/0124 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2024
From: WELTER, MCKENZIE BRUDER; MUN, AIMEE SU
To: LOGROCKET, INC.
Reel/Frame 068095/0277 →
Continuity (3)
Continuation 18320273 · May 19, 2023
Provisional Application 63499273 · May 1, 2023
Related Publication 20240370349A1 · Nov 7, 2024
References Cited (14)
US 9747191B1 · Marolia · 2017 [cited by examiner]
US 9990110B1 · Lounibos et al. · 2018 [cited by applicant]
US 11966320B1 · Welter et al. · 2024 [cited by applicant]
US 20070240055A1 · Ting et al. · 2007 [cited by applicant]
US 20110029665A1 · Wenig et al. · 2011 [cited by applicant]
US 20120317549A1 · Cunningham · 2012 [cited by examiner]
US 20130066949A1 · Colrain · 2013 [cited by examiner]
US 20220043879A1 · Trigalo · 2022 [cited by examiner]
US 20230214240A1 · Parejo · 2023 [cited by examiner]
US 20240264730A1 · Blanck et al. · 2024 [cited by applicant]
International Search Report and Written Opinion mailed Sep. 6, 2024 for International Application No. PCT/US2024/027043. [cited by applicant]
International Search Report and Written Opinion mailed Apr. 5, 2024 for International Application No. PCT/US2024/013930. [cited by applicant]
[No Author Listed], Developer Documentation. SKIA. https://skia.org/docs/dev [last accessed Sep. 14, 2023], 1 page. [cited by applicant]
[No Author Listed], User Documentation. SKIA. https://skia.org/docs/user/ [last accessed Sep. 14, 2023], 1 page. [cited by applicant]
Cited By (1)
US 12,638,965