adjust-icon

设置 App Tracking Transparency

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

授权状态

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

应用跟踪授权包装器

方法签名
requestTrackingAuthorizationWithCompletionHandler(): Promise<number >

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

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

您必须设定跟踪请求窗口中显示的文本。为此,请将文本加入 Info.plist 文件中的 NSUserTrackingUsageDescription key。

Adjust.requestTrackingAuthorizationWithCompletionHandler(function (status) {
switch (status) {
case 0:
// ATTrackingManagerAuthorizationStatusNotDetermined case
break;
case 1:
// ATTrackingManagerAuthorizationStatusRestricted case
break;
case 2:
// ATTrackingManagerAuthorizationStatusDenied case
break;
case 3:
// ATTrackingManagerAuthorizationStatusAuthorized case
break;
}
});

示例

该示例展示了当用户与弹窗交互时,我们如何记录一个人类可读的用户授权状态描述。

index.js
var adjustConfig = new AdjustConfig(
"{YourAppToken}",
AdjustConfig.EnvironmentSandbox,
);
Adjust.requestTrackingAuthorizationWithCompletionHandler(function (status) {
switch (status) {
case 0:
console.log("The user has not responded to the access prompt yet.");
break;
case 1:
console.log(
"Access to app-related data is blocked at the device level.",
);
break;
case 2:
console.log(
"The user has denied access to app-related data for device tracking.",
);
break;
case 3:
console.log(
"The user has approved access to app-related data for device tracking.",
);
break;
}
});
Adjust.create(adjustConfig);

了解当前授权状态

方法签名
getAppTrackingAuthorizationStatus(): Promise<number >

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

Adjust.getAppTrackingAuthorizationStatus();

示例

该示例展示了如何收集用户授权状态并将其转化为 String。我们会为该信息指定一个名为 authorizationStatus 的变量,并将其作为会话合作伙伴参数使用 "status" key 传送。

var authorizationStatus = async () => {
let statusNumber = await Adjust.getAppTrackingAuthorizationStatus();
return statusNumber;
};
Adjust.addSessionPartnerParameter("status", authorizationStatus);

查看授权状态变化

方法签名
checkForNewAttStatus(): void

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

Adjust.checkForNewAttStatus();