WP WordPress Beginner

DataFirefly Cookie Consent: volledige handleiding

Installatie, instelling van de banner, Google Consent Mode v2, audit van de trackers en het toestemmingslogboek van de WordPress-plugin DataFirefly Cookie Consent.

Bijgewerkt Moduleversie 1.0.0

Overzicht

DataFirefly Cookie Consent is een plugin voor WordPress en WooCommerce waarmee u de toestemming voor cookies beheert. Ze combineert drie onderdelen: een toestemmingsbanner die voldoet aan de AVG en aan de richtlijnen van de CNIL en de Garante, het ingebouwd uitsturen van de signalen van Google Consent Mode v2 vóór elke Google-tag, en een audit die de trackers opspoort die daadwerkelijk op uw site worden geladen, met een exporteerbaar bewijslogboek.

Vereisten

  • WordPress 6.2 of hoger
  • PHP 8.0 of hoger
  • WooCommerce 8.0+ (optioneel: de plugin werkt ook op WordPress alleen, de HPOS-compatibiliteit is verklaard)
  • GTM of GA4 al geïnstalleerd als u Consent Mode v2 wilt gebruiken (de plugin installeert de Google-tags niet voor u)

Installatie

  1. Download het bestand df-cookie-consent.zip vanuit uw DataFirefly-account.
  2. Ga in het WordPress-beheer naar Plugins → Nieuwe plugin → Plugin uploaden, selecteer de ZIP en klik op Nu installeren.
  3. Klik op Activeren. Bij de activering maakt de plugin de logboektabel wp_dfcc_consent_log aan, genereert ze een willekeurige salt voor het hashen van de IP-adressen en plant ze twee crontaken in (dagelijkse opruiming van het logboek en scan van de trackers).
  4. Er verschijnt een nieuw menu Cookie Consent in de beheerzijbalk, met vier pagina’s: Dashboard, Instellingen, Audit en Logboek.

De banner verschijnt meteen aan de voorkant met de standaardinstellingen (balklayout onderaan de pagina, licht thema, opt-in-modus, de 4 categorieën ingeschakeld).

De banner instellen

Alle instellingen vindt u in Cookie Consent → Instellingen.

Algemeen gedrag

  • Banner inschakelen: de hoofdschakelaar van de plugin.
  • Modus: opt-in (verplicht in de EU, geen enkele niet-essentiële cookie vóór toestemming) of opt-out.
  • Knop Alles weigeren op het eerste niveau: standaard ingeschakeld, conform de aanbeveling van de CNIL van 17 september 2020. Schakel die niet uit als uw publiek Europees is.
  • Levensduur van de toestemmingscookie: standaard 180 dagen. De keuze van de gebruiker wordt bewaard in de cookie dfcc_consent (gecodeerd, first-party).
  • Versie van het beleid: verhoog dit nummer wanneer uw cookiebeleid inhoudelijk verandert. De banner wordt dan automatisch opnieuw aan alle bezoekers getoond en het logboek legt de nieuwe versie vast.

Vormgeving

  • Layout: balk over de volledige breedte, hoekkaart of gecentreerd modaal venster.
  • Positie: boven- of onderaan de pagina (voor de layouts balk en kaart).
  • Thema: licht, donker of automatisch (volgt de systeemvoorkeur van de bezoeker via prefers-color-scheme).
  • Accentkleur: past de kleur van de hoofdknop aan.

Op mobiel (onder 640 px) gaat de banner automatisch schermvullend, zodat hij leesbaar blijft. De animaties respecteren prefers-reduced-motion.

Cookiecategorieën

Er zijn vier categorieën vooraf ingesteld, elk met een aanpasbaar label en een aanpasbare beschrijving:

  • Noodzakelijk (necessary): altijd actief en niet uit te schakelen door de bezoeker: winkelwagen, sessie, beveiliging.
  • Functioneel (functional): voorkeuren, taal, chat.
  • Statistieken (analytics): Google Analytics, Matomo en dergelijke.
  • Gerichte reclame (marketing): Google Ads, Meta Pixel, remarketing.

De titel van de banner, de inleidende tekst en de labels van de vier knoppen (Alles accepteren, Alles weigeren, Aanpassen, Mijn keuzes opslaan) zijn in de instellingen aan te passen. Vul ook de URL’s van uw privacyverklaring en uw cookiebeleid in: die verschijnen als discrete links onder de knoppen. Alle teksten lopen via de vertaalfuncties van WordPress: de plugin wordt geleverd met 5 catalogi (FR, EN, ES, DE, IT) en blijft aanpasbaar via Loco Translate.

Dit is de technische kern van de plugin. Sinds maart 2024 eist Google dat Europese sites de 7 signalen van Consent Mode v2 uitsturen om conversies in Google Ads te blijven meten en GA4-doelgroepen op te bouwen.

Werking

De plugin drukt een blok gtag('consent', 'default', ...) af in de head-tag met prioriteit 1 van wp_head, dus vóór elke GTM-container of GA4-tag die op de gebruikelijke manier wordt geladen. De 7 uitgestuurde signalen:

  • ad_storage, ad_user_data en ad_personalization, aangestuurd door de categorie Gerichte reclame
  • analytics_storage, aangestuurd door de categorie Statistieken
  • functionality_storage en personalization_storage, aangestuurd door de categorie Functioneel
  • security_storage, altijd granted (aanbeveling van Google)

De koppeling tussen categorieën en signalen gebeurt automatisch: handmatig instellen is niet nodig. Zodra de bezoeker zijn keuze maakt, wordt er meteen een gtag('consent', 'update', ...) uitgestuurd, en die keuze wordt op elke volgende pagina opnieuw als standaardstatus toegepast.

  • EER-regio: standaard geldt de strikte deny alleen voor de 31 landen van de EER (plus het Verenigd Koninkrijk en Zwitserland) via de parameter region van gtag; de rest van de wereld blijft op granted. Cloudflare wordt ingebouwd herkend via de header CF-IPCountry.
  • url_passthrough: standaard ingeschakeld. Behoudt de klikidentificaties gclid en dclid in de URL’s, ook bij een weigering, waardoor conversies zonder cookies gemeten kunnen worden.
  • ads_data_redaction: standaard ingeschakeld. Maskeert de gebruikersgegevens die naar Google gaan wanneer ad_storage op denied staat.
  • wait_for_update: standaard 500 ms. De tijd die de Google-tags krijgen om op de toestemmingsupdate te wachten.

Controleren of alles werkt

  1. Open uw site in een privévenster, open de browserconsole en typ dataLayer: u hoort de regel consent default te zien vóór de regel gtm.js.
  2. In Google Tag Assistant of de previewmodus van GTM moet het tabblad Consent de 7 signalen met hun status tonen.
  3. Accepteer de banner en typ opnieuw dataLayer: er hoort een regel consent update te verschijnen met de nieuwe statussen.

Conformiteitsaudit

De pagina Cookie Consent → Audit start een scan die uw startpagina ophaalt en de HTML analyseert die daadwerkelijk wordt geserveerd.

Wat de scan herkent

  • 23 bekende trackers: Google Analytics 4, GTM, Meta Pixel, TikTok, LinkedIn, Pinterest, Snapchat, Twitter/X, Bing UET, Matomo, Microsoft Clarity, Hotjar, Mixpanel, Plausible, HubSpot, Intercom, Crisp, Tawk, YouTube, Vimeo, Stripe en andere, elk ingedeeld in de toestemmingscategorie waarin ze horen.
  • 11 WordPress-plugins met risico: MonsterInsights, Site Kit, PixelYourSite, Facebook, Pinterest en TikTok for WooCommerce, HubSpot, MC4WP en andere plugins die zelf trackers plaatsen.
  • Cookies die aan de serverzijde worden geplaatst: een momentopname met automatische herkenning van de leverancier (_ga, _fbp, _gcl en dergelijke).

Score en aanbevelingen

De scan levert een conformiteitsscore van 0 tot 100 op, gebaseerd op het verschil tussen uw opgegeven categorieën en de trackers die daadwerkelijk zijn gevonden. De problemen worden in drie niveaus ingedeeld (critical, warning en info), elk met een concrete aanbeveling (bijvoorbeeld: er is een marketingtracker gevonden terwijl die categorie in de banner is uitgeschakeld). Er draait ook een automatische scan op de achtergrond via de cron dfcc_cron_scan_trackers.

Toestemmingslogboek

De pagina Cookie Consent → Logboek toont elke toestemmingsgebeurtenis die in de eigen tabel wp_dfcc_consent_log is vastgelegd.

Vastgelegde gegevens

  • UTC-tijdstempel en een blijvende anonieme UID (zodat meerdere gebeurtenissen van dezelfde bezoeker te volgen zijn)
  • Type gebeurtenis: accept_all, reject_all, custom of withdraw
  • De volledige status per categorie, de versie van het beleid en van de banner
  • Het IP-adres dubbel beschermd: een SHA-256-hash met de willekeurige salt die bij de activering is aangemaakt (onomkeerbaar), plus een IP-adres afgekapt op /24 (IPv4) of /64 (IPv6) voor anonieme analyse
  • User agent, URL van de pagina, referer, regio, taal en het WordPress-gebruikers-ID indien ingelogd

Filters en export

Filter op periode, type gebeurtenis of UID, en exporteer daarna naar CSV (UTF-8 met BOM, puntkomma als scheidingsteken, opent rechtstreeks in de Franse Excel) of naar leesbare JSON. Die exports vormen uw bewijs van toestemming bij een controle door de CNIL of de Garante.

Bewaartermijn

Standaard blijft het logboek 1825 dagen bewaard (5 jaar, de termijn die de CNIL aanbeveelt). De automatische opruiming draait elke nacht via de cron dfcc_cron_purge_logs. De bewaartermijn is in de instellingen aan te passen. Let op: de plugin deactiveren behoudt de logs (uw bewijs van toestemming); alleen een volledige verwijdering via Plugins → Verwijderen wist de tabel, de opties en de crons.

De regelgeving vereist dat de bezoeker zijn keuze op elk moment kan wijzigen. Er zijn twee mogelijkheden:

  • Shortcode: plaats Gérer mes cookies in een widget of een footermenu; die genereert een link die het aanpassingsvenster opnieuw opent.
  • JavaScript-API: roep window.dfcc.open() aan vanuit elk element van uw thema.

API voor ontwikkelaars

JavaScript-API

Het globale object window.dfcc biedt:

  • dfcc.open(): opent het aanpassingsvenster
  • dfcc.accept(): accepteert alle categorieën
  • dfcc.reject(): weigert alle optionele categorieën
  • dfcc.withdraw(): trekt de toestemming in (de gebeurtenis withdraw wordt gelogd)
  • dfcc.getConsent(): geeft de volledige toestemmingsstatus terug
  • dfcc.hasConsent('analytics'): controleert een bepaalde categorie (handig om uw eigen scripts voorwaardelijk te laden)

REST-endpoint

Er is een POST-endpoint beschikbaar op wp-json/dfcc/v1/consent om vanuit uw eigen code een toestemmingsgebeurtenis vast te leggen (beveiligd met een nonce).

WordPress-hooks

  • dfcc_before_banner_render: actie die afgaat vóór het weergeven van de banner (bijvoorbeeld om hem op bepaalde pagina’s te verbergen)
  • dfcc_after_consent_logged: actie die afgaat na elke schrijfactie in het logboek (bijvoorbeeld om een CRM te synchroniseren)
  • dfcc_consent_mode_defaults: filter op de standaardstatussen van de 7 Consent Mode-signalen
  • dfcc_scan_trackers_patterns: filter om uw eigen detectiepatronen aan de scanner toe te voegen

Probleemoplossing

  • De Consent Mode-signalen verschijnen niet vóór GTM: controleer of geen enkele prestatieplugin de scripts uit de head-tag verplaatst of uitstelt. Het blok dfcc-consent-mode-default moet inline blijven en mag niet worden uitgesteld.
  • De banner verschijnt bij elk bezoek opnieuw: controleer of een cachesysteem geen bevroren pagina met een oude cookie serveert, en of de levensduur van de cookie niet op 0 staat.
  • De auditscan mislukt: de server moet een HTTP-verzoek naar zijn eigen startpagina kunnen doen. Sta bij hosting met geblokkeerde loopback de lokale verzoeken toe, of controleer de firewall.
  • De gelogde IP-adressen zijn die van Cloudflare: de plugin leest bij voorkeur CF-Connecting-IP. Blijft het probleem bestaan, controleer dan of uw serverconfiguratie de Cloudflare-headers wel doorgeeft.
Was deze pagina nuttig?

Loopt u nog vast? Neem contact op met support