{
    "schema": "https://saferpage.de/schemas/consent-mode-implementation.v1",
    "generated_at": "2026-06-08T17:25:51+00:00",
    "domain": "verbraucherschule.de",
    "available": true,
    "scan": {
        "id": "317964e6-653c-45fa-a97e-22e885162264",
        "checked_at": "2026-06-07 18:15:01.787543+02"
    },
    "status": "offen",
    "implementation_score": 44,
    "summary": "Consent-Mode-Implementierung 44/100; 3/6 Schritt(e) bereit, 3 offen. Google-Tags erkannt.",
    "metrics": {
        "google_tag_present": true,
        "google_domain_count": 0,
        "google_consent_score": 58,
        "consent_default_found": false,
        "consent_update_found": false,
        "default_granted_key_count": 0,
        "cmp_detected": false,
        "consent_state_count": 4,
        "pre_consent_cookie_count": 0,
        "pre_consent_tracking_cookie_count": 0,
        "post_reject_new_cookie_count": 0,
        "post_reject_privacy_relevant_domain_count": 0,
        "tcf_purpose_consent_count": 0,
        "tcf_vendor_consent_count": 0,
        "gpc_privacy_relevant_domain_count": 0,
        "cookie_inventory_count": 0,
        "open_step_count": 3
    },
    "implementation_steps": [
        {
            "id": "google_scope",
            "label": "Google-Tags und Zwecke inventarisieren",
            "owner": "Marketing/Datenschutz",
            "phase": "Planung",
            "action": "Google-Dienste, Tag-IDs, Zwecke, Rechtsgrundlagen, Empfänger und Consent-Kategorien in Anbieterregister und Datenschutzhinweis abgleichen.",
            "passed": true,
            "status": "bereit",
            "evidence": "Google-Tags sichtbar, Google-Domains 0, Anbieter 1, Cookies 0.",
            "guide_url": "/guides/google-dienste-datenschutzfreundlich-einbinden",
            "manual_review": true
        },
        {
            "id": "default_denied",
            "label": "Consent Mode Defaults vor dem ersten Google-Tag setzen",
            "owner": "GTM/Webentwicklung",
            "phase": "Implementierung",
            "action": "Vor GTM/gtag alle vier Consent-Mode-v2-Signale auf denied setzen: ad_storage, analytics_storage, ad_user_data und ad_personalization.",
            "passed": false,
            "status": "offen",
            "evidence": "Default erkannt: nein, granted by default: nein, denied: nicht sichtbar.",
            "guide_url": "/guides/google-dienste-datenschutzfreundlich-einbinden",
            "manual_review": false
        },
        {
            "id": "cmp_update_mapping",
            "label": "CMP-Kategorien auf Consent Updates mappen",
            "owner": "GTM/CMP Owner",
            "phase": "Implementierung",
            "action": "Statistik/Marketing-Kategorien der CMP in gtag consent update oder GTM Consent Initialization mappen und Opt-out als denied zurückschreiben.",
            "passed": false,
            "status": "offen",
            "evidence": "CMP erkannt: nein, Consent Update erkannt: nein.",
            "guide_url": "/guides/google-dienste-datenschutzfreundlich-einbinden",
            "manual_review": true
        },
        {
            "id": "tag_gating",
            "label": "Google- und Marketing-Tags blockieren, bis passende Einwilligung vorliegt",
            "owner": "Marketing/IT",
            "phase": "Tag-Regeln",
            "action": "GA4, Ads, Floodlight, Remarketing, Conversion Linker und Drittanbieter-Pixel mit Additional Consent Checks und Triggern nach Consent freigeben.",
            "passed": true,
            "status": "bereit",
            "evidence": "Tracking-Cookies vor Consent 0, Cookies vor Consent 0, Datenschutz-Domains nach Ablehnen 0.",
            "guide_url": "/guides/google-dienste-datenschutzfreundlich-einbinden",
            "manual_review": false
        },
        {
            "id": "reject_gpc",
            "label": "Ablehnen, Widerruf und GPC als echte Sperre testen",
            "owner": "Datenschutz/QA",
            "phase": "Validierung",
            "action": "Ablehnen-Button, Preference Center, Widerruf und Global Privacy Control gegen Cookies, Requests und Storage erneut scannen.",
            "passed": false,
            "status": "offen",
            "evidence": "Ablehnen verfügbar: nein, GPC-Zustände 4, Journey-Score 100.",
            "guide_url": "/guides/tracking-und-consent-reparieren",
            "manual_review": false
        },
        {
            "id": "evidence_retest",
            "label": "Nachweis, Re-Test und Release-Gate sichern",
            "owner": "Compliance/Release",
            "phase": "Nachweis",
            "action": "Vor Livegang Default, Ablehnen, Akzeptieren und GPC dokumentieren; ZIP/XLSX exportieren und nach Tag-Änderungen erneut scannen.",
            "passed": true,
            "status": "bereit",
            "evidence": "Consent-Zustände 4, Consent-Audit-Score 82, Google-Consent-Score 58.",
            "guide_url": "/monitoring",
            "manual_review": false
        }
    ],
    "snippets": [
        {
            "id": "gtag_default_denied",
            "label": "gtag Default vor GTM/Google-Tag",
            "placement": "im <head> vor dem ersten Google-Tag",
            "code": "window.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('consent', 'default', {\n  ad_storage: 'denied',\n  analytics_storage: 'denied',\n  ad_user_data: 'denied',\n  ad_personalization: 'denied',\n  functionality_storage: 'granted',\n  security_storage: 'granted',\n  wait_for_update: 500\n});"
        },
        {
            "id": "cmp_update",
            "label": "CMP-Auswahl in Consent Update übersetzen",
            "placement": "nach Akzeptieren, Ablehnen und Widerruf",
            "code": "gtag('consent', 'update', {\n  analytics_storage: userAllowsStatistics ? 'granted' : 'denied',\n  ad_storage: userAllowsMarketing ? 'granted' : 'denied',\n  ad_user_data: userAllowsMarketing ? 'granted' : 'denied',\n  ad_personalization: userAllowsMarketing ? 'granted' : 'denied'\n});\ndataLayer.push({event: 'saferpage_consent_update'});"
        },
        {
            "id": "gtm_template_api",
            "label": "GTM Custom Template API",
            "placement": "Consent Initialization Trigger oder CMP-Template",
            "code": "// Custom Template oder CMP-Template im Google Tag Manager:\nsetDefaultConsentState({\n  ad_storage: 'denied',\n  analytics_storage: 'denied',\n  ad_user_data: 'denied',\n  ad_personalization: 'denied',\n  wait_for_update: 500\n});\n\n// Nach CMP-Auswahl:\nupdateConsentState({\n  analytics_storage: statisticsConsent ? 'granted' : 'denied',\n  ad_storage: marketingConsent ? 'granted' : 'denied',\n  ad_user_data: marketingConsent ? 'granted' : 'denied',\n  ad_personalization: marketingConsent ? 'granted' : 'denied'\n});"
        }
    ],
    "validation_tests": [
        {
            "id": "default_state",
            "label": "Erstaufruf ohne Interaktion",
            "expected": "Consent Default ist gesetzt, nicht notwendige Google-/Marketing-Tags feuern nicht, keine Tracking-Cookies vor Einwilligung.",
            "evidence": "Tag Assistant Summary, Network-Log, Cookie-Tabelle und SaferPage Consent-Audit."
        },
        {
            "id": "reject_state",
            "label": "Ablehnen und Widerruf",
            "expected": "Alle Marketing-/Analytics-Signale bleiben denied, bereits gesetzte nicht notwendige Cookies werden nicht erweitert.",
            "evidence": "Reject-Zustand, Storage-Diff und Drittanbieter-Kontakte nach Ablehnen."
        },
        {
            "id": "accept_state",
            "label": "Akzeptieren",
            "expected": "Nur freigegebene Kategorien wechseln auf granted; GA4/Ads feuern erst nach passender Einwilligung.",
            "evidence": "Consent update, Tag-Firing-Reihenfolge und Anbieter-/Cookie-Abgleich."
        },
        {
            "id": "gpc_state",
            "label": "Global Privacy Control",
            "expected": "GPC wird mindestens als Opt-out-Signal im Datenschutz- und Tracking-Kontext ausgewertet.",
            "evidence": "GPC-Browserlauf, Request- und Cookie-Diff."
        }
    ],
    "priority_actions": [
        "Vor GTM/gtag alle vier Consent-Mode-v2-Signale auf denied setzen: ad_storage, analytics_storage, ad_user_data und ad_personalization.",
        "Statistik/Marketing-Kategorien der CMP in gtag consent update oder GTM Consent Initialization mappen und Opt-out als denied zurückschreiben.",
        "Ablehnen-Button, Preference Center, Widerruf und Global Privacy Control gegen Cookies, Requests und Storage erneut scannen."
    ],
    "sources": [
        {
            "label": "Google Consent Mode Overview",
            "url": "https://developers.google.com/tag-platform/security/concepts/consent-mode",
            "detail": "Grundprinzip und Implementierungsarten für Consent Mode."
        },
        {
            "label": "Google Consent Setup Guide",
            "url": "https://developers.google.com/tag-platform/security/guides/consent",
            "detail": "Einrichtung mit eigener Consent-Lösung und Tag-Manager-APIs."
        },
        {
            "label": "Google Tag API Referenz",
            "url": "https://developers.google.com/tag-platform/gtagjs/reference?hl=de",
            "detail": "gtag consent default/update und Consent-Parameter."
        },
        {
            "label": "Google Tag Assistant Debugging",
            "url": "https://developers.google.com/tag-platform/security/guides/consent-debugging",
            "detail": "Prüfung von Default- und Update-Consent im Debugging."
        }
    ],
    "links": {
        "consent_mode_center": "https://saferpage.de/consent-mode/verbraucherschule.de",
        "json": "https://saferpage.de/consent-mode/verbraucherschule.de/export",
        "csv": "https://saferpage.de/consent-mode/verbraucherschule.de/export-csv",
        "gtm_markdown": "https://saferpage.de/consent-mode/verbraucherschule.de/gtm-md",
        "report": "https://saferpage.de/verbraucherschule.de",
        "consent_center": "https://saferpage.de/consent/verbraucherschule.de",
        "cmp_plan_json": "https://saferpage.de/consent/verbraucherschule.de/cmp-plan",
        "cookie_center": "https://saferpage.de/cookies/verbraucherschule.de",
        "vendor_center": "https://saferpage.de/anbieter/verbraucherschule.de",
        "alert_center": "https://saferpage.de/alarme/verbraucherschule.de",
        "guide": "https://saferpage.de/guides/google-dienste-datenschutzfreundlich-einbinden"
    },
    "disclaimer": "Technische Umsetzungsvorlage aus öffentlichen Scan-Signalen. Betreiber müssen CMP-Konfiguration, reale Tag-Auslösung, Rechtsgrundlagen und Vertragstexte fachlich freigeben."
}
