PYCIE · Free Tools · DSGVO & TDDDG Studio
Cookie-Banner. Rechtssicher.
In Sekunden.
Kein Abo, kein Plugin-Ballast, keine Dark Patterns: Konfiguriere deinen DSGVO- & TDDDG-konformen Consent-Banner mit echten Kategorien, Google Consent Mode v2, Script-Blocker und interaktiver Live-Vorschau.
Rechts-Modus wählen
Cookie-Kategorien im Banner (wählbar)
Klicke direkt im Banner auf „Individuelle Auswahl“ oder „Alle akzeptieren“, um das echte Verhalten zu testen.
Privatsphäre & Cookie-Einstellungen
Wir nutzen Cookies und ähnliche Technologien, um unsere Website zuverlässig zu betreiben und — mit deiner Einwilligung — Zugriffe zu analysieren sowie externe Medien einzubinden.
Wartet auf Besucher-Entscheidung (Tracking blockiert)Export & Integration
Dein fertiger Code zum Kopieren.
Wähle zwischen dem einbaufertigen HTML/JS-Komplett-Snippet, einer React/Next.js-Komponente oder den Vorlagen für das automatische Script-Blocking.
<!-- PYCIE Cookie & Consent Studio (DSGVO Opt-in + TDDDG) -->
<style>
.pycie-cb-wrap{position:fixed;bottom:22px;left:22px;max-width:430px;width:calc(100% - 44px);background:#0e0e12e6;color:#f0ede6;border:1px solid rgba(255,255,255,0.12);border-radius:16px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,0.45);font-family:system-ui,-apple-system,sans-serif;z-index:2147483646;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);}
.pycie-cb-title{margin:0 0 8px;font-size:17px;font-weight:600;letter-spacing:-0.01em;}
.pycie-cb-desc{margin:0 0 16px;font-size:13.5px;line-height:1.6;opacity:0.84;}
.pycie-cb-cats{display:none;margin:0 0 16px;padding:12px;border-radius:10px;background:rgba(127,127,127,0.08);gap:10px;flex-direction:column;}
.pycie-cb-cats.is-open{display:flex;}
.pycie-cb-cat{display:flex;align-items:flex-start;gap:10px;font-size:12.5px;cursor:pointer;}
.pycie-cb-cat input{margin-top:3px;accent-color:#c9a84c;}
.pycie-cb-cat strong{display:block;font-size:13px;}
.pycie-cb-cat small{display:block;opacity:0.75;line-height:1.4;}
.pycie-cb-actions{display:flex;flex-wrap:wrap;gap:8px;}
.pycie-cb-btn{flex:1;min-width:120px;padding:11px 16px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid rgba(127,127,127,0.28);background:transparent;color:inherit;transition:opacity .2s,transform .2s;}
.pycie-cb-btn--primary{background:#c9a84c;color:#08080a;border-color:#c9a84c;}
.pycie-cb-links{margin-top:14px;display:flex;gap:14px;font-size:11.5px;opacity:0.68;}
.pycie-cb-links a{color:inherit;text-decoration:underline;}
.pycie-cb-pin{position:fixed;bottom:16px;left:16px;z-index:2147483645;background:#0e0e12;color:#f0ede6;border:1px solid rgba(127,127,127,0.25);border-radius:999px;padding:7px 13px;font-size:11.5px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,0.25);}
</style>
<div id="pycieConsentBanner" class="pycie-cb-wrap" role="dialog" aria-modal="true" aria-label="Privatsphäre & Cookie-Einstellungen" style="display:none">
<p class="pycie-cb-title">Privatsphäre & Cookie-Einstellungen</p>
<p class="pycie-cb-desc">Wir nutzen Cookies und ähnliche Technologien, um unsere Website zuverlässig zu betreiben und — mit deiner Einwilligung — Zugriffe zu analysieren sowie externe Medien einzubinden.</p>
<div id="pycieConsentCats" class="pycie-cb-cats">
<label class="pycie-cb-cat">
<input type="checkbox" data-cb-cat="essential" checked disabled />
<span><strong>Technisch notwendig</strong><small>Erforderlich für Grundfunktionen wie Seitennavigation, Sicherheit und das Speichern deiner Cookie-Auswahl.</small></span>
</label>
<label class="pycie-cb-cat">
<input type="checkbox" data-cb-cat="analytics" />
<span><strong>Statistik & Analyse</strong><small>Hilft uns zu verstehen, wie Besucher mit der Website interagieren, um Inhalte und Ladezeiten zu verbessern.</small></span>
</label>
<label class="pycie-cb-cat">
<input type="checkbox" data-cb-cat="media" />
<span><strong>Externe Medien & Karten</strong><small>Ermöglicht das direkte Laden eingebetteter Videos, interaktiver Karten und Terminbuchungs-Widgets.</small></span>
</label>
</div>
<div class="pycie-cb-actions">
<button type="button" id="pycieAcceptAll" class="pycie-cb-btn pycie-cb-btn--primary">Alle akzeptieren</button>
<button type="button" id="pycieRejectAll" class="pycie-cb-btn">Nur Essenzielle</button>
<button type="button" id="pycieToggleCats" class="pycie-cb-btn">Individuelle Auswahl</button>
</div>
<div class="pycie-cb-links">
<a href="/datenschutz">Datenschutz</a>
<a href="/impressum">Impressum</a>
</div>
</div>
<button type="button" id="pycieConsentPin" class="pycie-cb-pin" style="display:none">🍪 Cookie-Auswahl</button>
<script>
(function(){
var KEY = "pycie_cookie_consent_v1", VER = "1.0", DAYS = 180;
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag("consent", "default", {
ad_storage: "denied",
ad_user_data: "denied",
ad_personalization: "denied",
analytics_storage: "denied",
wait_for_update: 500
});
var banner = document.getElementById("pycieConsentBanner");
var pin = document.getElementById("pycieConsentPin");
var catsBox = document.getElementById("pycieConsentCats");
var toggleBtn = document.getElementById("pycieToggleCats");
function applyConsent(state) {
state.version = VER;
state.updatedAt = new Date().toISOString();
state.expiresAt = Date.now() + DAYS * 86400000;
try { localStorage.setItem(KEY, JSON.stringify(state)); } catch(e) {}
if (typeof gtag === "function") {
gtag("consent", "update", {
analytics_storage: state.analytics ? "granted" : "denied",
ad_storage: state.marketing ? "granted" : "denied",
ad_user_data: state.marketing ? "granted" : "denied",
ad_personalization: state.marketing ? "granted" : "denied"
});
}
document.querySelectorAll('script[type="text/plain"][data-cookie-category]').forEach(function(oldScript) {
var cat = oldScript.getAttribute("data-cookie-category");
if (state[cat]) {
var s = document.createElement("script");
Array.from(oldScript.attributes).forEach(function(a) {
if (a.name !== "type" && a.name !== "data-cookie-category") s.setAttribute(a.name, a.value);
});
s.text = oldScript.text;
oldScript.parentNode.replaceChild(s, oldScript);
}
});
window.dispatchEvent(new CustomEvent("pycie:consent", { detail: state }));
if (banner) banner.style.display = "none";
if (pin) pin.style.display = "";
}
function readSaved() {
try {
var raw = JSON.parse(localStorage.getItem(KEY) || "null");
if (raw && raw.version === VER && raw.expiresAt > Date.now()) return raw;
} catch(e) {}
return null;
}
document.getElementById("pycieAcceptAll")?.addEventListener("click", function() {
applyConsent({ essential: true, analytics: true, marketing: false, media: true });
});
document.getElementById("pycieRejectAll")?.addEventListener("click", function() {
applyConsent({ essential: true, analytics: false, marketing: false, media: false });
});
toggleBtn?.addEventListener("click", function() {
if (!catsBox) return;
if (catsBox.classList.contains("is-open")) {
var next = { essential: true, analytics: false, marketing: false, media: false };
catsBox.querySelectorAll("input[data-cb-cat]").forEach(function(el) { next[el.getAttribute("data-cb-cat")] = el.checked; });
applyConsent(next);
} else {
catsBox.classList.add("is-open");
toggleBtn.textContent = "Auswahl speichern";
}
});
pin?.addEventListener("click", function() { if (banner) banner.style.display = ""; });
window.PycieConsent = { open: function(){ if (banner) banner.style.display = ""; }, reset: function(){ localStorage.removeItem(KEY); location.reload(); }, get: readSaved };
var saved = readSaved();
if (saved) applyConsent(saved); else if (banner) banner.style.display = "";
})();
</script>In 3 Minuten live
Vom Konfigurator in deine Website, ohne Plugin-Bremse.
- I
Kategorien & Design wählen
Wähle zwischen reinem Hinweis-Banner (nur essenzielle Cookies) oder vollem DSGVO Opt-in mit Statistik-, Marketing- und Medien-Schaltern.
- II
Snippet vor </body> einfügen
Kopiere den generierten Code in deinen Footer oder dein CMS. Mit unter 4 KB lädt er verzögerungsfrei und schützt deinen Lighthouse-Score.
- III
Optionale Skripte koppeln
Markiere Tracking-Skripte wie Google Analytics mit data-cookie-category="analytics" — der Banner aktiviert sie erst nach echter Zustimmung.
Direkt vor dem schließenden </body>-Tag einfügen.
Unter Custom Code (Footer) oder per WPCode-Snippet einbinden.
In den Site Settings unter Custom Footer Code hinterlegen.
Als CookieBanner.tsx im Root-Layout (app/layout.tsx) einbinden.
Recht & Praxis
Häufige Fragen, klar beantwortet.
Wann brauche ich einen Opt-in Cookie-Banner und wann reicht ein Hinweis?
Nach § 25 TDDDG (ehemals TTDSG) und der DSGVO benötigst du eine aktive Einwilligung (Opt-in), sobald du nicht-essenzielle Dienste wie Google Analytics, Meta Pixel, Google Maps oder YouTube-Videos lädst. Nutzt deine Seite ausschließlich technisch notwendige Cookies (z. B. Warenkorb, Login-Session), genügt der Modus „Reiner Hinweis-Banner“.
Was bedeutet „Kein Dark Pattern“ beim Ablehnen-Button?
Datenschutzbehörden verlangen, dass das Ablehnen von Cookies auf der ersten Ebene genauso einfach und visuell gleichwertig möglich ist wie das Akzeptieren. Unser Generator aktiviert standardmäßig den Button „Nur Essenzielle“ direkt neben „Alle akzeptieren“.
Blockiert der generierte Code Google Analytics & Marketing-Pixel automatisch?
Ja, sobald du den integrierten Script-Blocker und Google Consent Mode v2 nutzt. Im Tab „Script-Blocker Vorlagen“ siehst du genau, wie du ein Skript mit type="text/plain" und data-cookie-category="analytics" versiehst. Der Banner wandelt es erst nach der Einwilligung in ein aktives Skript um.
Wie können Besucher ihre Einwilligung später widerrufen?
Nach Art. 7 Abs. 3 DSGVO muss ein Widerruf jederzeit so einfach wie die Erteilung sein. Unser Code blendet optional unten links einen dezenten „🍪 Cookie-Auswahl“-Pin ein und stellt zusätzlich window.PycieConsent.open() für jeden beliebigen Link im Footer bereit.
Kostet der Banner monatliche Gebühren oder bremst er meine Ladezeit?
Nein. Viele externe CMP-Anbieter kosten 10–30 € pro Monat und laden hunderte Kilobyte externe Skripte. Unser Generator erzeugt reines, selbstgehostetes HTML, CSS und Vanilla-JS (< 4 KB) ohne externe Server-Abfragen — 100 % kostenlos.
Speichert PYCIE meine Eingaben oder Besucherdaten?
Nein. Sowohl dieser Generator als auch der erzeugte Banner-Code laufen zu 100 % lokal im Browser. Es werden keinerlei Daten an PYCIE-Server übertragen.