Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add function to segment logs into user sessions #27

Open
EandrewJones opened this issue Jan 16, 2024 · 1 comment
Open

Add function to segment logs into user sessions #27

EandrewJones opened this issue Jan 16, 2024 · 1 comment

Comments

@EandrewJones
Copy link
Contributor

What are "User Sessions"?

Most user behavior services provide some definition of a user "session" and then segment the log stream into sessions for further behavior. For example, LogRocket defines a session as:

A session is a series of user interactions on your site, beginning with the first page they visit and ending with either:
a.) a period of inactivity lasting longer than 30 minutes, or
b.) after the user has navigated away from your app for more than 2 minutes. This includes closing the tab or navigating to a different domain on the tab.

"Activity" is defined as any user mouse movement, clicks, or scrolls.

As an example, if your user visits your landing page, then your app, and then refreshes the page all within 30 minutes of each other without closing the tab, the entire experience is recorded in a single session. If the user returns back to your site after another hour, a new session recording starts from the moment that they do the first action.

LogRocket sessions also support recording across multiple tabs, so a user opening a link in your app in a new tab will count as the same session. This means that if your app is running in multiple tabs, each tab would need to be navigated away from in order to end a session after 2 minutes. Otherwise, it wouldn't end until a period of inactivity across all tabs lasting longer than 30 minutes.

Why do we need "User Sessions"?

Sessions are a particularly useful unit by which to analyze user behavior since they represent a logical clustering of activity. Answers to simple questions such as:

  • How long did the user's first session last?
  • How long are a user's session, on average?
  • What actions did the user perform in their session?
    all provide quite a bit of insight into whether and how users engage with an application. Generally speaking, they are a great entry point to begin building one's understanding of UX in your app.

Proposed change

We should add a method that segregates the entire log stream into appropriate session buckets according to some definition of a "user session." It need not necessarily be the LogRocket definition shared above; however, I am proposing that as a reasonable starting point.

@Jyyjy
Copy link
Contributor

Jyyjy commented Jan 24, 2024

A key function for this already exists, detect_deadspace.

def detect_deadspace(

Doing a simple URL filter followed by a detect_deadspace call should produce user session segments as described.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants