adjust-icon

设置 App Tracking Transparency

如果您要记录设备的广告主 ID (即 IDFA),需要先展示弹窗获得用户的授权。要达到这个目的,您需要在应用中添加 Apple 的 App Tracking Transparency (ATT) 框架。Adjust SDK 会存储用户的授权状态并在每次请求中将该信息发送至 Adjust 服务器。

授权状态

状态代码描述
ATTrackingManagerAuthorizationStatusNotDetermined0用户尚未对访问权限请求弹窗做出响应
ATTrackingManagerAuthorizationStatusRestricted1用户已在设备层级禁止应用相关数据访问
ATTrackingManagerAuthorizationStatusDenied2用户已拒绝授予可用于设备监测的应用相关数据访问权限
ATTrackingManagerAuthorizationStatusAuthorized3用户已授予可用于设备监测的应用相关数据访问权限

ATT 授权包装器

方法签名
+ (void)requestTrackingAuthorizationWithCompletionHandler:(void (^_Nullable)(NSUInteger status))completion;

Adjust SDK 包含 Apple requestTrackingAuthorizationWithCompletionHandler 方法的包装器。如果您不想对 ATT 弹窗进行自定义,则可以使用这一包装器。

用户对授权窗口做出响应时,回传方法就会被触发。该方法会将用户的授权状态代码发送至 Adjust 服务器。您可以在回传函数中定义每种状态代码的响应。

您必须指定 ATT 的文本内容。为此,请将文本加入 Info.plist 文件中的 NSUserTrackingUsageDescription key。

了解当前授权状态

方法签名
+ (int)appTrackingAuthorizationStatus;

您可以随时读取用户当前授权状态。调用 getAppTrackingAuthorizationStatus 方法来以 整数 形式返回授权状态代码。

自定义弹窗时机

属性声明
@property (nonatomic, assign) NSUInteger attConsentWaitingInterval;

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

查看授权状态变化

方法签名
+ (void)checkForNewAttStatus;

如果使用自定义 ATT 弹窗,那么您需要告知 Adjust SDK 用户的授权状态。调用 checkForNewAttStatus 方法,以向 Adjust 服务器发送授权状态。

于 v4.38.0 中添加

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

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

  • idfa: The device ID For Advertisers (IDFA).
  • started_at: The device startup time.

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

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

URL 策略未授权终端授权终端
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