Android Studio集成AdMob激励广告修改max_ad_content_rating后加载失败
问题修复步骤
- 检查广告预加载方法一致性
确认你onCreate中调用的olusturRewardedReklam方法实现和贴出的existRewardedReklam加载逻辑一致,避免方法名写错导致启动时没有预加载广告。 - 同步客户端与控制台的广告分级配置
你在控制台将max_ad_content_rating设置为G级后,需要在广告请求构造时同步添加对应参数,避免两端配置不一致导致请求被拦截,修改existRewardedReklam方法中的AdRequest构造逻辑:
val adRequest = AdRequest.Builder() .setMaxAdContentRating(MaxAdContentRating.G) // 添加这行,和控制台配置对齐 .build()
- 修正广告回调的设置顺序
你当前代码中先调用mRewardedAd?.show()再设置fullScreenContentCallback,会导致部分回调事件丢失,调整顺序如下:
override fun showRewardedReklam(callbackMY: CallbackMY){ if(isOnlinePing()==true){ runOnUiThread { if (mRewardedAd != null) { // 先设置全屏回调,再调用show mRewardedAd?.fullScreenContentCallback = object : FullScreenContentCallback() { override fun onAdShowedFullScreenContent() { callbackMY.rewardedReklamSonuclari("reklam basladi") } override fun onAdFailedToShowFullScreenContent(adError: AdError?) { callbackMY.rewardedReklamSonuclari("reklam baslamadi") // 展示失败后重新加载广告 existRewardedReklam() } override fun onAdDismissedFullScreenContent() { callbackMY.rewardedReklamSonuclari("reklam izlemesi bitti") // 广告关闭后重新预加载 existRewardedReklam() } } mRewardedAd!!.show(this, object : OnUserEarnedRewardListener { override fun onUserEarnedReward(p0: RewardItem) { // 奖励到账逻辑 } }) } else { existRewardedReklam() // 可在这里加提示,告知用户当前无广告,稍后再试 } } } }
- 修复Cookie策略报错
日志中的Cookie警告是由于高版本Android默认禁止非HTTPS域名设置安全Cookie导致,做以下配置即可:- 升级AdMob SDK到最新正式版本,旧版本SDK存在广告请求误走HTTP的bug
- 若仍存在报错,可在
AndroidManifest.xml的application标签下临时添加配置排查问题:
<application android:usesCleartextTraffic="true" ...其余配置保持不变> - 排除广告填充问题
修改G级广告分级后,对应分级的广告填充量会有所降低,测试时优先使用AdMob官方提供的测试激励广告ID,确认代码逻辑正常后再切换回正式ID。 - 确认控制台配置生效
AdMob控制台的分级配置修改最长需要4小时生效,修改后可间隔一段时间再测试。
内容的提问来源于stack exchange,提问作者keepupwiththetimes
相关产品推荐
相关产品推荐

