Info
Innehåll

[iOS] 4. Arbeta med ATT (App Tracking Transparency / iOS)

Översikt

Alla nya appar som skickas till App Store måste överensstämma med Apples App Tracking Transparency (ATT) riktlinjer för iOS 14.0+. Dessa riktlinjer förbättrar användarnas integritet genom att kräva uttryckligt samtycke innan spårning. Det här dokumentet beskriver de nödvändiga stegen för att implementera ATT när du använder vår CMP SDK. Alla metoder relaterade till ATT togs bort från vår CMP SDK v3 på grund av restriktioner relaterade till appens livscykel, så all ATT måste hanteras på själva mobilappen och inte via vår SDK, eftersom vår SDK inte är medveten om livscykeln för mobilappen som integrerar den. Enligt Apples officiella dokumentation:

Anrop till API:et frågar bara när applikationstillståndet är UIApplicationStateActive

1. Lägg till ATT-ramverket i Xcode

Att integrera AppTrackingTransparency.framework, navigera till:

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

Se till att ramverket är korrekt inbäddat för att aktivera ATT-funktionalitet.


2. Lägg till NSUserTrackingUsageDescription

Inkludera följande nyckel i din Info.plist fil:

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

Det här meddelandet kommer att visas för användare i ATT-samtyckesprompten.


3. Begär spårningsauktorisering

För att säkerställa korrekt samtyckeshantering, begär ATT-tillstånd vid den första applanseringen. Detta bör endast ske om användarens samtyckesstatus är okänd.

Exempel på implementering:

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

Notera: Se till att UI-relaterad logik exekveras på DispatchQueue.main kö, eftersom kompletteringshanteraren körs på en samtidig kö som standard.


4. Övervaka spårningsbehörighetsstatus

Använda ATTrackingManager.trackingAuthorizationStatus för att spåra samtyckesstatusändringar. Följande tillstånd är möjliga:

  • .authorized - Användarens samtycke.
  • .denied - Användaren nekade spårningstillstånd.
  • .notDetermined - Användaren har inte gjort något val ännu.
  • .restricted - Spårning är begränsad (t.ex. via MDM).

För konsistens, behandla begränsad as nekas om inte säljarens uttryckliga samtycke ges.


Om din app använder analyser från tredje part uppdaterar du deras konfiguration baserat på användarens ATT-status:

  • Inaktivera analysspårning för användare som nekar eller begränsar spårning.
  • Använd anonymiserad spårning om analysleverantören erbjuder en opt-out-inställning (t.ex. mParticles välja bort läge).
  • Granska SDK-policyer regelbundet för att följa Apples sekretesskrav.

Exempel för Firebase:

  • Om inga annonsramverk är länkade kommer Firebase Analytics inte åtkomst till annonseringsidentifieraren.
  • Om du använder analyser med annonser, se till att du följer ATT-riktlinjerna innan du skickar in.

För appar som inte kräver avancerad analys, App Store Analytics (tillgänglig via App Store Connect) kan ge tillräckliga insikter samtidigt som efterlevnaden säkerställs.


6. Ytterligare överväganden

  • Slå in ATT-samtal i en iOS-versionskontroll för att undvika krascher på äldre versioner:

    if #available(iOS 14.0, *) {
        ATTrackingManager.requestTrackingAuthorization { _ in }
    }
    
  • Spåra samtycke för äldre iOS-versioner använda backend-flaggor eller lokal lagring.

  • Följ ATT omedelbart, eftersom bristande efterlevnad kan blockera appuppdateringar, även i fall av kritiska buggfixar.

För mer information om hantering av användarsamtycke i appen, se Apples ATT-dokumentation.

Tillbaka till toppen