The logical end-game is that FB writes their own rendering engine in javascript and targets a single canvas element, handling all the interaction events themselves. In fact, I think it can go significantly further than that. Ad blockers will need to get much fancier to deal with that kind of weaponized ad delivery.
But also, adblockers will keep up. If they have to use canned deep-learning neural nets to catch and crush advertising based on how it looks rendered, they will.
Ultimately, there isn't a good way to dictate what a user does when you're in a sandbox.
If there was a viable path, they would have already done it. I think Facebook has enough engineers there where they know going down some obfuscation path is futile.
FB is a too simple target for ad-blocking so FB should just admit defeat and sell the info for use in advertising elsewhere. (I have no idea of whether it's economically comparable as a business model compared to in-FB ads though of course).
In other words, they make a ton of money selling ads on their own properties. Their publisher products (Adsense, DFA, Audience Network, Audience Platform) extend their reach to third parties certainly, but AFAIK each of them still make more money from their own inventory.
Run the page in a sandbox, then classify the pixels as ad/non-ad with a neural net and only present the non-ads to the eyes of the user. It would also be possible to reflow the page to fit to a different screen size if the words are clearly identified by their containing rectangles. User interactions would be sent back and forth to the sandbox.
Of course, best would be to drop FB altogether. Being a member on FB, even an ad-blocking one, creates an incentive for other users to remain on FB as well.
There's a separate issue that as they try harder to block ads they will also make it less clear what's an ad. For example many ad blockers don't work on google search results because they're fed back with the result content, but it also becomes less and less obvious what's an ad and what's a search result on google.
Those add css properties to page elements that make the element disappear. Here is an example for advanced cosmetic filter options: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#...
edit: nvm my amazon comment. I spent the last hour vaguely understanding xpath to create a filter for (German) Amazon sponsored search results.
amazon.de##:xpath(//*[@id="s-results-list-atf"]/li/div[1]/div[1]/div[1]/div[2]/h5[text()="Gesponsert"]/../../../../..)Absolute security is impossible but that doesn't keep it from being an arms race that has some sort of equilibrium. Ad blocking has the same qualities.