Technical Guide

How Adblockers Block Your Analytics: A Technical Guide

If you've ever wondered exactly why Google Analytics stops working in Brave browser, or why blocking GTM silences your entire analytics stack, this guide explains the mechanics — from filter list matching to browser-native blocking engines — and what can actually be done to recover the data.

By Introtrace·January 2025·12 min read

1. How Filter Lists Work

The core mechanism behind most adblockers is straightforward: a list of URL patterns. When your browser makes a network request, the adblock checks the request URL against entries in one or more filter lists. If there's a match, the request is blocked before the browser sends it.

The major filter lists relevant to analytics are:

EasyPrivacy

The most widely used tracking-specific filter list. Maintained by the EasyList team, included by default in uBlock Origin and AdBlock Plus. Contains explicit entries for virtually every analytics and tracking service. Updated multiple times per week as new tracking endpoints appear.

uBlock Origin's built-in filters

uBlock ships with its own curated lists beyond EasyPrivacy, including specific filters for Google Analytics, GTM, and other services. It also includes Peter Lowe's Ad and Tracking server list.

Disconnect.me Tracking Protection List

Used by Firefox Enhanced Tracking Protection and some other browsers. Classifies domains into categories (Advertising, Analytics, Social, Content) and blocks the Analytics and Advertising categories by default.

Brave Shields

Brave compiles filter list content into a high-performance native engine. It uses uBlock's lists plus Brave's own additional rules, applied at the browser level without requiring any extension.

Filter list syntax supports wildcards and domain matching. An entry like ||google-analytics.com^ blocks all requests to any URL on google-analytics.com, including subdomains. This is why changing the query string or path doesn't help — the domain itself is blocked.

2. What Gets Blocked and Why

Here are the specific endpoints that every major adblock targets for common analytics tools:

Google Analytics 4

||google-analytics.com^ (blocks all GA4 data collection)||googletagmanager.com/gtag/ (blocks gtag.js loading)||analytics.google.com^ (blocks GA4 Measurement Protocol)

All GA4 events — pageview, scroll, click, purchase, custom events — are sent to google-analytics.com/collect or analytics.google.com/g/collect. Both are explicitly blocked.

Google Tag Manager

||googletagmanager.com^ (blocks gtm.js container loading)||www.googletagmanager.com/gtm.js (explicit GTM container block)

GTM itself is the container. When the GTM script is blocked, every tag inside it fails to execute — GA4, Facebook Pixel, Google Ads, LinkedIn, Hotjar, all of it.

Facebook / Meta Pixel

||connect.facebook.net^ (blocks fbevents.js and all pixel events)||facebook.com/tr/ (blocks server-to-browser pixel calls)

The Facebook Pixel script and every event it fires (PageView, Purchase, AddToCart, Lead) are blocked. Custom conversions, custom audiences, and event deduplication all fail.

Other Common Tools

||static.hotjar.com^ (Hotjar script blocked)||cdn.amplitude.com^ (Amplitude SDK blocked)||api.mixpanel.com^ (Mixpanel event collection blocked)||sc-static.net^ (Snapchat Pixel blocked)||snap.licdn.com^ (LinkedIn Insight Tag blocked)

Most tracking and analytics services are blocked. The filter lists are comprehensive and maintained by large communities who actively add new trackers.

3. The GTM Cascade Problem

Google Tag Manager is a single point of failure for every analytics and marketing tool deployed through it. Here's what happens when GTM is blocked:

  1. 1The browser attempts to load googletagmanager.com/gtm.js
  2. 2The adblock intercepts the request and blocks it — the script never downloads
  3. 3The GTM container never initializes
  4. 4No tags inside the container can fire: GA4, Facebook Pixel, Google Ads conversions, LinkedIn Insight Tag, Hotjar, custom HTML tags — all silenced
  5. 5The dataLayer still receives pushes from your site code, but with no GTM to consume them, nothing happens

This cascade effect means that for users who block GTM, your data loss is total — not partial. You don't just lose GA4 data; you lose every signal from every tool in your marketing stack simultaneously. For many sites, this represents 100% data loss for 25-40% of visitors.

4. Browser-Native Blocking (No Extension Needed)

A commonly overlooked fact: a growing segment of your audience blocks analytics without any browser extension installed. Modern browsers ship with tracking protection built in.

Brave Browser

Brave ships with a built-in adblock that compiles uBlock Origin filter lists into a native Rust-based engine (called 'Brave Shields'). It runs before the browser's network stack, blocking analytics requests with essentially zero overhead. No extension required, on by default for all users.

Impact on analytics

100% of standard analytics endpoints blocked by default. Brave has ~3-4% browser market share globally, higher in developer and tech audiences.

Firefox Enhanced Tracking Protection (ETP)

Firefox ships with ETP enabled by default since version 69 (2019). In 'Standard' mode, it blocks known trackers in third-party contexts using the Disconnect.me list. In 'Strict' mode, it also blocks tracking content in first-party contexts and fingerprinting scripts.

Impact on analytics

Standard ETP blocks some analytics endpoints. Strict mode blocks significantly more. Firefox has ~3-4% market share. Any Firefox user with an ETP-compatible blocker (uBlock Origin) gets full blocking.

Safari Intelligent Tracking Prevention (ITP)

Safari's ITP works differently — it uses machine learning to classify domains as trackers and then restricts their ability to set and read cookies. JavaScript-set first-party cookies are capped at 7 days. Cross-site tracking is prevented entirely. ITP doesn't block network requests outright, but it severely limits attribution and user identification.

Impact on analytics

Less severe for pageview counting, but significant for attribution, returning user identification, and any analytics that depends on cookie persistence beyond 7 days. Safari has ~18-20% browser market share.

Edge Tracking Prevention

Microsoft Edge includes a Tracking Prevention feature with three modes: Basic, Balanced, and Strict. Strict mode blocks all detected trackers including analytics tools. Balanced mode (the default) blocks trackers that appear to cause security or compatibility issues.

Impact on analytics

Strict mode users get analytics blocking similar to uBlock Origin. Edge has ~5% market share.

Combined, browser-native blocking means that even if no one on your site uses an adblock extension, a meaningful percentage of your audience is still blocking analytics — with no action required on their part.

5. Why First-Party Proxies Bypass Blocklists

The key insight: filter lists match against request domains and URL patterns. They can't block a domain they don't know about.

When an analytics signal is intercepted and rerouted through a first-party subdomain — for example, analytics.yoursite.com instead of google-analytics.com — the adblock sees a request to a domain it has no rules for. It doesn't know that the request will be forwarded to Google Analytics on the server side. The request is allowed through.

Request flow with a first-party proxy

Browser sends event to

analytics.yoursite.com/collect

Your own domain — no filter list match

Proxy receives and forwards to

google-analytics.com/collect

Server-to-server, never seen by the browser's adblock

GA4 receives

Complete event data ✓

Full data received, no data loss

This is why first-party proxying is more reliable than other approaches: it works at the network layer, not by trying to rename scripts or obfuscate domains. The adblock has no way to block a domain it has no rules for — and your own subdomain will never appear on a public blocklist.

A critical detail: visitor context preservation

Not all proxies are equal. A naive proxy that simply forwards requests uses its own server as the apparent source of the request. This corrupts your analytics in a subtle but significant way: Google Analytics and Facebook use the visitor's geographic context for location attribution, anti-fraud filtering, and session-level data. If GA4 sees a datacenter in Virginia as the apparent origin instead of the visitor in Berlin, your geographic reports will be wrong and anti-bot filters may behave differently.

A well-implemented proxy preserves the original visitor context by reading request metadata from the incoming connection and including it in the forwarded request to Google, Facebook, or whichever platform is receiving the data. This ensures recovered signals are analytically identical to signals that were never blocked — correct location, correct session context, no data quality degradation.

6. How to Check If Your Analytics Are Being Blocked

There are a few practical ways to measure the gap on your own site:

Brave browser test

  1. 1Open your site in Brave browser with Shields enabled (the default)
  2. 2Open DevTools → Network tab
  3. 3Look at requests: any request to google-analytics.com, googletagmanager.com, or connect.facebook.net will show as blocked (often with a red X or simply absent)
  4. 4Compare against Chrome with no extensions — the difference is what Brave users are blocking

Compare GA4 sessions vs server logs

  1. 1Pull your GA4 session count for a date range from Google Analytics
  2. 2Pull your server-side request count for the same pages and period from your web server logs or CDN logs
  3. 3The gap (server requests - GA4 sessions) / server requests approximates your blocked percentage
  4. 4Note: server logs count bots too, so the gap will be slightly larger than the true blocked percentage

Check the browser console

  1. 1Open your site with uBlock Origin installed and enabled
  2. 2Open DevTools → Console
  3. 3Look for failed network requests (usually shown in red)
  4. 4You'll see entries like 'Failed to load resource: net::ERR_BLOCKED_BY_CLIENT' for analytics endpoints

7. Solutions Compared

Once you've confirmed that your analytics are being blocked, there are several approaches to recovering the data:

Do nothing

Pros

  • +No effort required

Cons

  • Lose 25-40% of all analytics data permanently
  • Marketing campaigns optimize on wrong data
  • A/B tests run on a biased sample

Verdict: Not recommended for any site where data quality matters

Server-side tracking (move analytics to backend)

Pros

  • +Can work with GA4 Measurement Protocol
  • +Full control over data

Cons

  • Significant engineering effort — weeks of work
  • Loses client-side context (scroll depth, click events, etc.)
  • Requires per-platform implementation
  • Expensive ongoing infrastructure

Verdict: Viable for large engineering teams with dedicated analytics infrastructure

Full analytics proxy (route all traffic through proxy)

Pros

  • +Works for most analytics tools

Cons

  • Routes ALL analytics traffic, not just blocked — high cost at scale
  • Adds latency for every visitor, not just blocked ones
  • DNS/CNAME required regardless of blocking
  • Single point of failure for your analytics

Verdict: Works but is expensive and over-engineered for the problem

Targeted signal recovery (Introtrace approach)

Pros

  • +Only intercepts signals that are actually blocked — normal traffic unaffected
  • +One script tag, 2-minute setup
  • +Works for all analytics platforms simultaneously
  • +Visitor location context preserved — geographic attribution stays accurate
  • +Free to start, low cost at scale
  • +No latency added for non-blocked visitors

Cons

  • Requires adding a script to your site

Verdict: Lowest overhead approach — you only pay for what's actually recovered

Summary

Ad blockers block your analytics through a well-understood, deterministic mechanism: they match your analytics request URLs against maintained filter lists. Google Analytics, GTM, Facebook Pixel, and most other tools have been on these lists for years — there's no way to use them without being blocked by users who have these lists enabled.

The only durable solution is to route affected requests through a domain that isn't on any blocklist. The most practical way to do this — without routing all your analytics traffic through a proxy or re-implementing analytics server-side — is to detect which requests are being blocked and recover only those, through your own first-party domain.

That's the problem Introtrace solves. If you want to see how much data your specific site is losing, you can add the script tag and start recovering blocked signals immediately.

See How Much Data You're Losing

Add one script tag and start recovering analytics signals blocked by adblockers. Free up to 20,000 recovered signals per month.

Start Free

Frequently Asked Questions

Can filter lists be updated to block first-party proxies?

Technically yes, but practically very unlikely. For a filter list to block your proxy, the list maintainers would need to add your specific subdomain (e.g., analytics.yoursite.com) as a blocked entry. Public blocklists target well-known, shared tracking domains used by millions of sites — adding individual custom subdomains would be an enormous maintenance burden and would break legitimate first-party API traffic. It would also be legally risky, as blocking a company's own subdomain could be challenged differently than blocking Google's shared infrastructure.

Does using a proxy affect visitor location data seen by analytics?

It depends on the implementation. A naive proxy forwards requests using its own server as the apparent origin, which would corrupt geographic data in GA4 and other tools — reporting a datacenter location instead of the visitor's real location. A correctly implemented proxy reads the visitor's geographic context from the incoming request and passes it through to the analytics provider, so GA4 and other tools receive accurate location data for geographic attribution, anti-fraud filtering, and session reporting. This is an important implementation detail to verify with any proxy solution you evaluate.

Are server-side tracking tools like GA4 Measurement Protocol immune to adblockers?

Server-to-server requests are not visible to the browser, so they can't be blocked by browser-based adblockers. However, server-side tracking misses client-side context (scroll depth, time on page, click events) and requires significant engineering to implement correctly with deduplication and session handling. It's also platform-specific — each tool needs its own server-side implementation.

Will Google penalize my site for using a first-party analytics proxy?

No. Google's webmaster guidelines don't prohibit first-party proxying of analytics data. Proxying analytics through your own domain is a standard technique used by many large sites. Google itself uses server-side tag management (GTM server-side) which operates on the same principle. What matters to Google from a ranking perspective is page quality and user experience — neither of which are affected by how your analytics signals are transported.

How do I know how much data my site is currently losing to adblockers?

The most reliable method: install uBlock Origin in one browser, then compare a session on your site with it enabled vs disabled. In DevTools Network tab, watch for blocked requests to analytics domains. For a quantitative estimate, compare your GA4 session counts against your web server or CDN access logs for the same period — the gap approximates your blocked percentage. Sites targeting developer or tech audiences typically see 30-50% blocked; general consumer sites typically see 15-30%.