What's so special about AdGuard
What's the difference between AdGuard and other ad blockers? Do you really need AdGuard if you have uBlock or Adblock Plus? If I had a dollar for every time I got asked this question, we'd probably make our product free. I'd like to tell you the story from the very beginning. It will help you understand not only the difference, but also how and why the key decisions about AdGuard's development were made.
Back in history
A long time ago, when we first started the development of the first version of AdGuard, the situation with ad blockers was significantly different from the one of today. There wasn't much of a choice, the advertising wasn't so frighteningly scary and big companies hadn't realized yet how precious users' data was.
But even then a trend appeared that remains relevant up to this day. The overwhelming majority of ad blockers are browser extensions. There are many explanations for this, but the most important are the following:
- Browser extensions are relatively easy to develop. First blockers were single-developer indie projects. Also, browser extensions can develop very dynamically because it takes little time to refine new functions and fix defects.
- Extensions are free. In fact, this point partly derives from the first one and the importance of this is difficult to overestimate. For example, the first known adblocker was "Ad Muncher", running on a network level and not dependent on a specific browser. But it quickly dropped in popularity compared to its free analog Adblock Plus for the Firefox browser.
You can learn more about the history of ad blocking in our article series.
Were we thinking about it when we started? Frankly speaking, no. We always had and still have the viewpoint of engineers so we just wanted to solve complex problems that cover different areas. The creation of an ad blocker that works at the network level and is not limited by browser functionality seemed as an interesting and challenging task. So we made a decision that has shaped the future development of AdGuard.
What is about this "network level"?
"Network level" means that all internet connections go through AdGuard. In my opinion, it's crucial for an ad blocker and the need for such level of control grows every year. Each application aspires to gather maximum information about the user, and you can control these attempts only by going beyond the browser.
Historically, two types of programs have always worked at this level. First of all, those are antiviruses, which need to scan downloaded files in order to prevent infection as early as possible. And secondly, malicious programs that monitor the actions of users, collect information about them, and influence their decisions. Ad blockers have become the third type of programs that have to work at the network level and block attempts of tracking.
So how do browser extensions work?
There are many blockers implemented as browser extensions. Ghostery, Adblock Plus, uBlock or even our own browser extension. They all work using the same approach and rely on the capabilities provided by browsers.
Advantages of browser extensions:
- The main advantage is the simplicity of development and support. The browser does a lot on its own and the developer does not need to think about network protocols, encryption, installation, updates and much more.
- The extension is "inside" the browser and can access its internal structures (for example, tabs). This one is as important as the first - controlling internal browser structures is crucial for some of the ad blockers tasks.
Disadvantages of browser extensions:
- Browser extensions don't control some protocols. For example, the recent story with QUIC protocol showed it. Also, they don't control WebRTC connections and this flaw is often exploited to circumvent ad blockers.
- Control. Browser extensions do not have access to requests of other browser extensions, and to privileged connections of the browser itself. So, they just do not see many of their own browser's requests (examples: OCSP, Google Safe Browsing). They also don't see a part of the requests sent by other extensions. In the light of the many problems associated with malicious browser extensions (1, 2) it is regrettable.
How does AdGuard work?
And now let's have a look at the technical side of how AdGuard works. The following is true for Windows, Mac, and Android, and only partially for iOS.
Note 1: Note on the diagram: in Android, the local VPN module executes the role of the network driver.
Note 2: AdGuard Pro for iOS allows you to monitor your device's network connections at the level of DNS queries. It's better than nothing, but we still have a lot to do to bring it to the level of the other platforms.
One of the core parts of AdGuard is its filtering engine which provides you with a high level of control over what your apps or browsers load from the internet. The filtering engine is basically an interpreter of a set of filtering rules. In AdGuard, you can use any of the available filters or you can learn the rules syntax and create your own rules.
The main advantages of AdGuard's approach are independence and full control over browsers and applications. The browser can not deny you the access to the connection, and AdGuard can act as a full-fledged firewall. I consider these very important features, especially in our time, when every mobile application (and even desktop ones, but they aren't so evident) monitors your activity and leaks your data.
The main disadvantage is the difficulty in implementation. In fact, we need to implement many things at the same level as they are in browsers. For instance, HTTPS filtering must ensure the level of security for connections that won't be worse than done by the browser itself, and the filtering engine should be able to disassemble and modify the code of any page. The increased complexity leads to slower development and more bugs (we will try to mitigate this problem with the introduction of CoreLibs).
So, in the end, is AdGuard better than browser extensions? Honestly, I did not set myself the goal of convincing you of something. The purpose of this article was to make the difference between AdGuard and other ad blockers clearer to the reader, to show the advantages and disadvantages of both approaches, and to explain why we do what we do. The choice is up to you.