[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:
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.