How ad blocking is done: a look inside filter developing and why Manifest v3 is a threat

How do ad blockers work? At the very core of any ad blocker lie filter lists (also called 'filters') — literally lists of rules written in a special syntax. If we were to compress ad blockers' job into a few words, we'd say "ad blockers interpret filtering rules". They understand this complex syntax and perform actions with web traffic based on what these rules tell them to do: block specific elements, change web pages in certain ways, etc.

There is a rich variety of filter lists. Thousands of volunteers continuously work on keeping them up-to-date, making sure they block ads and don't break anything important.

You may have heard of the upcoming changes in Chrome browser, also known as Manifest v3. And these changes threaten to end the filters ecosystem as we know it. This article is aimed at Google Chrome developers: we want to believe that they don't have a goal of hurting this ecosystem, but rather simply lack a proper understanding of it. That's why we find it absolutely necessary to describe in detail how it functions and what's wrong with the current implementation of Manifest v3.

And perhaps some of our readers would like to know how it all works, too.

How ad blockers work

As it's been mentioned before, ad blockers are 'translators' that interpret filtering rules. First, an ad blocker download filter lists. It can be any filter lists, downloaded from multiple different places, it doesn't really matter. What matters is that now the ad blocker will start checking web pages' code against all these filtering rules.

This is how ad blocking works

Let's dive a tiny little bit into technicalities, since there are probably some people who'd like to know how things work on a deeper level. There are several different ways:

Network filtering

Ads on web pages don't appear magically out of thin air. They have to be fetched somehow, i.e. downloaded from a server. To do so, browser needs to send a web request. Filtering rules tell ad blockers which requests are trying to fetch an ad and not useful content and should be blocked.

Cosmetic filtering

Every web page has a DOM ("document object model"), basically an HTML document that contains the page's structure and all its elements. Of course, ads on the page are also elements and are reflected in the DOM. Ad blockers can remove parts of the DOM, and filtering rules help them understand which parts are ads and should be removed, and which shouldn't be messed with.

Of course, in reality it's much more complicated than that, but you can see the general picture. If you'd like to know more about the technical side, check out our ad blocking syntax guide.

Filter lists

There are hundreds, if not thousands of filter lists: AdGuard Filters, EasyList, etc. It takes daily work of thousands of volunteers and professionals to keep these filters updated, so that they are always relevant and don't mess up anything.

Filters can do more than just block ads, and different people choose different combinations of filters to match their personal preferences. Here are some examples of popular filter lists that illustrate just how diverse they can be:

  • EasyList — a base filter for many users, oriented solely to block ads,
  • EasyPrivacy — another popular choice, serves to block online trackers,
  • Fanboy's SocialList — a filter that blocks social widgets, 'Like' buttons etc.,
  • AdGuard Annoyances — AdGuard's filter to block, well, annoyances. I.e. things like cookie notices, online assistants and so on,
  • A plethora of language-specific filter lists: EasyList Germany, RUAdlist, AdGuard Turkish filter, and many, many more.

Feel free to check out this website that has a huge filter lists database.

And here's the problem: the planned Google Chrome changes imply that there will be only one default filter list (so-called 'static' rules). You'd be able to modify it with a set of 'dynamic' rules, but the limit on those is ridiculously small, only 5,000. Many filter lists we mentioned above don't fit this limit alone, imagine if you want to add multiple filter lists.

How filter lists are developed

As we said, filter lists have to be constantly updated. There are two main reasons for that:

  1. To block new ads and
  2. To fix what's broken (with the amount of rules in filter lists something's bound to break at some point).

Of course, filter lists' maintainers can't monitor millions of websites themselves. They rely heavily on user feedback. To put it in perspective:

  • AdGuard Filters repository has over 40,000 closed tasks at the moment. Every week about 500 new tasks appear and approximately the same amount gets resolved.
  • EasyList and its regional filters subscriptions mostly get their feedback from the forum and it has tens of thousands of threads.

Many ad blockers have tools to help users easily report any filter-related issues they face. For example, AdGuard users have access to a special web reporting tool. Based on such complaints, filter developers correct their filter lists. Ad blockers update the filters, and — boom! — the ad is gone.

Filters are constantly being updated

This gets us to another problem: dynamic rules in Chrome are going to have a different priority compared to static ones. It only brings more chaos and makes filter lists maintainers' work so much harder.

Where do people get new filter lists?

One of the cornerstones of today's ad blocking is the users' ability to add any custom filter lists by URL (as opposed to choosing from the default list, however large it can be). This is vital for health of the filter lists ecosystem.

  • Users have an option to try new filter lists,
  • Developers can directly share their creations with users, without any third-parties.

Another face of the same problem is that under the existing dynamic rules limitation it would be impossible for all of this to happen. This would lead to slow but sure decline of the filter development community.

What awaits us in the future?

If nothing is done and all changes planned for Chrome become reality, the future will be grim for all of us:

  1. The filters ecosystem is going to receive a very painful blow.
  2. Instead of the familiar filter variety and a large, active community there will be only a handful ad blocker developers left, who'll maintain a few filter lists to the best of their ability.
  3. From users' perspective, instead of flexible approach and the ability to customize ad blocking to their preference they'll get "unified" filter lists that do more or less the same.
  4. The community will shift towards other ad blocking methods and focus its efforts on those.

At the time, we have spoken a lot of harsh words about Safari content blocking, and rightfully so. At least, thanks to countless tricks and 'duct taping' we managed to arrive at a satisfactory solution. With Google Chrome's case, there's honestly no light at the end of the tunnel.

Are there any solution?

Yes, in fact, all these problems can be addressed and solved, and even without deviating too much from the general direction Google wants to take with Chrome. What we think should be done for that:

  • A term 'Filter list' should be introduced for both static and dynamic rules,
  • The limit for dynamic rules should be drastically increased,
  • Filter rules priorities should be rethought. Dynamic rules should have the same priority as static rules.

From the developers' point of view, it would be much simpler to have only dynamic rules. To developer community dividing rules into static and dynamic categories seems not necessary and even chaos-inducing. At the same time, we are ready to have a dialogue with Google Chrome devs and find a compromise that will satisfy everyone, and most importantly — Chrome users.

PS:
If you feel like you have what it takes to become a filter maintainer, we always welcome any help! Check out this page to learn how you can help us improve AdGuard Filters and what you'll get in return for your efforts.

喜歡這篇文章嗎?
AdGuard DNS AdGuard Mail AdGuard Wallet
AdGuard DNS AdGuard Mail AdGuard Wallet
AdGuard Windows 版主畫面
AdGuard Windows 版的防護畫面,顯示防護功能與設定。
AdGuard Windows 版的統計畫面,顯示已封鎖的廣告與追蹤器資料。
AdGuard Windows 版的應用程式管理畫面,顯示裝置上已安裝應用程式的防護管理選項
21,758 21758 使用者評論
極好的!

AdGuard Windows 版:PC 廣告阻擋器

Windows 版 AdGuard 不只是廣告封鎖程式,它是集成所有讓您享受最佳網路體驗的主要功能的多用途工具。其可封鎖廣告和危險網站,加速網頁載入速度,並且保護兒童的線上安全。
透過下載該程式,您接受授權協定的條款
Microsoft Store
透過下載該程式,您接受授權協定的條款
AdGuard for Windows 8.0 版本,14 天的試用期
AdGuard Mac 版主畫面
AdGuard Mac 版的隱身模式介面
21,758 21758 使用者評論
極好的!

AdGuard Mac 版:全系統廣告攔截器

Mac 版 AdGuard 是一款獨一無二的專為 MacOS 設計的廣告封鎖程式。除了保護使用者免受瀏覽器和應用程式裡惱人廣告的侵擾外,應用程式還能保護使用者免受追蹤、網路釣魚和詐騙。
透過下載該程式,您接受授權協定的條款
閱讀更多
AdGuard for Mac 2.19 版本,14 天的試用期
AdGuard Android 版主畫面
AdGuard Android 版的追蹤保護畫面
AdGuard Android 版的應用程式管理畫面,顯示裝置上已安裝應用程式的防護管理選項
AdGuard Android 版的統計畫面,顯示已封鎖的廣告與追蹤器資料。
AdGuard Android 版隱私瀏覽器主畫面
下載 AdGuard Android 版的 QR 碼
21,758 21758 使用者評論
極好的!

Android 版 AdGuard —廣告封鎖器

在所有瀏覽器、遊戲及其他應用中封鎖廣告和追蹤器。保護個人隱私,並讓您控制應用如何使用網路。通過 APK 安裝。
透過下載該程式,您接受授權協定的條款
閱讀更多
掃描下載
可以使用任何一款 QR 碼閱讀器
AdGuard for Android 4.14 版本,14 天的試用期
AdGuard iOS 版主畫面
AdGuard iOS 版的防護畫面,顯示防護功能與設定。
AdGuard iOS 版的統計畫面,顯示已封鎖的廣告與追蹤器資料。
下載 AdGuard iOS 版的 QR 碼
21,758 21758 使用者評論
極好的!

iOS 版 AdGuard —廣告封鎖器

適用於 iPhone 和 iPad 的最佳 iOS 廣告攔截器。AdGuard 可在 Safari 中消除各種廣告與追蹤器,並在 DNS 層級保護您在所有應用程式中的隱私。
透過下載該程式,您接受授權協定的條款
閱讀更多
掃描下載
可以使用任何一款 QR 碼閱讀器
AdGuard for iOS 版本 4.5
AdGuard 內容阻擋器主畫面
AdGuard 內容阻擋器的過濾器畫面
AdGuard 內容阻擋器的設定畫面
21,758 21758 使用者評論
極好的!

AdGuard 內容阻擋器

AdGuard 內容阻擋器可以全面阻止所有支援內容封鎖技術的行動瀏覽器中的廣告,目前包括 Samsung Internet 瀏覽器和 Yandex 瀏覽器。雖然其功能相比 Android 版 AdGuard 有所限制,但它完全免費、安裝簡單且封鎖高效。
透過下載該程式,您接受授權協定的條款
閱讀更多
AdGuard 內容阻擋器 版本 2.8
AdGuard 瀏覽器擴充功能的主畫面
AdGuard 瀏覽器擴充功能的追蹤防護畫面
21,758 21758 使用者評論
極好的!

AdGuard 瀏覽器擴充功能

AdGuard 是有效地封鎖於全部網頁上的所有類型廣告之最快的和最輕量的廣告封鎖擴充功能!為您使用的瀏覽器選擇 AdGuard,然後取得無廣告的、快速的和安全的瀏覽。
安裝
透過下載該程式,您接受授權協定的條款
安裝
透過下載該程式,您接受授權協定的條款
安裝
透過下載該程式,您接受授權協定的條款
安裝
透過下載該程式,您接受授權協定的條款
安裝
透過下載該程式,您接受授權協定的條款
閱讀更多
安裝
透過下載該程式,您接受授權協定的條款
閱讀更多
AdGuard 瀏覽器擴充功能 版本 5.5
AdGuard 助理主畫面
21,758 21758 使用者評論
極好的!

AdGuard 助理

AdGuard 桌面應用的配套瀏覽器擴充套件。支援封鎖網頁特定內容、將網站新增至允許清單,並直接從瀏覽器提交報告。
AdGuard 助理 版本 1.4
21,758 21758 使用者評論
極好的!

AdGuard Home

AdGuard Home 是一款以網路為基礎的解決方案,用於封鎖廣告和追蹤器。只需在您的路由器上安裝一次,即可涵蓋家庭網路上的所有裝置——無需另外安裝客戶端軟體。這對於經常威脅您隱私的各類物聯網裝置來說尤為重要。
AdGuard Home 版本 0.107
AdGuard Pro iOS 版主畫面
AdGuard Pro iOS 版的保護畫面,顯示保護功能與設定
AdGuard Pro iOS 版的統計畫面,顯示已封鎖的廣告和追蹤器資料
21,758 21758 使用者評論
極好的!

AdGuard Pro iOS 版

AdGuard Pro iOS 版預置全部進階廣告封鎖防護功能,提供與 AdGuard iOS 版付費版完全相同的工具集。其卓越之處在於:不僅能精準封鎖 Safari 瀏覽器內的廣告,更支援自訂的 DNS 設定以精細化防護策略。該產品具備跨瀏覽器與應用的全方位廣告封鎖能力,有效防護兒童遠離不良內容,並全面保障個人資料安全。
透過下載該程式,您接受授權協定的條款
閱讀更多
AdGuard Pro iOS 版 版本 4.5
AdGuard Mini Mac 版主畫面
AdGuard Mini Mac 版的 Safari 保護畫面
AdGuard Mini Mac 版的建立規則畫面
21,758 21758 使用者評論
極好的!

AdGuard Mini Mac 版:Safari 廣告封鎖程式

AdGuard Mini Mac 版是一款強大的 Safari 廣告攔截程式。這款輕量級應用不僅能移除廣告、封鎖追蹤器,還能顯著提升網頁載入速度。它讓您在 Safari 中專注瀏覽、免受干擾,同時確保個人資料安全私密。
安裝
透過下載該程式,您接受授權協定的條款
閱讀更多
AdGuard Mini Mac 版 版本 2.3
開啟防護狀態下的 AdGuard Android TV 版本主畫面
AdGuard Android TV 版本的廣告封鎖畫面,顯示其功能與設定
AdGuard Android TV 版本的設定畫面
AdGuard Android TV 版本的應用程式管理畫面,顯示已封鎖廣告與追蹤器的應用程式。
21,758 21758 使用者評論
極好的!

AdGuard Android TV 版

Android TV 版 AdGuard 是唯一一款能封鎖廣告、保護隱私並充當智慧電視防火墻的應用程式。取得網路威脅警告,使用安全 DNS,並受益於加密流量。有了安全性和零廣告的使用體驗,使用者就可以盡情享受最喜愛的節目了!
AdGuard Android TV 版 4.14 版本,14 天的試用期
AdGuard 吉祥物 Agnar 懷抱 Linux 的企鵝吉祥物
21,758 21758 使用者評論
極好的!

AdGuard Linux 版

AdGuard Linux 版是世界上第一個系統級廣告封鎖器。封鎖廣告和追蹤器,選擇預設過濾器或新增自己的過濾器。管理流程通過命令行介面實現。
AdGuard Linux 版 版本 1.4
21,758 21758 使用者評論
極好的!

AdGuard Temp Mail

免費的臨時電子郵件地址產生器,保持匿名性並保護個人隱私。您的主收件匣中沒有垃圾郵件!
21,758 21758 使用者評論
極好的!

AdGuard DNS

AdGuard DNS 是一種不需要安裝任何的應用程式而封鎖網際網路廣告之極簡單的方式。它易於使用,完全地免費,被輕易地於任何的裝置上設置,並向您提供封鎖廣告、計數器、惡意網站和成人內容之最少必要的功能。
21,758 21758 使用者評論
極好的!

AdGuard Mail

保護個人身份,避免垃圾郵件,並使用我們的別名和臨時電子郵件地址保護收件箱。享受我們的免費電子信箱轉發服務和適用於所有作業系統的應用程式使用體驗。
21,758 21758 使用者評論
極好的!

AdGuard Wallet

一個安全且私密的加密貨幣錢包,讓您完全掌控資產。管理多個錢包,探索上千種加密貨幣以儲存、傳送及兌換。
已開始下載 AdGuard 點擊箭頭所指示的檔案開始安裝 AdGuard。 選擇"開啟"並點擊"確定",然後等待該檔案被下載。在被打開的視窗中,拖曳 AdGuard 圖像到"應用程式"檔案夾中。感謝您選擇 AdGuard! 選擇"開啟"並點擊"確定",然後等待該檔案被下載。在被打開的視窗中,點擊"安裝"。感謝您選擇 AdGuard!
在行動裝置上安裝 AdGuard