logoalt Hacker News

kstrausertoday at 5:16 AM0 repliesview on HN

> Is buying milk at your local supermarket a Soviet-style take-it-or-leave-it scenario?

No. You can ask. They'll say no, almost surely, unless you're talking to the manager about something that's about to expire and then anything goes. But you can ask. Your idealized scenario is where the initial, and only, offer is "see this with ads or don't see it" with no room for negotiation.

> Are you indeed claiming that today's ad blockers operate by explicitly rejecting a request sent from the main site as part of some standard ad negotiation protocol?

As far as it's possible to express this arrangement in HTML, yes, of course. The page gives your client a document describing which resources it may wish to fetch, among other things. It's not expected that you'll fetch all of them. You may already have the cached data. A resource may be of a type your client doesn't know how to render. It may be in a tag your client doesn't know how to process. It may include executable code that your client might be configured to execute or not to execute. It may have several media types for scenarios that don't apply to you, such as for printing or working with a screen reader for people with visual impairments, and those media types may refer to resources that your client won't fetch because they're not relevant to you. 100% of those decisions can be made by your client. It's not obligated to execute your JavaScript, even if it has Bitcoin mining code and you lose out on the would-be cryptocurrency that my browser chooses not to mine for you. It's not obligated to use your fonts, or figure out how to display your odd graphics format, or render your PDF, or load your Java applet, etc.

And thus with ads. Your web page says "here's an image tag for you to display an ad", or more likely, "here's a ball of malware for you to execute that also displays an ad". There's no legal or moral or technical scenario where my client is obligated to choose to display or execute it, simply because your site told me how to do it if I chose to participate.