欧盟地区用户意见征求政策

根据 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个月的有效期内此方法不会再弹出隐私授权表单。所以建议每次都调用此方法,当失效后又会弹出让用户自己选择。

IMG_8026

3.隐私设置选项

意见征求表单要求允许用户随时修改其选择。请按照以下步骤实现隐私设置选项按钮。建议将按钮加到App设置里面,

image-20231208085216474

注意,这个选项是在已经弹出过征求表单窗口后的设备才显示,可根据以下代码判断是否显示按钮

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

image-20231207165157653

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 列表中。

注意:在发布应用之前,请务必移除设置这些测试设备 ID 的代码。

注意:在发布应用之前,请务必移除设置这些测试设备 ID 的代码。

results matching ""

    No results matching ""