The IFA (Identifier for Advertisers) is the platform-standard ad ID we forward with every ad request — IDFA on iOS, GAID on Android. The SDK reads it automatically; your app only needs the one-time platform configuration below. If no IFA is available (user denied permission, OS-level opt-out, web), the SDK falls back to a first-party identifier it generates internally — fill rate stays reasonable, but retargeting and frequency capping work better with a real IFA.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.
iOS — IDFA + App Tracking Transparency
iOS 14+ requires user consent before any SDK can read the IDFA. The system prompt is App Tracking Transparency (ATT). Add the usage description toInfo.plist:
ATTrackingManager.requestTrackingAuthorization automatically the first time a session is created. To manage the prompt yourself (for example, delay it until after onboarding), set requestTrackingAuthorization: false on SessionOptions and supply the advertisingId you collected.
The Swift SDK also reads IDFV (UIDevice.current.identifierForVendor) as a stable iOS-only secondary identifier. IDFV does not require ATT and is always available.
Android — GAID + AD_ID permission
GAID is always available on Android — there’s no runtime consent prompt. Reading it requires the install-timecom.google.android.gms.permission.AD_ID permission (Android 13+ / API level 33+).
How the permission is declared depends on the SDK:
-
Kotlin SDK and React Native SDK — added automatically via manifest merger. No changes to your
AndroidManifest.xmlrequired. -
Flutter SDK — declare it manually in
android/app/src/main/AndroidManifest.xml:
If your manifest has
tools:node="remove" on the AD_ID permission anywhere (often a leftover from an older privacy-tightening pass), remove the override or the SDK can’t read GAID.