Consentement aux cookies pour les Progressive Web Apps (PWA) : guide pour les éditeurs
Pourquoi les PWA sont un cas limite du consentement
Une Progressive Web App se comporte comme une application native — elle s’installe sur l’écran d’accueil, fonctionne hors ligne et met en cache de manière agressive — mais elle est toujours servie depuis un navigateur, donc les règles relatives aux cookies et au stockage web s’appliquent. C’est précisément cette nature hybride qui piège les éditeurs : les mêmes obligations de consentement RGPD que n’importe quel site web, superposées à des service workers et à des caches persistants qui peuvent silencieusement conserver des données et des scripts après qu’un utilisateur a dit non.
Où les PWA stockent les choses
Avant de pouvoir conditionner le stockage au consentement, vous devez connaître chaque endroit où une PWA peut persister des données :
- Cookies — la surface classique, régie par le consentement comme toujours.
- LocalStorage / IndexedDB — souvent utilisés pour l’état de l’application, mais aussi pour l’analytique et les identifiants publicitaires.
- Cache Storage — le service worker peut mettre en cache des scripts tiers (analytique, SDK publicitaires) afin qu’ils s’exécutent même hors ligne.
- Le service worker lui-même — persiste entre les sessions et peut réenregistrer le suivi au prochain lancement.
Le consentement doit régir tous ces éléments, pas seulement document.cookie.
Le modèle de service worker priorisant le consentement
Le principe fondamental : le service worker doit lire l’état du consentement avant de mettre en cache ou d’exécuter toute ressource tierce non essentielle. Un modèle propre ressemble à ceci :
- Stockez le signal de consentement quelque part où le service worker peut le lire — IndexedDB ou une entrée de cache que le CMP met à jour à chaque choix.
- Dans le gestionnaire
fetchdu service worker, refusez de mettre en cache les points de terminaison analytiques/publicitaires sauf si le consentement pour cette finalité est présent. - Lorsqu’un utilisateur retire son consentement, envoyez un message au service worker pour purger les scripts de suivi mis en cache et effacer les magasins IndexedDB concernés.
Ignorer cette dernière étape est la faille de conformité la plus courante des PWA : la bannière dit “refusé”, mais un script analytique mis en cache continue de se déclencher depuis le service worker au prochain lancement hors ligne.
UX de consentement hors ligne
Les PWA peuvent se lancer sans réseau. Votre bannière de consentement et le choix stocké de l’utilisateur doivent tous deux fonctionner hors ligne — mettez en cache l’interface du CMP elle-même, et ne réglez jamais par défaut sur “accordé” simplement parce que le serveur de consentement est inaccessible. Si vous ne pouvez pas confirmer un choix antérieur, traitez l’utilisateur comme non consentant et ne servez que les fonctionnalités essentielles jusqu’à ce que vous le puissiez.
Conséquences sur les revenus publicitaires
Pour les PWA financées par la publicité, l’état du consentement doit atteindre votre SDK publicitaire au moment de la requête, en ligne ou hors ligne. Une PWA correctement câblée transmet la chaîne IAB TCF et les signaux Consent Mode v2 aux partenaires de la demande comme un site normal ; une PWA mal configurée met en cache un état “pas de consentement” obsolète et effondre votre eCPM à des tarifs non personnalisés indéfiniment. Traitez la fraîcheur du consentement comme une métrique de revenus.
Comment FlexyConsent vous aide
FlexyConsent stocke l’enregistrement du consentement dans un magasin lisible par le service worker, émet des signaux TCF et Consent Mode v2 qui survivent aux lancements hors ligne, et expose un hook de retrait que vous pouvez relier à la purge du cache — afin que votre PWA reste conforme et que votre pile publicitaire conserve le signal de consentement le plus frais possible sur chaque surface.
Points clés à retenir
- Les PWA font face à toutes les obligations de consentement RGPD plus les complications liées aux service workers et au cache.
- Conditionnez les cookies, LocalStorage, IndexedDB et Cache Storage au consentement — pas seulement les cookies.
- Lors du retrait, purgez les scripts de suivi mis en cache et effacez les identifiants stockés.
- Gardez l’état du consentement frais et sûr hors ligne afin que les revenus publicitaires ne restent pas bloqués à des tarifs non personnalisés.