# Consentdeck – Dokumentation > Einwilligungsverwaltung mit Nachweis von Kreativ Wolke. Produktseite: https://consentdeck.web02.kreativwolke.net/ · Vollständige Entrydeck-Dokumentation: https://entrydeck.app/llms-full.txt --- # Consentdeck > Einwilligungen einsammeln und jede einzelne beweisen: Einbindung per Script-Tag oder Plugin, Kategorien und Dienste, automatisches Blocking, Google Consent Mode v2, GTM-Export, Cookie-Erklärung, Protokoll mit Prüfsumme. Quelle: https://entrydeck.app/docs/consentdeck · Stand: 2026-09-23 **Consentdeck** ist die Einwilligungsverwaltung von Entrydeck — als Teil jedes Pakets und als eigenständiges Produkt unter [consentdeck.app](https://entrydeck.app/consentdeck-start). Es zeigt das Banner, hält Dritt-Skripte zurück, bis eine Entscheidung vorliegt, setzt die Signale für Google Consent Mode v2 und schreibt jede Entscheidung mit Prüfsumme in ein Protokoll, das den Nachweis nach Art. 7 Abs. 1 DSGVO erbringt. ## Einbindung Ein einziges Skript, 17 kB, ohne Abhängigkeiten, möglichst weit oben im ``, damit vor allen anderen Skripten blockiert werden kann: ```html ``` Die **Site-ID** ist öffentlich und benennt nur die Website; ein Schlüssel wird nicht benötigt. Websites, die Entrydeck selbst rendert, binden das Skript automatisch ein, sobald das Banner eingeschaltet ist. | Umgebung | Einbindung | | --- | --- | | WordPress ab 6.0 | Plugin `consentdeck.zip` mit Einstellungsseite, Shortcode `[consentdeck_declaration]`, Gutenberg-Block | | TYPO3 v12/v13 | Extension `consentdeck` mit TypoScript-Einbindung und Inhaltselement für die Erklärung | | Shopware 6 ab 6.5 | Plugin `KwConsentdeck` für Storefront und Checkout | | Joomla 5 | System-Plugin `plg_system_consentdeck` | | Nuxt | `app.head.script` in der `nuxt.config` | | Next.js | ` ``` Für Karten und Videos erscheint statt der Einbettung ein Platzhalter mit dem Text aus den Einstellungen und einem Schalter, der genau diesen Dienst freigibt. ## Google Consent Mode v2 und dataLayer Vor dem ersten Google-Tag stehen alle Signale (`ad_storage`, `ad_user_data`, `ad_personalization`, `analytics_storage`, …) auf `denied` und werden nach der Entscheidung aktualisiert (`wait_for_update: 500`). Zusätzlich schreibt Consentdeck zwei Ereignisse in `window.dataLayer`: `consent_initialized` einmal je Seitenaufruf und `consent_update` nach jeder Entscheidung — mit Kategorien, Diensten, Einwilligungs-ID und Version. ## GTM-Export Unter **Tag Manager & Doku** erzeugt Consentdeck einen fertigen Container: dataLayer-Variablen `Consent - …` je Kategorie, Trigger `Consent Initialized`, `Consent Update` und `Consent Granted - …` je optionaler Kategorie sowie Tags der eingerichteten Dienste. Im Tag Manager unter *Verwaltung → Container importieren* einspielen (Zusammenführen, Konflikte umbenennen), prüfen, veröffentlichen. Eigene Tags hängen an den Trigger der passenden Kategorie, nicht an *All Pages*. Der Tag Manager gehört nicht ohne Weiteres in die notwendigen Dienste: Er darf nur dann vorab laden, wenn jedes Tag im Container den Consent Mode beachtet. ## Steuerung aus eigenem Code ```js Consentdeck.open() // Einstellungen erneut öffnen Consentdeck.acceptAll() // alles zulassen Consentdeck.accept('analytics') // eine Kategorie zulassen Consentdeck.reject() // nur notwendige Consentdeck.withdraw() // Einwilligung widerrufen Consentdeck.has('analytics') // true, wenn zugestimmt wurde Consentdeck.get() // { id, version, ts, action, categories, services } Consentdeck.on('change', fn) // bei jeder Änderung ``` Für den Link „Cookie-Einstellungen" im Fußbereich genügt `