# DataFirefly Cookie Consent: volledige handleiding

> 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…

- Pagina: <https://www.datafirefly.com/nl/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/>
- Taal: nl
- Bijgewerkt op: 2026-08-19
- Andere talen: [fr](https://www.datafirefly.com/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [en](https://www.datafirefly.com/en/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [es](https://www.datafirefly.com/es/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [de](https://www.datafirefly.com/de/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [it](https://www.datafirefly.com/it/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [pl](https://www.datafirefly.com/pl/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [pt](https://www.datafirefly.com/pt/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md)
- Index: <https://www.datafirefly.com/nl/documentation/llms.txt>

## 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.

### Teksten en links

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.

## Google Consent Mode v2

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.

### Instellingen van Consent Mode

- **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.

## Link "Mijn cookies beheren" in de footer

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

- **Shortcode**: plaats `` 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.
