> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kontext.so/llms.txt
> Use this file to discover all available pages before exploring further.

# IFA 与 ATT

> 视频 SDK 如何读取广告标识符，以及你的应用在 iOS 上需要的一次性设置。

\*\*IFA（Identifier for Advertisers，广告标识符）\*\*是平台标准的广告 ID，SDK 随每次广告请求转发它：iOS 上是 IDFA，Android 上是 GAID。观众允许后 SDK 会读取它；你的应用只需完成下面的一次性配置。

IFA 不可用时（观众拒绝授权，或系统级选择退出），SDK 回退到自己生成的第一方标识符。你可能会看到更低的填充率和更低的价格：没有 IFA，广告主无法识别观众，每位观众在他们看来都是新用户，许多广告主会降低出价或不出价。获取 IFA 是提升收入最有效的手段之一。

## iOS：IDFA 与 App Tracking Transparency

iOS 14 及以上要求任何 SDK 在读取 IDFA 之前先获得观众同意。系统弹窗是 **App Tracking Transparency（ATT）**。

在 `Info.plist` 中添加使用说明：

```xml theme={null}
<key>NSUserTrackingUsageDescription</key>
<string>我们使用你的广告标识符来展示更相关的广告。</string>
```

> [!WARNING]
>
> 缺少此 key，iOS 14+ 上一旦有任何东西请求 ATT，应用就会崩溃。

### 谁来展示弹窗

视频 SDK 默认不展示 ATT 弹窗：视频应用通常有自己合适的时机，在引导流程之后或第一集之前。用 `ATTrackingManager.requestTrackingAuthorization` 自己请求，之后 SDK 会读取标识符。

如果你更希望让 SDK 来问，在配置中设置，弹窗会在第一次广告请求前出现：

```swift theme={null}
KontextVideo.shared.initialize(with: .init(
    publisherToken: "<your-publisher-token>",
    requestTrackingAuthorization: true
))
```

> [!WARNING]
>
> ATT 弹窗只在应用处于活跃状态时出现。请求得太早，例如在 `application(_:didFinishLaunchingWithOptions:)` 中，可能让弹窗被完全吞掉。在第一个页面出现后再请求。

SDK 还会读取 **IDFV**（`identifierForVendor`），一个稳定的供应商级标识符，不需要 ATT 授权且始终可用。

## Android：GAID

GAID 不需要运行时弹窗。读取它需要 Android 13 及以上的安装时权限 `com.google.android.gms.permission.AD_ID`，[Kotlin 视频 SDK](https://docs.kontext.so/zh/video/sdk/kotlin.md) 会通过 manifest merger 自动声明。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.