I wonder if eventually ad companies will just host the content themselves. Or at least route it through their servers. The ads then get served through the same domain and can't be blocked that way.
But that only defeats simple adblocks that blacklist domains. It's theoretically possible to make an adblock that detects ads through machine learning and removes them. Doesn't matter where they are hosted.
But advertisers can run scripts to detect modifying the web page and stop it. So adblock would have to move to having a headless browser that renders the page, and then copies it and removes the ads.
Then the advertisers would have to try to trick the machine learning itself. Adversarial machine learning is a thing, with neural networks trained to fool other neural networks. And images that are highly optimized to exploit subtle defects in other neural networks.
As ML ad detection improves, the only way for ads to get past it will be to make ads that look more and more like real content, even to the human eye. Perhaps in the limit, ads and content will become completely indistinguishable.