ATT iOS: ce este, mecanismul cererii de urmărire și IDFA

Autor: IT Sectr Publicat: 2026-05-20 Timp de citire: 10 min

App Tracking Transparency (ATT) este un mecanism iOS care necesită acordul explicit al utilizatorului pentru accesul la identificatorul publicitar IDFA înainte de urmărire în aplicații și pe site-uri. Introdus în iOS 14.5, ATT a obligat toți dezvoltatorii să afișeze dialogul de sistem cu solicitarea permisiunii de urmărire. Conform Apple Developer Documentation, fiecare aplicație care utilizează IDFA pentru publicitate targetată sau atribuire trebuie să integreze framework-ul ATT și să obțină permisiunea de acces.

Principalele puncte

  • ATT — App Tracking Transparency, framework-ul de solicitare a urmăririi în iOS 14.5+
  • IDFA — identificatorul publicitar al dispozitivului, al cărui acces este restricționat fără consimțământ
  • Dialogul de sistem — pop-up standard cu textul aplicației, care nu poate fi modificat
  • Permisiunea de urmărire — solicitare obligatorie pentru afișarea reclamelor și atribuirea instalărilor
  • Refuzul — utilizatorul poate retrage permisiunea în Setări în orice moment

Ce este ATT (App Tracking Transparency)?

App Tracking Transparency este un framework Apple pentru protejarea confidențialității utilizatorilor, prezentat în iOS 14.5. Acesta cere aplicațiilor să obțină permisiunea explicită pentru accesul la identificatorul publicitar al dispozitivului (IDFA) înainte de a-l utiliza pentru urmărire.

Înainte de apariția ATT, dezvoltatorii puteau citi IDFA fără solicitare, ceea ce permitea rețelelor publicitare să construiască profiluri ale utilizatorilor și să le urmărească activitatea între aplicații și site-uri. Apple a numit această abordare o încălcare a confidențialității și a introdus dialogul obligatoriu de consimțământ.

Framework-ul este disponibil începând cu iOS 14.0, dar a devenit obligatoriu pentru toate aplicațiile care utilizează IDFA odată cu lansarea iOS 14.5 în aprilie 2021. Conform Flurry Analytics, după implementarea ATT, mai puțin de 25% dintre utilizatorii din SUA și-au dat acordul pentru urmărire, ceea ce a schimbat radical piața de publicitate mobilă.

ATT verifică existența permisiunii printr-un dialog special de sistem pe care aplicația nu îl poate modifica sau ocoli. Utilizatorul vede un pop-up standard cu textul furnizat de dezvoltator și alege “Permite” sau “Solicită aplicației să nu urmărească”.

Cum este ATT legat de confidențialitatea în iOS

Apple poziționează ATT ca parte a strategiei generale de confidențialitate, care include și Privacy Nutrition Label în App Store și Privacy Manifest. Toate cele trei mecanisme funcționează împreună: etichetele arată ce date colectează aplicația, Manifestul declară motivele utilizării API-urilor, iar ATT oferă utilizatorului control asupra urmăririi.

Refuzul urmăririi nu blochează funcționarea aplicației în sine — utilizatorul poate continua să utilizeze toate funcțiile, dar rețelele publicitare nu vor primi IDFA pentru personalizare și atribuire. Alternative la IDFA au devenit SKAdNetwork și Probabilistic Attribution de la Apple.

Conform Branch Metrics, după implementarea ATT, proporția aplicațiilor care primesc IDFA a scăzut de la 70% la 20% la scară globală. Aceasta a dus la reconsiderarea abordărilor de atribuire a instalărilor și de monetizare prin publicitate.

Schimbări în iOS 15 și 16

În iOS 15, Apple nu a înăsprit cerințele ATT, dar a adăugat App Privacy Report — un raport care arată utilizatorului cât de des aplicațiile accesează senzorii și datele. iOS 16 a extins controlul: utilizatorul poate modifica în orice moment setările de urmărire prin Setări → Confidențialitate → Urmărire.

Important: dacă utilizatorul alege “Solicită aplicației să nu urmărească” în dialogul ATT, aplicația nu primește valoarea IDFA, iar în locul acesteia este returnat un șir de zerouri — 00000000-0000-0000-0000-000000000000. Încercarea de a citi IDFA printr-o altă metodă sau prin soluții ocolitoare duce la respingerea aplicației în App Store.

Începând cu iOS 17, Apple a intensificat verificările: dacă aplicația solicită IDFA fără a afișa dialogul de sistem ATT, primește un refuz la nivel de sistem de operare, nu doar un identificator gol. Aceasta exclude posibilitatea colectării în fundal a IDFA fără știrea utilizatorului.

Cum funcționează solicitarea de urmărire în iOS

Procesul de solicitare ATT constă în trei etape: verificarea statusului, afișarea dialogului de sistem și procesarea răspunsului. Dezvoltatorul nu poate sări peste niciunul dintre pași — OS-ul controlează fiecare etapă.

Verificarea statusului de autorizare

Înainte de a apela dialogul, aplicația trebuie să verifice statusul curent prin ATTrackingManager. Statusurile posibile sunt: notDetermined (nu s-a solicitat încă), restricted (interzis de politicile dispozitivului), denied (utilizatorul a refuzat), authorized (permis).

Dacă statusul este deja determinat (authorized sau denied), reapelarea dialogului nu este posibilă — utilizatorul a făcut o alegere definitivă. Singura modalitate de a schimba decizia este prin setările de sistem iOS.

Pentru verificarea statusului se utilizează proprietatea ATTrackingManager.trackingAuthorizationStatus. Apelul trebuie să aibă loc pe firul principal, deoarece dialogul de sistem este o componentă UI.

swift
import AppTrackingTransparency
import AdSupport

func checkTrackingStatus() {
    let status = ATTrackingManager.trackingAuthorizationStatus
    switch status {
    case .notDetermined:
        requestTrackingPermission()
    case .authorized:
        readIDFA()
    case .denied, .restricted:
        useAlternativeTracking()
    @unknown default:
        break
    }
}

Afișarea dialogului de sistem

Pentru afișarea dialogului se apelează metoda requestTrackingAuthorization cu o închidere care primește rezultatul alegerii utilizatorului. Important: dialogul se afișează o singură dată. Dacă dezvoltatorul încearcă să îl reapeleze, sistemul va ignora solicitarea.

Textul din dialog constă din două părți: titlul de sistem (care nu poate fi modificat) și un mesaj personalizat pe care dezvoltatorul îl specifică în Info.plist prin cheia NSUserTrackingUsageDescription.

Dialogul trebuie să apară într-un context natural — nu imediat la lansarea aplicației, ci la prima încercare de utilizare a funcționalității legate de urmărire. Apple recomandă afișarea dialogului după ce utilizatorul a înțeles valoarea funcției.

swift
func requestTrackingPermission() {
    ATTrackingManager.requestTrackingAuthorization { status in
        DispatchQueue.main.async {
            switch status {
            case .authorized:
                let idfa = ASIdentifierManager.shared().advertisingIdentifier
                print("IDFA: \(idfa)")
            case .denied:
                print("Utilizatorul a refuzat urmărirea")
            default:
                break
            }
        }
    }
}

IDFA și restricționarea accesului

IDFA (Identifier for Advertisers) este un identificator publicitar unic al dispozitivului iOS, utilizat pentru publicitate targetată și atribuirea instalărilor. Înainte de ATT, dezvoltatorii îl obțineau prin ASIdentifierManager fără restricții. După introducerea ATT, accesul la IDFA este blocat până când utilizatorul își dă acordul explicit.

Ce este IDFA și de ce este necesar

IDFA este un șir de tip UUID, unic pentru fiecare dispozitiv iOS. Rețelele publicitare utilizează IDFA pentru: urmărirea instalărilor de aplicații (atribuire), afișarea de reclame relevante bazate pe interesele utilizatorului, măsurarea eficienței campaniilor publicitare și retargeting — readucerea utilizatorilor care nu au finalizat o acțiune țintă.

După ce utilizatorul refuză urmărirea, ASIdentifierManager returnează valoarea 00000000-0000-0000-0000-000000000000. Cu toate acestea, aplicația poate în continuare să citească IDFA în scopuri tehnice (de exemplu, antifraudă), dar nu îl poate transmite rețelelor publicitare.

Conform Singular (2024), nivelul global de consimțământ ATT este de 25-35%, iar în Europa (GDPR) indicatorul este mai ridicat (40-50%) decât în SUA (15-25%). Aceasta a forțat platformele publicitare să dezvolte metode alternative de atribuire.

Alternative la IDFA: SKAdNetwork și Probabilistic Attribution

SKAdNetwork este un framework Apple pentru atribuirea instalărilor fără dezvăluirea IDFA. Funcționează la nivel de OS: rețeaua publicitară trimite un postback semnat pe care Apple îl verifică și îl transmite dezvoltatorului. Atribuirea are loc fără identificarea utilizatorului specific, doar la nivel de campanie.

Probabilistic Attribution utilizează multiple semnale ale dispozitivului — modelul, versiunea iOS, fusul orar, luminozitatea ecranului — pentru potrivirea probabilistică a instalărilor cu afișările publicitare. Cu toate acestea, Apple interzice această metodă în regulile sale, iar utilizarea ei poate duce la respingerea aplicației.

Google, Adjust și AppsFlyer au dezvoltat propriile soluții hibride, combinând SKAdNetwork cu propriile date agregate. De exemplu, Google Ads Conversion Tracking utilizează postback-urile SKAdNetwork și propriile modele de învățare automată pentru atribuire fără IDFA.

Implementarea ATT în codul aplicației

Pentru integrarea ATT este necesar să se adauge cheia NSUserTrackingUsageDescription în Info.plist și să se importe framework-ul AppTrackingTransparency. Mai jos sunt prezentați pașii pentru Swift și Objective-C.

Configurarea Info.plist

Primul pas — adăugarea în Info.plist a cheii NSUserTrackingUsageDescription cu textul care explică de ce aplicația are nevoie de urmărire. Acest text se va afișa în dialogul de sistem. Exemplu: “IDFA-ul dumneavoastră este utilizat pentru afișarea de reclame personalizate și urmărirea eficienței campaniilor”.

Fără această cheie, apelul requestTrackingAuthorization va duce la crash — Apple verifică explicit prezența NSUserTrackingUsageDescription înainte de afișarea dialogului. Textul trebuie să fie concis, specific și să corespundă utilizării reale a datelor.

Important: cheia se adaugă manual prin Xcode Info tab sau prin editarea XML-ului sursă Info.plist. După adăugare, recompilați proiectul și verificați că cheia apare în binarul final.

xml
<!-- Info.plist -->
<key>NSUserTrackingUsageDescription</key>
<string>This identifier is used to deliver
personalized ads and measure campaign performance.</string>

Integrarea completă în Swift

Într-un proiect real, solicitarea ATT este mai bine să fie apelată înainte de prima lansare a modulului publicitar sau a tracker-ului. Se recomandă explicarea prealabilă a valorii consimțământului pe un ecran separat (pre-permission prompt) — aceasta crește procentul de consimțăminte cu 20-30%.

Pre-permission prompt este o interfață proprie care arată beneficiul activării urmăririi (“Ajutați-ne să afișăm reclame relevante”). Abia după apăsarea butonului “Continuați” se apelează dialogul de sistem ATT. Adjust (2024) a înregistrat o creștere a consimțământului cu 40% la utilizarea ecranului pre-permission.

swift
final class TrackingManager {
    static let shared = TrackingManager()

    func requestTrackingIfNeeded() {
        guard ATTrackingManager.trackingAuthorizationStatus
            == .notDetermined
        else { return }

        ATTrackingManager.requestTrackingAuthorization { _ in
            NotificationCenter.default.post(
                Notification(Name("trackingStatusChanged"))
            )
        }
    }
}

Erori la lucrul cu ATT

Dezvoltatorii comit adesea erori tipice la integrarea ATT care duc la scăderea conversiei consimțămintelor sau la respingerea aplicației de moderatorii App Store. Să analizăm cinci probleme cele mai comune.

Solicitarea ATT imediat după lansarea aplicației

Cea mai frecventă eroare — afișarea dialogului de sistem ATT pe primul ecran după încărcarea aplicației. Utilizatorul încă nu înțelege valoarea aplicației și, cu o probabilitate ridicată, apasă “Refuză”. IronSource (2023) a arătat o scădere a consimțământului cu 32% la solicitarea pe primul ecran comparativ cu solicitarea după a treia sesiune.

Recomandare: solicitați urmărirea după ce utilizatorul a efectuat o acțiune țintă (a vizualizat conținut, a început un onboarding) sau după 3-5 sesiuni de utilizare a aplicației. Aceasta crește încrederea și conștientizarea valorii.

Lipsa ecranului pre-permission

Afișarea dialogului de sistem ATT fără o explicație prealabilă — o eroare care reduce conversia la 15-20%. Utilizatorul vede o solicitare neașteptată și refuză instinctiv. Ecranul pre-permission cu explicația beneficiului crește consimțământul la 35-45%.

Textul pre-permission trebuie să fie specific: “Permiteți afișarea de reclame relevante — ne ajută să rămânem gratuiti”. Evitați frazele generale — acestea reduc încrederea. GameAnalytics în 2023 a arătat că pre-permission cu explicația beneficiului oferă cu 28% mai multe consimțăminte decât un ecran gol.

Ignorarea statusurilor restricted și denied

Dacă utilizatorul a refuzat deja urmărirea sau statusul este restricted (control parental, politici corporative), aplicația nu trebuie să reapeleze dialogul ATT. Reapelarea nu funcționează și este percepută ca o încălcare a confidențialității. În schimb, treceți la SKAdNetwork și publicitate contextuală.

În statusul restricted, aplicația nu poate determina dacă opțiunea “Permite solicitările de urmărire” este activată în setări. În acest caz, utilizați întotdeauna atribuirea fără alternativă prin SKAdNetwork și nu afișați ecranul pre-permission.

Verificarea IDFA fără apelarea ATT

Citirea IDFA prin ASIdentifierManager.shared().advertisingIdentifier fără permisiunea prealabilă ATT returnează un șir de zerouri. Unii dezvoltatori încearcă să utilizeze metode vechi de acces la IDFA prin API-uri private — acest lucru duce garantat la respingerea aplicației la revizuire.

Apple utilizează analizor static de cod și învățare automată pentru a detecta soluțiile ocolitoare. Chiar dacă aplicația trece de revizuire, actualizările ulterioare sau verificările automate pot descoperi încălcarea și duce la interzicerea contului dezvoltatorului.

Text incorect în NSUserTrackingUsageDescription

Un text prea lung, vag sau înșelător în cheia NSUserTrackingUsageDescription — motiv de respingere a aplicației de către moderatori. Apple verifică dacă descrierea corespunde utilizării reale a datelor. Dacă aplicația nu conține reclame, dar specifică “în scopuri publicitare”, moderatorul va respinge construcția.

Format recomandat: o descriere specifică a scopului utilizării IDFA în 2-3 propoziții. Exemplu pentru o aplicație fără reclame: “Identificatorul este utilizat pentru analitică și prevenirea fraudei. Datele nu sunt transmise terților și nu sunt utilizate pentru profilare”.

Întrebări frecvente

Ce se întâmplă dacă nu adaug ATT în aplicație?

Dacă aplicația utilizează IDFA sau urmărire fără ATT, Apple o va respinge în procesul de revizuire. Chiar și în absența urmăririi, se recomandă adăugarea ATT pentru transparență, altfel riscul de respingere la următoarea actualizare crește.

Funcționează aplicația fără consimțământul de urmărire?

Da, aplicația funcționează complet, dar rețelele publicitare nu vor primi IDFA pentru personalizare și atribuire. Toate funcțiile aplicației, cu excepția reclamelor personalizate, rămân disponibile.

Se poate reseta statusul ATT în iOS?

Da, utilizatorul poate modifica decizia în orice moment prin Setări → Confidențialitate → Urmărire. Aplicația nu poate reseta programatic statusul — doar prin setările de sistem.

Cum să creșteți procentul de consimțăminte ATT?

Utilizați ecranul pre-permission cu explicația beneficiului, solicitați urmărirea nu la prima lansare, ci după efectuarea unei acțiuni țintă. Meta (2024) a arătat o creștere a consimțămintelor cu 35% la solicitarea întârziată.

Afectează ATT aplicațiile pentru copii?

Aplicațiile din categoria “Pentru copii” nu pot utiliza IDFA și ATT pentru urmărire conform regulilor Apple. De asemenea, le este interzis să transmită date terților pentru analitică sau publicitate.

Concluzii

  • ATT — App Tracking Transparency, framework obligatoriu pentru solicitarea accesului la IDFA în iOS 14.5+
  • IDFA — identificatorul publicitar al dispozitivului, protejat de ATT împotriva accesului neautorizat
  • Dialogul de sistem — utilizatorul vede întotdeauna un dialog pe care aplicația nu îl poate modifica sau ocoli
  • Pre-permission — ecran propriu de explicare a beneficiului, care crește consimțământul cu 20-40%
  • SKAdNetwork — atribuirea fără alternativă de la Apple pentru aplicații fără acces la IDFA
  • Conversia — nivelul global de consimțământ este de 25-35%, în Europa până la 50% datorită GDPR
  • Integrați ATT înainte de apelarea oricărui tracker și adăugați obligatoriu cheia NSUserTrackingUsageDescription în Info.plist

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și