Admob 20.4.0版本无法调用tagForChildDirectedTreatment()如何解决
问题原因
你使用的com.google.android.gms:play-services-ads:20.4.0版本属于AdMob SDK的较新版本,tagForChildDirectedTreatment()方法已经从AdRequest.Builder类中移除,相关的儿童导向配置、广告内容评级配置现在都需要通过全局的RequestConfiguration来设置。
解决方法
在加载广告之前(建议放在Application的onCreate方法,或者对应Activity加载广告的逻辑之前),先配置全局广告请求参数,修改后的完整代码如下:
// 先初始化MobileAds(如果还没做初始化的话) MobileAds.initialize(this) // 配置全局广告请求规则 val requestConfiguration = RequestConfiguration.Builder() // 设置为儿童导向应用,符合COPPA要求 .setTagForChildDirectedTreatment(RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE) // 设置广告内容最高评级为G级,替换原来手动加Bundle的配置 .setMaxAdContentRating(RequestConfiguration.MAX_AD_CONTENT_RATING_G) .build() MobileAds.setRequestConfiguration(requestConfiguration) // 构建广告请求,不需要再额外加Bundle或者儿童导向标记 val adRequest = AdRequest.Builder().build() // 加载激励广告逻辑保持不变 RewardedAd.load(this, Rewarded_AD_UNIT_ID, adRequest, object : RewardedAdLoadCallback() { override fun onAdLoaded(p0: RewardedAd) { super.onAdLoaded(p0) mRewardedAd = p0 } override fun onAdFailedToLoad(p0: LoadAdError) { super.onAdFailedToLoad(p0) mRewardedAd = null } })
补充说明
setTagForChildDirectedTreatment支持三种参数:
RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE:明确应用面向13岁以下儿童,符合COPPA要求RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE:明确应用不面向13岁以下儿童RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED:未明确指定,由Google根据应用内容自行判断
面向13岁以下用户的应用必须设置为TRUE,否则可能违反Google Play商店的相关政策。
内容的提问来源于stack exchange,提问作者keepupwiththetimes
相关产品推荐
相关产品推荐

