Explainer

How Does an Ad Blocker Actually Work?

4 min read

Most people install an ad blocker and watch the banners disappear without ever seeing what happens behind the scenes. Understanding the mechanics makes it a lot easier to explain why one blocker catches what another misses, and why YouTube sometimes fights back.

What is actually happening when a page loads?

Every modern webpage is an assembly of dozens of network requests: the article text, the stylesheet, the fonts, the images, the analytics script, the ad creative, and so on. Before Manifest V2 gave way to the current model, an ad blocker could intercept each request, compare it against a rule list, and block or allow it in milliseconds. The page rendered with anything matching a blacklist filtered out, so the banner container either collapsed or never loaded.

That process has two visible layers. Network-level filtering stops the request from leaving the browser, which saves bandwidth and prevents ad scripts from executing. Cosmetic filtering hides the empty containers and leftover whitespace so the page looks clean. Neither layer reads your email, edits the article, or changes the editorial text. They only suppress resources and elements that match defined patterns.

See the conceptual overview at what is an ad blocker and the technical deep dive at how YouTube ad blocking works.

How do filter lists make the decisions?

A filter list is a long text file of pattern rules. Each rule typically matches a domain name, a URL pattern, or a DOM selector.

  • EasyList is the baseline advertising filter that catches the majority of display and video ads in English-language markets.
  • EasyPrivacy targets tracking scripts and measurement pixels rather than visible ads.
  • uBlock Origin filters add a broader set of annoyance and regional coverage rules.
  • Custom hostname or subscription-rule sets let advanced users tune blocking for a specific region or platform.

When an ad blocker subscribes to a list, it downloads a fresh copy on a schedule and compiles the rules into its engine. The freshness of this refresh cycle matters directly: a blocker that updates its lists daily responds to domain changes one that refreshes weekly may miss. ProBlocker subscribes to EasyList, EasyPrivacy, and uBlock Origin lists with daily refreshes and adds custom YouTube rules to close gaps faster. For the privacy implications, read tracker blocking.

Why do some websites still detect an ad blocker?

Ad blockers remove page elements and block requests, so a website can write a small probe that checks whether those elements still exist. If the expected ad container is missing, the page knows the blocker is running and may show a warning, request that you disable the extension, or serve content from the same domain so the request cannot be blocked without breaking the page.

YouTube is the most visible case because its ad-supported videos generate enormous revenue. The platform deploys frequent anti-adblock updates that change how detection scripts identify ad containers, which is why a blocker needs active, daily list maintenance to keep up. For the technical details, see how YouTube ad blocking works.

What does “Manifest V3 compatible” change about how an ad blocker works?

Manifest V3 caps the number of rules a browser extension can install and limits the dynamic inspection that older extensions could do. For an ad blocker, that means it must:

  • Fit its most important rules within the static rule budget the browser allows.
  • Compensate for the reduced dynamic budget by choosing rules that cover the widest pattern surface.
  • List well-maintained filter lists that are already optimized for impact-per-rule.

Extensions built natively for Manifest V3, rather than ported from older versions, tend to hit their rule budgets more efficiently because the architecture was designed with those constraints in mind. For background, read the Manifest V3 overview.

How ProBlocker addresses this

ProBlocker is built natively on Chrome’s Manifest V3 declarativeNetRequest API. That means it filters network requests without needing broad page-content access, which reduces its permission footprint. It subscribes to EasyList, EasyPrivacy, and uBlock Origin lists with daily refreshes, runs a custom set of YouTube rules, and adds zero account or tracking requirement of its own. It is free, open source on GitHub, and available for Chrome, Firefox, Edge, Brave, Opera, and Vivaldi.

What to check when evaluating any ad blocker’s mechanics

  1. List freshness: confirm whether lists update daily or on a longer cycle.
  2. Acceptable Ads participation: if a program allows paid whitelisting, you will see some ads by default unless you opt out.
  3. Permission scope: network-level permission is enough for strong blocking; a blocker that demands broad page-content access should explain why.
  4. Browser support: extensions that support Chrome, Firefox, Edge, Brave, Opera, and Vivaldi make it easier to keep one config across devices.
  5. Open-source availability: a public repository lets the community audit the rule handling and the data claims.
Rarely. Modern ad blockers primarily match network requests and DOM elements against pattern-based filter lists, though cosmetic rules can hide specific containers by selector.