session_id · UUIDv7
Every visit, from landing to exit.
Web visits and app sessions in one list, each with where it started, where it came from, how long someone was really active and whether it converted. Open one to read its events in order.
- Web and app side by side
- Active time, not just open time
- No recordings, ever
Sessions
Web and app, side by side
- /blog/retention → /pricingOrganic search2m 51s
- Onboarding → WorkoutApp Store9m 40s
- /pricing → /signup/doneNewsletterConverted4m 12s
- Home → CheckoutDirectConverted6m 03s
Session from the newsletter
active 3m 05s of 4m 12s- 0:00$pageview/pricing · utm_source=newsletter
- 0:48$pageview/signup
- 3:30signup_completedmethod: google
- 3:31$identifyusr_8f2k1x9q
- 4:12$page_leaveactive 3m 05s · scroll 100%
the rules
What a session is, on each platform.
A visit to a website and a stretch of use in an app end differently. The SDKs follow one rule set per platform, so web and app sessions can sit in one list.
When a new session starts
Default timeouts
Web · 30 min without events
App · 30 s in the background
Bars are time in the foreground. Both timeouts can be changed in the project settings.
Web
- A new session after 30 minutes without an event. The project settings can change the 30 minutes.
- A new session when the visit lands with different campaign parameters (utm_*) from the current one.
- All tabs share one session.
iOS and Android
- A session starts at launch.
- A new one when the app returns after more than 30 seconds in the background. The project settings can change this too.
- Time in the background never counts as active time.
HTTP API and server
- Events sent over the HTTP API without a session id get one from Rabolic, with the same 30-minute timeout.
- Events from your server with a secret key aren’t part of a session. Purchases are still credited to the session they happened in.
the sessions page
Start with the shape, then find the visit.
The Sessions page opens with how long sessions last, how many bounce and how many convert, then lists every session, newest first. Filter by conversion, source, landing page or length, or search by user id, page or campaign, and open any session to read its events in order.
- Person, or their anonymous id until they sign in
- Platform, device, browser or app version, and country
- Landing and exit page or screen
- Source, medium and campaign
- Duration and active time, events and page or screen views
- Converted or not, and verified revenue made during it
Sessions
31,977
Median length
2m 48s
Bounce rate
38.1%
Converted
6.2%
Session length
Top landing → exit
- / → /pricing2,410
- Home → Workout1,980
- /blog/retention → /signup1,126
no replay
Events, not recordings.
A session in Rabolic is built from the events your site and apps send. There is nothing to mask and nothing to watch: no video of anyone’s screen, and no record of what they typed.
- Screen recordings or replays
- Heatmaps or click maps
- Clicks, keystrokes or form input
- Mouse movement or cursor paths
What a session is built from
| Event | Gives the session |
|---|---|
| $pageview | Landing and exit page, referrer and campaign |
| $page_leave | Active time and scroll depth for the page |
| $app_open | A launch, or a return from the background |
| $screen | Entry and exit screen |
| $app_background | Time in the foreground: active time |
Every event from the web and Flutter SDKs carries its session id, a UUIDv7 created when the session starts.
sessions faq
Sessions, answered.
What counts as a session?
On the web, a visit that ends after 30 minutes without an event, or when the visitor comes back through a link with different campaign parameters. In iOS and Android apps, a session starts at launch and again when the app returns after more than 30 seconds in the background. Both timeouts can be changed in the project settings.
Does Rabolic record sessions or show replays?
No. Rabolic records the events your site and apps send, not the screen. There are no session recordings, replays, heatmaps or click maps. Beyond each page’s URL, title and referrer, nothing on the page is captured unless you send it as an event property.
How is active time measured?
On the web, from when the page is visible and someone interacts with it, sent with each $page_leave. In apps, as time in the foreground, sent with $app_background. Time in the background never counts.
When does a session count as converted?
When it contains one of the project’s conversion events. This is worked out when the report runs, so changing your conversion events changes past sessions consistently.
Which purchases show on a session?
Verified purchases the same person made from the start of the session until 30 minutes after its last event, so a payment confirmed by your server a moment later still counts.
Do tabs and devices share sessions?
Tabs in one browser share a session. Different devices have their own sessions, which all belong to the same person once identify() links them.
Is a session that crosses midnight split in two?
No. A session is grouped by its id, so a visit that crosses midnight or the end of a month is still one session.
See how your visits really go.
Start a 3-day trial without a card. It begins with your first event, so you can set up the SDKs first.
- 1
Create a project
Sign up, name your project, and copy its publishable key.
- 2
Add an SDK
Web, React Native, Flutter or Node.js, or the HTTP API. Or run npx rabolic init.
- 3
Watch the first event arrive
It shows in live events within seconds, and your trial starts then.