Not sure if this is the right SE, feel free to migrate if necessary.

My question is simple: the only way for a web server to detect if you are adblocking is to see if the ads were actually served, since once they're client-side it's trivial to just not show that part of the html. Right?

I understand why adblocking software doesn't download the ads: it would be very wasteful. But what I don't get is, for sites like Forbes that force you to turn off your adblocker, why not just have a mode where you can download the ads anyway and just not show them? As opposed to having to turn off the adblocker.

If I download the ads but don't display them, is there any way the web server could detect I'm adblocking? Like with client-side JS or something? What are the theoretical limits and practical limits on adblocking?


Taken to the extremes it could deteriorate into an arms race which the client (person reading the site) could always win.

Yes the publisher can check that the reader is showing their ads, they can examine the DOM and return is the ad is visible.

Then the adblocker could modify this call to all ways return true to the publisher.

Then the publisher could require the client to return a hash of the content and the DOM model.

Then the adblocker could calculate this hash itself.

Then the publisher could do a advertising CAPTURE to ensure a human has read and understood the ad.

Then the adblocker could outsource solving of captures either to low paid human contractors or AI.

Etc etc.

As the adblocker is in control of the client it would be hard to defeat. Well before this level has been reached it will become uneconomic for one or both of the parties to continue.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.