Behavior depth
The whole visit,
on one time axis.
Session timelines are Observer's signature capability: every event of a visit — page views, clicks with element and page position, scrolls, errors, goals, Web Vitals, outbound links, downloads — rendered on a shared time axis. A session is an anonymized device-day, derived server-side: what was done, never who did it.
Sessions list
Triage starts before you click.
Recent sessions (24-hour event horizon) arrive with start, length, views, engaged time, device·geo, source — and pre-flags so the interesting ones surface first.
| Session | Views | Engaged | Source | Flags |
|---|---|---|---|---|
| 91be…40 · 09:12 | 7 | 5:12 | search | rage ⎇2 |
| 7f3a…c2 · 09:08 | 5 | 3:41 | direct | ⎇2 |
| c881…9e · 09:03 | 2 | 0:48 | campaign | cwv-fail |
| 44d0…17 · 08:57 | 9 | 6:03 | social | deep-dive |
Tab-split lanes
Concurrent tabs,
side by side.
People browse in parallel. When a visitor opens a second tab mid-session, a new lane branches off at that exact moment, marked with a ⎇ split marker. Both tabs render on one shared time axis — you see the real browsing pattern, not a flattened blur of events.
Exactly at the split
The marker marks the instant the second tab opened while the first was still active — the same moment every other tool silently merges.
Per-tab context kept
Page views, clicks, scrolls and errors stay attributed to their tab. The multi-tab badge (⎇N) on the session list tells you what to expect.
Nobody else models this
Concurrent tabs are invisible to every other analytics platform. This is Observer's signature capability, and it ships with zero consent burden.
Anatomy of an event
Every marker means something.
Hover any marker in the dashboard for the exact action. What Observer captures — and what it deliberately does not.
| Event | What you see | What you never see |
|---|---|---|
| Click | element + page position (x%·y%, doc-normalized) | who clicked — there is no identity to attach |
| Page view | scrubbed path, referrer origin, UTM | emails, card numbers, API keys (scrubbed to [email]/[num]/[key]) |
| Error | error class only | stack traces, message text |
| Goal | goal id + conversion context | user profiles — none exist |
| Web Vital | name, value, rating, attribution | device fingerprints — none are collected |
| Tab split | the exact moment + both lanes | cross-tab identity joins — impossible by design |
Sessions live within the 24-hour event horizon and are pseudonyms of a device-day. Cross-day journeys do not exist in the default tiers — that is the constraint that keeps the banner-free posture defensible.
The privacy model
Hotjar depth,
zero consent burden.
Behavior tools traditionally gate this depth behind consent, because their identity comes from device-stored IDs. Observer derives identity server-side from what the browser already sends — hashed with a key that rotates at midnight UTC. The timeline is complete; the identity is not there to find.
See the visit
as it happened.
Session timelines ship in every tier — including the default one with no consent banner.