The next step would be to do render the whole page including ads directly into a canvas/opengl element using some heavily obfuscated wasm binary in order to circumvent the DOM and any DOM/JS-based ad blocker.
Data can easily be embedded either as inline data URI or as JS arrays. You can have static pages containing many MB of embedded data. If the adds used SVG they might not even be very large, bandwidth wise.
Would be great if this would be an option, especially with the GDPR coming. But for small to medium sized publishers there are no ads you could host your own.
This is simply not true. i spoke two years ago with the CEO of a small publisher company (~3 employees). This company was focused on mobility, from train to skateboard, with cars being obviously the main focus. Affiliated links for small stuff like electric monocycles and/or sponsored tests for cars was enough to pay himself, his author, IT guy and tester.
It also requires you to self-host an ad server (and most open source ad servers are terrible) and it requires the advertiser to completely trust your numbers since they'll have no way to verify how many impressions you served. That's tough right now even for people who sell ads directly.