Tracking · 8 sub-features

Track every page,
every second.

Eight tracking primitives that turn "did they read it?" into a real, second-precision answer. Heatmaps, scroll depth, revisit detection, geolocation. Everything you need to read your prospect like an open book.

01

Slide-by-slide heatmap

Every page of your PDF is color-coded by engagement: green when fully read, orange when skimmed, red when skipped. The visual tells the story in 2 seconds — no need to scan a table of numbers.

How it works: A 5-second heartbeat tracks how long each page is visible while the viewer is active. The intensity is normalized against the longest read on that page across all visitors.
Best for: Pitch decks, proposals, audit reports — any document where some pages matter more than others.
Why it matters: Stop guessing which slide killed the deal. The heatmap shows you the exact page where attention dropped.
Page-by-page engagementPro
P1
Cover
42s
P2
Problem
38s
P9
Pricing & financials Hot page
1m 48s
P14
Thank you
2s
02

Time per page

Second-precision read time on every single page. Not just total time on the document — the granular breakdown that tells you the prospect spent 3m 12s on pricing and 8 seconds on team.

How it works: The viewer pauses tracking when the tab is hidden so you only count actual reading time, not idle time.
Why it matters: Time per page is the strongest engagement signal. A long stop on the budget slide is gold.
Time per page
P1P2P3P4P5P6P7P8
03

Scroll depth %

For each page, see what percentage of it was actually visible to the viewer (not just briefly scrolled past). 100% = read fully. 30% = skimmed the top.

How it works: An IntersectionObserver tracks the maximum scroll depth reached on each page over the session lifetime.
Why it matters: Combined with time-per-page, scroll depth tells you whether they read or just opened. A long page with 100% depth = real engagement.
Scroll depth per page
P1
Cover
100%
P2
Problem
100%
P3
Solution
76%
P4
Pricing
30%
04

Revisit detection

When the same visitor opens your document a second, third, fourth time — you'll know. Each revisit is logged as a separate session tied to the same visitor identity.

How it works: An anonymous token in localStorage persists across sessions. If the viewer also entered an email via the gate, all sessions are tied to that identity.
Why it matters: Multiple revisits = strongest buying signal. Someone reading your pricing 3 times in 24h is closer to signing than your hottest cold lead.
Top visitors
SC
Sarah Chen HOT
Acme Corp · San Francisco · 4 visits · 12m total
94
Score
MR
Marcus Rivera
Sequoia · Menlo Park · 2 visits · 6m 12s
71
Score
EK
Elise Karim
Index Ventures · London · 3 visits · 8m 04s
82
Score
05

Visitor timeline

Cumulative engagement per visitor across every session. Total time spent across all visits, pages completed, last seen, hot score evolution over time.

How it works: The dashboard aggregates all sessions tied to a visitor token (or email if captured) into a single timeline view.
Why it matters: A prospect's engagement is rarely a single open — it's a story. The timeline shows you the full arc.
Visitor timeline · Sarah Chen
Mon · 47s
Wed · 1m 18s
Thu · 2m 04s
Fri · 3m 42s
Cumulative: 4 sessions · 7m 51s · 11 of 14 pages read
06

Geolocation

Country and city for every viewer, captured from their IP address. See if your VC is reading from SF, your client from London, your prospect from Berlin.

How it works: An ipapi.co lookup runs once per session. No browser geolocation prompt, fully passive.
Why it matters: A New York buyer looking at a Miami listing = likely serious. Out-of-zone leads tend to be higher-intent.
Geolocation
San Francisco, US
7 sessions · last seen 2 minutes ago
37.77, -122.42
London, UK
4 sessions · last seen 18m ago
51.51, -0.13
Berlin, DE
1 session · 32 min ago
52.52, 13.40
07

Device & browser detection

Mobile, tablet or desktop. Chrome, Safari, Firefox. Operating system and screen resolution. Know exactly how your document is being consumed.

Why it matters: A pitch read on mobile during a commute behaves differently than one read on a desktop in a meeting. Adapt your follow-up.
Device & browser
SC
Sarah Chen
Chrome 121 · macOS · Desktop · 1920×1080
MR
Marcus Rivera
Safari iOS · iPhone 15 · 390×844
EK
Elise Karim
Firefox · Windows 11 · Desktop · 2560×1440
08

Live activity feed

A real-time stream of opens, page views and engagement events flowing into your dashboard. See activity as it happens, no refresh needed.

How it works: A Supabase Realtime websocket pushes new sessions and page-view events directly to your open dashboard.
Why it matters: When a key prospect opens during your team standup, you'll see it live. Perfect for "did they open yet?" anxiety.
Live activityLive
Sarah from Acme Corp just opened Series A — Northstar Pitch.pdf
2 minutes ago · 4m 12s · 12 of 14 pages
Marcus Rivera opened Series A — Northstar Pitch.pdf
14 seconds ago · still active
Anonymous viewer reached page 9
41 seconds ago · Berlin, DE

Track your first PDF in 60 seconds.

Free forever for your first 3 documents. Every tracking feature included from day one.

Start free →