Aperçu
Ce document fournit des directives complètes pour la mise en œuvre de la gestion du consentement dans les applications mobiles, garantissant la conformité aux réglementations en matière de protection des données, notamment le RGPD, la LGPD et les exigences du cadre de transparence et de consentement (TCF) de l'IAB. Il traite du traitement approprié du consentement des utilisateurs pour les services tiers, notamment les réseaux publicitaires, les plateformes d'analyse et autres services de suivi.
Exigences de mise en œuvre
1. N'activez pas les services tiers sans vérification du consentement
Étapes de mise en œuvre :
- Vérifiez si l'utilisateur a donné son consentement
- Vérifiez le consentement pour le fournisseur/service concerné
- N'activez le service que si les deux conditions sont remplies
- Si aucun consentement n'a été donné pour un fournisseur ou une finalité donnés, vous devrez :
2. Vérification du consentement en deux phases
Mettez toujours en œuvre les deux vérifications requises par l'article 7, paragraphe 1, du RGPD et les spécifications IAB TCF :
Phase 1 : L'utilisateur a-t-il pris une décision ?
- Vérifiez si l'utilisateur a interagi avec la couche de consentement
- Si aucune décision n'a été prise, ne traitez pas les données à caractère personnel
Phase 2 : L'utilisateur consent-il à une finalité spécifique ?
- Vérifiez si le consentement a été donné pour le service tiers concerné
- Chaque fournisseur/service nécessite une vérification individuelle du consentement
Scénarios de workflow utilisateur
Scénario 1 : Parcours utilisateur normal
Déroulement : l'utilisateur ouvre l'application → le SDK affiche la fenêtre de consentement (si nécessaire) → l'utilisateur fait son choix → l'application poursuit avec les services appropriés
Important : la navigation via le bouton « Retour » ou les gestes est désactivée sur nos SDK mobiles, de sorte que l'utilisateur ne peut pas fermer la fenêtre de consentement sans avoir donné son consentement en bonne et due forme.
Étapes de mise en œuvre :
- Lancement de l'application : initialisez la plateforme de gestion des consentements. Pour cela, vous utiliserez la méthode checkAndOpen(). Consultez les exemples dans notre documentation d'aide (iOS, Android)
- Vérification du consentement : l'étape précédente déterminera automatiquement si un consentement est nécessaire ou non, afin que l'utilisateur puisse prendre une décision éclairée.
- Initialisation des services : initialisez les services en fonction des choix de consentement de l'utilisateur
Exemple de mise en œuvre :
// This hypothetical example assumes you have implemented:
// - OneSignal (s1448)
// - Google Ads/AdMob (s1)
// - Google Analytics (s26)
class yourGreatApp {
void function onAppLaunch() {
if shouldInitializeService("s148") {
OneSignal.initialize("your-token")
}
if shouldInitializeService("s1") {
AdMobService.initialize()
}
if shouldInitializeService("s26") {
FirebaseAnalytics.initializeApp("your-token")
}
}
boolean private function shouldInitializeService(string: purposeId):
// Phase 1: Check if user has made any decision
consentStatus = CMPManager.getUserStatus()
if consentStatus.status = "choiceDoesntExist"
return false // Consent Layer was not yet displayed to this client
return CMPManager.shared.getStatusForPurpose(id: purposeId) == "granted"
}
}
Scénario 2 : Pas de connexion Internet
Déroulement : l'utilisateur ouvre l'application sans connexion Internet → le CMP ne peut pas charger la couche de consentement → l'application doit gérer la situation de manière élégante
Remarques importantes :
- Notre SDK mobile ne peut pas récupérer la configuration depuis les serveurs
- Les décisions de consentement antérieures peuvent toujours être valables (conformément à l'article 7, paragraphe 3, du RGPD sur le retrait du consentement)
- L'application doit fonctionner en mode dégradé sans traiter de données à caractère personnel si aucun consentement n'a encore été donné.
Stratégie de mise en œuvre :
- Vérifiez s'il existe des données de consentement persistantes issues de sessions précédentes (vous utiliserez
getUserStatus()comme dans l'exemple précédent pour cela) - Si un consentement préalable existe, procédez normalement
- En l'absence de consentement persistant et d'accès à Internet :
-
- Bloquez tous les services tiers non essentiels
- Affichez un message convivial expliquant la situation
- Configurez un écouteur de connectivité pour réessayer lorsque la connexion est rétablie, et affichez la couche de consentement lorsque cela se produit
- Autorisez les fonctionnalités de base de l'application qui ne nécessitent pas de traitement des données personnelles
Considérations relatives à l'expérience utilisateur :
- Affichez un message clair concernant les fonctionnalités limitées
- Mettre en place une option de nouvelle tentative lorsque la connexion est disponible
- Précisez qu'aucune donnée personnelle ne sera partagée tant que les choix en matière de confidentialité n'auront pas été effectués
- Proposer une option permettant de continuer en mode limité
Scénario 3 : Aucun consentement nécessaire
Situation : l'utilisateur se trouve en dehors de l'UE et le CMP est configuré pour s'afficher uniquement dans l'UE → Aucune fenêtre de consentement n'apparaît
Stratégie de mise en œuvre :
- Initialisez la configuration CMP comme d'habitude
- Permettez à CMP de déterminer si la couche de consentement doit s'afficher en utilisant
checkAndOpen() - Si le consentement n'est pas requis, le statut de l'utilisateur renverra « choiceExists » et les fournisseurs et finalités seront définis sur « accordé ».
- Initialisez tous les services normalement
Réagir aux modifications relatives au consentement
Des modifications du consentement peuvent survenir dans plusieurs cas de figure :
- L'utilisateur ouvre les paramètres de consentement et modifie ses préférences
- Le consentement expire et doit être renouvelé (ce paramètre se trouve dans la section « Legal » de votre tableau de bord CMP)
- Les changements dans les exigences légales imposent de recueillir à nouveau le consentement
- L'utilisateur demande la suppression de ses données
La checkAndOpen() méthode réagira à toutes ces situations. Implémentez un écouteur qui suivra les changements de consentement. Vous pouvez utiliser la didReceiveConsent callback pour cela (iOS et Android). Si, à un moment donné, un fournisseur ou une finalité est rejeté, agissez immédiatement et bloquez les services en conséquence.
Liste de contrôle pour les tests
Tests fonctionnels
Test du flux normal :
- L'application démarre correctement et affiche la fenêtre de consentement lorsque cela est nécessaire
- Les choix de consentement des utilisateurs sont correctement enregistrés et respectés
- Les services ne sont activés qu'avec le consentement approprié
- L'application fonctionne correctement après les décisions de consentement
Test du flux de rejet :
- Le refus de l'utilisateur bloque correctement les services tiers
- L'application reste fonctionnelle ou passe en mode dégradé selon votre stratégie de revenus
Test hors ligne :
- L'application gère les situations sans connexion Internet avec élégance
- Les données de consentement mises en cache sont utilisées de manière appropriée
- Le mode respectueux de la vie privée s'active lorsque cela est nécessaire
- Le rétablissement de la connexion déclenche une logique de nouvelle tentative appropriée
Test de délai d'expiration :
- L'expiration du délai de la couche de consentement déclenche une solution de secours appropriée
- L'application ne se bloque pas et ne plante pas en cas de délai d'expiration
- Le mode de secours bloque correctement le traitement des données
- L'utilisateur reçoit une communication claire sur le statut
Tests de conformité
Vérification du traitement des données :
- Aucune donnée de suivi n'est envoyée avant que l'utilisateur n'ait donné son consentement
- Les identifiants des fournisseurs sont correctement mis en correspondance avec les services réels
- Le blocage individuel des services fonctionne comme prévu
- Granularité du consentement correctement mise en œuvre
Vérification des exigences légales :
- Le retrait du consentement met immédiatement fin au traitement des données
- Les droits des personnes concernées peuvent être exercés via l'application
- Une piste d'audit appropriée est conservée pour les décisions relatives au consentement
- Base juridique documentée pour tous les traitements de données
Dépannage
Problèmes courants et solutions
Problème : les services s'initialisent même lorsque le consentement est refusé
. Causes profondes :
- Vérification du consentement manquante avant le démarrage du service
- Mappage incorrect des identifiants de fournisseur
Solutions:
- Ajoutez une vérification du consentement explicite avant TOUTE initialisation de service tiers
- Vérifiez que les identifiants des fournisseurs correspondent à ceux de la liste globale des fournisseurs
- Assurez une synchronisation adéquate entre le consentement et la mise en service
- Indiquez clairement les cas où le consentement est révoqué
Problème : la fenêtre de consentement n'apparaît
jamais. Causes possibles :
- Configuration CMP incorrecte (ID, domaine, etc. erronés)
- Problèmes de connectivité réseau
- L'utilisateur se trouve en dehors de la zone géographique cible
- Problèmes d'intégration de l'application
Étapes de débogage :
- Vérifiez que la configuration du CMP correspond aux paramètres du compte
- Testez la connectivité réseau et l'accessibilité du serveur CMP
- Vérifiez les journaux de la console pour détecter les messages d'erreur
- Testez avec une fenêtre de consentement à ouverture forcée pour vérifier l'intégration
- Vérifiez les paramètres de ciblage géographique dans le tableau de bord CMP
Liste de contrôle des priorités de mise en œuvre
Priorité élevée (à terminer avant le lancement) :
- Vérification du consentement mise en œuvre avant TOUTE initialisation de service tiers
- Gestion correcte des erreurs en cas de délai d'expiration, de problèmes réseau et de configuration
- Les fonctionnalités de base de l'application sont préservées lorsque le consentement ne peut être déterminé
- Tous les identifiants de fournisseur ont été vérifiés et correctement mis en correspondance avec les services réels
Améliorations en cours :
- Suivez les statistiques sur votre tableau de bord CMP pour connaître les taux de réussite des consentements
- Tests A/B pour l'optimisation de la couche de consentement
- Intégration avec des cadres de conformité supplémentaires
- Meilleure information des utilisateurs sur les choix en matière de confidentialité
N'oubliez pas : en cas de doute concernant les exigences en matière de consentement, optez toujours pour l'approche la plus protectrice de la vie privée. Mieux vaut être trop prudent que de porter atteinte à la vie privée des utilisateurs ou d'enfreindre les exigences réglementaires.