How we count visitors without watching them
Accurate unique visitors, zero cookies, nothing personal kept. The trick is a salted hash that forgets itself every night.
By Sami Dghim
Every analytics tool faces the same tension: to count unique visitors you need to tell them apart, but telling them apart is exactly what feels invasive. Most products resolve it by storing an identifier — a cookie, a fingerprint, a device ID — and asking you to trust their privacy policy. Pulse resolves it differently: there is no identifier to store in the first place.
A hash that forgets itself
When a pageview arrives, Pulse builds a visitor key by hashing the IP address, the user-agent, and the site id together with a secret salt that rotates every day. The raw IP and user-agent are used for that one calculation and then discarded — they're never written to disk.
visitor = HMAC_SHA256(dailySalt, ip + ua + siteId)
dailySalt = SHA256(SERVER_SECRET + today)Within a single UTC day the key is stable, so two requests from the same person collapse into one unique visitor and a session can be reconstructed. The next day the salt changes, the key changes, and yesterday's visitor becomes uncountable. There is no thread to pull that links a person across days.
Small numbers stay private too
Aggregates can leak identity even without identifiers — a single visitor from a small town is effectively named. So Pulse suppresses city and region rows until at least five distinct visitors share them. Below that threshold the location simply isn't shown.
Privacy that depends on a setting can be toggled off. Privacy that's baked into the data model can't.
The result is the number you actually wanted — honest unique visitors — without a profile sitting in a database waiting to be breached, subpoenaed, or sold. And because nothing personal is collected, there's no cookie banner to nag your visitors with.
See it on your own traffic
Cookieless analytics that also tells you which ads pay. Free to start.