[iOS] 4. Travailler avec ATT (App Tracking Transparency / iOS)
Aperçu
Toutes les nouvelles applications soumises à l'App Store doivent être conformes aux normes d'Apple. Transparence du suivi des applications (ATT) directives pour iOS 14.0+. Ces directives améliorent la confidentialité des utilisateurs en exigeant un consentement explicite avant le suivi. Ce document décrit les étapes nécessaires pour mettre en œuvre ATT lors de l'utilisation de notre SDK CMP. Toutes les méthodes liées à ATT ont été supprimées de notre SDK CMP v3 en raison de restrictions liées au cycle de vie de l'application, donc tout ATT doit être géré sur l'application mobile elle-même, et non via notre SDK, car notre SDK n'est pas au courant du cycle de vie de l'application mobile qui l'intègre. Selon Documentation officielle d'Apple:
Les appels à l'API n'apparaissent que lorsque l'état de l'application est UIApplicationStateActive
1. Ajoutez le framework ATT dans Xcode
Intégrer Cadre de transparence du suivi des applications, accédez à :
<PROJECT_NAME>.xcproject / <PROJECT_NAME>.xcworkspace -> General -> Frameworks, Libraries, and Embedded Content.
Assurez-vous que le framework est correctement intégré pour activer la fonctionnalité ATT.
2. Ajoutez NSUserTrackingUsageDescription
Incluez la clé suivante dans votre Info.plist fichier:
<key>NSUserTrackingUsageDescription</key>
<string>Your app description explaining why tracking permission is requested.</string>
Ce message sera affiché aux utilisateurs dans l'invite de consentement ATT.
3. Demande d'autorisation de suivi
Pour garantir un traitement approprié du consentement, demandez Autorisation ATT au premier lancement de l'application. Cela ne devrait se produire que si le statut de consentement de l'utilisateur est inconnu.
Exemple d'implémentation :
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")
}
}
}
}
}
Attention : Assurez-vous que la logique liée à l'interface utilisateur est exécutée sur le DispatchQueue.main
file d'attente, car le gestionnaire d'achèvement s'exécute sur une file d'attente simultanée par défaut.
4. Surveiller le statut d'autorisation de suivi
Utilisez ATTrackingManager.trackingAuthorizationStatus
pour suivre les changements de statut de consentement. Les états suivants sont possibles :
Pour plus de cohérence, traitez limité as dénié sauf si le consentement explicite du fournisseur est fourni.
5. Gérer le consentement dans Analytics et les SDK tiers
Si votre application utilise des analyses tierces, mettez à jour leur configuration en fonction du statut ATT de l'utilisateur :
- Désactiver le suivi analytique pour les utilisateurs qui refusent ou restreignent le suivi.
- Utiliser un suivi anonymisé si le fournisseur d'analyses propose un paramètre de désinscription (par exemple, celui de mParticle) se désengager mode).
- Examiner les politiques du SDK régulièrement pour rester conforme aux exigences de confidentialité d'Apple.
Exemple pour Firebase :
- Si aucun framework publicitaire n'est lié, Firebase Analytics n'accédera pas à l'identifiant publicitaire.
- Si vous utilisez des analyses avec des publicités, assurez-vous de respecter les directives ATT avant la soumission.
Pour les applications qui ne nécessitent pas d’analyses avancées, Analyses de l'App Store (accessible via App Store Connect) peut fournir des informations suffisantes tout en garantissant la conformité.
6. Considérations supplémentaires
-
Envelopper les appels ATT dans une vérification de version iOS pour éviter les crashs sur les anciennes versions :
if #available(iOS 14.0, *) { ATTrackingManager.requestTrackingAuthorization { _ in } }
-
Suivre le consentement pour les anciennes versions d’iOS en utilisant des indicateurs backend ou un stockage local.
-
Se conformer rapidement à l'ATT, car le non-respect peut bloquer les mises à jour de l'application, même en cas de corrections de bogues critiques.
Pour plus d'informations sur la gestion du consentement des utilisateurs au sein de l'application, reportez-vous à Documentation ATT d'Apple.