Skip to main content
The IFA (Identifier for Advertisers) is the platform-standard ad id the SDK forwards with every ad request: IDFA on iOS, GAID on Android. The SDK reads it once the viewer allowed it; your app only needs the one-time configuration below. When no IFA is available (the viewer denied permission, or the OS opted out), the SDK falls back to a first-party identifier it generates itself. You may see a lower fill rate and lower prices: without an IFA, advertisers cannot recognize the viewer, so every viewer looks new to them, and many bid less or not at all. Collecting the IFA is one of the biggest levers on your revenue.

iOS: IDFA and App Tracking Transparency

iOS 14 and later require the viewer’s consent before any SDK can read the IDFA. The system prompt is App Tracking Transparency (ATT). Add the usage description to Info.plist:
Without this key, the app crashes on iOS 14+ as soon as anything requests ATT.

Who shows the prompt

The Video SDK does not show the ATT prompt by default: a video app usually has its own moment for it, after onboarding or before the first episode. Request it yourself with ATTrackingManager.requestTrackingAuthorization, and the SDK reads the identifier from then on. If you’d rather let the SDK ask, set it in the configuration and the prompt appears right before the first ads request:
The ATT prompt only appears while the app is active. Asking too early, for example in application(_:didFinishLaunchingWithOptions:), can suppress it entirely. Ask once the first screen is up.
The SDK also reads IDFV (identifierForVendor), a stable per-vendor identifier that needs no ATT authorization and is always available.

Android: GAID

GAID needs no runtime prompt. Reading it requires the install-time com.google.android.gms.permission.AD_ID permission on Android 13 and later, which the Kotlin Video SDK declares through manifest merger.