選單
中文 (繁體)

How ad blocking works: the might behind the magic

How does an ad blocker work? What does the quality of blocking depend on? How do some ads get past it? What differentiates ad blockers from one another?

Such questions are not just a matter of curiosity. Knowing the answers can help one select and use a blocker more efficiently.

The essence of ad blocking in a nutshell

The simplest and shortest explanation of the mechanics of ad blocking is this: a blocker does not allow a browser or an application to download unwanted elements of their content.

Expanding on this: a blocker prevents communication between a program that displays web content (for example a browser) and servers that contain ads (banners, ads, videos, pop-ups and so on). Or other elements that it is designed to block (for example, analytical trackers or widgets of social networks).

The very first blockers were based on another principle: they hid from the user's eyes the advertising elements that had already been uploaded to the page. Now, this method is still used in some programs as an auxiliary one. But there are some browser extensions presently that hide texts on certain topics from websites and social networks, finding them by keywords. For these, this principle is basic.

It is important to understand that nowadays ad blocking is powered not by super high-tech means (like artificial intelligence or self-learning neural networks), but by manual labor, not only that of developers but also of a larger community.

Filters and their maintainers

The products of this manual labor are filters, that is, lists of rules for detecting advertisements and separating them from the desired content. Automatic recognition of advertising is difficult because even people do not have a common opinion about what is advertising and what is not. For example, you might go to a web store and see there a banner saying, "Huge sale! Buy two, get a third for free!" The store is advertising itself, so does it make sense to block such promotional content? Do shoppers want to see it?

Another example: is it worth adding a rule that will work for only one website? This might make sense if the site has a very large audience; you just have to decide how large it needs to be.

Rules can describe various aspects of ad recognition: the appearance of an element, behavior, upload address. All aspects that can be described in programming code.

The criteria for separating advertising from other, more desired forms of content, are usually determined by the deliberate decision of the filter's creator. The criteria of ad definition and the corresponding principles of blocking are described in filter’s policy.

The best-known ad filter initiative is EasyList. It is used by the majority of popular blockers (including Adblock Plus, uBlock Origin, and AdGuard).

Ad blocker developers usually do not maintain filter lists of their own. Adguard does. Actually, our filters now evolve faster and are developed more actively than are EasyList’s. Our community of volunteers makes a huge contribution here.

the activity of EasyList team the activity of Adguard filters team

Another unique feature of AdGuard is its analysis of filter statistics. This helps to identify rules that are not used because the elements that they describe are not found in web pages. When such non-used rules are identified, they are then removed from the filter lists so that overall page loading is faster.

Filtration pipeline: from users to developers and back

The quality of a blocker depends on how quickly its filters are updated. Advertising companies always look for ways to defeat or circumvent ad blocking. They might change identifiers of advertising elements that are described in filter rules, or they may encrypt requests to the advertising servers so that blockers cannot stop them. This constant activity requires constant countermeasures.

Users complain about the ads they see when the blocker is turned on. All blockers have forms and buttons for submitting feedback of this kind. The signal goes to the filter maintainers, and they add new rules. They also remove the rules that have become irrelevant, optimize them for lightness and speed, and, if necessary, start new lists.

this is how a filter looks from inside: a fragment of rules for the Russian language. You can view all Adguard filters in the Knowledge Base

The developers of each ad blocker decide which of the publicly available filter lists to use. However, not all filters are fully compatible with all programs. Developers improve the syntax (rules for compiling program code) for filters so that they work faster and require fewer hardware resources, as a result filters created for one app may not work perfectly in another. But they still do work.

A user’s desire to install as many filters as possible in order to exterminate all ads may cause some problems. If a filter creator does not have enough resources to constantly support, supplement and optimize his lists, they would gradually fill up with errors and slow down the user’s device. A worst-case scenario is one in which hackers compromise an abandoned or poorly maintained filter list. By controlling a content filter, they can change what users see when they open a web page or an app on their device. For example, you might type google.com on an office computer, but land on a porn site while your boss is looking over your shoulder.

An excessive number of filters, especially those that are not perfectly compatible with one another, will slow down the performance of the device and make it feel like the Internet connection is slow.

To protect its users from both accidental and intentional failures in filtering, Adguard uploads all the third-party filter files to our servers and we distribute them from our servers as well, thus guaranteeing us the fullest possible control over their performance.

But filters are just raw materials. It’s a mistake to believe that ad blocker creators just parasitize the labor of filter maintainers.

What do ad blocker developers actually do and how are their products different from each other?

Every ad blocker has its own approach to interpreting and implementing the rules prescribed in filters. A simple example: if a blocker doesn’t come across some elements described in a rule for months, what should I do? Should I disable the rule as obsolete, deciding that web developers have stopped using such elements? After all, the fewer rules, the lighter the app is and the more quickly it works! Or, should I not disable the rule, in case the element could still arise in the field?

Decisions of this kind are based on developers’ experience and expertise, and their understanding of the web and device development trends.

Besides filter maintenance, developing an ad blocker is work that involves processing user feedback, coordinating community efforts, analyzing statistics, controlling third-party filters, and following, understanding and predicting the evolution of advertising and web technologies.

Developers of each program choose their own solutions for all the typical software problems:

  • Usage of hardware resources - RAM, disk space, battery charge. Interaction with other programs;  
  • Interaction with browsers, the correct display of sites and applications with eliminated advertising, without blank spaces, broken links, with proper design and usability;
  • Avoiding conflicts with antivirus applications;  
  • Clarity and convenience of the app’s interface, the balance between flexibility and ease of setup;
  • Flawless performance on all the platforms (types of operating system and device) on which the application is to be installed;
  • User support — answering questions, solving issues, and fulfilling requests.

Finally, an app can have additional functions besides ad blocking; for example, it may offer parental controls or cybercrime protection.

Mobile apps, desktop software, and browser extensions: what are the differences for ad blockers?

Ad blockers are limited by the nature and features of the platforms they work on.

Browser extensions

These are small programs that work inside a browser and are installed from its application store. These are the simplest products to develop, mostly because the extensions for different browsers are actually the same program, but adapted for each of the browsers.

For users, their main advantage is that they are available free of charge. The main drawback, at first glance, is the necessity to install a blocker separately for each browser program that the user employs. But actually, the main disadvantage is that, since the extension "lives" inside a browser, the blocker is forced to obey the laws of the browser's ecosystem. These laws are often not very favorable to blockers because popular browsers have their own opinion about how advertising should work.

ad blocking extensions in Chrome Web Store

For example, Google Chrome and Russia's own popular Yandex browser belong to companies that are completely dependent on advertising income. They do not forbid ad blockers, but they do limit their performance and are gradually tightening these limitations.

Yandex even has a content blocking API (a set of software tools for creating applications for a specific platform) for its mobile browser. But extensions based on the API will not block ads that are served by Yandex's own ad inventory.

The new version of the Content Blocking API for the desktop and mobile versions of the Safari browser has a limit of 50,000 rules for filtering. This is quite a strict limitation, and so far, with the sole exception of AdGuard, none of the blockers have been able to fit it. Everyone uses the old API, which has many functional limitations, plus it works more slowly and it does not allow the user to control some types of requests sent by pages. AdGuard collects performance statistics on its filters, so it can select the most important rules and optimize its filters to fit the limits.

In Chrome and Firefox, extensions are not able to control requests to advertising services via WebRTC protocol. So some part of the requests does get completed, and so some ads are shown.

Until recently, a similar problem affected WebSocket protocol requests. For example, a well-known porn site Pornhub.com was caught creating web socket connections to show banners to users with ad blockers.

When Google launched the experimental QUIC protocol to run its own services in Google Chromium based browsers, it experienced the same issue. Users began to report the appearance of advertisements. Ad blockers could not monitor requests through this protocol and therefore they had to make improvements.

Extension-style blockers for mobile browsers are a different story, but not a very enthralling one. Chrome does not allow such extensions. Firefox does. The Yandex browser has been discussed above, all that was said refers to the mobile versions as well. A similar Content Blocking API is provided by Samsung's Internet browser. Adblock Plus has launched a browser with ad blocking of its own, but it is based on Firefox.

Mobile applications

Blocking ads in mobile apps is possible only at the network level. A blocker here is a mobile app too, all web traffic used by other apps on the device goes through it and gets filtered. The blocking app removes advertising from this data stream, and the already "cleaned" information is displayed in other applications.

False modesty aside, Adguard is not only the best, but it is the only large-scale fully functional ad blocker for Android-powered devices.

There is a mobile blocking application called AdAway, but it uses a fundamentally different blocking mechanism. AdAway edits the host's file on the device. This file is responsible for associating host names (URL addresses) with IP addresses. If you edit associations between domains and IPs for advertising services, requests to these domains would not be completed, and ads would not be shown.

an example of hosts file contents

This method is easy to implement but has significant drawbacks, we have described them in detail in a blog post. In short, it does not allow you to block everything you need to and blocks what you don't need to. For example, if you do not want to see ads provided by the Facebook advertising network (hundreds of applications are connected to this network), you will not be able to use Facebook either.

Adguard filters all network traffic. But it also can be used in DNS-blocker mode, an approach similar to AdAway’s. This is a super-economical mode of operation that does not require hardware resources.

PC and laptop software

We have already mentioned the limitations of ad blocking browser extensions. If you install a blocker as a standalone computer program, these restrictions would be irrelevant. Such a program performs system-wide ad blocking, filtering all traffic on the computer. The result is similar to a mobile blocker, although the implementation mechanism is slightly different. Of course, such a program is much more difficult to develop than browser extensions.

DNS filtering

DNS stands for “domain name system”. Therefore, anti-advertising DNS filtering works in a manner similar to editing the host's file described earlier, with the same drawbacks and limitations. Adguard does use this approach in its iOS app, as this platform gives fewer opportunities to work with web traffic. More information about the capabilities of Adguard DNS can be found in the Knowledge Base.

The best feature offered by this method is cross-platform functioning. This blocks ads on all devices connected to the network that works through the DNS, including the "Internet of things". You can not only block ads on Smart-TVs, refrigerators and other smart home devices but also filter outbound traffic, that is, limit marketing surveillance.

You can read more specifically about the peculiarities of filtering advertising in Adguard in our Knowledge Base. If you have any questions, please post them in the comments.

喜歡這篇文章嗎?
19,183 19183 使用者評論
極好的!

AdGuard for Windows

Windows 版 AdGuard 不只是廣告封鎖程式,它是集成所有讓您享受最佳網路體驗的主要功能的多用途工具。其可封鎖廣告和危險網站,加速網頁載入速度,並且保護兒童的線上安全。
透過下載該程式,您接受授權協定的條款
閱讀更多
19,183 19183 使用者評論
極好的!

AdGuard for Mac

Mac 版 AdGuard 是一款獨一無二的專為 MacOS 設計的廣告封鎖程式。除了保護使用者免受瀏覽器和應用程式裡惱人廣告的侵擾外,應用程式還能保護使用者免受追蹤、網路釣魚和詐騙。
透過下載該程式,您接受授權協定的條款
閱讀更多
19,183 19183 使用者評論
極好的!

AdGuard for Android

Android 版的 AdGuard 是一個用於安卓裝置的完美解決方案。與其他大多數廣告封鎖器不同,AdGuard 不需要 Root 權限,提供廣泛的應用程式管理選項。
透過下載該程式,您接受授權協定的條款
閱讀更多
19,183 19183 使用者評論
極好的!

AdGuard for iOS

用於 iPhone 和 iPad 的最佳 iOS 廣告封鎖程式。AdGuard 可以清除 Safari 中的各種廣告,保護個人隱私,並加快頁面載入速度。iOS 版 AdGuard 廣告封鎖技術確保最高質量的過濾,並讓使用者同時使用多個過濾器。
透過下載該程式,您接受授權協定的條款
閱讀更多
19,183 19183 使用者評論
極好的!

AdGuard 內容阻擋器

AdGuard 內容阻擋器將消除在支援內容阻擋器技術之行動瀏覽器中的各種各類廣告 — 即 Samsung 網際網路和 Yandex.Browser。雖然比 AdGuard for Android 更受限制,但它是免費的,易於安裝並仍提供高廣告封鎖品質。
透過下載該程式,您接受授權協定的條款
閱讀更多
19,183 19183 使用者評論
極好的!

AdGuard 瀏覽器擴充功能

AdGuard 是有效地封鎖於全部網頁上的所有類型廣告之最快的和最輕量的廣告封鎖擴充功能!為您使用的瀏覽器選擇 AdGuard,然後取得無廣告的、快速的和安全的瀏覽。
19,183 19183 使用者評論
極好的!

AdGuard 助理

AdGuard 桌面應用程式的配套瀏覽器擴充功能。它為瀏覽器提供了自訂的元件阻止的功能,將網站列入允許清單或傳送報告等功能。
19,183 19183 使用者評論
極好的!

AdGuard DNS

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

AdGuard Home

AdGuard Home 是一款用於封鎖廣告 & 追蹤之全網路範圍的軟體。在您設置它之後,它將涵蓋所有您的家用裝置,且為那您不需要任何的用戶端軟體。由於物聯網和連網裝置的興起,能夠控制您的整個網路變得越來越重要。
19,183 19183 使用者評論
極好的!

AdGuard Pro iOS 版

除了在 Safari 中之優秀的 iOS 廣告封鎖對普通版的用戶為已知的外,AdGuard Pro 提供很多功能。透過提供對自訂的 DNS 設定之存取,該應用程式允許您封鎖廣告、保護您的孩子免於線上成人內容並保護您個人的資料免於盜竊。
透過下載該程式,您接受授權協定的條款
閱讀更多
19,183 19183 使用者評論
極好的!

AdGuard for Safari

自 Apple 開始強迫每位人使用該新的軟體開發套件(SDK)以來,用於 Safari 的廣告封鎖延伸功能處境艱難。AdGuard 延伸功能可以將高優質的廣告封鎖帶回 Safari。
19,183 19183 使用者評論
極好的!

AdGuard Temp Mail

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

AdGuard Android TV 版

Android TV 版 AdGuard 是唯一一款能封鎖廣告、保護隱私並充當智慧電視防火墻的應用程式。取得網路威脅警告,使用安全 DNS,並受益於加密流量。有了安全性和零廣告的使用體驗,使用者就可以盡情享受最喜愛的節目了!
已開始下載 AdGuard 點擊箭頭所指示的檔案開始安裝 AdGuard。 選擇"開啟"並點擊"確定",然後等待該檔案被下載。在被打開的視窗中,拖曳 AdGuard 圖像到"應用程式"檔案夾中。感謝您選擇 AdGuard! 選擇"開啟"並點擊"確定",然後等待該檔案被下載。在被打開的視窗中,點擊"安裝"。感謝您選擇 AdGuard!
在行動裝置上安裝 AdGuard