Informatie
Beschrijving

[iOS] 4. Werken met ATT (App Tracking Transparency / iOS)

Overzicht

Alle nieuwe apps die bij de App Store worden ingediend, moeten voldoen aan de richtlijnen van Apple. App-trackingtransparantie (ATT) richtlijnen voor iOS 14.0+. Deze richtlijnen verbeteren de privacy van gebruikers door expliciete toestemming te vereisen voor tracking. Dit document beschrijft de benodigde stappen om ATT te implementeren bij gebruik van onze CMP SDK. Alle methoden met betrekking tot ATT zijn verwijderd uit onze CMP SDK v3 vanwege beperkingen met betrekking tot de levenscyclus van de app, dus alle ATT moet worden beheerd op de mobiele app zelf, en niet via onze SDK, aangezien onze SDK niet op de hoogte is van de levenscyclus van de mobiele app die deze integreert. Volgens Officiële documentatie van Apple:

Aanroepen naar de API worden alleen uitgevoerd als de status van de toepassing UIApplicationStateActive

1. Voeg het ATT-framework toe in Xcode

Integreren AppTrackingTransparantie.framework, navigeer naar:

<PROJECT_NAME>.xcproject / <PROJECT_NAME>.xcworkspace -> General -> Frameworks, Libraries, and Embedded Content.

Zorg ervoor dat het framework correct is ingebed om ATT-functionaliteit mogelijk te maken.


2. Voeg NSUserTrackingUsageDescription toe

Neem de volgende sleutel op in uw Info.plist file:

<key>NSUserTrackingUsageDescription</key>
<string>Your app description explaining why tracking permission is requested.</string>

Dit bericht wordt aan gebruikers getoond in de ATT-toestemmingsprompt.


3. Vraag tracking-autorisatie aan

Om een ​​correcte verwerking van de toestemming te garanderen, verzoeken wij u: ATT-toestemming bij de eerste app-lancering. Dit mag alleen gebeuren als de toestemmingsstatus van de gebruiker onbekend is.

Voorbeeldimplementatie:

import AppTrackingTransparency

class AppDelegate: UIApplicationDelegate {
    // IMPORTANT: this is the proper lifecycle event where the request needs to be done
    func applicationDidBecomeActive(_ application: UIApplication) {
        if #available(iOS 14, *) {
            ATTrackingManager.requestTrackingAuthorization { status in
                switch status {
                    case .authorized:
                        print("Tracking enabled")
                    case .denied, .notDetermined, .restricted:
                        print("Tracking disabled")
                }
            }
        }
    }
}

Opmerking: Zorg ervoor dat UI-gerelateerde logica wordt uitgevoerd op de DispatchQueue.main wachtrij, aangezien de voltooiingshandler standaard op een gelijktijdige wachtrij wordt uitgevoerd.


4. Volgautorisatiestatus bewaken

Gebruiken ATTrackingManager.trackingAuthorizationStatus om wijzigingen in de toestemmingsstatus bij te houden. De volgende statussen zijn mogelijk:

  • .authorized - Gebruiker heeft toestemming gegeven.
  • .denied - Gebruiker heeft trackingtoestemming geweigerd.
  • .notDetermined - Gebruiker heeft nog geen keuze gemaakt.
  • .restricted - Tracking is beperkt (bijv. via MDM).

Voor consistentie, behandel begrensd as ontkend tenzij de leverancier uitdrukkelijk toestemming heeft gegeven.


Als uw app gebruikmaakt van analyses van derden, werkt u de configuratie bij op basis van de ATT-status van de gebruiker:

  • Analytics-tracking uitschakelen voor gebruikers die tracking weigeren of beperken.
  • Gebruik geanonimiseerde tracking als de analyseprovider een opt-out-instelling biedt (bijvoorbeeld mParticle's optOut mode).
  • SDK-beleid bekijken regelmatig om te voldoen aan de privacyvereisten van Apple.

Voorbeeld voor Firebase:

  • Als er geen advertentieframeworks zijn gekoppeld, heeft Firebase Analytics geen toegang tot de advertentie-ID.
  • Als u analyses met advertenties gebruikt, zorg er dan voor dat u voldoet aan de ATT-richtlijnen voordat u de gegevens indient.

Voor apps die geen geavanceerde analyses nodig hebben, App Store-analyse (toegankelijk via App Store Connect) kan voldoende inzicht bieden en tegelijkertijd naleving garanderen.


6. Aanvullende overwegingen

  • ATT-aanroepen in een iOS-versiecontrole inpakken om crashes op oudere versies te voorkomen:

    if #available(iOS 14.0, *) {
        ATTrackingManager.requestTrackingAuthorization { _ in }
    }
    
  • Toestemming bijhouden voor oudere iOS-versies met behulp van backend-vlaggen of lokale opslag.

  • Voldoe onmiddellijk aan de ATT, omdat niet-naleving app-updates kan blokkeren, zelfs in gevallen van kritieke bugfixes.

Voor meer informatie over het beheren van gebruikerstoestemming binnen de app, raadpleeg Apple's ATT-documentatie.

Terug naar boven