'Be alerted when an Ad-Blocker blocks ads

I have my android app published in Google Play just like many of you. I know that many users use an Ad blocker to prevent my AdMob to load an interstitial ad and display it. Since Ads are the reason for me for staying hours and hours in front of the computer coding my app, I don't think it is fair for my users to avoid them. So, is there anywhere I can detect that my ads are being blocked (being a 100%, it is dangerous a false positive)? Is there anywhere a list of package names of ad.blocker apps, so if my app detects one of them, then stop working showing a message like "total ad-blocker is installed. This app will not run" or similar. Do you think this is possible or is it a lost war?



Solution 1:[1]

Addressing the "Do you think this is possible or is it a lost war?" part of the question:

Even if it is possible to detect ad-blockers, and take "evasive action" in their presence, it may not make the most sense to do this.

Assuming that revenue from simply displaying ads is far less than when they are clicked-on, then refusing to run when either an ad-blocker is present, or (preferably) when ads are actually being blocked seems unlikely to make a big difference to revenue: someone who has gone to the trouble of blocking ads faced with this refusal-to-run is likely to either:

  • Uninstall the app and choose an alternative (recouped revenue: £0.00)

  • Grudgingly disable the ad-blocker, but will never click on an ad (recouped revenue: minimal).

Instead, it may be better to focus on other ways of monetising your app:

  • In-app purchases. While there are many games that abuse this — deliberately engineering a "must move forward" mentality coupled with game-play that makes progress without purchases almost impossible — I suspect there's opportunity for "fair" revenue when done judiciously.

  • Ad-free version. Offer a free, ad-sponsored version and a paid-for, ad-free version. If people like the app enough, some will pay to not see adds (and, as noted above, you probably wouldn't get revenue from those that wouldn't anyway).

  • Premium version. Offer a free "trial" version, with some features absent or limited, and a paid-for full/premium version with all features enabled.

Solution 2:[2]

You can set a listener on AdView objects that allows you to detect, among other things, when an advert fails to load. A bit of coding on your part could detect if an advert hasn't been loaded in the last 10 minutes (for example) and disable some application functionality or terminate the app entirely. This would address the issue of AdBlocker, turning off WiFi/Mobile Data and also network level blockers.

On the other hand, you have to decide whether it's worth denying users with no network connectivity the use of your app. I guess you could also display a friendly "reminder" to the user or something along those lines. Regardless, it's an option

Solution 3:[3]

I try to solve this by pinging admob if the device is connected to the network.

static boolean adblockcheck(Context con, @SuppressWarnings("SameParameterValue") String link) {
    ConnectivityManager connMgr = (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = Objects.requireNonNull(connMgr).getActiveNetworkInfo();
    if(networkInfo != null && networkInfo.isConnected()){
        try {
            final String command = "ping -c 1 "+ link;
            //admob.com ping success, return true
            return Runtime.getRuntime().exec(command).waitFor() == 0;
        } catch (InterruptedException | IOException e) {
            e.printStackTrace();
            // admob.com ping error, return false
            return false;
        }
    } else {
        //No network connection? return true
        return true;
    }
}

Use of

if(!adblockcheck(this,"admob.com")){
        // do something
    }

Maybe it helps

Solution 4:[4]

This is very logical. For Admob, if the ad has not been loaded or an error has occurred, there is a separate code area and the appropriate blocking code can be added there.

Limited access can be given to users who want to use it without ads. (recommended) Or Shutdown with an alert dialog (as appropriate) Don't worry about losing users, no bad comments either.

Bad comments are comments that can be used in your favor and ultimately beneficial. Your audience does not decrease, on the contrary, the user adopts the advertising application in the long run.

BECAUSE what you offer is not available elsewhere. Short-term loss turns into gain.

Ad blocking is natural. But the more natural thing is to block those who block your advertising, income and life.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 TripeHound
Solution 2 HumanBean
Solution 3 Mehmet Ibrahim
Solution 4 serif