Why your scan analytics and your web analytics disagree
Bot filtering, unique-visitor definitions and people who scan and then close the page. The gap is normal — here is what causes it.
Your code reports 1,000 scans. Your site analytics reports 780 sessions. Neither number is wrong.
Bots are counted differently
We identify known crawlers and unfurlers — the request a chat app makes to build a link preview, for instance — and exclude them from your totals. Other analytics tools use different lists and different rules. Two honest systems will disagree.
"Unique" means different things
We count a unique visitor with a daily-rotating salted hash. It cannot be reversed to an IP address and it cannot be joined across days, which is deliberate: it keeps the count useful without retaining anything identifying.
The consequence is that the same person scanning on Monday and Tuesday is two unique visitors. A cookie-based tool would call that one returning visitor. Neither is lying.
People leave between the scan and the page
A scan is recorded when the redirect is served. If the visitor closes the browser before the destination loads — slow connection, second thoughts, wrong code — we counted a scan and your site counted nothing.
This gap is usually the largest single cause, and it widens on slow mobile connections.
Time zones
Our daily aggregates are UTC. If your web analytics reports in IST, the boundary between "yesterday" and "today" is five and a half hours apart, so daily numbers will not line up even when the totals do.
What to do about it
Compare trends, not absolute numbers. If scans rose 40% and sessions rose 38%, the systems agree about what matters. Chasing an exact match between two tools with different definitions is a way to spend a week and learn nothing.
Which number to use for which question
The two systems are not competing measurements of one thing. They answer different questions, and the disagreement stops being annoying once each is used for what it can actually tell you.
- **Comparing placements** — which magazine, which board, which table — use scans. Both placements are measured the same way, so the ratio between them is trustworthy even if neither absolute number is perfect.
- **Measuring what happened after arrival** — time on page, conversion, revenue — use web analytics. Scans know nothing about the destination.
- **Reporting reach to a client or a board** — report scans, and say what they are: redirects served, bots excluded. A number with its definition attached survives scrutiny; one without it does not.
The mistake worth avoiding
The tempting fix is to pick whichever number is higher and use it everywhere. It works until someone reconciles the two, and then every figure you have ever reported becomes suspect.
Write the definition down once — "scans = redirects served, known bots excluded, counted at redirect time" — put it in the footer of the report, and use the same definition every month. A slightly conservative number you can explain is worth considerably more than a flattering one you cannot.