Facebook is at war with users who block ads, and battle proceeds apace. Just two days after boasting that it could serve ads that were undetectable by adblockers, Facebook got a rude awakening in the form of updates to AdBlock that detected them just fine. But it isn't giving up, and has already adjusted its code to once again circumvent the blocks.

A source close to Facebook tells me that today, possibly within hours, the company will push an update to its site's code that will nullify Adblock Plus' workaround. Apparently it took two days for Adblock Plus to come up with the workaround, and only a fraction of that time for Facebook to disable it. Update: A source says Facebook is now rolling out the code update that will disable Adblock Plus' workaround. It should reach all users soon.] Still, the cat-and-mouse game is sure to rage on.

AdBlock is at a disadvantage due to Facebook's engineering resources and ability to update its site on-the-fly. That said, Facebook loses more money from each lost ad than AdBlock pays to remove it, which creates an asymmetrical fight. AdBlock is, of course, not a noble venture—it dominates the ad blocking market and whitelists ads from publishers that pay it protection money.

Adblockers generally distinguish ads from content by looking at how web pages are structured and where they come from. To those unfamiliar with HTML, web pages are a nest of boxes, each tagged as a <p>aragraph or a <div>ision or an <article> or what-have-you, with each identified or classified so that other code can decide what it looks like, where it goes, or what content gets pasted into it as the page renders.

If an ad blocker spots a suspicious-looking box (say, <div id="ads">) that just happens to be populated with code from a different domain to the website, (say, Google's ad servers) the chances are pretty good that its an ad! It gets blocked.

Facebook's strategy appears to be to mix the ad and content together, making the identifiers as obscure as possible, sending them from the same servers, in the same data response, and so on. In short, to make advertising and content as structurally indistinguishable as it can.

It's like native advertising—ads designed to look like content—but for machine vision instead of humans.

If Facebook thought that cracking this nut was "game over" for ad blocking, though, it was in for a surprise. It looks like AdBlock was able to score a shock (if brief) reversal because it did something Facebook didn't expect: it didn't give much of a shit about blocking user content along with ads.

Facebook is accusing it of ensnaring legitimate content from friends and Pages … "We're disappointed that ad blocking companies are punishing people on Facebook as these new attempts don't just block ads but also posts from friends and Pages. This isn't a good experience for people and we plan to address the issue. Ad blockers are a blunt instrument, which is why we've instead focused on building tools like ad preferences to put control in people's hands."

If Facebook prevails in its quest to make ads and content technically indistinguishable to machines, tomorrow's ad blockers will nail content directly. This will be fun for a while, and then it will be unpleasant.

If code can't tell ads from nads, the obvious move is more sophisticated and elaborate versions of another common tool in the user's arsenal: keyword blocking.

This is often used to censor naughty or triggering words, but can just as easily take aim at brands and products.

Right now, keyword filters are already widely available (including in some ad blockers) but are rudimentary and mostly for one-off things of a highly unpleasant nature. For example, here's a plugin to remove all mention of Trump from the web.

What's not been perfected so far is a killer brand-blocking app: something that focuses first and foremost on the semantics of advertising, aggregating many well-known brands and products to be broadly scrubbed, contextually understanding how keywords fit within page layouts, and efficiently hiding the "containers" from view with a seamless UI.

This approach could empower users in other ways—for example, blocking abuse. And the specifics involved ("Don't show me clothing brands" or "don't show me Coca-Cola") would be more human than the technical knowledge about web structure one must at least be familiar with to significantly customize most ad blockers.

I'm not saying this is doomed to be a good idea, though! If online services successfully make ads and content indistinguishable to attempts to block them, content simply becomes the only target to work on.

A blunter tool than ad blocking as it mostly works now (if you let it block ?????, you'd never see your friends talking about ?????), this has far greater potential for censorship and other unpleasantness, once a successful provider ends up in a middle-man position akin to the one Ad Block currently has.

Imagine how easy it would be for Ad Block 2020 to influence an election if it had evolved to understand the political meaning of any given block of content—having long ago established the legitimacy of this approach by backing user-end controls in Facebook's war on them.

The state finds its own uses for things, too.

Facebook's move to make adblocking impossible isn't just a fuck you to Ad Block and its users; it's a dangerous investment in deception and obfuscation.