IDFA (Identifier for Advertisers) — je jedinečný identifikátor zařízení v iOS, určený pro reklamní účely a atribuci instalací. S příchodem App Tracking Transparency (ATT) v iOS 14.5 vyžaduje získání IDFA výslovný souhlas uživatele prostřednictvím systémového dialogu. Podle Apple App Tracking Transparency Documentation, 2025 bez povolení ATT aplikace obdrží nulový identifikátor. App Tracking Transparency zásadně změnila ekosystém mobilní reklamy a po zavedení snížila dostupnost IDFA o 80%.
Hlavní
IDFA (Identifier for Advertisers) — je jedinečný alfanumerický identifikátor přiřazený každému zařízení Apple pro reklamní účely. Na rozdíl od IDFV (Identifier for Vendor) je IDFA jednotný pro všechny aplikace na zařízení a uživatel jej může kdykoli resetovat prostřednictvím Nastavení — Soukromí — Reklamy — Resetovat identifikátor.
Hlavním účelem IDFA je atribuce instalací a sledování účinnosti reklamních kampaní na zařízeních Apple. Reklamní sítě používají IDFA k propojení kliknutí na reklamu s instalací aplikace, vytváření profilů uživatelů a zobrazování personalizovaných reklam. Od zavedení ATT je procento uživatelů poskytujících přístup k IDFA v průměru 20–35% podle různých odhadů analytických platforem.
Podle údajů Flurry Analytics (2025) po iOS 18 míra přijetí ATT vzrostla na 92% aktivních zařízení, ale podíl uživatelů souhlasících se sledováním klesl na 22%. To vedlo k zásadní změně v odvětví mobilní reklamy a donutilo reklamní sítě hledat alternativní metody atribuce.
Klíčová vlastnost IDFA — neobsahuje osobní údaje uživatele a není spojen s Apple ID. Apple jej však klasifikuje jako identifikátor podléhající regulaci App Tracking Transparency.
App Tracking Transparency (ATT) — je framework Apple představený v iOS 14.5, který vyžaduje výslovný souhlas uživatele před čtením IDFA. Bez souhlasu metoda asIdentifierManager vrací nulový identifikátor (00000000-0000-0000-0000-000000000000) a aplikace nemůže uživatele sledovat.
ATT je implementován prostřednictvím třídy ATTrackingManager s jedinou veřejnou metodou requestTrackingAuthorization(completionHandler:). Při volání této metody systém zobrazí nativní dialog s textem, který vývojář nastaví prostřednictvím klíče NSUserTrackingUsageDescription v Info.plist. Uživatel si může vybrat jednu ze tří možností: „Povolit sledování“, „Požádat aplikaci, aby nesledovala“ nebo „Odmítnout“.
Stav autorizace je sledován prostřednictvím ATTrackingManager.trackingAuthorizationStatus, který může nabývat čtyř hodnot: notDetermined, restricted, denied nebo authorized. Před žádostí ATT se doporučuje zkontrolovat aktuální stav a nevolat dialog, pokud je stav již určen — od iOS 17 opětovné volání requestTrackingAuthorization ve stavu denied nezobrazí dialog a vrátí chybu.
Načasování žádosti ATT kriticky ovlivňuje procento souhlasů. Výzkum Singular (2025) ukazuje, že žádost ATT na uvítací obrazovce (při prvním spuštění) poskytuje konverzi 35–45%, zatímco žádost po dokončení nějaké akce (např. po registraci) zvyšuje konverzi na 55–65%. Doporučuje se zobrazit obrazovku předběžného povolení s vlastním designem a vysvětlením hodnoty sledování pro uživatele před systémovým dialogem ATT.
Důležité: aplikace může volat requestTrackingAuthorization pouze jednou před obdržením odpovědi. Poté, co uživatel zvolí „Odmítnout“ nebo „Požádat o nesledování“, se dialog na zařízení již nezobrazí. Vývojář by měl zajistit záložní mechanismy pro práci bez IDFA, aby aplikace nadále správně fungovala v podmínkách omezeného sledování.
S vydáním iOS 18 Apple zpřísnil požadavky na aplikace používající reklamní identifikátor. Všechny aplikace, které žádají o IDFA nebo přenášejí údaje o zařízení pro reklamní účely, musí splňovat nová pravidla App Store. Nedodržení požadavků vede k odmítnutí sestavení ve fázi moderace App Store Connect.
Od iOS 18 musí každá aplikace obsahovat Privacy Manifest (soubor privacy.xcprivacy) s deklarací všech API použitých pro sledování. Pro IDFA se používají klíče NSPrivacyTracking a NSPrivacyTrackingDomains, kde se uvádějí domény reklamních sítí, kterým je identifikátor předáván. Bez správného manifestu je aplikace odmítnuta při moderaci App Store Connect.
Apple také zavedl povinnost uvedení důvodu použití reklamního identifikátoru v popisu aplikace. Pokud aplikace používá IDFA k atribuci instalací, musí používat SKAdNetwork jako hlavní metodu a IDFA pouze jako doplňkový signál pro zvýšení přesnosti atribuce.
S rostoucími omezeními IDFA vyvinul průmysl několik alternativních přístupů. SKAdNetwork (StoreKit Ad Network) — oficiální mechanismus atribuce od Apple, který funguje bez IDFA a nevyžaduje souhlas uživatele. SKAdNetwork používá podepsané požadavky postback mezi reklamní sítí a App Store, což zaručuje soukromí uživatele.
Další alternativy zahrnují: pravděpodobnostní atribuci na základě IP adresy, verze OS a dalších signálů zařízení; soukromá agregovaná API, jako je Private Click Measurement (PCM) od WebKit; a vlastní řešení reklamních platforem využívající strojové učení k predikci konverzí. Pro čínský trh se také používá CAID (Cellular Advertising ID) založený na datech mobilní sítě operátora.
Implementace žádosti o IDFA vyžaduje integraci App Tracking Transparency a správné zpracování všech možných stavů autorizace. Níže je uveden úplný příklad pro Swift s obrazovkou předběžného povolení.
Příklad demonstruje celý pracovní cyklus s IDFA: kontrolu stavu, zobrazení obrazovky předběžného povolení, volání systémového dialogu ATT a získání identifikátoru po autorizaci.
import AppTrackingTransparency
import AdSupport
func requestIDFAAccess() {
let status = ATTrackingManager.trackingAuthorizationStatus
switch status {
case .notDetermined:
// Zobrazení obrazovky předběžného povolení s vysvětlením
showPrePermissionScreen { accepted in
guard accepted else { return }
ATTrackingManager.requestTrackingAuthorization { newStatus in
handleATTStatus(newStatus)
}
}
case .authorized:
// Uživatel již udělil souhlas — získáváme IDFA
let idfa = ASIdentifierManager.shared().advertisingIdentifier
print("IDFA: \(idfa.uuidString)")
case .denied, .restricted:
// Přesměrování uživatele do nastavení
redirectToSettings()
@unknown default:
break
}
}
private func handleATTStatus(status: ATTrackingManager.AuthorizationStatus) {
if status == .authorized {
let idfa = ASIdentifierManager.shared().advertisingIdentifier
// Předání IDFA reklamní síti
sendIDFAToAdNetwork(idfa.uuidString)
}
}
Vzhledem k tomu, že většina uživatelů žádost ATT odmítá, vývojáři potřebují sadu strategií pro efektivní práci bez identifikátoru. Hlavním přístupem je kombinace SKAdNetwork a pravděpodobnostních metod atribuce.
SKAdNetwork (SKAN) — je framework Apple pro atribuci instalací, který nevyžaduje IDFA a nezobrazuje dialog souhlasu. Reklamní síť zaregistruje své SKAdNetwork ID v Info.plist aplikace a po instalaci App Store odešle podepsaný postback s informacemi o kampani. SKAN 4.0, představený v iOS 17, podporuje multiple conversions, source identifiers a coarse-grained conversion values.
Omezení SKAN: zpoždění postback od 24 do 48 hodin, chybějící identifikátor uživatele, omezený počet conversion values (až 64). Navzdory tomu se SKAN stal de facto standardem pro iOS atribuci po zavedení ATT a všechny velké reklamní sítě jej musí podporovat pro fungování na zařízeních Apple.
Reklamní sítě jako Meta a Google vyvinuly vlastní řešení založená na strojovém učení, která předpovídají konverze bez identifikátoru uživatele. Meta Aggregated Events Measurement (AEM) používá agregovaná data pro atribuci a Google Attribution modeluje konverze na základě historických dat.
Pro vývojáře je důležité implementovat několik metod atribuce současně: SKAdNetwork jako hlavní, serverovou atribuci prostřednictvím reklamních sítí a vlastní analytické nástroje s modelováním konverzí. Kombinace metod umožňuje obnovit až 70–80% přesnosti atribuce ve srovnání s érou IDFA. Doporučuje se testovat různé kombinace metod ve fázi beta testování, aby byl vybrán optimální soubor pro konkrétní aplikaci a cílovou skupinu.
Často kladené otázky
IDFA — je jedinečný kód zařízení iPhone nebo iPad, který reklamní sítě používají k zobrazování personalizovaných reklam a měření účinnosti kampaní. Od iOS 14.5 musí aplikace požádat o povolení před získáním IDFA prostřednictvím systémového dialogu App Tracking Transparency.
IDFV (Identifier for Vendor) — je identifikátor jedinečný pro všechny aplikace jednoho vývojáře na zařízení. Na rozdíl od IDFA, IDFV nevyžaduje souhlas ATT a je vždy k dispozici. IDFA je jednotný pro všechny aplikace, IDFV pouze pro aplikace jednoho prodejce (podle bundle ID).
Získání IDFA bez souhlasu uživatele je nemožné. Od iOS 14.5 ASIdentifierManager.advertisingIdentifier vrací nulový identifikátor (00000000-0000-0000-0000-000000000000), pokud uživatel neudělil souhlas prostřednictvím ATT. Jediným legálním způsobem je zavolat ATTrackingManager.requestTrackingAuthorization a získat stav authorized.
NSUserTrackingUsageDescription — je klíč v Info.plist aplikace, který obsahuje text zobrazený v systémovém dialogu ATT. Text by měl uživateli vysvětlit, proč aplikace potřebuje sledování. Příklad: „Váš IDFA se používá k zobrazování personalizovaných reklam a měření účinnosti kampaní“.
Ne, IDFA je výhradní identifikátor ekosystému Apple. Na Androidu se používá GAID (Google Advertising ID) nebo AAID (Android Advertising ID). Oba plní podobnou funkci, ale řídí se různými pravidly — na Androidu může uživatel resetovat identifikátor nebo vypnout personalizaci reklam v nastavení Google.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také