实施同意
了解如何在移动应用程序中实施同意。
使用Adobe Experience Platform Mobile SDK和Edge Network扩展时,Adobe Experience Platform同意移动扩展支持从移动应用程序中收集同意首选项。 在文档中了解有关同意扩展的更多信息。
先决条件
- 在安装和配置SDK的情况下成功构建和运行应用程序。
学习目标
在本课程中,您将执行以下操作:
- 提示用户同意。
- 根据用户响应更新扩展。
- 了解如何获取当前的同意状态。
征求同意
如果您从一开始就学习了本教程,您可能会记得,您已将同意扩展中的默认同意设置为 Pending — 在用户提供同意首选项之前发生的队列事件。
要开始收集数据,您必须获得用户的同意。 在真实世界应用程序中,您将需要咨询所在地区的同意最佳实践。 在本教程中,您只需通过询问并发出警报即可获得用户的同意:
-
您只需请求用户一次同意即可。 为此,您可以使用Apple的应用程序跟踪透明度框架,将Mobile SDK同意与跟踪所需的授权相结合。 在此应用程序中,您假设当用户授权跟踪时,他们同意收集事件。
-
在Xcode项目导航器中导航到 Luma > Luma > Utils > MobileSDK。
将此代码添加到
updateConsent
函数。code language-swift // Update consent let collectConsent = ["collect": ["val": value]] let currentConsents = ["consents": collectConsent] Consent.update(with: currentConsents) MobileCore.updateConfigurationWith(configDict: currentConsents)
-
导航到Xcode的项目导航器中的 Luma > Luma > Views > General > 免责声明视图,这是安装或重新安装应用程序并首次启动应用程序后显示的视图。 系统会提示用户根据Apple的应用程序跟踪透明度框架授权跟踪。 如果用户授权,则还需要更新同意。
将以下代码添加到
ATTrackingManager.requestTrackingAuthorization { status in
结尾处。code language-swift // Add consent based on authorization if status == .authorized { // Set consent to yes MobileSDK.shared.updateConsent(value: "y") } else { // Set consent to yes MobileSDK.shared.updateConsent(value: "n") }
获取当前同意状态
同意移动扩展会根据当前同意值自动禁止/挂起/允许跟踪。 您还可以自行访问当前同意状态:
-
在Xcode的项目导航器中导航到 Luma > Luma > Utils > MobileSDK。
将以下代码添加到
getConsents
函数:code language-swift // Get consents Consent.getConsents { consents, error in guard error == nil, let consents = consents else { return } guard let jsonData = try? JSONSerialization.data(withJSONObject: consents, options: .prettyPrinted) else { return } guard let jsonStr = String(data: jsonData, encoding: .utf8) else { return } Logger.aepMobileSDK.info("Consent getConsents: \(jsonStr)") }
-
在Xcode的项目导航器中导航到 Luma > Luma > Views > General > HomeView。
将以下代码添加到
.task
修饰符:code language-swift // Ask status of consents MobileSDK.shared.getConsents()
在上例中,您只是将同意状态记录到Xcode中的控制台。 在真实场景中,您可以使用该场景来修改向用户显示的菜单或选项。
使用保证功能进行验证
- 从设备或模拟器中删除应用程序,以正确重置和初始化跟踪并获取同意。
- 若要将模拟器或设备连接到Assurance,请查看设置说明部分。
- 在将应用从 主页 屏幕移至 产品 屏幕并移回 主页 屏幕时,您应会在Assurance UI中看到 获取同意响应 事件。
下一步: 收集生命周期数据