Cookietoestemming voor Progressive Web Apps (PWA's): een gids voor uitgevers
Waarom PWA's een toestemmingsuitzondering zijn
Een Progressive Web App gedraagt zich als een native app — hij installeert zich op het startscherm, draait offline en cachet agressief — maar wordt nog steeds vanuit een browser geserveerd, dus de regels voor cookies en webopslag gelden. Die hybride aard is precies waar uitgevers over struikelen: dezelfde GDPR-toestemmingsverplichtingen als bij elke website, gelaagd bovenop service workers en persistente caches die stilletjes gegevens en scripts kunnen bewaren nadat een gebruiker nee heeft gezegd.
Waar PWA's dingen opslaan
Voordat je opslag op toestemming kunt vergrendelen, moet je elke plek kennen waar een PWA gegevens kan bewaren:
- Cookies — het klassieke oppervlak, zoals altijd geregeld door toestemming.
- LocalStorage / IndexedDB — vaak gebruikt voor app-status, maar ook voor analytics en advertentie-identifiers.
- Cache Storage — de service worker kan scripts van derden (analytics, advertentie-SDK's) cachen zodat ze zelfs offline draaien.
- De service worker zelf — blijft bestaan over sessies heen en kan tracking opnieuw registreren bij de volgende start.
Toestemming moet al deze beheren, niet alleen document.cookie.
Het toestemming-eerst service worker-patroon
Het kernprincipe: de service worker moet de toestemmingsstatus lezen voordat hij niet-essentiële bronnen van derden cachet of uitvoert. Een schoon patroon ziet er zo uit:
- Sla het toestemmingssignaal ergens op waar de service worker het kan lezen — IndexedDB of een cache-vermelding die de CMP bij elke keuze bijwerkt.
- Weiger in de
fetch-handler van de service worker om analytics-/advertentie-eindpunten te cachen tenzij toestemming voor dat doel aanwezig is. - Wanneer een gebruiker toestemming intrekt, stuur dan een bericht naar de service worker om gecachte trackingscripts te verwijderen en de relevante IndexedDB-stores te wissen.
Het overslaan van die laatste stap is de meest voorkomende PWA-compliancekloof: de banner zegt “geweigerd,” maar een gecacht analyticsscript blijft afvuren vanuit de service worker bij de volgende offline start.
Offline toestemmings-UX
PWA's kunnen starten zonder netwerk. Je toestemmingsbanner én de opgeslagen keuze van de gebruiker moeten beide offline werken — cache de CMP-UI zelf, en val nooit terug op “verleend” alleen maar omdat de toestemmingsserver onbereikbaar is. Als je een eerdere keuze niet kunt bevestigen, behandel de gebruiker dan als niet-toegestemd en bied alleen essentiële functionaliteit aan totdat je het wel kunt.
Gevolgen voor advertentie-inkomsten
Voor advertentie-ondersteunde PWA's moet de toestemmingsstatus je advertentie-SDK bereiken op het moment van de aanvraag, online of offline. Een correct bedrade PWA geeft de IAB TCF-string en Consent Mode v2-signalen door aan demand-partners net als een normale site; een verkeerd geconfigureerde cachet een verouderde “geen toestemming”-status en laat je eCPM voor onbepaalde tijd inzakken naar niet-gepersonaliseerde tarieven. Behandel toestemmingsversheid als een inkomstenmetriek.
Hoe FlexyConsent helpt
FlexyConsent slaat het toestemmingsrecord op in een door de service worker leesbare store, zendt TCF- en Consent Mode v2-signalen uit die offline starts overleven, en stelt een intrekkings-hook beschikbaar die je aan cache-verwijdering kunt koppelen — zodat je PWA compliant blijft en je advertentiestack het meest verse mogelijke toestemmingssignaal behoudt over elk oppervlak.
Belangrijkste punten
- PWA's hebben te maken met volledige GDPR-toestemmingsplichten plus service worker- en cachecomplicaties.
- Vergrendel cookies, LocalStorage, IndexedDB en Cache Storage op toestemming — niet alleen cookies.
- Verwijder bij intrekking gecachte trackingscripts en wis opgeslagen identifiers.
- Houd de toestemmingsstatus vers en offlineveilig zodat advertentie-inkomsten niet vastzitten op niet-gepersonaliseerde tarieven.