欧盟地区用户意见征求政策
根据 Google 欧盟地区用户意见征求政策,您必须向位于欧洲经济区 (EEA) 和英国境内的用户披露相关信息,在法律有相应要求的情况下,必须就 Cookie 或其他本地存储方式的使用征得他们的同意,并使用个人数据(例如 AdID)来投放广告。此政策反映了欧盟《电子隐私指令》和《一般数据保护条例》(GDPR) 的要求。
为了帮助发布商履行此政策规定的职责,Google 提供了 User Messaging Platform (UMP) SDK。UMP SDK 现已更新,支持最新的 IAB 标准。
1.将UMP
管理类加入项目中
将Demo中的 GoogleMobileAdsConsentManager
类加入到项目中
2.在主ViewController中调用
在主ViewController ViewDidLoad中调用展示
- (void)loadAndShowConsentFormIfRequired{
[[GoogleMobileAdsConsentManager sharedInstance] gatherConsentFromConsentPresentationViewController:self
consentGatheringComplete:^(NSError * _Nullable error) {
}];
}
当用户是欧盟用户,并且没有选择过隐私授权表单,调用此方法会弹出以下表单界面,当用户选择同意或者拒绝之后,在13个月的有效期内此方法不会再弹出隐私授权表单。所以建议每次都调用此方法,当失效后又会弹出让用户自己选择。
3.隐私设置选项
意见征求表单要求允许用户随时修改其选择。请按照以下步骤实现隐私设置选项按钮。建议将按钮加到App设置里面,
注意,这个选项是在已经弹出过征求表单窗口后的设备才显示,可根据以下代码判断是否显示按钮
if(GoogleMobileAdsConsentManager.sharedInstance.isPrivacyOptionsRequired){
//显示隐私按钮,允许用户再次修改同意声明
}else{
//不显示
}
调用以下方法再次弹出修改征求表单窗口,表单和第一次弹出的显示一样,但方法不同,此方法只能用于让用户修改隐私选择。
- (void)showPrivacyForm {
[GoogleMobileAdsConsentManager.sharedInstance
presentPrivacyOptionsFormFromViewController:self
completionHandler:^(NSError *_Nullable formError) {
if (formError) {
//错误,不能显示
}
}];
}
4.如何测试
如果您希望在开发过程中测试应用中的集成,请按照以下步骤以编程方式注册测试设备
1).先调用 loadAndShowConsentFormIfRequired
2).检查日志输出中是否有类似如下的消息,该消息显示了您的设备 ID 以及如何将其添加为测试设备:
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[@“”]
在日志中搜索To enable debug mode for this device
找到测试设备ID
3).修改代码,调用 UMPDebugSettings().testDeviceIdentifiers
,并传入您的测试设备 ID ,并指定为欧盟地区
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
debugSettings.testDeviceIdentifiers = @[ @"80B85A25-92FE-41B7-B594-BD8D2141F12C" ];
debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;
// Include the UMPRequestParameters in your consent request.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable error){
...
}];
4).网络必须要翻墙, 不翻墙显示不出来。
注意:模拟器默认是测试设备,因此无需添加到您的设备 ID 列表中。