Here is an uncomfortable fact about third-party analytics: a meaningful share of your events never reach the server. Not because of consent, but because a browser extension or a network filter quietly dropped the request. And because the request never arrived, it never showed up as missing. You measure a number that is confidently wrong.
The silent drop
Adblockers and tracking-protection filters ship lists of known analytics domains. When your page calls out to one of them, the request is cancelled before it leaves the browser. There is no error in your dashboard, because from the server's point of view the event simply does not exist.
The result is a blind spot that scales with how technical and privacy-conscious your audience is. The more sophisticated your users, the more you undercount.
Route through your own origin
The fix is to stop sending analytics to a third-party domain. A first-party proxy forwards ingest through your own origin, for example yoursite.com/_lm, and on to the collector. The request now looks like any other call to your site, so it is not on a blocklist and is not dropped.
This is not a trick. It is how first-party data is supposed to work: your site, your domain, your data.
Templates, not a research project
leatmap ships copy-paste first-party proxy templates so this takes minutes, not a sprint:
- Next.js 16 (
proxy.tsor a rewrite innext.config.ts) - Cloudflare Workers
- Caddy and Nginx
Point the SDK at your proxy path, add the shared secret, and you are first-party.
Measure what you were missing
Once ingest is first-party, leatmap's coverage view shows observed events next to an estimate of what was previously blocked, so you can actually quantify the recovery instead of guessing.
The short version
If your audience skews technical, you are probably undercounting, and a third-party setup hides exactly how much. Route ingest through your own origin, recover the accidental drops, and keep honoring the choices users actually made.
The proxy templates live in the docs at docs.leatmap.com. For the bigger picture, see why consent belongs at the collector.


