{
    "schema": "https://saferpage.de/schemas/cmp-setup-plan.v1",
    "generated_at": "2026-06-13T13:10:04+00:00",
    "domain": "diversity.charite.de",
    "scan": {
        "id": "c81086cd-a963-414f-b1b3-466617e48625",
        "checked_at": "2026-06-13 01:47:55.128763+02"
    },
    "summary": "CMP-Setup-Plan für diversity.charite.de: 10 Dienst-/Cookie-Signal(e), 10 vor Einwilligung zu blockieren oder fachlich zu begründen.",
    "links": {
        "consent_center": "https://saferpage.de/consent/diversity.charite.de",
        "cmp_plan_json": "https://saferpage.de/consent/diversity.charite.de/cmp-plan",
        "cmp_plan_csv": "https://saferpage.de/consent/diversity.charite.de/cmp-plan-csv",
        "consent_evidence": "https://saferpage.de/consent/diversity.charite.de/nachweise",
        "cookie_declaration": "https://saferpage.de/cookies/diversity.charite.de",
        "vendor_register": "https://saferpage.de/anbieter/diversity.charite.de",
        "operator_board": "https://saferpage.de/betreiber/diversity.charite.de",
        "guide": "https://saferpage.de/guides/tracking-und-consent-reparieren"
    },
    "cmp_categories": [
        {
            "id": "notwendig",
            "label": "Notwendig",
            "description": "Technisch erforderliche Dienste, die ohne Opt-in laufen dürfen, wenn die Erforderlichkeit belegt ist.",
            "default_state": "aktiv",
            "button_copy": "Immer aktiv",
            "service_count": 0,
            "include_in_first_layer": true
        },
        {
            "id": "statistik",
            "label": "Statistik",
            "description": "Reichweitenmessung und Analyse nur nach Einwilligung oder mit sauber belegter datensparsamer Ausnahme.",
            "default_state": "aus",
            "button_copy": "Statistik erlauben",
            "service_count": 0,
            "include_in_first_layer": true
        },
        {
            "id": "marketing",
            "label": "Marketing / Tracking",
            "description": "Werbung, Profiling, Retargeting, Pixel und ähnliche Tracking-Zwecke erst nach Einwilligung.",
            "default_state": "aus",
            "button_copy": "Marketing erlauben",
            "service_count": 0,
            "include_in_first_layer": true
        },
        {
            "id": "externe_medien",
            "label": "Externe Medien / Einbettungen",
            "description": "Karten, Videos, Captchas, Fonts und eingebettete Drittinhalte blockieren oder per Zwei-Klick laden.",
            "default_state": "aus",
            "button_copy": "Externe Inhalte erlauben",
            "service_count": 0,
            "include_in_first_layer": true
        },
        {
            "id": "komfort",
            "label": "Komfort / Funktionen",
            "description": "Optionale Funktionen getrennt von Statistik und Marketing steuerbar machen.",
            "default_state": "aus",
            "button_copy": "Komfort erlauben",
            "service_count": 0,
            "include_in_first_layer": false
        },
        {
            "id": "unklar",
            "label": "Unklar / klassifizieren",
            "description": "Unklare Dienste bleiben aus, bis Zweck, Anbieter, Laufzeit und Rechtsgrundlage geprüft sind.",
            "default_state": "aus",
            "button_copy": "Nicht aktivieren",
            "service_count": 10,
            "include_in_first_layer": false
        }
    ],
    "services": [
        {
            "service_id": "basket_typo3conf_ext_charite_site_resources_public_js_libs_bra_loadmodule_jquery_loadmodule_min_js_diversity_charite_de",
            "service_name": "basket-/typo3conf/ext/charite_site/Resources/Public/js/libs/bra/loadmodule/jquery.loadmodule.min.js",
            "provider": "Eigene Website oder eingebundener Dienst",
            "domain": "diversity.charite.de",
            "signal_type": "storage",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "default_state": "blockieren bis geklärt",
            "prior_blocking_required": true,
            "purpose": "Zweck aus dem Keynamen nicht sicher bestimmbar.",
            "legal_basis_hint": "Zweck, Speicherdauer und Einwilligungsbedarf klären.",
            "retention": "dauerhaft bis Löschung durch Nutzer/Browser",
            "evidence": "Vor Consent sichtbar. Aus Cookie-/Storage-Evidenz abgeleitet.",
            "operator_action": "Im CMP/Tag Manager blockieren, bis passende Einwilligung vorliegt.",
            "guide_url": "/guides/tracking-und-consent-reparieren"
        },
        {
            "service_id": "basket_typo3conf_ext_charite_site_resources_public_js_libs_vendor_a21typeahead_src_bloodhound_a21bloodhound_js_diversity_charite_de",
            "service_name": "basket-/typo3conf/ext/charite_site/Resources/Public/js/libs/vendor/a21typeahead/src/bloodhound/a21bloodhound.js",
            "provider": "Eigene Website oder eingebundener Dienst",
            "domain": "diversity.charite.de",
            "signal_type": "storage",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "default_state": "blockieren bis geklärt",
            "prior_blocking_required": true,
            "purpose": "Zweck aus dem Keynamen nicht sicher bestimmbar.",
            "legal_basis_hint": "Zweck, Speicherdauer und Einwilligungsbedarf klären.",
            "retention": "dauerhaft bis Löschung durch Nutzer/Browser",
            "evidence": "Vor Consent sichtbar. Aus Cookie-/Storage-Evidenz abgeleitet.",
            "operator_action": "Im CMP/Tag Manager blockieren, bis passende Einwilligung vorliegt.",
            "guide_url": "/guides/tracking-und-consent-reparieren"
        },
        {
            "service_id": "basket_typo3conf_ext_charite_site_resources_public_js_libs_vendor_equalize_equalize_min_js_diversity_charite_de",
            "service_name": "basket-/typo3conf/ext/charite_site/Resources/Public/js/libs/vendor/equalize/equalize.min.js",
            "provider": "Eigene Website oder eingebundener Dienst",
            "domain": "diversity.charite.de",
            "signal_type": "storage",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "default_state": "blockieren bis geklärt",
            "prior_blocking_required": true,
            "purpose": "Zweck aus dem Keynamen nicht sicher bestimmbar.",
            "legal_basis_hint": "Zweck, Speicherdauer und Einwilligungsbedarf klären.",
            "retention": "dauerhaft bis Löschung durch Nutzer/Browser",
            "evidence": "Vor Consent sichtbar. Aus Cookie-/Storage-Evidenz abgeleitet.",
            "operator_action": "Im CMP/Tag Manager blockieren, bis passende Einwilligung vorliegt.",
            "guide_url": "/guides/tracking-und-consent-reparieren"
        },
        {
            "service_id": "basket_typo3conf_ext_charite_site_resources_public_js_libs_vendor_jquery_cookie_master_src_jquery_cookie_js_diversity_charite_de",
            "service_name": "basket-/typo3conf/ext/charite_site/Resources/Public/js/libs/vendor/jquery-cookie-master/src/jquery.cookie.js",
            "provider": "Eigene Website oder eingebundener Dienst",
            "domain": "diversity.charite.de",
            "signal_type": "storage",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "default_state": "blockieren bis geklärt",
            "prior_blocking_required": true,
            "purpose": "Zweck aus dem Keynamen nicht sicher bestimmbar.",
            "legal_basis_hint": "Zweck, Speicherdauer und Einwilligungsbedarf klären.",
            "retention": "dauerhaft bis Löschung durch Nutzer/Browser",
            "evidence": "Vor Consent sichtbar. Aus Cookie-/Storage-Evidenz abgeleitet.",
            "operator_action": "Im CMP/Tag Manager blockieren, bis passende Einwilligung vorliegt.",
            "guide_url": "/guides/tracking-und-consent-reparieren"
        },
        {
            "service_id": "basket_typo3conf_ext_charite_site_resources_public_js_libs_vendor_jquery_ui_1_11_4_custom_jquery_ui_min_js_diversity_charite_de",
            "service_name": "basket-/typo3conf/ext/charite_site/Resources/Public/js/libs/vendor/jquery-ui-1.11.4.custom/jquery-ui.min.js",
            "provider": "Eigene Website oder eingebundener Dienst",
            "domain": "diversity.charite.de",
            "signal_type": "storage",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "default_state": "blockieren bis geklärt",
            "prior_blocking_required": true,
            "purpose": "Zweck aus dem Keynamen nicht sicher bestimmbar.",
            "legal_basis_hint": "Zweck, Speicherdauer und Einwilligungsbedarf klären.",
            "retention": "dauerhaft bis Löschung durch Nutzer/Browser",
            "evidence": "Vor Consent sichtbar. Aus Cookie-/Storage-Evidenz abgeleitet.",
            "operator_action": "Im CMP/Tag Manager blockieren, bis passende Einwilligung vorliegt.",
            "guide_url": "/guides/tracking-und-consent-reparieren"
        },
        {
            "service_id": "basket_typo3conf_ext_charite_site_resources_public_js_libs_vendor_jquery_jquery_min_js_diversity_charite_de",
            "service_name": "basket-/typo3conf/ext/charite_site/Resources/Public/js/libs/vendor/jquery/jquery.min.js",
            "provider": "Eigene Website oder eingebundener Dienst",
            "domain": "diversity.charite.de",
            "signal_type": "storage",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "default_state": "blockieren bis geklärt",
            "prior_blocking_required": true,
            "purpose": "Zweck aus dem Keynamen nicht sicher bestimmbar.",
            "legal_basis_hint": "Zweck, Speicherdauer und Einwilligungsbedarf klären.",
            "retention": "dauerhaft bis Löschung durch Nutzer/Browser",
            "evidence": "Vor Consent sichtbar. Aus Cookie-/Storage-Evidenz abgeleitet.",
            "operator_action": "Im CMP/Tag Manager blockieren, bis passende Einwilligung vorliegt.",
            "guide_url": "/guides/tracking-und-consent-reparieren"
        },
        {
            "service_id": "basket_typo3conf_ext_charite_site_resources_public_js_libs_vendor_modernizr_modernizr_custom_min_js_diversity_charite_de",
            "service_name": "basket-/typo3conf/ext/charite_site/Resources/Public/js/libs/vendor/modernizr/modernizr.custom.min.js",
            "provider": "Eigene Website oder eingebundener Dienst",
            "domain": "diversity.charite.de",
            "signal_type": "storage",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "default_state": "blockieren bis geklärt",
            "prior_blocking_required": true,
            "purpose": "Zweck aus dem Keynamen nicht sicher bestimmbar.",
            "legal_basis_hint": "Zweck, Speicherdauer und Einwilligungsbedarf klären.",
            "retention": "dauerhaft bis Löschung durch Nutzer/Browser",
            "evidence": "Vor Consent sichtbar. Aus Cookie-/Storage-Evidenz abgeleitet.",
            "operator_action": "Im CMP/Tag Manager blockieren, bis passende Einwilligung vorliegt.",
            "guide_url": "/guides/tracking-und-consent-reparieren"
        },
        {
            "service_id": "basket_typo3conf_ext_charite_site_resources_public_js_libs_vendor_placeholder_placeholders_min_js_diversity_charite_de",
            "service_name": "basket-/typo3conf/ext/charite_site/Resources/Public/js/libs/vendor/placeholder/placeholders.min.js",
            "provider": "Eigene Website oder eingebundener Dienst",
            "domain": "diversity.charite.de",
            "signal_type": "storage",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "default_state": "blockieren bis geklärt",
            "prior_blocking_required": true,
            "purpose": "Zweck aus dem Keynamen nicht sicher bestimmbar.",
            "legal_basis_hint": "Zweck, Speicherdauer und Einwilligungsbedarf klären.",
            "retention": "dauerhaft bis Löschung durch Nutzer/Browser",
            "evidence": "Vor Consent sichtbar. Aus Cookie-/Storage-Evidenz abgeleitet.",
            "operator_action": "Im CMP/Tag Manager blockieren, bis passende Einwilligung vorliegt.",
            "guide_url": "/guides/tracking-und-consent-reparieren"
        },
        {
            "service_id": "basket_typo3conf_ext_charite_site_resources_public_js_libs_vendor_typeahead_typeahead_bundle_js_diversity_charite_de",
            "service_name": "basket-/typo3conf/ext/charite_site/Resources/Public/js/libs/vendor/typeahead/typeahead.bundle.js",
            "provider": "Eigene Website oder eingebundener Dienst",
            "domain": "diversity.charite.de",
            "signal_type": "storage",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "default_state": "blockieren bis geklärt",
            "prior_blocking_required": true,
            "purpose": "Zweck aus dem Keynamen nicht sicher bestimmbar.",
            "legal_basis_hint": "Zweck, Speicherdauer und Einwilligungsbedarf klären.",
            "retention": "dauerhaft bis Löschung durch Nutzer/Browser",
            "evidence": "Vor Consent sichtbar. Aus Cookie-/Storage-Evidenz abgeleitet.",
            "operator_action": "Im CMP/Tag Manager blockieren, bis passende Einwilligung vorliegt.",
            "guide_url": "/guides/tracking-und-consent-reparieren"
        },
        {
            "service_id": "basket_typo3conf_ext_charite_site_resources_public_js_libs_vendor_underscore_underscore_min_js_diversity_charite_de",
            "service_name": "basket-/typo3conf/ext/charite_site/Resources/Public/js/libs/vendor/underscore/underscore-min.js",
            "provider": "Eigene Website oder eingebundener Dienst",
            "domain": "diversity.charite.de",
            "signal_type": "storage",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "default_state": "blockieren bis geklärt",
            "prior_blocking_required": true,
            "purpose": "Zweck aus dem Keynamen nicht sicher bestimmbar.",
            "legal_basis_hint": "Zweck, Speicherdauer und Einwilligungsbedarf klären.",
            "retention": "dauerhaft bis Löschung durch Nutzer/Browser",
            "evidence": "Vor Consent sichtbar. Aus Cookie-/Storage-Evidenz abgeleitet.",
            "operator_action": "Im CMP/Tag Manager blockieren, bis passende Einwilligung vorliegt.",
            "guide_url": "/guides/tracking-und-consent-reparieren"
        }
    ],
    "tag_manager_rules": [
        {
            "id": "default_denied",
            "label": "Default denied setzen",
            "rule": "Alle nicht notwendigen Kategorien vor Einwilligung deaktivieren; Google Consent Mode initial auf denied setzen.",
            "owner": "Marketing/IT"
        },
        {
            "id": "reject_no_fire",
            "label": "Ablehnen wirkt technisch",
            "rule": "Nach Klick auf Ablehnen dürfen keine neuen Statistik-, Marketing- oder Drittanbieter-Tags feuern.",
            "owner": "Marketing/IT"
        },
        {
            "id": "gpc_optout",
            "label": "GPC respektieren",
            "rule": "Global Privacy Control als Opt-out behandeln und Sharing/Tracking unterdrücken.",
            "owner": "Datenschutz/IT"
        },
        {
            "id": "two_click_embeds",
            "label": "Externe Inhalte verzögern",
            "rule": "Maps, Videos, Captchas und externe Medien erst nach Freigabe oder datenschutzfreundlich lokal laden.",
            "owner": "Frontend/Content"
        }
    ],
    "consent_mode_defaults": {
        "ad_storage": "denied",
        "analytics_storage": "denied",
        "ad_user_data": "denied",
        "ad_personalization": "denied",
        "functionality_storage": "denied sofern nicht technisch erforderlich",
        "security_storage": "granted nur für notwendige Sicherheitsfunktionen",
        "region_hint": "DACH/EU: nicht notwendige Zwecke erst nach Einwilligung aktivieren."
    },
    "implementation_steps": [
        {
            "step": 1,
            "label": "Inventar importieren",
            "action": "Dienste aus services in CMP/Tag-Manager übernehmen und unbekannte Einträge nicht aktivieren."
        },
        {
            "step": 2,
            "label": "Kategorien prüfen",
            "action": "Notwendig, Statistik, Marketing, externe Medien, Komfort und unklare Dienste getrennt ausweisen."
        },
        {
            "step": 3,
            "label": "Prior Blocking aktivieren",
            "action": "Alle services mit prior_blocking_required=true vor Consent blockieren."
        },
        {
            "step": 4,
            "label": "Texte vereinfachen",
            "action": "Erste Banner-Ebene mit gleichwertigem Akzeptieren, Ablehnen und Einstellungen formulieren."
        },
        {
            "step": 5,
            "label": "Nachweise speichern",
            "action": "Consent-Version, Zweckliste, Region, Zeitpunkt, Ablehnung/Widerruf und GPC-Zustand auditfähig protokollieren."
        },
        {
            "step": 6,
            "label": "Re-Scan durchführen",
            "action": "Nach Umsetzung Erstaufruf, Ablehnen, Akzeptieren und GPC erneut mit SaferPage prüfen."
        }
    ],
    "quality_gates": [
        {
            "id": "no_tracking_pre_consent",
            "label": "Kein Tracking vor Consent",
            "pass_condition": "Vor Einwilligung werden keine Statistik-/Marketing-/Drittanbieter-Tags geladen."
        },
        {
            "id": "reject_equals_accept",
            "label": "Ablehnen gleichwertig",
            "pass_condition": "Ablehnen ist auf derselben Ebene ähnlich sichtbar wie Akzeptieren."
        },
        {
            "id": "withdrawal_persistent",
            "label": "Widerruf dauerhaft erreichbar",
            "pass_condition": "Cookie-/Privacy-Einstellungen sind nach dem Erstbanner dauerhaft auffindbar."
        },
        {
            "id": "cookie_declaration_complete",
            "label": "Cookie-Erklärung vollständig",
            "pass_condition": "Jeder Dienst hat Anbieter, Zweck, Kategorie, Laufzeit, Rechtsgrundlage und Widerrufspfad."
        }
    ],
    "disclaimer": "Automatisch aus öffentlicher Website-Evidenz abgeleiteter CMP-Setup-Plan. Rechtsgrundlagen, interne Datenflüsse, AVV/DPA und finale Bannertexte müssen Betreiber fachlich freigeben."
}