Step one is you don't refuse files from the server, and try to answer as if you have them when asked in js. But the current actual methods and arms race is happening by comparing computed results, how your page is rendered according to your own browser when probed, vs how the detection code expects it rendered. Adblockers do things like lie, or inject things that can look close enough to ads that you pass the tests. You can see how detection works and try to sidestep what it does by looking at libraries like these https://github.com/sitexw/FuckAdBlock
This one in particular will probably just not run in uBlock out of the box so this one's pretty easy to sidestep. But you can stuff code like this obscured in your site and another piece of code that checks that it hasn't been removed. It's pretty difficult for website develops to win this fight, since ultimately they're letting us download and render their pages with fairly transparent technology.
Step one is you don't refuse files from the server, and try to answer as if you have them when asked in js. But the current actual methods and arms race is happening by comparing computed results, how your page is rendered according to your own browser when probed, vs how the detection code expects it rendered. Adblockers do things like lie, or inject things that can look close enough to ads that you pass the tests. You can see how detection works and try to sidestep what it does by looking at libraries like these https://github.com/sitexw/FuckAdBlock
This one in particular will probably just not run in uBlock out of the box so this one's pretty easy to sidestep. But you can stuff code like this obscured in your site and another piece of code that checks that it hasn't been removed. It's pretty difficult for website develops to win this fight, since ultimately they're letting us download and render their pages with fairly transparent technology.