ATT iOS: wat is het, mechanisme van het volgverzoek en IDFA

Auteur: IT Sectr Gepubliceerd: 2026-05-20 Leestijd: 10 min

App Tracking Transparency (ATT) is een iOS-mechanisme dat expliciete toestemming van de gebruiker vereist voor toegang tot de reclame-ID IDFA voordat tracking in apps en op websites plaatsvindt. Geïntroduceerd in iOS 14.5, verplicht ATT alle ontwikkelaars om een systeemdialoogvenster te tonen met een verzoek om toestemming voor tracking. Volgens Apple Developer Documentation moet elke app die IDFA gebruikt voor gerichte advertenties of attributie, het ATT-framework integreren en toegangstoestemming verkrijgen.

Belangrijkste punten

  • ATT — App Tracking Transparency, het framework voor volgverzoeken in iOS 14.5+
  • IDFA — de reclame-ID van het apparaat, waarvan de toegang beperkt is zonder toestemming
  • Systeemdialoog — standaard pop-up met app-tekst die niet kan worden gewijzigd
  • Toestemming voor tracking — verplicht verzoek voor het tonen van advertenties en attributie van installaties
  • Weigering — gebruiker kan toestemming op elk moment intrekken in Instellingen

Wat is ATT (App Tracking Transparency)?

App Tracking Transparency is een framework van Apple voor de bescherming van de privacy van gebruikers, geïntroduceerd in iOS 14.5. Het vereist dat apps expliciete toestemming krijgen voor toegang tot de reclame-ID van het apparaat (IDFA) voordat ze deze gebruiken voor tracking.

Vóór de komst van ATT konden ontwikkelaars IDFA lezen zonder toestemming, waardoor advertentienetwerken gebruikersprofielen konden opbouwen en hun activiteit tussen apps en websites konden volgen. Apple noemde deze aanpak een schending van de privacy en voerde de verplichte toestemmingsdialoog in.

Het framework is beschikbaar vanaf iOS 14.0, maar werd verplicht voor alle apps die IDFA gebruiken met de release van iOS 14.5 in april 2021. Volgens Flurry Analytics gaf na de invoering van ATT minder dan 25% van de Amerikaanse gebruikers toestemming voor tracking, wat de markt voor mobiele advertenties fundamenteel veranderde.

ATT controleert de aanwezigheid van toestemming via een speciaal systeemdialoogvenster dat de app niet kan wijzigen of omzeilen. De gebruiker ziet een standaard pop-up met de door de ontwikkelaar verstrekte tekst en kiest “Toestaan” of “App vragen niet te volgen”.

Hoe ATT verband houdt met privacy in iOS

Apple positioneert ATT als onderdeel van een algemene privacystrategie, die ook Privacy Nutrition Label in de App Store en Privacy Manifest omvat. Alle drie mechanismen werken samen: labels tonen welke gegevens de app verzamelt, het Manifest verklaart de redenen voor API-gebruik, en ATT geeft de gebruiker controle over tracking.

Het weigeren van tracking blokkeert de werking van de app niet — de gebruiker kan alle functies blijven gebruiken, maar advertentienetwerken krijgen geen IDFA voor personalisatie en attributie. Alternatieven voor IDFA werden SKAdNetwork en Probabilistic Attribution van Apple.

Volgens Branch Metrics daalde na de invoering van ATT het aandeel apps dat IDFA ontvangt wereldwijd van 70% naar 20%. Dit leidde tot een heroverweging van de aanpak van installatie-attributie en monetisatie via advertenties.

Wijzigingen in iOS 15 en 16

In iOS 15 heeft Apple de ATT-vereisten niet aangescherpt, maar wel App Privacy Report toegevoegd — een rapport dat de gebruiker laat zien hoe vaak apps toegang krijgen tot sensoren en gegevens. iOS 16 breidde de controle uit: de gebruiker kan op elk moment de tracking-instellingen wijzigen via Instellingen → Privacy → Tracking.

Belangrijk: als de gebruiker kiest voor “App vragen niet te volgen” in het ATT-dialoogvenster, ontvangt de app geen IDFA-waarde, maar wordt in plaats daarvan een reeks nullen geretourneerd — 00000000-0000-0000-0000-000000000000. Pogingen om IDFA op een andere manier of via omwegen te lezen, leiden tot afwijzing van de app in de App Store.

Vanaf iOS 17 heeft Apple de controles verscherpt: als een app IDFA opvraagt zonder het systeem-dialoogvenster ATT weer te geven, krijgt deze een weigering op OS-niveau, niet alleen een lege ID. Dit sluit de mogelijkheid van het op de achtergrond verzamelen van IDFA zonder medeweten van de gebruiker uit.

Hoe werkt het volgverzoek in iOS

Het ATT-aanvraagproces bestaat uit drie fasen: statuscontrole, weergave van het systeemdialoogvenster en verwerking van het antwoord. De ontwikkelaar kan geen enkele stap overslaan — het besturingssysteem controleert elke fase.

Autorisatiestatus controleren

Voordat het dialoogvenster wordt aangeroepen, moet de app de huidige status controleren via ATTrackingManager. Mogelijke statussen: notDetermined (nog niet aangevraagd), restricted (verboden door apparaatbeleid), denied (gebruiker heeft geweigerd), authorized (toegestaan).

Als de status al is bepaald (authorized of denied), is het niet mogelijk het dialoogvenster opnieuw aan te roepen — de gebruiker heeft een definitieve keuze gemaakt. De enige manier om de beslissing te wijzigen is via de systeeminstellingen van iOS.

Voor het controleren van de status wordt de eigenschap ATTrackingManager.trackingAuthorizationStatus gebruikt. De aanroep moet op de hoofdthread plaatsvinden, omdat het systeemdialoogvenster een UI-component is.

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
    }
}

Het systeemdialoogvenster weergeven

Voor het tonen van het dialoogvenster wordt de methode requestTrackingAuthorization aangeroepen met een closure die het resultaat van de gebruikerskeuze ontvangt. Belangrijk: het dialoogvenster wordt slechts eenmaal weergegeven. Als de ontwikkelaar probeert het opnieuw aan te roepen, negeert het systeem het verzoek.

De tekst in het dialoogvenster bestaat uit twee delen: een systeemtitel (die niet kan worden gewijzigd) en een aangepast bericht dat de ontwikkelaar in Info.plist opgeeft via de sleutel NSUserTrackingUsageDescription.

Het dialoogvenster moet in een natuurlijke context verschijnen — niet direct bij het starten van de app, maar bij de eerste poging om functionaliteit met betrekking tot tracking te gebruiken. Apple raadt aan het dialoogvenster te tonen nadat de gebruiker de waarde van de functie heeft begrepen.

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("Gebruiker heeft tracking geweigerd")
            default:
                break
            }
        }
    }
}

IDFA en toegangsbeperking

IDFA (Identifier for Advertisers) is een unieke reclame-ID van het iOS-apparaat, gebruikt voor gerichte advertenties en installatie-attributie. Vóór ATT verkregen ontwikkelaars deze via ASIdentifierManager zonder beperkingen. Na de invoering van ATT wordt de toegang tot IDFA geblokkeerd totdat de gebruiker expliciete toestemming geeft.

Wat is IDFA en waarvoor dient het

IDFA is een UUID-string, uniek voor elk iOS-apparaat. Advertentienetwerken gebruiken IDFA voor: het volgen van app-installaties (attributie), het tonen van relevante advertenties op basis van gebruikersinteresses, het meten van de effectiviteit van advertentiecampagnes en retargeting — het terugbrengen van gebruikers die een doelactie niet hebben voltooid.

Nadat de gebruiker tracking heeft geweigerd, retourneert ASIdentifierManager de waarde 00000000-0000-0000-0000-000000000000. De app kan nog steeds IDFA lezen voor technische doeleinden (bijvoorbeeld fraudepreventie), maar mag deze niet doorgeven aan advertentienetwerken.

Volgens Singular (2024) ligt het wereldwijde ATT-toestemmingspercentage op 25-35%, waarbij Europa (GDPR) hoger scoort (40-50%) dan de VS (15-25%). Dit heeft advertentieplatforms gedwongen alternatieve attributiemethoden te ontwikkelen.

Alternatieven voor IDFA: SKAdNetwork en Probabilistic Attribution

SKAdNetwork is een framework van Apple voor installatie-attributie zonder IDFA prijs te geven. Het werkt op OS-niveau: het advertentienetwerk stuurt een ondertekende postback die Apple controleert en doorgeeft aan de ontwikkelaar. Attributie vindt plaats zonder identificatie van de specifieke gebruiker, alleen op campagneniveau.

Probabilistic Attribution gebruikt meerdere apparaatsignalen — model, iOS-versie, tijdzone, schermhelderheid — voor probabilistische matching van installaties met advertentievertoningen. Apple verbiedt deze methode echter in haar regels en het gebruik ervan kan leiden tot afwijzing van de app.

Google, Adjust en AppsFlyer hebben hun eigen hybride oplossingen ontwikkeld die SKAdNetwork combineren met eigen geaggregeerde gegevens. Google Ads Conversion Tracking gebruikt bijvoorbeeld SKAdNetwork-postbacks en eigen machine learning-modellen voor attributie zonder IDFA.

ATT implementeren in de app-code

Voor ATT-integratie moet de sleutel NSUserTrackingUsageDescription aan Info.plist worden toegevoegd en het framework AppTrackingTransparency worden geïmporteerd. Hieronder staan de stappen voor Swift en Objective-C.

Info.plist configureren

De eerste stap is het toevoegen van de sleutel NSUserTrackingUsageDescription aan Info.plist met tekst die uitlegt waarom de app tracking nodig heeft. Deze tekst wordt weergegeven in het systeemdialoogvenster. Voorbeeld: “Uw IDFA wordt gebruikt voor het tonen van gepersonaliseerde advertenties en het volgen van campagne-effectiviteit”.

Zonder deze sleutel leidt de aanroep van requestTrackingAuthorization tot een crash van de app — Apple controleert expliciet op de aanwezigheid van NSUserTrackingUsageDescription voordat het dialoogvenster wordt getoond. De tekst moet beknopt, specifiek en in overeenstemming met het daadwerkelijke gebruik van gegevens zijn.

Belangrijk: de sleutel wordt handmatig toegevoegd via Xcode Info tab of door het bewerken van de XML-bron van Info.plist. Na toevoeging, herbouw het project en controleer of de sleutel in het uiteindelijke binaire bestand verschijnt.

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

Volledige integratie in Swift

In een echt project is het beter om het ATT-verzoek aan te roepen vóór de eerste start van de advertentiemodule of tracker. Het wordt aanbevolen om de gebruiker vooraf de waarde van toestemming uit te leggen op een apart scherm (pre-permission prompt) — dit verhoogt het toestemmingspercentage met 20-30%.

Een pre-permission prompt is een eigen UI die het voordeel van het inschakelen van tracking toont (“Help ons relevante advertenties te tonen”). Pas na het indrukken van de knop “Doorgaan” wordt het ATT-systeemdialoogvenster aangeroepen. Adjust (2024) registreerde een toename van 40% in toestemming bij gebruik van een pre-permission-scherm.

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"))
            )
        }
    }
}

Fouten bij het werken met ATT

Ontwikkelaars maken vaak typische fouten bij ATT-integratie die leiden tot een lagere toestemmingsconversie of afwijzing van de app door App Store-moderatoren. Laten we de vijf meest voorkomende problemen bespreken.

ATT-verzoek direct na het starten van de app

De meest voorkomende fout is het tonen van het ATT-systeemdialoogvenster op het eerste scherm na het laden van de app. De gebruiker begrijpt de waarde van de app nog niet en drukt met grote waarschijnlijkheid op “Weigeren”. IronSource (2023) toonde een daling van 32% in toestemming bij een verzoek op het eerste scherm vergeleken met een verzoek na de derde sessie.

Aanbeveling: vraag om tracking nadat de gebruiker een doelactie heeft uitgevoerd (inhoud bekeken, onboarding gestart) of na 3-5 sessies gebruik van de app. Dit verhoogt het vertrouwen en het begrip van de waarde.

Ontbreken van een pre-permission-scherm

Het tonen van het ATT-systeemdialoogvenster zonder voorafgaande uitleg is een fout die de conversie verlaagt tot 15-20%. De gebruiker ziet een onverwacht verzoek en weigert instinctief. Een pre-permission-scherm met uitleg van het voordeel verhoogt de toestemming tot 35-45%.

De pre-permission-tekst moet specifiek zijn: “Sta relevante advertenties toe — dit helpt ons gratis te blijven”. Vermijd algemene zinnen — ze verminderen het vertrouwen. GameAnalytics toonde in 2023 aan dat pre-permission met uitleg van het voordeel 28% meer toestemming oplevert dan een leeg scherm.

Negeren van de status restricted en denied

Als de gebruiker tracking al heeft geweigerd of de status restricted is (ouderlijk toezicht, bedrijfsbeleid), mag de app het ATT-dialoogvenster niet opnieuw aanroepen. Een herhaalde aanroep werkt niet en wordt gezien als een schending van de privacy. Schakel in plaats daarvan over op SKAdNetwork en contextuele advertenties.

In de status restricted kan de app niet bepalen of de optie “Volgverzoeken toestaan” is ingeschakeld in de instellingen. Gebruik in dit geval altijd attributie zonder alternatief via SKAdNetwork en toon geen pre-permission-scherm.

IDFA controleren zonder ATT aan te roepen

Het lezen van IDFA via ASIdentifierManager.shared().advertisingIdentifier zonder voorafgaande ATT-toestemming retourneert een reeks nullen. Sommige ontwikkelaars proberen oude methoden voor toegang tot IDFA via privé-API's te gebruiken — dit leidt gegarandeerd tot afwijzing van de app bij beoordeling.

Apple gebruikt een statische code-analysator en machine learning om omwegen te detecteren. Zelfs als de app door de beoordeling komt, kunnen latere updates of geautomatiseerde controles de overtreding aan het licht brengen en leiden tot een verbod van het ontwikkelaarsaccount.

Onjuiste tekst in NSUserTrackingUsageDescription

Een te lange, vage of misleidende tekst in de sleutel NSUserTrackingUsageDescription is een reden voor afwijzing van de app door moderatoren. Apple controleert of de beschrijving overeenkomt met het daadwerkelijke gebruik van gegevens. Als de app geen advertenties bevat, maar “voor advertentiedoeleinden” vermeldt, zal de moderator de build afwijzen.

Aanbevolen formaat: een specifieke beschrijving van het doel van IDFA-gebruik in 2-3 zinnen. Voorbeeld voor een app zonder advertenties: “De ID wordt gebruikt voor analyse en fraude preventie. Gegevens worden niet aan derden verstrekt en niet gebruikt voor profilering”.

Veelgestelde vragen

Wat gebeurt er als ik ATT niet toevoeg aan de app?

Als de app IDFA of tracking gebruikt zonder ATT, zal Apple deze afwijzen tijdens het beoordelingsproces. Zelfs bij afwezigheid van tracking wordt aanbevolen ATT toe te voegen voor transparantie, anders neemt het risico op afwijzing bij een volgende update toe.

Werkt de app zonder toestemming voor tracking?

Ja, de app werkt volledig, maar advertentienetwerken krijgen geen IDFA voor personalisatie en attributie. Alle functies van de app, behalve gepersonaliseerde advertenties, blijven beschikbaar.

Kan de ATT-status worden gereset in iOS?

Ja, de gebruiker kan op elk moment de beslissing wijzigen via Instellingen → Privacy → Tracking. De app kan de status niet programmatisch resetten — alleen via de systeeminstellingen.

Hoe kan ik het ATT-toestemmingspercentage verhogen?

Gebruik een pre-permission-scherm met uitleg van het voordeel, vraag om tracking niet bij de eerste start maar na het uitvoeren van een doelactie. Meta (2024) toonde een stijging van 35% in toestemming bij een uitgesteld verzoek.

Heeft ATT invloed op apps voor kinderen?

Apps in de categorie “Voor kinderen” mogen geen IDFA en ATT gebruiken voor tracking volgens de Apple-regels. Ook is het hen verboden gegevens aan derden te verstrekken voor analyse of advertenties.

Samenvatting

  • ATT — App Tracking Transparency, verplicht framework voor toegang tot IDFA in iOS 14.5+
  • IDFA — de reclame-ID van het apparaat, beschermd door ATT tegen ongeautoriseerde toegang
  • Systeemdialoog — gebruiker ziet altijd een dialoog die de app niet kan wijzigen of omzeilen
  • Pre-permission — eigen scherm met uitleg van het voordeel, verhoogt toestemming met 20-40%
  • SKAdNetwork — attributie zonder alternatief van Apple voor apps zonder toegang tot IDFA
  • Conversie — wereldwijd toestemmingspercentage is 25-35%, in Europa tot 50% dankzij GDPR
  • Integreer ATT vóór het aanroepen van een tracker en voeg de sleutel NSUserTrackingUsageDescription toe aan Info.plist

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook