Initialize
0. GDPR (General Data Protection Regulation)
GDPR是欧盟(以下简称“EU”)的个人信息保护法规,服务提供者在收集和使用欧盟用户的个人信息或等同信息时,必须确认用户是否同意。这是为遵守GDPR规定并使广告网络按规定运行所需的程序。
1. Initialize & GDPR Content UI
初始化时提供可处理并获取欧盟用户GDPR同意的相关功能。在 Main Activity 的 onCreate中,在请求与广告相关的代码之前调用初始化函数。
ADX SDK 中包含了可向用户获取 GDPR 同意的功能。
2024年1月16日起,依据 IAB 欧洲的认证以及平台运营商的 认证的同意平台(CMP)来处理GDPR同意管理,, 使用 AdMob UMP(用户消息平台)来处理 GDPR 同意。
如果您在欧洲经济区(European Economic Area)提供应用服务,或计划提供服务, 本文件的 UMP(User Messaging Platform) 部分按照说明进行设置。
"<ADX_APP_ID>"中使用 ADX 下发的 ADX App ID。SDK 初始化请在应用运行时只调用一次,并且 广告请求必须在初始化完成后进行。
onCompleted被调用后,才应该请求广告。
GdprType 请从下列项中选择并输入。
GDPR 类型
说明
POPUP_LOCATION
根据地区弹出同意提示(EU地区)
POPUP_DEBUG
不论地区均弹出同意提示以供测试(DEBUG)
DIRECT_NOT_REQUIRED
无需同意的地区(EU 以外地区)
DIRECT_DENIED
用户拒绝个人信息的使用与收集
DIRECT_CONFIRM
用户同意个人信息的使用与收集
Case 1. 向 EEA 用户提供 GDPR 同意界面
为欧洲经济区(European Economic Area)用户提供可选择是否同意的同意界面。
是否允许向欧洲经济区(European Economic Area)的用户征求同意的功能由 AdMob UMP(用户消息平台)处理。
在
ADXConfiguration中将 GdprType 设置为POPUP_LOCATION时,根据用户登陆的筛选后,通过 Consent UI向EU用户获取GDPR同意与否。将 GdprType 设置为
POPUP_DEBUG时,不论从任何国家登入,均可查看 Consent UI。
(注意事项) POPUP_LOCATION 或POPUP_DEBUG 的情况下, initialize 的 Context 参数需要传入 Activity 。否则可能无法正常初始化。
// 与 ADX 初始化相关的设置
ADXConfiguration adxConfiguration = new ADXConfiguration.Builder()
.setAppId("<ADX_APP_ID>")
.setGdprType(ADXConfiguration.GdprType.POPUP_LOCATION)
.setTestDeviceIds(Arrays.asList("")) // UMP Test Device
.build();
ADXSdk.getInstance().initialize((Activity) this, adxConfiguration, new ADXSdk.OnInitializedListener() {
@Override
public void onCompleted(boolean result, ADXGDPR.ADXConsentState adxConsentState) {
// 广告初始化完成
}
});// 与 ADX 初始化相关的设置
val adxConfiguration = ADXConfiguration.Builder()
.setAppId("<ADX_APP_ID>")
.setGdprType(ADXConfiguration.GdprType.POPUP_LOCATION)
.setTestDeviceIds(mutableListOf("")) // UMP Test Device
.build()
ADXSdk.getInstance().initialize(this as Activity, adxConfiguration) { result, adxConsentState ->
// 广告初始化完成
}
Case 2. 直接设置同意状态
如果不存在欧洲经济区(European Economic Area)用户,或应用内并未收集 GDPR 所定义的等同于个人信息的信息, 则需要像在韩国进行推送通知同意、隐私政策同意等一样,单独进行并处理直接同意流程。请单独进行处理。
若为非 EU 地区且无需同意,请再
ADXConfiguration中的 GdprType 设置为DIRECT_NOT_REQUIRED。若在 EU 地区直接进行同意流程,请根据同意流程结果设置 GdprType。
用户已同意个人信息的使用与收集状态:
DIRECT_CONFIRM用户拒绝个人信息的使用与收集状态:
DIRECT_DENIED
// 与 ADX 初始化相关的设置
ADXConfiguration adxConfiguration = new ADXConfiguration.Builder()
.setAppId("<ADX_APP_ID>")
.setGdprType(ADXConfiguration.GdprType.DIRECT_CONFIRM)
.build();
ADXSdk.getInstance().initialize((Activity) this, adxConfiguration, new ADXSdk.OnInitializedListener() {
@Override
public void onCompleted(boolean result, ADXGDPR.ADXConsentState adxConsentState) {
// 广告初始化完成
}
});// 与 ADX 初始化相关的设置
val adxConfiguration = ADXConfiguration.Builder()
.setAppId("<ADX_APP_ID>")
.setGdprType(ADXConfiguration.GdprType.DIRECT_CONFIRM)
.build()
ADXSdk.getInstance().initialize(this as Activity, adxConfiguration) { result, adxConsentState ->
// 广告初始化完成
}2. Native 广告初始化
在同一个 Activity 中调用初始化函数和 Native Ad 函数的情况
调用初始化函数之前, 必须先调用 AdxNativeAdFactory的 init() 和 setAdxViewBinder()。初始化函数调用后,需在 OnInitializedListener 的的 onCompleted 中调用 AdxNativeAdFactory.preloadAd()。
AdxNativeAdFactory.init(this);
AdxNativeAdFactory.setAdxViewBinder("<NATIVE_AD_UNIT_ID>", new AdxViewBinder.Builder(R.layout.layout_media_native_ad)
.mediaViewContainerId(R.id.mediaContainerId)
.iconImageId(R.id.adIconId)
.titleId(R.id.titleId)
.adChoiceContainerId(R.id.adChoicesContainerId)
.callToActionId(R.id.callToActionId)
.build());AdxNativeAdFactory.init(this)
AdxNativeAdFactory.setAdxViewBinder("<NATIVE_AD_UNIT_ID>", AdxViewBinder.Builder(R.layout.layout_media_native_ad)
.mediaViewContainerId(R.id.mediaContainerId)
.iconImageId(R.id.adIconId)
.titleId(R.id.titleId)
.adChoiceContainerId(R.id.adChoicesContainerId)
.callToActionId(R.id.callToActionId)
.build()有关 Native Ad 的实现方法,请参阅该页面。
3. ConsentState
GDPR的同意与否有4种状态值。
状态
说明
ADXConsentStateUnknown
表示用户无同意信息,在此状态下不会展示个性化广告。
ADXConsentStateNotRequired
无需同意的地区(EU 以外地区)
将展示个性化广告。
ADXConsentStateDenied
用户拒绝个人信息的使用与收集的状态
不会展示个性化广告。
ADXConsentStateConfirm
用户同意个人信息的使用与收集的状态
将展示个性化广告。
在确认/更改同意与否的情况下,请使用 ADXGdprManager 的以下函数。
// 您可以检查在ADXGdprManager中设置的用户同意信息。
ADXGdprManager.getResultGDPR(this);
// 直接更改是否同意。
ADXGdprManager.saveResultGDPR(this, ADXConsentState);// 您可以检查在ADXGdprManager中设置的用户同意信息。
ADXGdprManager.getResultGDPR(this)
// 直接更改是否同意。
ADXGdprManager.saveResultGDPR(this, ADXConsentState)4. GDPR 同意界面重新展示
可以向用户重新显示 GDPR 同意界面,以便更改同意的状态值。
ADXSdk.getInstance().showGDPRForm((Activity) this, new ADXSdk.OnPrivacyOptionsFormListener() {
@Override
public void onCompleted(boolean result) {
}
});ADXSdk.getInstance().showGDPRForm(this as Activity, object : OnPrivacyOptionsFormListener() {
fun onCompleted(result: Boolean) {
}
})5. Privacy Policy
AD(x)的 Privacy Policy 文档URL,可以通过 ADXGDPR的 getPrivacyURL()来进行呼叫。
ADXGdprManager.getPrivacyURL();ADXGdprManager.getPrivacyURL()6. 启用调试日志
为了保证QA过程中联动和中介的正常运行,在调用初始化函数之前需要添加以下内容。
ADXLogUtil.setLogEnable(true);ADXLogUtil.setLogEnable(true)7. 针对儿童的设置
如果您的服务要求您根据《儿童在线隐私保护法》(COPPA) 将内容指定为面向儿童的内容,或定位到欧洲经济区 (EEA) 中未达到法定年龄的用户,则必须在调用初始化函数之前配置 AdMob 定位设置。
有关更多信息,请参阅 AdMob 定位 (https://developers.google.com/admob/android/targeting?hl=zh-cn)。
最后更新于
这有帮助吗?