Most ads use the same third party DNS services which makes blocking even easier.
Most ads use the same third party DNS services which makes blocking even easier.
Apps can be written to download and cache ads periodically as part of their "update" process, and display these ads even when you don't have an internet connection. If they are not able to update these ads for some time (say 60 days), they can then refuse to run: "the application has expired and needs an update; please connect to the Internet". New ads are fetched when the user connects and lets the app update.
If you don't put in "anti-ad-circumvention" methods, then the ads will fall victim to some simple blanket blocking scheme that users set up before they even installed your app, not targetting your app specifically.
Analogy: a website with great content and very unobtrusive ads has them filtered by AdBlock anyway.
Apple denies the user reasonable control of the device they purchased. (Denying access to the HOSTS file is unreasonble in my opinion.)
But Apple does not (yet) exercise control over the network(s) that the user has joined.
As long as the user can still control at least some aspects of her own network (yes, she still can), then the user can block ads.
In my case, I use DNS to block ads. It is remarkably effective. But there are certainly other ways to do it.