Methodology
How Potolo works
We measure your traffic without identifying anyone — and we publish exactly how. No cookies, no fingerprints, no profiles. Sees the numbers, not the people.
What happens on a pageview
Five steps, in the order they actually run.
- 1
A tiny script sends a beacon
When someone opens a page, a script around 1 KB (gzipped) sends the page path and referrer. It sets no cookies and reads nothing from the device.
- 2
Privacy signals come first
Requests carrying Do Not Track or Global Privacy Control are dropped before anything else. Obvious bots are filtered out too.
- 3
Context is derived in memory
From the request we read a coarse country (from the IP) and the browser, OS and device class (from the user-agent) — held only for a moment.
- 4
The visitor is anonymized
The IP, user-agent and site are folded into a one-way daily hash. The raw IP and user-agent are then discarded — never written to disk.
- 5
Only counts are stored
What lands in the database is that hash plus non-identifying fields. Each night they roll up into daily totals that contain no personal data at all.
The visitor hash
To tell visitors apart without identifying them, we don't store who someone is — we store a fingerprint that can't be turned back into a person.
visitor_hash = sha256(daily_salt · ip · user_agent · site)- daily_salt
- 32 random bytes generated on the server, rotated every 24 hours and then destroyed. Without it the hash can't be recomputed.
- one-way
- SHA-256 can't be reversed. There is no lookup table from a hash back to an IP, a device, or a person.
- per-site
- The site is part of the input, so the same visitor on two sites produces two unrelated hashes. No cross-site profile is possible.
- per-day
- When the salt rotates, yesterday's hashes can never be reproduced. A visitor can't be followed from one day to the next.
What we collect
Per pageview — none of it identifies a person.
- Page path
- Referrer host — e.g. google.com, not the full URL
- Coarse country
- Browser, OS & device class
- UTM campaign tags
- The daily visitor hash
What we never store
Used for a moment, if at all, then gone.
- No cookies or local storage
- No raw IP addresses
- No raw user-agent strings
- No device fingerprints
- No cross-site or cross-day identity
- Nothing sold or shared, ever
Read the script we serve
The tracker is MIT-licensed and served unminified — about 80 lines of plain JavaScript, no dependencies. What you read is exactly what runs on your site.
No consent banner
Because nothing is stored on your visitors' devices, there's nothing to consent to. GDPR-friendly by construction.
Cookieless Web Vitals
The same script measures real-user LCP, CLS and INP in the browser, reported once when the page is closed — with no identity attached.
EU-hosted, end to end
Visitor data is stored on European infrastructure and never leaves the EU. No black box — the method is documented right here.
Measure honestly.
Real numbers about your site, without collecting data about your visitors.