DataFirefly Cookie Consent — Komplette Anleitung
Installation, Banner-Konfiguration, Google Consent Mode v2, Tracker-Audit und CNIL/Garante-Protokoll des WordPress-Plugins DataFirefly Cookie Consent.
Überblick
DataFirefly Cookie Consent ist ein WordPress- und WooCommerce-Plugin zur Verwaltung der Cookie-Einwilligung. Es kombiniert drei Bausteine: ein DSGVO/CNIL/Garante-konformes Einwilligungsbanner, die native Ausgabe der Google Consent Mode v2-Signale vor jedem Google-Tag, und ein Audit, das die tatsächlich auf Ihrer Website geladenen Tracker erkennt, mit exportierbarem Nachweisprotokoll.
Voraussetzungen
- WordPress 6.2 oder höher
- PHP 8.0 oder höher
- WooCommerce 8.0+ (optional — das Plugin funktioniert auch auf reinem WordPress, HPOS-Kompatibilität deklariert)
- GTM oder GA4 bereits installiert, wenn Sie vom Consent Mode v2 profitieren möchten (das Plugin installiert keine Google-Tags für Sie)
Installation
- Laden Sie die Datei
df-cookie-consent.zipaus Ihrem DataFirefly-Konto herunter. - Gehen Sie im WordPress-Admin zu Plugins → Installieren → Plugin hochladen, wählen Sie die ZIP-Datei aus und klicken Sie auf Jetzt installieren.
- Klicken Sie auf Aktivieren. Bei der Aktivierung erstellt das Plugin die Protokolltabelle
wp_dfcc_consent_log, generiert einen zufälligen Salt für das IP-Hashing und plant zwei Cron-Aufgaben (tägliche Protokollbereinigung und Tracker-Scan). - Ein neues Menü Cookie Consent erscheint in der Admin-Seitenleiste mit vier Seiten: Dashboard, Einstellungen, Audit und Protokoll.
Das Banner wird sofort im Frontend mit den Standardeinstellungen angezeigt (Leisten-Layout unten auf der Seite, helles Theme, Opt-in-Modus, alle 4 Kategorien aktiviert).
Banner-Konfiguration
Alle Einstellungen finden Sie unter Cookie Consent → Einstellungen.
Allgemeines Verhalten
- Banner aktivieren: globaler Plugin-Schalter.
- Modus: Opt-in (in der EU verpflichtend — kein nicht-essenzielles Cookie vor der Einwilligung) oder Opt-out.
- Alle-ablehnen-Button auf der ersten Ebene: standardmäßig aktiviert, gemäß der CNIL-Empfehlung vom 17. September 2020. Deaktivieren Sie ihn nicht, wenn Ihre Zielgruppe europäisch ist.
- Lebensdauer des Einwilligungs-Cookies: standardmäßig 180 Tage. Die Wahl des Nutzers wird im Cookie
dfcc_consentgespeichert (kodiert, first-party). - Richtlinienversion: erhöhen Sie diese Nummer, wenn sich Ihre Cookie-Richtlinie wesentlich ändert — das Banner wird automatisch allen Besuchern erneut angezeigt und das Protokoll speichert die neue Version.
Erscheinungsbild
- Layout: vollbreite Leiste, Eckkarte oder zentriertes Modal.
- Position: oben oder unten auf der Seite (für Leisten- und Karten-Layouts).
- Theme: hell, dunkel oder auto (folgt der Systempräferenz des Besuchers via prefers-color-scheme).
- Akzentfarbe: passt die Farbe des Hauptbuttons an.
Auf Mobilgeräten (unter 640 px) wechselt das Banner automatisch in den Vollbildmodus, um lesbar zu bleiben. Animationen respektieren prefers-reduced-motion.
Cookie-Kategorien
Vier Kategorien sind vorkonfiguriert, jede mit anpassbarem Label und Beschreibung:
- Notwendig (necessary) — immer aktiv, vom Besucher nicht deaktivierbar: Warenkorb, Sitzung, Sicherheit.
- Funktional (functional) — Präferenzen, Sprache, Chat.
- Statistik (analytics) — Google Analytics, Matomo usw.
- Marketing (marketing) — Google Ads, Meta Pixel, Remarketing.
Texte und Links
Der Banner-Titel, der Einleitungstext und die Labels der vier Buttons (Alle akzeptieren, Alle ablehnen, Anpassen, Meine Auswahl speichern) sind in den Einstellungen anpassbar. Tragen Sie auch die URLs Ihrer Datenschutzerklärung und Ihrer Cookie-Richtlinie ein — sie werden als dezente Links unter den Buttons angezeigt. Alle Texte laufen über die WordPress-Übersetzungsfunktionen: Das Plugin wird mit 5 Katalogen (FR, EN, ES, DE, IT) ausgeliefert und bleibt via Loco Translate überschreibbar.
Google Consent Mode v2
Das ist das technische Herzstück des Plugins. Seit März 2024 verlangt Google, dass europäische Websites die 7 Consent Mode v2-Signale ausgeben, um weiterhin Google Ads-Conversions zu messen und GA4-Zielgruppen aufzubauen.
Funktionsweise
Das Plugin gibt einen gtag('consent', 'default', ...)-Block im HTML-Head mit wp_head-Priorität 1 aus — also vor jedem GTM-Container oder GA4-Tag, das auf normalem Weg geladen wird. Die 7 ausgegebenen Signale:
ad_storage,ad_user_data,ad_personalization— gesteuert durch die Kategorie Marketinganalytics_storage— gesteuert durch die Kategorie Statistikfunctionality_storage,personalization_storage— gesteuert durch die Kategorie Funktionalsecurity_storage— immer granted (Google-Empfehlung)
Das Mapping Kategorien → Signale ist automatisch: keine manuelle Konfiguration nötig. Wenn der Besucher seine Wahl trifft, wird sofort ein gtag('consent', 'update', ...) ausgegeben und die Wahl wird auf jeder folgenden Seite als Standardzustand wieder angewendet.
Consent Mode-Einstellungen
- EEA-Region: standardmäßig gilt das strikte deny nur für die 31 EWR-Länder (plus Vereinigtes Königreich und Schweiz) über den gtag-Parameter region — der Rest der Welt bleibt auf granted. Native Cloudflare-Erkennung über den CF-IPCountry-Header.
- url_passthrough: standardmäßig aktiviert. Bewahrt die Klick-Identifikatoren gclid und dclid in den URLs auch bei Ablehnung, was cookielose Conversion-Messung ermöglicht.
- ads_data_redaction: standardmäßig aktiviert. Anonymisiert die an Google gesendeten Nutzerdaten, wenn ad_storage auf denied steht.
- wait_for_update: standardmäßig 500 ms. Wartezeit, die den Google-Tags für die Einwilligungs-Aktualisierung eingeräumt wird.
Überprüfen, dass alles funktioniert
- Öffnen Sie Ihre Website im privaten Modus, öffnen Sie die Browser-Konsole und tippen Sie
dataLayer: Sie sollten den consent-default-Eintrag vor dem gtm.js-Eintrag sehen. - In Google Tag Assistant oder im GTM-Preview-Modus sollte der Consent-Tab die 7 Signale mit ihrem Zustand anzeigen.
- Akzeptieren Sie das Banner und tippen Sie erneut
dataLayer: Ein consent-update-Eintrag mit den neuen Zuständen sollte erscheinen.
Compliance-Audit
Die Seite Cookie Consent → Audit startet einen Scan, der Ihre Startseite abruft und das tatsächlich ausgelieferte HTML analysiert.
Was der Scan erkennt
- 23 bekannte Tracker: 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 und andere — jeder in seiner erwarteten Einwilligungskategorie klassifiziert.
- 11 WordPress-Risiko-Plugins: MonsterInsights, Site Kit, PixelYourSite, Facebook/Pinterest/TikTok for WooCommerce, HubSpot, MC4WP und andere Plugins, die eigenständig Tracker injizieren.
- Serverseitige Cookies: Snapshot mit automatischer Anbieter-Identifikation (_ga, _fbp, _gcl usw.).
Score und Empfehlungen
Der Scan erzeugt einen Compliance-Score von 0 bis 100, basierend auf der Differenz zwischen Ihren deklarierten Kategorien und den tatsächlich erkannten Trackern. Probleme werden in drei Stufen klassifiziert — critical, warning, info — jeweils mit einer umsetzbaren Empfehlung (zum Beispiel: ein Marketing-Tracker erkannt, obwohl die Kategorie im Banner deaktiviert ist). Ein automatischer Scan läuft auch im Hintergrund über den Cron dfcc_cron_scan_trackers.
Einwilligungsprotokoll
Die Seite Cookie Consent → Protokoll listet jedes Einwilligungsereignis auf, das in der dedizierten Tabelle wp_dfcc_consent_log gespeichert ist.
Gespeicherte Daten
- UTC-Zeitstempel, persistente anonyme UID (Multi-Event-Nachverfolgung desselben Besuchers)
- Ereignistyp: accept_all, reject_all, custom, withdraw
- Vollständiger Zustand pro Kategorie, Richtlinien- und Banner-Version
- Doppelt geschützte IP: SHA-256-Hash mit dem bei der Aktivierung generierten zufälligen Salt (irreversibel), plus auf /24 (IPv4) oder /64 (IPv6) gekürzte IP für anonyme Analyse
- User Agent, Seiten-URL, Referer, Region, Sprache, WordPress-user_id falls angemeldet
Filter und Export
Filtern Sie nach Zeitraum, Ereignistyp oder UID und exportieren Sie dann als CSV (UTF-8 BOM, Semikolon-Trennzeichen — öffnet sich direkt in französischem Excel) oder als Pretty JSON. Diese Exporte bilden Ihren Einwilligungsnachweis im Falle einer CNIL- oder Garante-Prüfung.
Aufbewahrung
Standardmäßig wird das Protokoll 1825 Tage (5 Jahre, die von der CNIL empfohlene Dauer) aufbewahrt. Die automatische Bereinigung läuft jede Nacht über den Cron dfcc_cron_purge_logs. Die Aufbewahrung ist in den Einstellungen anpassbar. Hinweis: Die Deaktivierung des Plugins bewahrt die Logs (Einwilligungsnachweis); nur die vollständige Deinstallation über Plugins → Löschen bereinigt die Tabelle, die Optionen und die Crons.
Link „Meine Cookies verwalten“ im Footer
Die Vorschriften verlangen, dass der Besucher seine Wahl jederzeit ändern kann. Zwei Optionen:
- Shortcode: Platzieren Sie
Meine Cookies verwaltenin einem Footer-Widget oder -Menü — es erzeugt einen Link, der das Anpassungsmodal wieder öffnet. - JavaScript-API: Rufen Sie
window.dfcc.open()von jedem Element Ihres Themes auf.
Entwickler-API
JavaScript-API
Das globale Objekt window.dfcc stellt bereit:
dfcc.open()— öffnet das Anpassungsmodaldfcc.accept()— akzeptiert alle Kategoriendfcc.reject()— lehnt alle optionalen Kategorien abdfcc.withdraw()— widerruft die Einwilligung (ein withdraw-Ereignis wird protokolliert)dfcc.getConsent()— gibt den vollständigen Einwilligungszustand zurückdfcc.hasConsent('analytics')— prüft eine bestimmte Kategorie (nützlich, um eigene Skripte zu bedingen)
REST-Endpoint
Ein POST-Endpoint ist unter wp-json/dfcc/v1/consent verfügbar, um ein Einwilligungsereignis aus Ihrem eigenen Code zu protokollieren (Nonce-geschützt).
WordPress-Hooks
dfcc_before_banner_render— Action, die vor dem Rendern des Banners ausgelöst wird (um es z. B. auf bestimmten Seiten auszublenden)dfcc_after_consent_logged— Action, die nach jedem Protokolleintrag ausgelöst wird (um z. B. ein CRM zu synchronisieren)dfcc_consent_mode_defaults— Filter auf die Standardzustände der 7 Consent Mode-Signaledfcc_scan_trackers_patterns— Filter, um dem Scanner eigene Erkennungsmuster hinzuzufügen
Fehlerbehebung
- Die Consent Mode-Signale erscheinen nicht vor GTM: Prüfen Sie, dass kein Performance-Plugin die Head-Skripte verschiebt oder verzögert. Der dfcc-consent-mode-default-Block muss inline und nicht verzögert bleiben.
- Das Banner erscheint bei jedem Besuch erneut: Prüfen Sie, dass kein Caching-System eine eingefrorene Seite mit einem alten Cookie ausliefert und dass die Cookie-Lebensdauer nicht auf 0 steht.
- Der Audit-Scan schlägt fehl: Der Server muss eine HTTP-Anfrage an seine eigene Startseite stellen können. Bei manchen Hostern mit blockiertem Loopback erlauben Sie lokale Anfragen oder prüfen Sie die Firewall.
- Die protokollierten IPs sind die von Cloudflare: Das Plugin liest CF-Connecting-IP prioritär — wenn das Problem weiterbesteht, prüfen Sie, ob Ihre Serverkonfiguration die Cloudflare-Header weiterleitet.