Installation & Aktivierung
Consenta wird als normales WordPress-Plugin installiert. Du benötigst WordPress 5.8+ und PHP 7.4+.
Plugin installieren
Logge dich unter Mein Konto ein und lade die aktuelle consenta.zip herunter.
Gehe zu WordPress Admin → Plugins → Installieren → Plugin hochladen. Wähle die ZIP-Datei und klicke Jetzt installieren.
Klicke auf Plugin aktivieren. Consenta erscheint danach im linken Menü unter Consenta.
Gehe zu Consenta → Einstellungen → Lizenz und gib deinen Lizenzschlüssel ein (aus der Bestätigungs-E-Mail).
Lizenz aktivieren
Du findest deinen Schlüssel in der Bestätigungs-E-Mail (Format: CONSENTA-XXXX-XXXX-XXXX) oder unter Mein Konto → Lizenzen.
Öffne Consenta → Einstellungen → Lizenz, füge den Schlüssel ein und klicke Aktivieren.
Nach erfolgreicher Aktivierung zeigt das Dashboard Aktiv und deinen Plan (Starter / Pro / Agency).
Cookie-Scan ausführen
Der Cookie Scanner durchsucht deine Website automatisch nach allen gesetzten Cookies und kategorisiert sie in die 6 Standard-Kategorien.
Gehe zu Consenta → Cookie Scanner und klicke Scan starten. Der Scanner durchsucht alle Seiten deiner Website.
Nach dem Scan siehst du alle gefundenen Cookies mit Name, Anbieter, Kategorie und Laufzeit. Prüfe die automatische Kategorisierung.
Ändere bei Bedarf die Kategorie einzelner Cookies per Dropdown. Die 6 Kategorien sind: Notwendig, Funktional, Statistik, Marketing, Präferenzen und Sonstige.
Dialog / Banner / Widget anpassen
Consenta bietet drei Consent-Elemente: den Consent-Dialog (Modal), den Cookie Banner und das Privacy Widget (Toggle). Alle sind unter Consenta → Darstellung konfigurierbar.
Consent-Kategorien verwalten
Consenta verwendet 6 Standard-Kategorien für die granulare Cookie-Verwaltung:
| Kategorie | Beschreibung |
|---|---|
| Notwendig | Technisch erforderliche Cookies (immer aktiv, nicht abwählbar) |
| Funktional | Cookies für erweiterte Funktionalität (z.B. Sprache, Region) |
| Statistik | Analyse-Cookies (z.B. Google Analytics, Matomo) |
| Marketing | Werbe- und Remarketing-Cookies (z.B. Facebook Pixel, Google Ads) |
| Präferenzen | Cookies für persönliche Einstellungen (z.B. Theme, Layout) |
| Sonstige | Nicht kategorisierte Cookies |
Google Fonts — DSGVO-konform self-hosted v1.12
Seit Version 1.12.0 kannst du im Dialog- oder Banner-Editor eine Google-Schrift auswählen — und Consenta stellt sicher, dass sie vollständig DSGVO-konform ausgeliefert wird, ohne IP-Adressen-Übermittlung an Google. Damit ist das LG-München-Urteil 2022 (3 EO 1361/21) automatisch sauber abgedeckt.
Schriftart auswählen
Unter Consenta → Einstellungen → Dialog (bzw. Banner) findest du das Feld Schriftart. Wähle den Eintrag "Google Font (DSGVO-konform self-hosted)".
Ein Picker mit 160 kuratierten Familien öffnet sich (Inter, Roboto, Open Sans, Poppins, Montserrat, Playfair Display, Lora, Noto Sans JP/KR/SC, Cairo, Vazirmatn …). Suchfeld + Kategorie-Filter (Sans-Serif / Serif / Display / Handschrift / Monospace) — Live-Vorschau mit der echten Schrift.
Klick auf Speichern: Consenta lädt die woff2-Files (latin + latin-ext Subsets) und das CSS lokal nach wp-content/uploads/consenta-fonts/{slug}/. Im selben Verzeichnis landet die OFL- bzw. Apache-2.0-Lizenzdatei (Deployment-Pflicht laut OFL §3 / Apache §4(a)).
Andere Google-Font einsetzen (alle 1500+)
Reicht dir die Top-160-Auswahl nicht, klick im Picker auf "Andere Google-Font einsetzen" und tippe einen beliebigen Slug aus dem Google-Fonts-Katalog (crete-round, roboto-flex, playfair-display-sc, noto-sans-display …). Consenta leitet den Family-Namen aus dem Slug ab und lädt ihn beim nächsten Speichern. Existiert die Schrift nicht im Google-Katalog, schlägt der Save mit konkreter Fehlermeldung fehl.
So ist sichergestellt: null Anfragen an Google
- Im Frontend wird das CSS aus deiner eigenen Domain geladen (
wp-content/uploads/consenta-fonts/{slug}/{slug}.css) — die @font-face-Deklarationen verweisen auf lokale woff2-Dateien. - Es gibt im Frontend keine Verbindung zu
fonts.googleapis.comoderfonts.gstatic.com. Damit bleibt die Besucher-IP bei dir. - Im Admin-Bereich wird Google CDN für die Picker-Vorschau geladen — das ist juristisch unkritisch, weil der Admin Datensubjekt seiner eigenen Site ist und bewusst mit dem Editor arbeitet.
Auto-Verify: Schutz gegen verlorene Downloads
Bei jedem Aufruf einer Consenta-Admin-Seite prüft Consenta, ob die ausgewählten Schriften wirklich lokal vorhanden sind. Fehlt das CSS einer Familie (z. B. weil der initiale Save in PHP-Timeout lief oder ein Outbound-Block kurz aktiv war), wird der Download still re-versucht. Schlägt auch das fehl, erscheint eine rote Admin-Notice mit dem konkreten Fehler (HTTP-Code, fehlende Schreibrechte, SSL-Cert-Problem) — kein stummes Zurückfallen auf system-ui mehr.
cURL error 60: SSL certificate problem (kaputtes CA-Bundle auf lokalen Dev-Hosts oder Corporate-Proxies) versucht Consenta den Download genau einmal mit sslverify=false automatisch erneut. Die heruntergeladenen Inhalte sind statische Schriften ohne Credentials, woff2-URLs werden gegen fonts.gstatic.com whitelisted — MITM-Risiko ist überschaubar.Sprachen verwalten v1.8
Consenta liefert alle Dialog-, Banner- und Widget-Texte standardmäßig in 34 Sprachen aus. Die aktuelle Sprache wird automatisch anhand von URL-Prefix (/en/, /fr/, …), consenta_lang-Cookie oder WordPress-Locale erkannt — du musst nichts konfigurieren, es funktioniert direkt.
Texte anpassen
Unter Consenta → Einstellungen → Sprachen findest du alle 34 Sprachen. Jede zeigt ihren Status: Standard (unverändert) oder X/20 angepasst (wenn du Texte überschrieben hast).
Klappe die gewünschte Sprache per "Bearbeiten" auf — 20 Felder erscheinen (Titel, Beschreibung, Button-Labels, Kategorie-Namen, Banner-Text etc.). Jedes angepasste Feld wird mit orangem Rand und Stern markiert.
Klick auf Speichern persistiert deine Anpassungen. Der dedizierte consent-text-Hash sorgt dafür, dass wesentliche Text-Änderungen im Audit-Trail landen, ohne dass alle bestehenden Einwilligungen ungültig werden.
Der Zurücksetzen-Button verwirft alle Anpassungen dieser Sprache und kehrt zu den ausgelieferten Standards zurück.
Automatisches Übersetzen
Oben rechts im Sprachen-Tab befindet sich das Dropdown Übersetzungsquelle — standardmäßig Deutsch. Wechselst du in den Bearbeiten-Modus einer anderen Sprache, blendet sich unter jedem Feld eine kleine graue Zeile mit dem Quelltext ein, plus ein 🌐-Symbol zum Einzel-Übersetzen.
Der Button 🌐 Alle aus Quelle übersetzen unten im Editor übersetzt alle nicht-angepassten Felder auf einen Klick — sequenziell mit Fortschrittsanzeige, damit die kostenlose MyMemory-API-Quote nicht überlastet wird. Angepasste Felder (orange umrandet) werden standardmäßig übersprungen. Falls du sie trotzdem überschreiben willst, fragt ein Confirm-Dialog nach.
MyMemory-Übersetzungsservice
Für die Auto-Übersetzung wird MyMemory verwendet — kostenlos, ohne API-Key, ohne Signup. Die Admin-E-Mail deiner Site wird als Identifikations-Parameter mitgeschickt, was das anonyme Tageslimit (~5.000 Zeichen) auf ca. 50.000 Zeichen/Tag anhebt. Für die meisten Sites reicht das aus, um alle 20 Felder × aktive Sprachen zu befüllen.
Rich-Text-Editor für lange Texte v1.8
Für die drei langen Text-Felder consent-text (Dialog-Beschreibung), banner-text (Banner-Inhalt) und blocked-content-desc (Blocked-Placeholder-Text) kommt ein vollwertiger TinyMCE-Editor mit Toolbar zum Einsatz — statt einer einzeiligen Text-Input.
Verfügbare Formatierungen
- Fett, Kursiv, Unterstrichen
- Aufzählungslisten und nummerierte Listen
- Link einfügen / entfernen (mit
target,rel) - Absätze (
<p>) und Zeilenumbrüche - Format entfernen, Undo/Redo
- Umschalten zur Text/Code-Ansicht (HTML direkt editieren)
<a href>, <strong>, <em>, <b>, <i>, <u>, <br>, <span class>, <p class>. <script>, <style>, Inline-Events und style=""-Attribute werden aus Sicherheitsgründen gestrippt.Performance
Der Editor wird lazy geladen — TinyMCE-Instanzen entstehen erst beim Klick auf "Bearbeiten" einer Sprache und werden beim Schließen wieder abgebaut. Ohne dieses Lazy-Pattern würden bei 34 Sprachen × 3 Long-Text-Feldern 102 Editor-Instanzen gleichzeitig geladen werden — der Admin würde einfrieren.
Cookie-Declaration übersetzen v1.8
Der [consenta_cookies]-Shortcode rendert die Tabelle aller Cookies, Domains und Resources — typischerweise auf deiner Datenschutz-Seite. Beschreibungen und Laufzeiten werden jetzt sprachsensitiv ausgegeben.
Laufzeiten: automatisch in 9 Sprachen
Laufzeit-Strings folgen einem festen Vokabular ("2 Jahre", "30 Tage", "Session / 1 Jahr") und werden deterministisch per Regex übersetzt — ohne API-Aufruf, ohne Cache, sofort und zuverlässig:
| DE | EN | FR | ES | IT |
|---|---|---|---|---|
| 2 Jahre | 2 years | 2 ans | 2 años | 2 anni |
| 30 Tage | 30 days | 30 jours | 30 días | 30 giorni |
| 24 Stunden | 24 hours | 24 heures | 24 horas | 24 ore |
| Session | Session | Session | Sesión | Sessione |
Beschreibungen: 3-Stufen-Fallback
Wenn der Cookie-Eintrag bereits ein mehrsprachiges Objekt {de:…, en:…} enthält (durch Bulk-Übersetzung), wird direkt der passende Sprach-Slot ausgegeben.
Rund 80 der häufigsten Cookies und Domains (Google Analytics, Meta/Facebook, YouTube, Stripe, Paddle, Cloudflare, WooCommerce, WordPress-Core, reCAPTCHA …) haben handübersetzte EN-Beschreibungen direkt im Plugin. Wildcard-Pattern: _ga_* matcht auch zur Laufzeit generierte Namen wie _ga_ABC123.
Ist weder ein gespeicherter noch ein Wörterbuch-Eintrag vorhanden, wird die Original-Beschreibung (in der Sprache, in der sie gespeichert wurde — typischerweise Deutsch) ausgegeben, statt einer leeren Zelle.
Bulk-Übersetzung im Admin
In jedem Entity-Tab (Consenta → Cookies / Domains / Ressourcen) findest du oben die Leiste Übersetzen: DE → Englisch (EN) mit Source-Dropdown, Target-Dropdown (alle 34 Sprachen) und dem Button 🌐 Beschreibungen übersetzen. Ein Klick übersetzt alle Beschreibungen dieses Tabs:
- Batchweise 3 Einträge pro Request mit Fortschrittsanzeige
- Bereits übersetzte Felder werden übersprungen (idempotent — beliebig oft re-runnen)
- Speicherung als Objekt
{de: "Text", en: "Text", fr: "Text"}— jede Zeile zeigt anschließend kleine Badges der gefüllten Sprachen - Ergebnisse 30 Tage in Transients gecacht — gleiche Texte kosten keine Quote doppelt
[consenta_cookies] rendert dann automatisch die richtige Sprache je nach /en/-, /fr/-, /es/-URL.Inline-Edit erhält Übersetzungen
Wenn du inline eine Beschreibung editierst, die bereits mehrsprachig gespeichert ist, aktualisiert das Plugin nur den DE-Slot. Die EN/FR/ES-Übersetzungen bleiben erhalten — du musst nicht neu übersetzen.
Google Consent Mode v2
Google Consent Mode v2 wird vollständig unterstützt. Consenta sendet automatisch die richtigen Consent-Signale an Google-Dienste.
Einrichtung
Unter Consenta → Einstellungen → Google Consent Mode den Toggle aktivieren.
Consenta setzt automatisch: ad_storage, analytics_storage, ad_user_data und ad_personalization basierend auf der Consent-Entscheidung des Besuchers.
IAB TCF konfigurieren
Das IAB Transparency & Consent Framework 2.0 wird vollständig unterstützt. TC-Strings werden automatisch generiert und verwaltet.
Unter Consenta → Einstellungen → IAB TCF den Toggle aktivieren.
Wähle die relevanten IAB-Vendoren für deine Website. Der TC-String wird automatisch generiert.
Geolocation aktivieren
Zeigt den Consent-Dialog nur Besuchern aus der EU oder konfigurierbaren Regionen. Besucher außerhalb der konfigurierten Regionen sehen keinen Banner.
Unter Consenta → Einstellungen → Geolocation den Toggle aktivieren.
Wähle die Länder/Regionen, in denen der Consent-Dialog angezeigt werden soll. Standard: alle EU-Länder.
Service Worker Blocking v1.4
Consenta verwendet einen dreistufigen Blocking-Mechanismus, der Cookies und Scripts noch vor der Ausführung abfängt. Das Service Worker Blocking ist die dritte und tiefste Schicht und aktiviert sich automatisch im Vollzustimmungsmodus (Full-Consent-Mode).
Die 3 Blocking-Schichten
| Schicht | Beschreibung |
|---|---|
| Layer 1 — Script Blocking | Blockiert bekannte Third-Party-Scripts anhand einer Blockliste, bevor sie ins DOM eingefügt werden. |
| Layer 2 — Cookie Blocking | Überwacht document.cookie per Setter-Override und verhindert das Schreiben nicht-genehmigter Cookies. |
| Layer 3 — Service Worker | Fängt ausgehende Netzwerk-Requests auf Service-Worker-Ebene ab und blockiert Requests an Tracking-Endpunkte, bevor sie den Browser verlassen. |
Browser API Blocking v1.5
Im Full-Consent-Modus überschreibt Consenta bestimmte Browser-APIs, um sicherzustellen, dass Push-Benachrichtigungen, Hintergrund-Sync und Cache-Zugriffe erst nach Einwilligung möglich sind.
Blockierte APIs
| API | Beschreibung |
|---|---|
| Notification.requestPermission | Verhindert Browser-Push-Benachrichtigungs-Dialoge bis zur Einwilligung |
| PushManager.subscribe | Blockiert die Registrierung von Web-Push-Abonnements |
| SyncManager.register | Verhindert die Registrierung von Background-Sync-Tasks |
| caches.open | Blockiert den Zugriff auf den Cache Storage API (mit Ausnahme whitegelisteter Präfixe) |
Whitelisted Cache-Präfixe
Die folgenden Cache-Präfixe sind von der Blockierung ausgenommen und werden immer zugelassen:
consenta— Consenta-interne Cacheswp-— WordPress Core Caches (z.B. wp-offline)workbox— Workbox Service Worker Caches
Automatische Wiederherstellung
Sobald ein Besucher seine Einwilligung erteilt, werden alle blockierten APIs automatisch wiederhergestellt. Ausstehende Aufrufe werden nicht nachgeholt — sie müssen von der Anwendung nach Consent erneut ausgeführt werden.
Webhooks v1.5
Consenta kann bei Consent-Ereignissen in Echtzeit HTTP-POST-Benachrichtigungen an eine oder mehrere konfigurierte HTTPS-URLs senden. Damit kannst du Consent-Ereignisse in externe Systeme, CRMs oder Analyse-Pipelines integrieren.
Einrichtung
Gehe zu Consenta → Einstellungen → Webhooks und gib eine HTTPS-URL ein. Nur HTTPS-Endpunkte werden akzeptiert.
Wähle, welche Consent-Ereignisse an den Endpunkt gesendet werden sollen: consent.new, consent.update, consent.revoke oder consent.optout.
Klicke auf Test senden, um einen Test-Payload an die konfigurierte URL zu senden und die Verbindung zu prüfen.
Unterstützte Ereignisse
| Ereignis | Beschreibung |
|---|---|
| consent.new | Besucher gibt erstmals seine Einwilligung |
| consent.update | Besucher ändert seine bestehende Einwilligung |
| consent.revoke | Besucher widerruft seine Einwilligung vollständig |
| consent.optout | Besucher lehnt alle nicht-notwendigen Kategorien ab |
Signaturverifikation (HMAC-SHA256)
Jeder Webhook-Payload wird mit HMAC-SHA256 signiert. Die Signatur wird im Header X-Consenta-Signature mitgesendet. Verifiziere sie serverseitig, um die Authentizität des Payloads sicherzustellen:
$secret = 'your-webhook-secret';
$payload = file_get_contents('php://input');
$sig = $_SERVER['HTTP_X_CONSENTA_SIGNATURE'];
$expected = 'sha256=' . hash_hmac('sha256', $payload, $secret);
if (!hash_equals($expected, $sig)) { http_response_code(401); exit; }
Payload-Struktur
"event": "consent.new",
"uid": "a1b2c3d4e5",
"timestamp": 1713200000,
"categories": ["necessary", "functional", "statistics"],
"site_url": "https://example.com",
"version": "1.5"
}
WooCommerce v1.4
Die WooCommerce-Integration erkennt automatisch alle von WooCommerce gesetzten Cookies und ordnet sie den richtigen Consent-Kategorien zu. Tracking-Cookies von WooCommerce-Analytics und Marketing-Erweiterungen werden erst nach Consent geladen.
Automatisch blockierte Elemente
- WooCommerce Analytics — Tracking-Cookies (
wp_woocommerce_session_*) werden der Kategorie Statistik zugeordnet. - Marketing-Pixel — Facebook Pixel, Google Ads Conversion und andere Remarketing-Scripts werden blockiert, bis Marketing-Consent vorliegt.
- Session-Cookies — Warenkorb- und Session-Cookies werden als Notwendig kategorisiert und nie blockiert.
Deklarierte Cookies
| Cookie | Kategorie | Beschreibung |
|---|---|---|
| woocommerce_cart_hash | Notwendig | Warenkorb-Hash für Cache-Invalidierung |
| woocommerce_items_in_cart | Notwendig | Speichert ob Artikel im Warenkorb liegen |
| wp_woocommerce_session_* | Funktional | Eindeutige Session-ID für den Checkout |
| tk_ai | Statistik | WooCommerce Analytics Tracking-Identifier |
Filter-Hook für Entwickler
Mit dem Filter consenta_woo_cookie_map kannst du die automatische Kategorisierung von WooCommerce-Cookies überschreiben:
// Eigene Zuordnung hinzufügen / Override mapping
$map['my_custom_cookie'] = 'marketing';
return $map;
});
Gutenberg-Blöcke v1.11
Consenta liefert vier native Gutenberg-Blöcke — alle auf Block-API v3 (WordPress 6.9 kompatibel) und in einer eigenen Kategorie „Consenta" im Block-Inserter gebündelt. Block-Inserter öffnen, nach „Consenta" suchen oder direkt in der Kategorie-Liste oben nachschauen.
Cookie-Deklaration
Rendert eine automatisch generierte Tabelle aller Cookies, Domains und Ressourcen — ideal als Alternative zum Shortcode [consenta_cookies] auf deiner Cookie-Erklärung-Seite. Attribute in der rechten Seitenleiste: Filter nach Zweck (z. B. nur Marketing), Spalten „Typ" und „Laufzeit" ein-/ausblenden.
Einwilligungsstatus
Zeigt dem Besucher seinen aktuellen Consent-Status: pro Kategorie ein ✓ (akzeptiert) oder ✗ (abgelehnt), plus Datum der letzten Einwilligung und optional einen „Einstellungen ändern"-Button, der den Dialog erneut öffnet. Zwei Darstellungsvarianten: Card (mit Rahmen) oder inline.
Bedingte Inhalte
Der stärkste Block der Suite — zeigt oder versteckt verschachtelte Inhalte abhängig vom Consent-Status. Ideal für Videos, Karten, Tracking-Pixel.
Der Editor zeigt zwei Tabs: Bedingter Inhalt (erscheint nach Consent) und Fallback Inhalt (erscheint vor Consent). Beide Tabs sind echte InnerBlocks-Bereiche — du kannst beliebige Blöcke per Drag & Drop reinlegen: Bilder, Gruppen, Spalten, eigene Embeds. Der jeweils inaktive Tab bleibt gespeichert, nur visuell ausgeblendet.
Markiere einen vorhandenen Block (YouTube-Einbettung, Karte, …), klicke im Block-Menü auf Umwandeln zu → Bedingte Inhalte — der Block wandert automatisch in den Bedingter-Inhalt-Slot, der Fallback bleibt leer zum Befüllen. Analog zum Core-Gruppe-Block.
In der rechten Seitenleiste unter Consent-Bedingung → Erforderliche Kategorie legst du fest, welcher Consent-Zweck aktiv sein muss: Funktional, Statistiken, Marketing oder Medien. Essential steht nicht zur Auswahl — das wäre sinnlos, da immer „granted".
CMP Akzeptieren-Button
Eigenständiger Button-Block zum Erteilen von Consent für einen bestimmten Zweck oder zum Öffnen des Consent-Dialogs. Lässt sich überall im Beitrag platzieren — besonders im Fallback-Slot der Bedingten Inhalte, wo er den Purpose automatisch per Block-Kontext erbt. Volle Block-Toolbar: Ausrichtung, Hintergrund-/Textfarbe, Gradient, Schriftgröße, Schriftart, Padding, Margin, Rahmen und Radius.
In der Seitenleiste unter Aktion wählst du zwischen „Zweck akzeptieren" (erteilt Consent für eine Kategorie) und „Dialog öffnen" (öffnet den Consent-Dialog erneut, ideal für „Einstellungen ändern"-Buttons).
Platzierst du den Button im Fallback-Slot eines Bedingte-Inhalte-Blocks, erbt er den dort eingestellten Zweck automatisch per Block-Context — du musst nichts doppelt konfigurieren. Außerhalb legst du den Zweck manuell per Zweck-Override fest.
Zwei Stil-Presets Primär (Brand-Farbe, gefüllt) und Sekundär (outline, transparent) — optional komplett per Block-Toolbar übersteuerbar. Das Label ist per RichText direkt im Editor editierbar („Akzeptieren", „Einstellungen öffnen", …).
data-consenta-accept-purpose="marketing" (oder andere Kategorien) zur Verfügung — z. B. an eigenen Buttons außerhalb des Block-Editors.CMP-Import v1.4
Migriere deine bestehende Cookie-Konfiguration von CookieBot, OneTrust, Usercentrics, Borlabs Cookie, Complianz oder GDPR Cookie Compliance mit wenigen Klicks zu Consenta. Der Importer übernimmt Cookie-Listen, Kategorien und Beschreibungen.
Unterstützte CMPs
- CookieBot — CSV-Export aus dem Cookiebot-Dashboard
- OneTrust — JSON-Export aus der OneTrust-Verwaltung
- Usercentrics — CSV-Export aus dem Usercentrics-Dashboard
- Borlabs Cookie — Automatisch erkannt, kein Export nötig (direkter DB-Zugriff)
- Complianz — Automatisch erkannt, kein Export nötig (direkter DB-Zugriff)
- GDPR Cookie Compliance — Automatisch erkannt, kein Export nötig (direkter DB-Zugriff)
Schritt-für-Schritt-Anleitung
Exportiere deine Cookie-Liste aus CookieBot (CSV), OneTrust (JSON) oder Usercentrics (CSV). Bei Borlabs Cookie, Complianz und GDPR Cookie Compliance erkennt Consenta die installierte CMP automatisch — kein Export nötig.
Gehe zu Consenta → Tools → CMP-Import und wähle deine bisherige CMP aus dem Dropdown.
Lade die exportierte Datei hoch. Consenta erkennt das Format automatisch und zeigt eine Vorschau der zu importierenden Cookies.
Prüfe die automatische Kategorie-Zuordnung. Die 6 Consenta-Kategorien werden den Kategorien der bisherigen CMP zugeordnet. Passe bei Bedarf einzelne Zuordnungen an.
Klicke Importieren. Bestehende Cookies werden nicht überschrieben, neue werden hinzugefügt.
Auto-Scan v1.4
Der Auto-Scan führt den Cookie-Scan automatisch in regelmäßigen Intervallen aus und benachrichtigt dich per E-Mail, wenn neue Cookies gefunden werden.
Einrichtung
Gehe zu Consenta → Cookie Scanner → Auto-Scan und aktiviere den Toggle.
Wähle das Scan-Intervall: Täglich, Wöchentlich oder Monatlich. Standard: Wöchentlich.
Gib eine oder mehrere E-Mail-Adressen ein (kommagetrennt). Du erhältst eine E-Mail, wenn neue oder unbekannte Cookies gefunden werden.
Consent-Proof v1.4
Generiere einen PDF-Report als Nachweis deiner DSGVO-konformen Cookie-Consent-Konfiguration. Der Report eignet sich für Audits, Datenschutzbeauftragte und Behördenanfragen.
PDF-Report generieren
Gehe zu Consenta → Protokolle → Consent-Proof.
Wähle den Zeitraum für den Report (z.B. letzte 30 Tage, Quartal oder benutzerdefiniert).
Klicke PDF generieren. Der Report wird erstellt und als Download bereitgestellt.
Inhalt des Reports
- Consent-Statistiken — Akzeptierungsrate, Ablehnungsrate, Opt-in-Rate pro Kategorie
- Cookie-Inventar — Vollständige Liste aller deklarierten Cookies mit Kategorie, Anbieter und Laufzeit
- Blocking-Konfiguration — Aktive Blocking-Level und Service-Worker-Status
- Consent-Log-Auszug — Anonymisierte Stichprobe der letzten Consent-Einträge als Nachweis
- Konfigurationsübersicht — GCM-Status, TCF-Status, Geolocation-Einstellungen, Dialog-Konfiguration
Protokolle & Reports
Consenta protokolliert jede Consent-Entscheidung für die DSGVO-Nachweispflicht. Unter Consenta → Protokolle findest du alle Einträge.
Multi-Site Dashboard
Verwalte Cookie-Consent-Einstellungen für alle deine WordPress-Sites zentral. Consent-Statistiken aller Sites auf einen Blick.
Consenta → Sites → Site-Token kopieren (auf der Haupt-Site generiert).
Auf der Remote-Site: Consenta → Einstellungen → Multi-Site → Token einfügen und Haupt-Site-URL eingeben.
Klicke Verbindung testen. Die Remote-Site sendet ab sofort Consent-Daten an die Haupt-Site.
REST API v1.4
Die REST API ermöglicht die programmgesteuerte Verwaltung von Consent-Einstellungen, Cookie-Listen, Protokollen und Remote-Sites. Alle Endpoints verwenden den Namespace /wp-json/consenta/v1/.
Authentifizierung
Alle Endpoints (außer /log) erfordern Authentifizierung. Generiere einen API-Token unter Consenta → Einstellungen → API und sende ihn als Bearer-Token im Authorization-Header:
POST /consenta/v1/log
Speichert einen Consent-Eintrag. Dieser Endpoint wird vom Frontend-Script automatisch aufgerufen und erfordert keine Authentifizierung (öffentlich).
| Parameter | Typ | Beschreibung |
|---|---|---|
| categories | array | Akzeptierte Consent-Kategorien, z.B. ["necessary","statistics"] |
| uid | string | Anonymer Besucher-Identifier (vom Frontend generiert) |
| timestamp | integer | Unix-Timestamp der Consent-Entscheidung |
| user_agent | string | Browser User-Agent (optional, wird sonst aus dem Request gelesen) |
| tcf_string | string | IAB TCF TC-String, falls TCF aktiv (optional) |
POST /wp-json/consenta/v1/log
Content-Type: application/json
{
"categories": ["necessary", "functional", "statistics"],
"uid": "a1b2c3d4e5",
"timestamp": 1713200000
}
GET /consenta/v1/config
Gibt die aktuelle Consent-Konfiguration zurück (Cookie-Liste, Kategorien, Dialog-Einstellungen, Blocking-Level). Erfordert API-Token.
| Response-Feld | Typ | Beschreibung |
|---|---|---|
| cookies | array | Liste aller deklarierten Cookies mit Name, Kategorie, Anbieter, Laufzeit |
| categories | array | Konfigurierte Consent-Kategorien mit Label und Beschreibung |
| blocking_level | integer | Aktives Blocking-Level (1–3) |
| gcm_enabled | boolean | Google Consent Mode v2 aktiv |
| tcf_enabled | boolean | IAB TCF aktiv |
| dialog_type | string | Dialog-Typ: modal, banner oder widget |
GET /wp-json/consenta/v1/config
Authorization: Bearer sk_live_xxxxxxxxxxxxx
POST /consenta/v1/revoke
Widerruft den Consent eines Besuchers anhand der UID. Nützlich für Datenlöschungsanfragen (DSGVO Art. 17). Erfordert API-Token.
| Parameter | Typ | Beschreibung |
|---|---|---|
| uid | string | Anonymer Besucher-Identifier, dessen Consent widerrufen werden soll (Pflichtfeld) |
| reason | string | Grund des Widerrufs, z.B. user_request oder gdpr_erasure (optional) |
POST /wp-json/consenta/v1/revoke
Authorization: Bearer sk_live_xxxxxxxxxxxxx
Content-Type: application/json
{ "uid": "a1b2c3d4e5", "reason": "gdpr_erasure" }
GET /consenta/v1/stats
Gibt aggregierte Consent-Statistiken zurück. Erfordert API-Token.
| Query-Parameter | Typ | Beschreibung |
|---|---|---|
| from | string | Startdatum im Format YYYY-MM-DD (optional, Standard: 30 Tage zurück) |
| to | string | Enddatum im Format YYYY-MM-DD (optional, Standard: heute) |
| group_by | string | Gruppierung: day, week oder month (optional, Standard: day) |
| Response-Feld | Typ | Beschreibung |
|---|---|---|
| total_decisions | integer | Gesamtzahl der Consent-Entscheidungen im Zeitraum |
| accept_rate | float | Akzeptierungsrate (0.0–1.0) |
| reject_rate | float | Ablehnungsrate (0.0–1.0) |
| category_rates | object | Opt-in-Rate pro Kategorie, z.B. {"statistics": 0.72, "marketing": 0.34} |
| timeline | array | Zeitreihe mit Datenpunkten pro group_by-Intervall |
GET /wp-json/consenta/v1/stats?from=2026-03-01&to=2026-03-31&group_by=week
Authorization: Bearer sk_live_xxxxxxxxxxxxx
GET /consenta/v1/remote/settings
Ruft die Consent-Einstellungen einer verbundenen Remote-Site ab. Wird vom Multi-Site-Dashboard verwendet. Erfordert API-Token + Remote-Token.
| Header | Beschreibung |
|---|---|
| Authorization | Bearer <api-token> — API-Token der Haupt-Site |
| X-Consenta-Remote-Token | <remote-token> — Token der Remote-Site (unter Consenta → Sites generiert) |
GET /wp-json/consenta/v1/remote/settings
Authorization: Bearer sk_live_xxxxxxxxxxxxx
X-Consenta-Remote-Token: rt_abc123def456
GET /consenta/v1/remote/entities
Listet alle verbundenen Remote-Sites mit Status, letztem Sync und Consent-Zusammenfassung. Erfordert API-Token.
| Response-Feld | Typ | Beschreibung |
|---|---|---|
| entities | array | Liste der Remote-Sites |
| entities[].url | string | URL der Remote-Site |
| entities[].status | string | Verbindungsstatus: connected, disconnected, error |
| entities[].last_sync | string | ISO 8601 Zeitstempel des letzten Sync |
| entities[].total_consents | integer | Gesamtanzahl gespeicherter Consent-Einträge dieser Site |
GET /wp-json/consenta/v1/remote/entities
Authorization: Bearer sk_live_xxxxxxxxxxxxx
Fehler-Codes
| Code | Beschreibung |
|---|---|
| 401 | Fehlender oder ungültiger API-Token |
| 403 | API-Zugang nicht im aktuellen Plan enthalten (Agency erforderlich) |
| 404 | Ressource nicht gefunden (z.B. unbekannte UID bei /revoke) |
| 422 | Ungültige Parameter (z.B. fehlendes Pflichtfeld) |
| 429 | Rate Limit überschritten (max. 120 Requests/Minute) |
X-RateLimit-Remaining und X-RateLimit-Reset zurückgegeben.White Label Setup
Ersetze das Consenta-Branding durch dein eigenes. Unter Consenta → Einstellungen → White Label konfigurierbar.
RTL-Support v1.4
Consenta unterstützt Right-to-Left-Sprachen (Arabisch, Hebräisch, Farsi u.a.) vollautomatisch. Wenn das HTML-Attribut [dir="rtl"] auf der Seite gesetzt ist, werden alle Consent-Elemente — Dialog, Banner, Widget und Admin-Dashboard — automatisch gespiegelt.
dir="rtl" automatisch, wenn eine RTL-Sprache als Seitensprache konfiguriert ist. Consenta erkennt dies und passt Layout, Text-Ausrichtung und Icon-Positionen entsprechend an.Sicherheit v1.7
HMAC-SHA256 Consent-Cookie (consenta_auth)
Seit v1.7.0 wird jeder consenta_auth Cookie serverseitig mit HMAC-SHA256 signiert. Als geheimer Schlüssel wird der WordPress AUTH_KEY aus der wp-config.php verwendet — dieser Schlüssel ist einzigartig pro WordPress-Installation und verlässt den Server nie.
Bei jeder Consent-Verifizierung berechnet der Server die erwartete Signatur neu und vergleicht sie mit hash_equals() — dieser Timing-sichere Vergleich verhindert Timing-Attacken. Cookie-Manipulation durch Besucher oder Browser-Extensions wird zuverlässig erkannt und abgewiesen.
AUTH_KEY in der wp-config.php gesetzt und ausreichend zufällig ist (mindestens 64 Zeichen). Neue WordPress-Installationen generieren diesen automatisch. SSRF-Schutz
Alle ausgehenden HTTP-Calls von Consenta (Webhook-Delivery, Cookie-Scanner, Geolocation-Lookup) durchlaufen seit v1.7.0 eine SSRF-Schutzprüfung. Folgende Ziele werden blockiert:
- Private IPv4-Bereiche (RFC1918): 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
- Loopback: 127.0.0.0/8 und ::1
- Cloud-Metadaten-Endpunkte: 169.254.169.254 (AWS/GCP/Azure Instance Metadata Service)
Token-Verwaltung
API-Tokens werden seit v1.7.0 als SHA-256-Hash in der Datenbank gespeichert — der Klartext-Token verlässt den Server nur einmal, unmittelbar nach der Generierung. Danach kann er nicht mehr eingesehen werden.
Gehe zu Consenta → Einstellungen → API und klicke Token generieren. Der Klartext-Token wird einmalig angezeigt.
Kopiere den Token und speichere ihn sicher (z.B. in einem Passwort-Manager). Nach dem Schließen des Dialogs ist der Klartext nicht mehr abrufbar.
Falls ein Token verloren geht, widerrufe ihn und generiere einen neuen. Der alte Token verliert sofort seine Gültigkeit.
Sicherheits-Best-Practices für Hosting
Troubleshooting
Consent-Dialog wird nicht angezeigt
Prüfe: (1) Ist die Lizenz aktiv? (2) Ist der Dialog unter Consenta → Darstellung aktiviert? (3) Gibt es JavaScript-Fehler in der Browser-Konsole? (4) Ist ein Caching-Plugin aktiv? Lösche den Cache.
Cookies werden trotz Ablehnung gesetzt
Prüfe das Blocking-Level unter Consenta → Einstellungen. Level 1 blockiert nur bekannte Cookies. Erhöhe auf Level 2 oder 3 für umfassendere Blockierung. Führe einen neuen Cookie-Scan aus um alle Cookies zu erfassen.
Google Consent Mode sendet keine Signale
Prüfe: (1) Ist der GCM-Toggle unter Einstellungen aktiviert? (2) Ist das Consenta-Script vor dem GTM-Script geladen? (3) Prüfe die Browser-Konsole auf Fehler.
Lizenzschlüssel funktioniert nicht
Prüfe: (1) Keine Leerzeichen vor/nach dem Schlüssel. (2) Die Website-URL stimmt mit der bei der Aktivierung verwendeten überein. (3) Die Lizenz ist nicht abgelaufen. Bei anhaltenden Problemen: Support kontaktieren.
FAQ
Funktioniert Consenta mit Caching-Plugins?
Ja. Consenta arbeitet vollständig clientseitig. Cookie Blocking und Consent-Dialog funktionieren unabhängig von Server-seitigem Caching.
Brauche ich Consenta zusätzlich zu Google Consent Mode?
Ja. Google Consent Mode ist nur die Schnittstelle — du brauchst eine Consent Management Platform (CMP) wie Consenta, die die Consent-Signale sendet.
Wie viele Sprachen werden unterstützt?
34 Sprachen. Kompatibel mit WPML und Polylang.
Wo finde ich meine Lizenz nach dem Kauf?
In der Bestätigungs-E-Mail und unter Mein Konto → Lizenzen.
Noch Fragen?
Unser Support-Team antwortet in der Regel innerhalb von 24 Stunden.