如何根据UMP用户同意状态配置AdMob个性化/非个性化广告
不需要额外在应用内新增按钮让用户选择广告类型,UMP SDK已经内置了用户同意选择的获取能力,你之前仅调用了判断同意流程是否完成的接口,遗漏了获取具体选择结果的API。
具体实现逻辑
优先推荐使用UMP的自动适配能力
按照官方集成要求完成UMP同意流程后再初始化Google Mobile Ads SDK,SDK会自动读取用户的同意状态,自动调整返回的广告类型,无需你手动配置npa参数,也不需要额外获取用户的选择结果。如果你确实需要手动控制广告类型,可通过以下方式获取用户选择:
UMP符合IAB TCF规范,用户的同意结果会存储在应用本地的SharedPreferences中,你可以读取对应字段判断用户是否同意个性化广告:
- TCF规范中,个性化广告对应目的ID为3,你可以调用
ConsentInformation.getInstance(context).isPurposeConsentGiven(3)获取该目的的同意状态,返回false则代表用户不同意个性化广告,需要配置npa=1参数。
手动配置广告请求的示例代码如下:
Bundle extras = new Bundle(); // 用户不同意个性化广告时传入npa=1 if (!ConsentInformation.getInstance(context).isPurposeConsentGiven(3)) { extras.putString("npa", "1"); } AdRequest request = new AdRequest.Builder() .addNetworkExtrasBundle(AdMobAdapter.class, extras) .build();
内容的提问来源于stack exchange,提问作者L3n95
相关产品推荐
相关产品推荐

