Cookie-Banner / Preference Center

br-so.de: Banner-Vorlage aus Scan-Evidenz

br-so.de: Banner-Vorlage mit 6 Kategorien, 7 Dienstsignal(en), 7 Prior-Blocking-Regel(n) und Default-Denied Consent Mode.

Diese Banner-Vorlage ist kein vollständiger CMP-Dienst. Betreiber müssen prior blocking, Backend/Consent-Ledger, Rechtsgrundlagen, Barrierefreiheit, Lokalisierung und Re-Scan vor Produktivstart fachlich freigeben.

96 Consent
6Kategorien 7Dienste 7Prior Blocking 7Blocking-Regeln deniedDefault

Template

Einbettbarer Banner-Code

Code exportieren
HTML/CSS/JS Banner-Vorlage Vor dem ersten nicht notwendigen Tag einbauen; Backend/Consent-Ledger ergänzen.

<div id="saferpage-consent" class="sp-consent" hidden> <div class="sp-consent__panel" role="dialog" aria-modal="true" aria-labelledby="sp-consent-title"> <h2 id="sp-consent-title">Datenschutz-Einstellungen</h2> <p>Wir verwenden notwendige Dienste. Statistik, Marketing und externe Inhalte werden erst nach Ihrer Einwilligung geladen.</p> <div id="sp-consent-options"></div> <div class="sp-consent__actions"> <button type="button" data-sp-consent="reject">Ablehnen</button> <button type="button" data-sp-consent="settings">Einstellungen</button> <button type="button" data-sp-consent="accept">Akzeptieren</button> </div> </div> </div> <button id="saferpage-consent-trigger" type="button">Datenschutz-Einstellungen</button> <style> .sp-consent{position:fixed;inset:auto 1rem 1rem 1rem;z-index:2147483000;font:16px/1.45 system-ui,sans-serif;color:#12212f}.sp-consent__panel{max-width:720px;margin:auto;background:#fff;border:1px solid #d9e2ec;border-radius:8px;box-shadow:0 24px 80px rgba(15,23,42,.24);padding:1rem}.sp-consent__actions{display:flex;gap:.5rem;flex-wrap:wrap}.sp-consent button{border:1px solid #123047;border-radius:6px;background:#fff;padding:.7rem 1rem;font-weight:700}.sp-consent button[data-sp-consent=accept]{background:#123047;color:#fff}.sp-consent__option{display:flex;gap:.75rem;margin:.65rem 0}.sp-consent__option input{inline-size:1.2rem;block-size:1.2rem}#saferpage-consent-trigger{position:fixed;right:1rem;bottom:1rem;z-index:2147482999} </style> <script> (function(){ var categories = [{"id":"notwendig","label":"Notwendig","description":"Erforderliche Dienste für Sicherheit und Grundfunktionen.","default_state":"active"},{"id":"statistik","label":"Statistik","description":"Reichweitenmessung und Analyse erst nach Einwilligung.","default_state":"denied"},{"id":"marketing","label":"Marketing / Tracking","description":"Werbung, Profiling, Retargeting und Tracking erst nach Einwilligung.","default_state":"denied"},{"id":"externe_medien","label":"Externe Medien","description":"Videos, Karten, Captchas, Fonts und eingebettete Inhalte verzögert laden.","default_state":"denied"},{"id":"komfort","label":"Komfort","description":"Optionale Funktionen getrennt von Statistik und Marketing steuerbar machen.","default_state":"denied"},{"id":"unklar","label":"Unklar / klassifizieren","description":"Unklare Dienste bleiben aus, bis Zweck und Rechtsgrundlage geklärt sind.","default_state":"denied"}]; var key = 'sp_consent_br-so.de_v1'; window.dataLayer = window.dataLayer || []; window.gtag = window.gtag || function(){ dataLayer.push(arguments); }; gtag('consent','default',{ad_storage:'denied',analytics_storage:'denied',ad_user_data:'denied',ad_personalization:'denied',functionality_storage:'denied',security_storage:'granted'}); var root = document.getElementById('saferpage-consent'); var options = document.getElementById('sp-consent-options'); var trigger = document.getElementById('saferpage-consent-trigger'); function render(){ options.innerHTML = categories.map(function(cat){ var disabled = cat.id === 'notwendig' ? ' disabled checked' : ''; return '<label class="sp-consent__option"><input type="checkbox" value="'+cat.id+'"'+disabled+'><span><b>'+cat.label+'</b><br>'+cat.description+'</span></label>'; }).join(''); } function update(mode){ var granted = {notwendig:true}; if(mode === 'accept') categories.forEach(function(cat){granted[cat.id]=true;}); if(mode === 'settings') options.querySelectorAll('input').forEach(function(input){granted[input.value]=input.checked;}); localStorage.setItem(key, JSON.stringify({version:'v1', updated_at:new Date().toISOString(), categories:granted})); gtag('consent','update',{ad_storage:granted.marketing?'granted':'denied',analytics_storage:granted.statistik?'granted':'denied',ad_user_data:granted.marketing?'granted':'denied',ad_personalization:granted.marketing?'granted':'denied',functionality_storage:(granted.externe_medien||granted.komfort)?'granted':'denied',security_storage:'granted'}); root.hidden = true; window.dispatchEvent(new CustomEvent('saferpage-consent-update',{detail:granted})); } render(); if(!localStorage.getItem(key)) root.hidden = false; trigger.addEventListener('click', function(){root.hidden=false;}); root.addEventListener('click', function(ev){var mode=ev.target && ev.target.getAttribute('data-sp-consent'); if(mode==='reject') update('reject'); if(mode==='accept') update('accept'); if(mode==='settings') update('settings');}); })(); </script>

Privacy Trigger Link Footer, Datenschutzseite und Cookie-Erklärung

<button type="button" id="saferpage-consent-trigger">Datenschutz-Einstellungen</button>

GTM Event Tag Manager Trigger nach Consent-Update

window.addEventListener('saferpage-consent-update', function(e){ dataLayer.push({event:'saferpage_consent_update', consent:e.detail}); });

Auto-Blocking

Skripte, Iframes und Tag Manager bis Consent stoppen

Blocking JSON
Loader nach Consent-Update Nicht notwendige Skripte bleiben `text/plain`; Iframes starten mit `about:blank`.

window.addEventListener('saferpage-consent-update', function(event) { var consent = event.detail || {}; document.querySelectorAll('script[type="text/plain"][data-saferpage-category][data-src]').forEach(function(node) { var category = node.getAttribute('data-saferpage-category'); if (!consent[category] || node.getAttribute('data-saferpage-loaded') === 'true') return; var script = document.createElement('script'); Array.prototype.slice.call(node.attributes).forEach(function(attr) { if (attr.name === 'type' || attr.name === 'data-src' || attr.name === 'data-saferpage-category') return; script.setAttribute(attr.name, attr.value); }); script.src = node.getAttribute('data-src'); script.async = true; node.setAttribute('data-saferpage-loaded', 'true'); node.parentNode.insertBefore(script, node.nextSibling); }); document.querySelectorAll('iframe[data-saferpage-category][data-src]').forEach(function(node) { var category = node.getAttribute('data-saferpage-category'); if (!consent[category] || node.src === node.getAttribute('data-src')) return; node.src = node.getAttribute('data-src'); }); });

wp-wpml_current_language *.brso.de · Kategorie komfort

Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet.

Fire only when event equals saferpage_consent_update and consent.komfort equals true.
Script
<script type="text/plain" data-saferpage-category="komfort" data-src="https://brso.de/..."></script>
Iframe
<iframe data-saferpage-category="komfort" data-src="https://brso.de/..." src="about:blank" title="wp-wpml_current_language"></iframe>
_wpfuuid *.brso.de · Kategorie unklar

Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet.

Fire only when event equals saferpage_consent_update and consent.unklar equals true.
Script
<script type="text/plain" data-saferpage-category="unklar" data-src="https://brso.de/..."></script>
Iframe
<iframe data-saferpage-category="unklar" data-src="https://brso.de/..." src="about:blank" title="_wpfuuid"></iframe>
app.usercentrics.eu *.app.usercentrics.eu · Kategorie unklar

Aus SaferPage-Scan-Evidenz abgeleitet.

Fire only when event equals saferpage_consent_update and consent.unklar equals true.
Script
<script type="text/plain" data-saferpage-category="unklar" data-src="https://app.usercentrics.eu/..."></script>
Iframe
<iframe data-saferpage-category="unklar" data-src="https://app.usercentrics.eu/..." src="about:blank" title="app.usercentrics.eu"></iframe>
consent-api.service.consent.usercentrics.eu *.consent-api.service.consent.usercentrics.eu · Kategorie unklar

Aus SaferPage-Scan-Evidenz abgeleitet.

Fire only when event equals saferpage_consent_update and consent.unklar equals true.
Script
<script type="text/plain" data-saferpage-category="unklar" data-src="https://consent-api.service.consent.usercentrics.eu/..."></script>
Iframe
<iframe data-saferpage-category="unklar" data-src="https://consent-api.service.consent.usercentrics.eu/..." src="about:blank" title="consent-api.service.consent.usercentrics.eu"></iframe>
uct.service.usercentrics.eu *.uct.service.usercentrics.eu · Kategorie unklar

Aus SaferPage-Scan-Evidenz abgeleitet.

Fire only when event equals saferpage_consent_update and consent.unklar equals true.
Script
<script type="text/plain" data-saferpage-category="unklar" data-src="https://uct.service.usercentrics.eu/..."></script>
Iframe
<iframe data-saferpage-category="unklar" data-src="https://uct.service.usercentrics.eu/..." src="about:blank" title="uct.service.usercentrics.eu"></iframe>
v1.api.service.cmp.usercentrics.eu *.v1.api.service.cmp.usercentrics.eu · Kategorie unklar

Aus SaferPage-Scan-Evidenz abgeleitet.

Fire only when event equals saferpage_consent_update and consent.unklar equals true.
Script
<script type="text/plain" data-saferpage-category="unklar" data-src="https://v1.api.service.cmp.usercentrics.eu/..."></script>
Iframe
<iframe data-saferpage-category="unklar" data-src="https://v1.api.service.cmp.usercentrics.eu/..." src="about:blank" title="v1.api.service.cmp.usercentrics.eu"></iframe>
web.cmp.usercentrics.eu *.web.cmp.usercentrics.eu · Kategorie unklar

Aus SaferPage-Scan-Evidenz abgeleitet.

Fire only when event equals saferpage_consent_update and consent.unklar equals true.
Script
<script type="text/plain" data-saferpage-category="unklar" data-src="https://web.cmp.usercentrics.eu/..."></script>
Iframe
<iframe data-saferpage-category="unklar" data-src="https://web.cmp.usercentrics.eu/..." src="about:blank" title="web.cmp.usercentrics.eu"></iframe>
Consent Initialization Default Consent Mode vor allen Marketing-/Analytics-Tags auf denied setzen.
Tag Trigger pruefen Jeder nicht notwendige Tag braucht Kategoriebedingung aus saferpage_consent_update.
Unklassifizierte Tags blockieren Neue oder unbekannte Dienste bleiben aus, bis Kategorie, Zweck und Rechtsgrundlage freigegeben sind.
Reject/GPC testen Nach Ablehnen und GPC duerfen keine Marketing-/Analytics-/Embed-Tags nachladen.
visual embeds Videos, Karten, Captchas und Social Widgets mit Platzhalter anzeigen und erst nach Kategorie-Freigabe laden.
copy Dieser externe Inhalt ist blockiert, bis Sie die passende Datenschutz-Kategorie aktivieren.
preview limit Keine externen Preview-Bilder laden, wenn diese bereits Drittanbieter-Kontakte ausloesen.

Kategorien

Erste und zweite Banner-Ebene

Notwendig Default active · 0 Dienst(e)

Erforderliche Dienste für Sicherheit und Grundfunktionen.

Erste Ebene · Immer aktiv
Statistik Default denied · 0 Dienst(e)

Reichweitenmessung und Analyse erst nach Einwilligung.

Erste Ebene · Statistik erlauben
Marketing / Tracking Default denied · 0 Dienst(e)

Werbung, Profiling, Retargeting und Tracking erst nach Einwilligung.

Erste Ebene · Marketing erlauben
Externe Medien Default denied · 0 Dienst(e)

Videos, Karten, Captchas, Fonts und eingebettete Inhalte verzögert laden.

Erste Ebene · Externe Inhalte erlauben
Komfort Default denied · 1 Dienst(e)

Optionale Funktionen getrennt von Statistik und Marketing steuerbar machen.

Zweite Ebene · Komfort erlauben
Unklar / klassifizieren Default denied · 6 Dienst(e)

Unklare Dienste bleiben aus, bis Zweck und Rechtsgrundlage geklärt sind.

Zweite Ebene · Nicht aktivieren

Dienste

Welche Signale blockiert oder erklärt werden müssen

wp-wpml_current_language brso.de · Komfort

Funktional

Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet.
Blocking
ja
Consent Mode
functionality_storage
_wpfuuid brso.de · Unklar / vor Consent prüfen

Unklar

Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet.
Blocking
ja
Consent Mode
functionality_storage
app.usercentrics.eu app.usercentrics.eu · Unklar / klassifizieren

Sonstige

Aus SaferPage-Scan-Evidenz abgeleitet.
Blocking
ja
Consent Mode
functionality_storage
consent-api.service.consent.usercentrics.eu consent-api.service.consent.usercentrics.eu · Unklar / klassifizieren

Sonstige

Aus SaferPage-Scan-Evidenz abgeleitet.
Blocking
ja
Consent Mode
functionality_storage
uct.service.usercentrics.eu uct.service.usercentrics.eu · Unklar / klassifizieren

Sonstige

Aus SaferPage-Scan-Evidenz abgeleitet.
Blocking
ja
Consent Mode
functionality_storage
v1.api.service.cmp.usercentrics.eu v1.api.service.cmp.usercentrics.eu · Unklar / klassifizieren

Sonstige

Aus SaferPage-Scan-Evidenz abgeleitet.
Blocking
ja
Consent Mode
functionality_storage
web.cmp.usercentrics.eu web.cmp.usercentrics.eu · Unklar / klassifizieren

Sonstige

Aus SaferPage-Scan-Evidenz abgeleitet.
Blocking
ja
Consent Mode
functionality_storage

Abnahme

Tests vor Produktivstart

Default Denied vor Tags

Google-/Marketing-/Analytics-Tags laden erst nach restriktivem Default.

Ablehnen gleichwertig

Ablehnen ist auf erster Ebene ähnlich sichtbar wie Akzeptieren.

Widerruf dauerhaft erreichbar

Privacy Trigger bleibt nach Entscheidung sichtbar.

Prior Blocking

Dienste mit prior_blocking_required=true werden vor Freigabe technisch blockiert.

Consent Ledger

Version, Zeit, Kategorie, Region und Widerruf werden im Betreiber-System protokolliert.