# Adblock Plus

Adblock Plus (ABP) is a free and open-source browser extension for content-filtering and ad blocking. It is developed by Eyeo GmbH, a German software company. The extension has been released for Mozilla Firefox (including mobile), Google Chrome, Internet Explorer, Microsoft Edge, Opera, Safari, Yandex Browser, and Android.
In 2011, Adblock Plus and Eyeo attracted considerable controversy over its "Acceptable Ads" program to "allow certain non-intrusive ads" (such as Google Ads) to be allowed under the extension's default settings. While participation in the whitelisting process was free for small websites, large advertising companies were required to pay a fee in order for their ads to be whitelisted.

## Background

The original version of Adblock (0.1) was written as a side project for Firefox by Danish software developer Henrik Aasted Sørensen, a university student at the time, in 2002. It hid image ads through user-defined filters from the page but did not prevent them from being downloaded. Sørensen maintained the open-source project until Adblock 0.3 after which the project changed hands. Since Adblock 0.3, Adblock no longer officially offers "stable releases" but instead offers "development builds" or "nightly builds"; Adblock 0.3 is the last official stable release of Adblock.
Starting with Adblock 0.4, in early 2003, the development of AdBlock was taken over by a developer with the pseudonym rue. Adblock 0.4 used XBL to hide the ads and with this objects like Flash or Java could also be blocked. As with prior versions, ads were still downloaded.
AdBlock 0.5, 2004, used content policies for ad blocking which prevented the ads from being downloaded instead of simply hiding them. Background images, scripts and stylesheets could be blocked through this approach as well. XBL support was dropped in this version in favor of content policies. Adblock 0.5 integrated several changes made in a fork of Adblock developed by Wladimir Palant.
Sometime after Adblock 0.5's release, the development of the project stalled. Development stagnated beginning in 2004 and entirely stopped in early 2005. Michael McDonald created a separate enhanced version of AdBlock called AdBlock Plus 0.5 to improve upon the original and add additional features. No update for the original AdBlock was issued even after Firefox 1.5's release in November 2005. An official update supporting 1.5 was released more than a month later. In the meantime, McDonald had released a compatible AdBlock Plus version for Firefox 1.5.
Palant later took over development of Adblock Plus from McDonald and rewrote the codebase, releasing Adblock Plus 0.6 in January 2006, thus making Adblock Plus a separate extension and not simply an enhanced version of Adblock.
Development of the original Adblock stopped with version 0.5 and the project was abandoned in late 2006.

## History and statistics

Michael McDonald created Adblock Plus 0.5, which improved on the original Adblock by incorporating the following features:
* whitelisting
* support for blocking background images
* subscription to filters with a fixed address and automatic updates
* the ability to hide HTML elements, allowing a greater range of images to be blocked
* the ability to hide ads on a per-site basis, instead of globally
* memory leak fixes
* improvements to the user interface
McDonald discontinued development and transferred the name to Wladimir Palant, who released Adblock Plus 0.6 with a rewritten codebase in January 2006. PC World chose Adblock Plus as one of the 100 best products of 2007, featuring in at 95. AdBlock Plus was initially written around Mozilla's extension API. The extension supported not just Firefox, but less popular applications like SeaMonkey, K-Meleon, Fennec, Prism, and even the Songbird media player because they each included Mozilla's Gecko rendering engine. Palant expressed reluctance to support popular but technologically unrelated browsers and stated, "I am not going to maintain two unrelated projects."
In 2010, AdBlock Plus acquired the existing AdThwart extension for Chrome. Palant used this as a base to build Adblock Plus for Google Chrome. It has been available since December 2010 and has over 10 million users. After Firefox and Microsoft Edge adopted Google's Web Extensions API, the Chrome version became the basis for those browsers as well. Ad Block Plus became the most popular extension for Firefox, with around 14 million users as of December 2017.
In 2011, Palant, Till Faida and Tim Schumacher incorporated Adblock Plus as Eyeo GmbH, stylized eyeo.
Adblock Plus was released as an app for Android devices in November 2012. On March 3, 2013, the Android app was removed from the Google Play Store along with similar ad-blocking apps. Some apps remain in the Play Store with the caveat that they require root access in order to function. Adblock Plus, while not in the Play Store, is still available on the app's website. Users can download the .Apk file directly and install it as a third-party app if they allow "Unknown Sources" in Android settings. The application page as of December 2017 features the Adblock Browser for Android instead of the original app.
Adblock Plus was made available for Internet Explorer in August 2013, Safari since January 2014, and Yandex Browser since December 2014.
An Adblock Plus browser beta version was made available in May 2015, called the "Adblock Browser". Adblock Browser 1.0 was released on September 7, 2015, based on Firefox for mobile.
Adblock Plus has created an independent board to review what is an acceptable ad and what is not.

## Operation

Like Mozilla's built-in image blocker, Adblock Plus blocks HTTP and HTTPS requests according to their source address and additional context information and can block iframes, scripts, and Flash. It also uses automatically generated user stylesheets to hide elements such as text ads on a page as they load instead of blocking them, known as element hiding.

### Android

On rooted devices, the Android app blocks ads on all web traffic including mobile networks. For non-rooted devices, ads are only blocked through a Wi-Fi connection and requires the user to set up a local proxy server for each network in order for the app to function. The app uses a local proxy server to intercept web traffic and remove ads before showing content to the user. Most of the content that users are trying to block will be removed, though some content is missed, and the app is not as reliable at blocking ads as the browser versions. The app can be configured to auto-start every time the device reboots, minimizing the action required by the user.

### Filters

Basic filter rules can include wildcards represented by asterisks (*). Sites and objects can be whitelisted with filters that start with two at signs (@@). Regular expressions delimited by slashes (/) can be used by advanced users. Adblock Plus also supports a more-sophisticated syntax that gives fine-grain control over filters. An example of the sophisticated filtering would be wikipedia.org##div#centralNotice, which will hide the centralNotice element used by Wikipedia to display donation requests. The first part of the filter is the domain name, followed by two pound signs, and a CSS selector. This type of filtering is called cosmetic filtering, as it hides parts of the website after it has loaded. Both uBlock Origin and AdGuard's browser extension and apps also support this type of filtering.

### Filter subscriptions

Users can add external filtersets. Adblock Plus includes the ability to use one or more external filter subscriptions that are automatically updated. Filterset.G is incompatible with this system (and Adblock Plus specifically recommends against using Filterset.G for other reasons as well), but other filtersets can be added by typing their addresses. A list of known Adblock Plus subscriptions is maintained on the Adblock Plus official website.
EasyList was the most popular Adblock Plus filter list as of August 2011, with over 12 million subscribers. Created by Rick Petnel, it became officially recommended by the Adblock Plus program, and filter lists for other languages were built on top of it. Petnel died in 2009 following which Palant placed a user named "Ares2" as the new maintainer. The filter lists EasyList and EasyPrivacy are both subscribed by default in uBlock Origin but not in Adblock Plus itself. Both of these filter lists will also be used by Google Chrome starting February 15, 2018, on sites not complying with the Better Ads Standards.
In May 2013, the former second most popular Adblock Plus filter list, Fanboy's List, was merged with EasyList.

### Legal challenges

In December 2014, it was reported that Zeit Online and Handelsblatt had brought suit against Eyeo GmbH in the Landgericht Hamburg [de]. In April 2015 the court rejected the suit. Axel Springer SE has filed a court order for the removal of the Adblock Plus post though there is a redacted version and people have posted videos and posts on how to get around the Axel Springer wall. However, in April 2018, Germany's Federal Constitutional Court found in favour of Eyeo and ruled that Adblock Plus did not violate any laws.
In August 2017, the Admiral advertising company sent a Digital Millennium Copyright Act (DMCA) takedown notice to EasyList to remove the domain functionalclam.com from the blacklist. Admiral argues that the domain is part of its access control technology of its advertising platform, and therefore the blacklisting is an attempt to circumvent a technical protection measure, which is forbidden under the DMCA section 1201.

## Detection

Some webmasters have used JavaScript to detect the effects of the popular Adblock Plus filters. This is done by generating a honeypot-like URL, verifying its delivery, and DOM verification after the web page is rendered by the web browser, to ensure the expected advertising elements are present. Detection is simplified since the extension is not yet capable of replacing content; Loopback proxies provide this additional functionality.
These methods do not detect the presence of the Adblock Plus extension directly, only the effects of the filters. They are vulnerable to continued filter updates, and whitelist-filtering web scripts with extensions such as NoScript.
An attempt was made to detect the plug-in itself, but that detection method was rendered unusable by the 0.7.5.2 update of Adblock Plus.
Google Chrome had a defect in Content Security Policy that allowed the detection of any installed extension, including Adblock Plus for Google Chrome. The solution for this issue arrived in Google Chrome 18, and required each developer to make changes to their extensions. Adblock Plus for Google Chrome fixed this in version 1.3.

## Security

Starting with Adblock Plus 3.2 for Chrome, Firefox and Opera, the Adblock Plus filter syntax allowed filter lists to execute arbitrary code in the context of certain kinds of web pages via the $rewrite filter option. This feature could be used by list maintainers to fix bugs in web pages caused by ad blocking or to circumvent ad blocker detection, but also could be abused by malicious filter rules. This issue was not unique to Adblock Plus and affected all extensions that offered such functionality. By contrast, uBlock Origin did not support this functionality and required all such scripts to pass a manual verification by the uBlock Origin maintainers. The issue was fixed in Adblock Plus 3.5.2 for Chrome, Firefox and Opera.

## Reception
### Ad filtering, ad whitelisting, and "acceptable ads"

The owners of some websites which use third-party hosted online advertising to fund the hosting of their websites have argued that the use of ad-blocking software such as Adblock Plus risks cutting off their revenue stream. While some websites such as The New York Times and The Daily Telegraph have successfully implemented subscription and membership-based paywall systems for revenue, many websites today rely on third-party hosted online advertising to function.
On December 5, 2011, Wladimir Palant announced that certain "acceptable" ads would be whitelisted in upcoming builds of the Adblock Plus software, with the option to remove whitelisted ads by using a custom setting in the software. According to Palant, only static advertisements with a maximum of one script will be permitted as "acceptable", with a preference towards text-only content. The announcement generated controversy both on Adblock Plus's website and on social media sites like Reddit.
Starting with version 2.0, Adblock Plus started allowing "acceptable ads" by default, with acceptable ad standards being set by The Acceptable Ads Committee. They charge large institutions fees to become whitelisted and marked as "acceptable", stating "[Adblock Plus] only charge large entities a license fee so that we can offer the same whitelisting services to everyone and maintain our resources to develop the best software for our users." on their about page.
In 2012, Adblock Plus's managing director Till Faida told the Swiss newspaper Thurgauer Zeitung that the "strategic partners" on Adblock Plus's whitelist would not be named, but that the partnership is part of the company's "Acceptable Ads" whitelist project. In February 2013, an anonymous source accused Palant of offering to add his site's advertisements to the whitelist in return for one-third of the advertisement revenue. In June 2013, blogger Sascha Pallenberg accused the developers of Adblock Plus of maintaining business connections to "strategic partners in the advertising industry", and called ABP a "mafia-like advertising network". He alleged that Adblock Plus whitelisted all ads coming from "friendly" sites and subsidiaries, and promoted their product using fake reviews and pornography. Faida responded to Pallenberg's accusations, stating that "a large part of the information concerning the collaboration with our partners is correct", but that the company did not see these industry connections as a conflict of interest. He said that the company is convinced that the "acceptable ads" business model will be successful and says that the whitelisting criteria are "completely transparent". He also stated that "We have an initiative called Acceptable Ads to support websites with unobtrusive ads. Every website can participate. The [Pallenberg] article on purpose just slanders our good name".
Attacks were made in 2016 against ad-blocking with paid whitelists—though Adblock Plus was not mentioned by name—by content providers who provide content free of charge to users, deriving revenue from advertisements, and by industry and government sources who criticise the "unsavoury" business model, which has been described as a "modern-day protection racket".
In May 2016, Adblock Plus's parent company Eyeo began a collaboration with the online donation service Flattr to create a service that would allow users to automatically donate money to online publishers based on their engagement. The service was conceived as a way for users to automatically support online publishers as an alternative to advertising; Eyeo would acquire Flattr outright the following year, seeking to expand upon this model as Flattr's main service. In September 2016, Eyeo announced that it would launch a "marketplace" for ads that meet its acceptability criteria.