[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:
För konsistens, behandla begränsad as nekas om inte säljarens uttryckliga samtycke ges.
5. Hantera samtycke i Analytics och SDK:er från tredje part
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.