If you treat it like proof-of-work system it's rather depending on c): Making sure that search engines can still index your content. Because if that is not a requirement it's actually rather trivial to defeat any ad blocker: pose a computational problem that takes x seconds to compute on average hardware. Show ad while computation is going on. Only serve content once client sends back the answer. Sure, blockers can still block the ad itself, but it will just make the user stare at a blank screen.. or more likely loose him forever ;).