AppTrackingTransparency 框架

如果您要记录设备的广告主 ID (即 IDFA),需要先展示弹窗获得用户的许可。要达到这个目的,你需要使用 Apple 的App Tracking Transparency (ATT) 框架。用户做出选择后,Adjust SDK 会存储该信息,将其附加到发送至 Adjust 后端的每个包中。

请注意:

此功能需要 Adjust SDK v4.28.0 或更新版本。

Adjust SDK 会使用以下状态之一来记录用户的决定:

状态 (State)含义
Authorized (授权)用户已授予可用于设备跟踪的应用相关数据访问权限。
Denied (拒绝)用户已拒绝授予可用于设备跟踪的应用相关数据访问权限。
Not Determined (待定)用户尚未对访问权限请求弹窗做出响应。
Restricted (受限)用户已在设备层级禁止应用相关数据访问。

Adjust SDK 带有针对 Apple 的跟踪授权方法打造的包装器。如果您不想对 ATT 弹窗进行自定义,则可以使用这一包装器。Adjust SDK 会监听授权状态的变化,并将其发送至 Adjust 后端。

如果您使用自己的 ATT 弹窗,则不需要使用包装器方法。您需要将 AppTrackingTransparency.framework 加入您的 应用设置中。您可以在 Adjust SDK 初始化之前或之后展示弹窗。如果在初始化之前展示,那么 Adjust SDK 会将授权状态附加到安装事件中。如果在初始化之后展示,那么 Adjust SDK 会在记录授权状态后将其发送至后端。

应用跟踪授权包装器

Adjust SDK 拥有基于 requestTrackingAuthorizationWithCompletionHandler 方法创建的包装器。您可以利用该包装器收集用户授权状态的相关信息,也可以用这个方法为每个响应值定义回传。当用户与授权窗口互动时会触发回传。Adjust SDK 也会通知 Adjust 后端用户的许可选择。回传将返回一个 整数值 来显示授权状态。

Objective-C

了解当前授权状态

您可以调用 appTrackingAuthorizationStatus 方法 来返回当前授权状态。SDK 会返回一个与授权状态相关的整数值。

Objective-C

Swift

Javascript

查看授权状态变化

应用使用 ATT 包装器时,Adjust SDK 会自动读取用户在 ATT 弹窗中的授权状态变化。如果应用未使用包装器,那么您需要在用户做出选择后读取授权状态。使用 checkForNewAttStatus 方法读取新状态并将其发送至 Adjust 后端。

请注意:

您需要在每次用户改变授权状态时检查授权状态。

Objective-C
Swift
[Adjust checkForNewAttStatus];

自定义弹窗时机

如果您的应用包含新手引导流程或教程,那么最好在用户完成新手引导流程或教程后再发送用户的 ATT 许可状态。您可以设置 attConsentWaitingInterval 属性将数据发送延迟最多 120 秒​ ,让用户有足够的时间完成初始用户引导。延时结束 ​ 用户设置许可状态后,SDK 会将在延迟时间内记录的所有信息以及用户许可状态发送给 Adjust 服务器。

请注意:

如果用户在延时结束前关闭应用或在选择授权状态前关闭应用,那么用户重新打开应用时延时将重新开始计时。

Swift
Objective-C
let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentSandbox as? String
let myConfig = ADJConfig(
    appToken: yourAppToken,
    environment: environment)
//...
myConfig?.attConsentWaitingInterval = 30
//...
Adjust.appDidLaunch(myConfig)

iOS 17 用户许可处理

在 iOS 17 中,Apple 对于开发者可以向第三方发送哪些数据推出了全新规则。为确保开发者可以更轻松地证明其操作符合 Apple 隐私规定,Adjust SDK 针对 授权​ 和 未授权​ 用户使用两个相互独立的终端。

默认情况下,Adjust SDK 使用analytics.adjust.com终端向 Adjust 服务器发送有限的数据集,用于 概率模型​ 。该终端 不会​ 接收以下信息:

  • idfa:广告主设备 ID (IDFA)。
  • started_at:设备启动时间。

只有用户授予 ATT 许可时,Adjust SDK 才可访问 idfa 和 started_at 属性用于 精确归因​ 并向consent.adjust.com发送完整 payload。

两个终端均适用于所有URL 策略

urlStrategy未授权终端授权终端
ADJDataResidencyEUanalytics.eu.adjust.comconsent.eu.adjust.com
ADJDataResidencyTRanalytics.tr.adjust.comconsent.tr.adjust.com
ADJDataResidencyUSanalytics.us.adjust.comconsent.us.adjust.com
ADJUrlStrategyChinaanalytics.adjust.worldconsent.adjust.world
ADJUrlStrategyCnanalytics.adjust.cnconsent.adjust.cn
ADJUrlStrategyIndiaanalytics.adjust.net.inconsent.adjust.net.in