siteline Start free trial Log in

Analytics blocked by ad blockers

See your data

Ad blockers are doing what they advertised. If script.js loads from an analytics host, there is a decent chance EasyList or a cousin never lets it run. Your dashboard then describes a quieter, richer, more "engaged" audience than the one that actually showed up. That audience is the people who do not run uBlock.

SiteLine does not magically appear first-party. The default snippet points src and data-endpoint at SiteLine. That is third-party to the browser. Some lists will ignore it. Some will not. You will not get a percentage from us. Measure with and without a blocker on a real page.

What blocking looks like in SiteLine

Bots are a separate filter. SiteLine drops known crawler user agents before quota. An empty Live on a site that only gets Googlebot is correct. An empty Live on a site with paying humans and a red blocked request in DevTools is ad blocking or a bad endpoint.

What actually reduces loss

Reverse-proxy two paths on the site's host:

Load them same-origin. Full configs (nginx, Caddy, Cloudflare Worker skeleton, Vercel rewrites): proxy docs. SiteLine does not manage CNAMEs. If someone on your team is waiting for an "analytics.example.com" record SiteLine will provision, they will wait forever.

React apps: set endpoint to the first-party collect URL. Do not proxy the script and leave collect on SiteLine.

This reduces loss. It does not eliminate it.

If you need "every human," you need a world without blockers. You do not have that world.

What not to do

A practical order of operations

  1. Confirm the snippet is on the page and the public id matches Install.
  2. Confirm data-endpoint is absolute (or same-origin after a proxy exists).
  3. Confirm allowlist includes the host you typed in the address bar.
  4. Open the page with blockers disabled. Live should move.
  5. Open it with a popular blocker enabled. Note whether script.js / collect disappear.
  6. If they disappear and the gap matters, put the proxy in front of both paths.
  7. Re-test with the blocker on. Expect improvement, not 100%.
  8. Write the remaining gap into the report as instrumentation reality.

Quota: events that never arrive do not count. Events that arrive through the proxy do. Billing does not discount for ad-blocker loss.

Goals and funnels cannot recover blocked hits. If step 1 is a pageview the blocker ate, the visitor was never in the funnel.

FAQ

Will a first-party proxy get us past every list?

No. It is the correct mitigation for "blocked because the host is SiteLine." It is not a stealth mode.

Does cookieless tracking avoid blockers?

No. Blockers key off script URL, request URL, and known tracker behavior. Cookies are a different fight. SiteLine's daily hash is a privacy model, not an unblockable one.

Should we dual-tag GA4 and SiteLine to compare loss?

You can. You still will not know the true visit count. You will know two incomplete series. Use GSC clicks as a lagged lower bound for search landings only, not for all traffic.