In November of 2003 I began researching and developing methods to detect and block users who were blocking banner ads that are displayed on my website EnvironmentalChemistry.com. While I have been aware of and experimented with ad blocking techniques as far back as 1996, I never saw it as a mainstream threat as ad-blocking was not a feature provided by mainstream software vendors. Downloading, installing and configuring these early ad-blocking programs required a level of technical ability well beyond the average user.
In the fall of 2003 I started to realize that ad-blocking capabilities were no longer features provided by obscure or niche software programs, but was beginning to be rolled into mainstream applications like Symantec's Norton Internet Security and ZoneAlarm Pro. Furthermore, in some instances these programs were being installed on pre-built machines and ad-blocking was being turned on by default. As such, many users who were blocking ads were completely unaware that they were blocking ads.
To me, companies like Symantec delivering software that blocked ads by default under the guise of Internet security was not only disingenuous, but it represented a serious long term threat to advertising supported content sites being a viable business model. I felt that if I were to protect my long-term interests, I had to develop countermeasures that defended my interests.
My intention with this article isn't to provide the reader with the exact code necessary to detect and block users who are blocking ads. Rather my intention is to bring the whole ad-blocking issue into perspective and provide theories upon which web publishers can develop their own unique ad-blocking countermeasures. The reason I won't be giving out exact code is that in order for ad-blocking countermeasures to be effective, each site's code must be unique. If everyone were to use the same code to detect and block ad-blocking users, it would create too large of an incentive to expend considerable resources to defeat that one set of countermeasures. By everyone developing unique code sets that function differently, it creates too many targets for those who would like to circumvent ad-blocking countermeasures to reliably overcome.
Contrary to what some would like to believe, ad-blocking software and techniques have been around for almost as long as there have been banner ads. In fact, I remember a program called JunkBuster from back in the 1995-1996 timeframe. Back then ad-blocking was pretty much used exclusively by those with the skill sets required to deploy those early ad-blocking techniques. What really made ad-blocking easier was when the IAB standardized on specific dimensions for banner ads (e.g. 468x60), thus making it much easier to detect ads.
As with so many forms of advertising from early on, banner advertising become an ever escalating screaming match with advertisers assaulting users with ever more obnoxious ads that flashed, jumped, pulsed, etc. in an effort to get the attention of users. The more obnoxious ads became the more desperate users were to find ways to stop the assault on their eyes. Instead of recognizing how annoying their ads were becoming, some advertisers simply tried to find ever more aggressive ways to get around ad-blocking software and force users to pay attention to them.
Eventually this "arms" race lead to the current generation of ad-blocking programs and plug-ins that are highly effective, easy to deploy and easy to maintain. Today, if users really want to, they can surf the web virtually ad-free using any of dozens of ad-blocking solutions. These solutions include extensions for the Firefox web browser like AdBlock, easy to install software based proxies like AdSubract, and security applications like Symantec Norton Internet Security and ZoneAlarm Pro.