Being able to check if website adverts were blocked is of some importance. As browser plugins such as AdBlock Plus and the likes are getting better all the time, less and less of your adverts get served up. Hence, my simple solution that can try and recover some of the lost revenue.
Google adwords code can be wrapped into a plain DIV tag without a set width/height, letting any content injected into it by Google dictate its size. Through a basic Element prototype shortcut, called Element.adCheck(), you can check if the size has remained less than expected (aka, the AD got blocked).
Element.implement({ adCheck: function(options) { var options = $merge({ delay: 3000, message: "<center>It looks as if my Adwords did not display<br />I am just a programmer that needs to feed their hungry child and wife, please disable AdBlock or whatever clever advert blocking software you are running on my site.</center>", minHeight: 20, minWidth: 20 }, options); this.store("timer", (function() { var coords = this.getCoordinates(); if (coords.height.toInt() < options.minHeight || coords.width < options.minWidth) { this.set("html", options.message).fade(0, 1) } }).delay(options.delay, this)); return this; } }); // check it for a div with id="as": $("as").adCheck(); // check it for all divs with class 'myads' $$("div.myads").adCheck({message: 'please disable adblock'}); // use alternative adverts instead $("as").adCheck({message:"<a href='/signup.php'><img src='/img/signupbanner.gif'>"});
To run this, you need mootools 1.2+ core only. You could also extend the above code to .pass() a function callback so you can execute a proper ‘onAdvertFailed’ event.
Just a thought, but wouldn’t it be nicer if AdSense could serve adverts through JSONP that you can parse and embed clientside? It won’t be mainstream but it could really screw with current AdBlocking methods…
is this thing even working? i have 1 advert click this month! awesome.