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) guidelines for iOS 14.0+. These guidelines enhance user privacy by requiring explicit consent before tracking. This document outlines the necessary steps to implement ATT when using our CMP SDK. All methods related to ATT were removed from our CMP SDK v3 due to restrictions related to the lifecycle of the app, so all ATT needs to be managed on the mobile app itself, and not through our SDK, as our SDK is not aware of the lifecycle of the mobile app integrating it. 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