PULSE
AGENCYNO COOKIESThe model predicts. Pulse verifies.
Every heatmap tool shows you a prediction or a recording — never both. Pulse confronts the predicted attention map with how real visitors actually behave, zone by zone. Nobody else closes this loop.
PREDICTED
REAL VISITORS
The prediction said your banner was hot — real visitors ignore it. It said the footer was dead — people hunt for something there. Both gaps are money.
HOW IT WORKS — THREE STEPS, FIVE MINUTES
One line on your site
The SDK reads in five minutes — audit it yourself. It disables itself for bots, and a single flag turns it off entirely.
<script async src="https://heatpoints.com/pulse.js" data-site="hp_xxx"></script>
Signals aggregate in the browser
Attention grid counters, clicks per element, dwell per scroll band, one exit point. Everything is summed before it leaves the page — raw behavior never travels.
grid_cells: 24 cols × counters
clicks: per selector · rage · dead
scroll: dwell / velocity × 10 bands
identity: none
Your report gains a reality column
Predicted attention vs measured behavior, zone by zone — with the gaps flagged. The dashboard tracks how each deploy moves the real numbers.
What the prediction can't see — and Pulse catches
Rage clicks
rage: 1An element gets hammered 4 times in a second — visitors think it's clickable, or it's broken. The prediction can't know your button is dead. Pulse flags it.
Dead zones that aren't
+25% realThe model says nobody looks at your footer — yet real visitors scroll there and hunt. Something is missing from your page, and they're looking for it.
Hot zones that don't convert
−35% realPredicted attention lands on your banner, but nobody clicks or dwells. The eye passes through — it attracts, then disappoints. Rewrite or remove.
The real fold, the real exit
exit: band 4/10Where visitors actually stop scrolling per device, and the exact band where they leave. The scroll journey score meets its ground truth.
PRIVACY BY DESIGN
Built so there's nothing to hide
Pulse was designed backwards from privacy: aggregate first, send second. There is no session replay, no fingerprint, no identifier to leak — the raw behavior never leaves the visitor's browser.
- No cookies, no identifiers, no raw mouse trails — grid counters and sums only
- Bots and automated browsers are ignored at the source
- One flag (window.hpConsent = false) disables it entirely — wire it to your CMP if you use one
- Data hosted in France
As with any analytics setup, validate your specific configuration with your DPO — we document exactly what is collected so that conversation takes five minutes.
WHAT LEAVES THE BROWSER — COMPLETE LIST
{
"site": "hp_xxx",
"device": "desktop",
"grid": { "142": 8, "143": 21, ... },
"clicks": [
{ "s": ".cta-hero", "n": 14 },
{ "s": ".nav-menu", "n": 3, "rage": 1 }
],
"bands": [[dwell, velocity] × 10],
"reach": 0.62,
"exit": 4
}NO IP STORED · NO USER ID · NO TIMESTAMP CHAIN
Every gap makes the next prediction sharper
Prediction alone is a guess. Measurement alone is hindsight. Pulse pairs them: each verified gap between predicted and real attention is a lesson — for your page today, and for the model tomorrow. That loop is the product nobody else ships.