安卓WebView应用如何限制返回键触发插屏广告的展示频次
安卓WebView返回键插屏广告按频次展示解决方案
实现思路
核心是在Activity中新增返回操作计数变量,每次触发返回逻辑时先累计计数,计数达到预先设定的阈值时再展示插屏广告,未达阈值则直接执行原有返回逻辑,既避免每次返回都弹广告的问题,也能控制广告展示频次。
代码修改步骤
你可以直接在你的MainActivity.java中按以下步骤修改:
- 先在Activity的全局成员变量区新增两个配置变量
// 自定义广告展示阈值,示例为每3次返回操作展示1次广告,可按需调整数值 private static final int AD_SHOW_THRESHOLD = 3; // 记录返回操作的累计次数 private int backPressCount = 0;
- 修改
onBackPressed返回键逻辑,替换你原有调整后的返回代码即可
@Override public void onBackPressed() { // 优先处理WebView网页层级的返回,若不需要统计网页内返回次数可保留此逻辑 if (webView.canGoBack()) { webView.goBack(); // 如果需要把网页内返回也计入统计,可以把下一行的backPressCount++移到这里 return; } // 累计返回次数 backPressCount++; if (backPressCount >= AD_SHOW_THRESHOLD) { // 这里放置你原有项目的插屏广告展示代码 if (interstitialAd != null && interstitialAd.isLoaded()) { interstitialAd.show(); // 展示广告后重置计数 backPressCount = 0; } else { // 广告加载失败兜底,直接执行返回逻辑 super.onBackPressed(); } } else { // 未达展示阈值,直接执行返回逻辑 super.onBackPressed(); } }
- 补充广告关闭回调逻辑,避免用户关闭广告后无后续响应
// 你项目中原有的插屏广告关闭监听回调 @Override public void onInterstitialAdDismissed() { // 广告关闭后执行原有返回操作 super.onBackPressed(); }
注意事项
- 阈值
AD_SHOW_THRESHOLD可根据业务需求调整,注意不要设置过低违反Google Play广告政策 - 必须保留广告加载失败的兜底逻辑,避免广告没加载成功时卡住用户的返回操作
- 如果需要区分不同页面的广告展示规则,可以新增变量判断当前WebView加载的URL,对应调整阈值即可
内容的提问来源于stack exchange,提问作者Deep
相关产品推荐
相关产品推荐

