Simply put, a session is a series of user interactions on your site. The session begins when a user visits your site and it ends after 30 minutes of inactivity (or 24 hours of active session capture).
For example, a user finds your site in a list of Google search results and clicks through to your landing page. In Fullstory, their session will begin with the landing page, and last until they have been inactive for at least 30 minutes during the session. If they revisit your site after they've been inactive on your website for more than 30 minutes, their activity will be captured as a new, separate session.
Note: If a user is inactive and revisits your site, the session will split in the middle of a single page, after 30 minutes of inactivity.
Why do I see longer periods of inactive time in a session?
After reading our simple answer, you still may be wondering why you sometimes see longer inactive periods in a session. It essentially comes down to the events that are being captured for the current page; certain events like "click" or "touch" and "scroll" are heuristics of user activity. When Fullstory encounters periods of time without user activity, we mark that timespan as an inactive period that you can skip during playback.
Note that inactivity also counts towards the overall session lifecycle, where 30 minutes of inactivity, across all open pages, will close the session; any new user events after this period will cause a new session to be created.
What defines a session for Mobile Apps?
A session begins once a user launches the app and will continue until one of the following happens:
-
When the app is in the foreground (in focus) but no activity is detected for more than 30 minutes
-
When the app is backgrounded (not in focus) for more than 30 minutes
- When the app is terminated, either via the swipe up gesture to fully close the app or if the device runs out of memory
Note: If a user is inactive after 30 minutes and re-launches the app, Fullstory will start a new session.
Development note: Closing an app in Xcode (by clicking the "stop" button to shut down the virtual device) isn't a supported use case for ending a session. If an app is closed in that way, we won't send a final bundle for the session events. For testing in an emulator, we recommend ending your session by first putting the app in a suspended/backgrounded state (by clicking the Home button) then after a few seconds, reopen the app before proceeding to re-suspend, quit, or close the emulator. This should ensure our SDK will send a final bundle back to our servers for the session.