Analytics, session replay & heatmaps
Behavioural event timelines, opt-in rrweb session replay, and click heatmaps over auto-captured page screenshots.
Sessions and events
Every visitor session is a timeline of behavioural events: pageviews, scrolls, clicks (with viewport coordinates), form focus and submit, popup events, and chat opens. URLs are PII-stripped server-side before they're stored, and any session can be erased to satisfy a GDPR / NDPR data-subject request.
Session replay
Session replay reconstructs what a visitor actually saw and did, using rrweb. It is opt-in and privacy-first:
- Inputs are masked by default (passwords, email, tel, and free-text fields).
- Elements can be blocked or ignored per selector (
.no-record,[data-tsg-no-record]). - Stylesheets are referenced rather than inlined to keep captures small.
Replay needs the initial DOM snapshot plus the incremental events to play back; the player falls back to an event animation if a session's snapshot is incomplete.
Heatmaps
Heatmaps render click density over a real screenshot of the page, captured automatically server-side (via a headless browser, SSRF-guarded) so you don't paste another script. Coordinates are normalised to the viewport, and a per-path picker lets you pick the page and see click counts.
What this is for
Analytics tells you what happened in aggregate; replay and heatmaps tell you why. Use them together: spot a drop in a funnel, then watch the replays and read the heatmap for that step to see what's losing the visitor.