如何在我们的应用中阻止广告拦截器?

时间:2013-08-26 14:13:04

标签: android admob adblock

如您所知,很多人都在使用自定义ROM。几乎所有自定义ROM都更改了阻止访问的主机文件(向广告发送请求127.0.0.1)到admob。

有什么方法可以克服它吗?也许不可能以编程方式更改主机文件,但也许我们可以在我们的应用程序中为admob定义ip,不能​​吗? 因为这样的问题你在做什么阻止adblocker?

如果应用检测到广告拦截器,我不希望用户阻止我的应用使用。

3 个答案:

答案 0 :(得分:1)

您可以使用AdListener来检测您的AdView是否收到广告。它没有长时间接收广告(例如连续几天)但是使用了应用程序,你可以开始阻止它。

AdView adView = new AdView(activity, AdSize.BANNER, "xxxxxxxxxx");
adView.setAdListener(new AdListener() {
    @Override public void onReceiveAd(Ad arg0) { }
    @Override public void onPresentScreen(Ad arg0) {  }
    @Override public void onLeaveApplication(Ad arg0) { }
    @Override public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
        // implement this method
    }
    @Override public void onDismissScreen(Ad arg0) { }
});

答案 1 :(得分:1)

我觉得你不必要地担心。少于1%的人使用自定义roms或Ad Blockers(我在关注此事后自行编译的统计数据)。你是否真的想要为所有可能性的1%编码,或者你想在更多功能上投入一些时间?

答案 2 :(得分:0)

如果您使用标准系统调用将主机解析为IP,则无法阻止用户控制其DNS配置解析的方式。我没有在Android上做过这个,但是你可以推出自己的DNS解析功能,自己输出到谷歌的8.8.8.8这样的DNS服务器,并为你解析一个IP。

正如您所提到的,另一种选择是简单地使用您拥有的IP地址,然后重定向到您想要的任何地方。

或者最好的是,让用户控制他们使用DNS做什么?这真的是一个很大的问题吗?