Ad filtering or
ad blocking is removing or altering
advertising content in a
Web page. Advertising can exist in a variety of forms including
pictures,
animations, text, or
pop-up windows. More advanced filters allow fine-grained control of
advertisements through features such as
blacklists,
whitelists, and
regular expression filters. Certain security features also have the effect of disabling some ads.
The immediate benefits include quicker loading and cleaner looking Web pages free from advertisements, and lower resource waste (bandwidth, CPU, memory, etc.).
Almost all modern web browsers include a pop-up blocker. Opera and Konqueror also include content filtering, which prevents external files such as images or JavaScript files from loading. Content filtering can be added to Mozilla Firefox and related browsers with Adblock Plus, and a number of sources provide regularly updated filter lists. For Internet Explorer there are several add-ons available like Simple Adblock, IE7Pro, Adblock Pro and Quero that also allows users to temporarily unblock blocked content. For Chrome, that have extensions available since v2.0, there are AdSweep and FlashBlock extensions available. Another method for filtering advertisements uses CSS rules to hide specific HTML and XHTML elements.
A number of external applications offer ad filtering as a primary or additional feature. A traditional solution is to customize an HTTP proxy (or web proxy) to filter content. These programs work by caching and filtering content before it is displayed in a user's browser. This provides an opportunity to remove not only ads but also content which may be offensive, inappropriate, or simply junk. Popular proxy software which blocks content effectively include Privoxy, Squid, Proximodo, Adextinguisher, Ad Muncher, Death 2 Ads, Guidescope and Proxomitron. The main advantage of the method is freedom from implementation limitations (browser, working techniques) and centralization of control (the proxy can be used by many users). The major drawback is that the proxy sees only raw content and thus it's difficult to handle JavaScript-generated content.