{
    "schema": "https://saferpage.de/schemas/consent-banner-template.v1",
    "generated_at": "2026-06-26T22:15:54+00:00",
    "domain": "emilfrey.ch",
    "available": true,
    "scan": {
        "id": "190944e8-f28e-42a0-a2da-dbe76a710886",
        "checked_at": "2026-06-26 11:59:15.788277+02"
    },
    "summary": "emilfrey.ch: Banner-Vorlage mit 6 Kategorien, 19 Dienstsignal(en), 19 Prior-Blocking-Regel(n) und Default-Denied Consent Mode.",
    "score": 94,
    "layout": {
        "type": "bottom_dialog",
        "first_layer_buttons": [
            "Ablehnen",
            "Einstellungen",
            "Akzeptieren"
        ],
        "privacy_trigger": "dauerhafter Button \"Datenschutz-Einstellungen\"",
        "accessibility_notes": [
            "role=dialog",
            "aria-labelledby",
            "Tastaturbedienung und Fokusführung vor Produktivstart testen"
        ]
    },
    "categories": [
        {
            "label": "Notwendig",
            "description": "Erforderliche Dienste für Sicherheit und Grundfunktionen.",
            "default_state": "active",
            "button_copy": "Immer aktiv",
            "id": "notwendig",
            "service_count": 0,
            "include_in_first_layer": true
        },
        {
            "label": "Statistik",
            "description": "Reichweitenmessung und Analyse erst nach Einwilligung.",
            "default_state": "denied",
            "button_copy": "Statistik erlauben",
            "id": "statistik",
            "service_count": 0,
            "include_in_first_layer": true
        },
        {
            "label": "Marketing / Tracking",
            "description": "Werbung, Profiling, Retargeting und Tracking erst nach Einwilligung.",
            "default_state": "denied",
            "button_copy": "Marketing erlauben",
            "id": "marketing",
            "service_count": 0,
            "include_in_first_layer": true
        },
        {
            "label": "Externe Medien",
            "description": "Videos, Karten, Captchas, Fonts und eingebettete Inhalte verzögert laden.",
            "default_state": "denied",
            "button_copy": "Externe Inhalte erlauben",
            "id": "externe_medien",
            "service_count": 0,
            "include_in_first_layer": true
        },
        {
            "label": "Komfort",
            "description": "Optionale Funktionen getrennt von Statistik und Marketing steuerbar machen.",
            "default_state": "denied",
            "button_copy": "Komfort erlauben",
            "id": "komfort",
            "service_count": 0,
            "include_in_first_layer": false
        },
        {
            "label": "Unklar / klassifizieren",
            "description": "Unklare Dienste bleiben aus, bis Zweck und Rechtsgrundlage geklärt sind.",
            "default_state": "denied",
            "button_copy": "Nicht aktivieren",
            "id": "unklar",
            "service_count": 19,
            "include_in_first_layer": false
        }
    ],
    "services": [
        {
            "id": "x_in_ab_qs_emilfrey_ch",
            "name": "X-IN-AB-QS",
            "provider": "emilfrey.ch",
            "domain": "emilfrey.ch",
            "purpose": "Unklar",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": true,
            "privacy_relevant": false,
            "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "vis_opt_s_emilfrey_ch",
            "name": "_vis_opt_s",
            "provider": "emilfrey.ch",
            "domain": "emilfrey.ch",
            "purpose": "Unklar",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": true,
            "privacy_relevant": false,
            "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "vis_opt_test_cookie_emilfrey_ch",
            "name": "_vis_opt_test_cookie",
            "provider": "emilfrey.ch",
            "domain": "emilfrey.ch",
            "purpose": "Unklar",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": true,
            "privacy_relevant": false,
            "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "vwo_ds_emilfrey_ch",
            "name": "_vwo_ds",
            "provider": "emilfrey.ch",
            "domain": "emilfrey.ch",
            "purpose": "Unklar",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": true,
            "privacy_relevant": false,
            "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "vwo_sn_emilfrey_ch",
            "name": "_vwo_sn",
            "provider": "emilfrey.ch",
            "domain": "emilfrey.ch",
            "purpose": "Unklar",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": true,
            "privacy_relevant": false,
            "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "vwo_uuid_emilfrey_ch",
            "name": "_vwo_uuid",
            "provider": "emilfrey.ch",
            "domain": "emilfrey.ch",
            "purpose": "Unklar",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": true,
            "privacy_relevant": false,
            "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "vwo_uuid_v2_emilfrey_ch",
            "name": "_vwo_uuid_v2",
            "provider": "emilfrey.ch",
            "domain": "emilfrey.ch",
            "purpose": "Unklar",
            "category_id": "unklar",
            "category_label": "Unklar / vor Consent prüfen",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": true,
            "privacy_relevant": false,
            "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "app_usercentrics_eu_app_usercentrics_eu",
            "name": "app.usercentrics.eu",
            "provider": "app.usercentrics.eu",
            "domain": "app.usercentrics.eu",
            "purpose": "Sonstige",
            "category_id": "unklar",
            "category_label": "Unklar / klassifizieren",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": false,
            "privacy_relevant": false,
            "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "builder_io_imgix_net_builder_io_imgix_net",
            "name": "builder-io.imgix.net",
            "provider": "builder-io.imgix.net",
            "domain": "builder-io.imgix.net",
            "purpose": "Sonstige",
            "category_id": "unklar",
            "category_label": "Unklar / klassifizieren",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": false,
            "privacy_relevant": false,
            "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "cdn_builder_io_cdn_builder_io",
            "name": "cdn.builder.io",
            "provider": "cdn.builder.io",
            "domain": "cdn.builder.io",
            "purpose": "Sonstige",
            "category_id": "unklar",
            "category_label": "Unklar / klassifizieren",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": false,
            "privacy_relevant": false,
            "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "consent_api_service_consent_usercentrics_eu_consent_api_service_consent_usercentrics_eu",
            "name": "consent-api.service.consent.usercentrics.eu",
            "provider": "consent-api.service.consent.usercentrics.eu",
            "domain": "consent-api.service.consent.usercentrics.eu",
            "purpose": "Sonstige",
            "category_id": "unklar",
            "category_label": "Unklar / klassifizieren",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": false,
            "privacy_relevant": false,
            "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "dev_visualwebsiteoptimizer_com_dev_visualwebsiteoptimizer_com",
            "name": "dev.visualwebsiteoptimizer.com",
            "provider": "dev.visualwebsiteoptimizer.com",
            "domain": "dev.visualwebsiteoptimizer.com",
            "purpose": "Sonstige",
            "category_id": "unklar",
            "category_label": "Unklar / klassifizieren",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": false,
            "privacy_relevant": false,
            "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "ingrid_efch_palette_imgix_net_ingrid_efch_palette_imgix_net",
            "name": "ingrid-efch-palette.imgix.net",
            "provider": "ingrid-efch-palette.imgix.net",
            "domain": "ingrid-efch-palette.imgix.net",
            "purpose": "Sonstige",
            "category_id": "unklar",
            "category_label": "Unklar / klassifizieren",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": false,
            "privacy_relevant": false,
            "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "login_emilfrey_ch_login_emilfrey_ch",
            "name": "login.emilfrey.ch",
            "provider": "login.emilfrey.ch",
            "domain": "login.emilfrey.ch",
            "purpose": "Sonstige",
            "category_id": "unklar",
            "category_label": "Unklar / klassifizieren",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": false,
            "privacy_relevant": false,
            "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "qxdf5pokjz_dsn_algolia_net_qxdf5pokjz_dsn_algolia_net",
            "name": "qxdf5pokjz-dsn.algolia.net",
            "provider": "qxdf5pokjz-dsn.algolia.net",
            "domain": "qxdf5pokjz-dsn.algolia.net",
            "purpose": "Sonstige",
            "category_id": "unklar",
            "category_label": "Unklar / klassifizieren",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": false,
            "privacy_relevant": false,
            "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "rns_matelso_de_rns_matelso_de",
            "name": "rns.matelso.de",
            "provider": "rns.matelso.de",
            "domain": "rns.matelso.de",
            "purpose": "Sonstige",
            "category_id": "unklar",
            "category_label": "Unklar / klassifizieren",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": false,
            "privacy_relevant": false,
            "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "uct_service_usercentrics_eu_uct_service_usercentrics_eu",
            "name": "uct.service.usercentrics.eu",
            "provider": "uct.service.usercentrics.eu",
            "domain": "uct.service.usercentrics.eu",
            "purpose": "Sonstige",
            "category_id": "unklar",
            "category_label": "Unklar / klassifizieren",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": false,
            "privacy_relevant": false,
            "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "v1_api_service_cmp_usercentrics_eu_v1_api_service_cmp_usercentrics_eu",
            "name": "v1.api.service.cmp.usercentrics.eu",
            "provider": "v1.api.service.cmp.usercentrics.eu",
            "domain": "v1.api.service.cmp.usercentrics.eu",
            "purpose": "Sonstige",
            "category_id": "unklar",
            "category_label": "Unklar / klassifizieren",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": false,
            "privacy_relevant": false,
            "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
        },
        {
            "id": "web_cmp_usercentrics_eu_web_cmp_usercentrics_eu",
            "name": "web.cmp.usercentrics.eu",
            "provider": "web.cmp.usercentrics.eu",
            "domain": "web.cmp.usercentrics.eu",
            "purpose": "Sonstige",
            "category_id": "unklar",
            "category_label": "Unklar / klassifizieren",
            "consent_mode_key": "functionality_storage",
            "default_state": "denied",
            "prior_blocking_required": true,
            "pre_consent": false,
            "privacy_relevant": false,
            "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
        }
    ],
    "consent_mode_defaults": {
        "ad_storage": "denied",
        "analytics_storage": "denied",
        "ad_user_data": "denied",
        "ad_personalization": "denied",
        "functionality_storage": "denied",
        "security_storage": "granted"
    },
    "snippets": [
        {
            "id": "html_banner",
            "label": "HTML/CSS/JS Banner-Vorlage",
            "placement": "Vor dem ersten nicht notwendigen Tag einbauen; Backend/Consent-Ledger ergänzen.",
            "code": "<link rel=\"stylesheet\" href=\"https://saferpage.de/assets/consent-banner.css?v=20260610a\">\n<div id=\"saferpage-consent\" class=\"sp-consent\" data-sp-host=\"emilfrey.ch\" data-sp-categories=\"[{&quot;id&quot;:&quot;notwendig&quot;,&quot;label&quot;:&quot;Notwendig&quot;,&quot;description&quot;:&quot;Erforderliche Dienste für Sicherheit und Grundfunktionen.&quot;,&quot;default_state&quot;:&quot;active&quot;},{&quot;id&quot;:&quot;statistik&quot;,&quot;label&quot;:&quot;Statistik&quot;,&quot;description&quot;:&quot;Reichweitenmessung und Analyse erst nach Einwilligung.&quot;,&quot;default_state&quot;:&quot;denied&quot;},{&quot;id&quot;:&quot;marketing&quot;,&quot;label&quot;:&quot;Marketing / Tracking&quot;,&quot;description&quot;:&quot;Werbung, Profiling, Retargeting und Tracking erst nach Einwilligung.&quot;,&quot;default_state&quot;:&quot;denied&quot;},{&quot;id&quot;:&quot;externe_medien&quot;,&quot;label&quot;:&quot;Externe Medien&quot;,&quot;description&quot;:&quot;Videos, Karten, Captchas, Fonts und eingebettete Inhalte verzögert laden.&quot;,&quot;default_state&quot;:&quot;denied&quot;},{&quot;id&quot;:&quot;komfort&quot;,&quot;label&quot;:&quot;Komfort&quot;,&quot;description&quot;:&quot;Optionale Funktionen getrennt von Statistik und Marketing steuerbar machen.&quot;,&quot;default_state&quot;:&quot;denied&quot;},{&quot;id&quot;:&quot;unklar&quot;,&quot;label&quot;:&quot;Unklar / klassifizieren&quot;,&quot;description&quot;:&quot;Unklare Dienste bleiben aus, bis Zweck und Rechtsgrundlage geklärt sind.&quot;,&quot;default_state&quot;:&quot;denied&quot;}]\" hidden>\n  <div class=\"sp-consent__panel\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"sp-consent-title\">\n    <h2 id=\"sp-consent-title\">Datenschutz-Einstellungen</h2>\n    <p>Wir verwenden notwendige Dienste. Statistik, Marketing und externe Inhalte werden erst nach Ihrer Einwilligung geladen.</p>\n    <div id=\"sp-consent-options\"></div>\n    <div class=\"sp-consent__actions\">\n      <button type=\"button\" data-sp-consent=\"reject\">Ablehnen</button>\n      <button type=\"button\" data-sp-consent=\"settings\">Einstellungen</button>\n      <button type=\"button\" data-sp-consent=\"accept\">Akzeptieren</button>\n    </div>\n  </div>\n</div>\n<button id=\"saferpage-consent-trigger\" type=\"button\">Datenschutz-Einstellungen</button>\n<script src=\"https://saferpage.de/assets/consent-banner.js?v=20260610a\" defer></script>"
        },
        {
            "id": "privacy_trigger",
            "label": "Privacy Trigger Link",
            "placement": "Footer, Datenschutzseite und Cookie-Erklärung",
            "code": "<button type=\"button\" id=\"saferpage-consent-trigger\">Datenschutz-Einstellungen</button>"
        },
        {
            "id": "gtm_event",
            "label": "GTM Event",
            "placement": "Tag Manager Trigger nach Consent-Update",
            "code": "window.addEventListener('saferpage-consent-update', function(e){ dataLayer.push({event:'saferpage_consent_update', consent:e.detail}); });"
        }
    ],
    "quality_gates": [
        {
            "id": "default_denied",
            "label": "Default Denied vor Tags",
            "pass_condition": "Google-/Marketing-/Analytics-Tags laden erst nach restriktivem Default."
        },
        {
            "id": "equal_reject",
            "label": "Ablehnen gleichwertig",
            "pass_condition": "Ablehnen ist auf erster Ebene ähnlich sichtbar wie Akzeptieren."
        },
        {
            "id": "persistent_trigger",
            "label": "Widerruf dauerhaft erreichbar",
            "pass_condition": "Privacy Trigger bleibt nach Entscheidung sichtbar."
        },
        {
            "id": "prior_blocking",
            "label": "Prior Blocking",
            "pass_condition": "Dienste mit prior_blocking_required=true werden vor Freigabe technisch blockiert."
        },
        {
            "id": "consent_ledger",
            "label": "Consent Ledger",
            "pass_condition": "Version, Zeit, Kategorie, Region und Widerruf werden im Betreiber-System protokolliert."
        }
    ],
    "autoblocking_plan": {
        "schema": "https://saferpage.de/schemas/consent-autoblocking-plan.v1",
        "generated_at": "2026-06-26T22:15:54+00:00",
        "domain": "emilfrey.ch",
        "summary": "emilfrey.ch: 19 Auto-Blocking-Regel(n) für Skripte, Iframes und Tag-Manager-Trigger aus SaferPage-Dienstsignalen.",
        "rule_count": 19,
        "rules": [
            {
                "id": "x_in_ab_qs_emilfrey_ch",
                "service": "X-IN-AB-QS",
                "provider": "emilfrey.ch",
                "domain_pattern": "*.emilfrey.ch",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\" src=\"about:blank\" title=\"X-IN-AB-QS\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "vis_opt_s_emilfrey_ch",
                "service": "_vis_opt_s",
                "provider": "emilfrey.ch",
                "domain_pattern": "*.emilfrey.ch",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\" src=\"about:blank\" title=\"_vis_opt_s\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "vis_opt_test_cookie_emilfrey_ch",
                "service": "_vis_opt_test_cookie",
                "provider": "emilfrey.ch",
                "domain_pattern": "*.emilfrey.ch",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\" src=\"about:blank\" title=\"_vis_opt_test_cookie\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "vwo_ds_emilfrey_ch",
                "service": "_vwo_ds",
                "provider": "emilfrey.ch",
                "domain_pattern": "*.emilfrey.ch",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\" src=\"about:blank\" title=\"_vwo_ds\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "vwo_sn_emilfrey_ch",
                "service": "_vwo_sn",
                "provider": "emilfrey.ch",
                "domain_pattern": "*.emilfrey.ch",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\" src=\"about:blank\" title=\"_vwo_sn\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "vwo_uuid_emilfrey_ch",
                "service": "_vwo_uuid",
                "provider": "emilfrey.ch",
                "domain_pattern": "*.emilfrey.ch",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\" src=\"about:blank\" title=\"_vwo_uuid\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "vwo_uuid_v2_emilfrey_ch",
                "service": "_vwo_uuid_v2",
                "provider": "emilfrey.ch",
                "domain_pattern": "*.emilfrey.ch",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://emilfrey.ch/...\" src=\"about:blank\" title=\"_vwo_uuid_v2\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Vor Consent sichtbar. Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "app_usercentrics_eu_app_usercentrics_eu",
                "service": "app.usercentrics.eu",
                "provider": "app.usercentrics.eu",
                "domain_pattern": "*.app.usercentrics.eu",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://app.usercentrics.eu/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://app.usercentrics.eu/...\" src=\"about:blank\" title=\"app.usercentrics.eu\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "builder_io_imgix_net_builder_io_imgix_net",
                "service": "builder-io.imgix.net",
                "provider": "builder-io.imgix.net",
                "domain_pattern": "*.builder-io.imgix.net",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://builder-io.imgix.net/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://builder-io.imgix.net/...\" src=\"about:blank\" title=\"builder-io.imgix.net\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "cdn_builder_io_cdn_builder_io",
                "service": "cdn.builder.io",
                "provider": "cdn.builder.io",
                "domain_pattern": "*.cdn.builder.io",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://cdn.builder.io/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://cdn.builder.io/...\" src=\"about:blank\" title=\"cdn.builder.io\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "consent_api_service_consent_usercentrics_eu_consent_api_service_consent_usercentrics_eu",
                "service": "consent-api.service.consent.usercentrics.eu",
                "provider": "consent-api.service.consent.usercentrics.eu",
                "domain_pattern": "*.consent-api.service.consent.usercentrics.eu",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://consent-api.service.consent.usercentrics.eu/...\"></script>",
                "iframe_rewrite": "<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>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "dev_visualwebsiteoptimizer_com_dev_visualwebsiteoptimizer_com",
                "service": "dev.visualwebsiteoptimizer.com",
                "provider": "dev.visualwebsiteoptimizer.com",
                "domain_pattern": "*.dev.visualwebsiteoptimizer.com",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://dev.visualwebsiteoptimizer.com/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://dev.visualwebsiteoptimizer.com/...\" src=\"about:blank\" title=\"dev.visualwebsiteoptimizer.com\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "ingrid_efch_palette_imgix_net_ingrid_efch_palette_imgix_net",
                "service": "ingrid-efch-palette.imgix.net",
                "provider": "ingrid-efch-palette.imgix.net",
                "domain_pattern": "*.ingrid-efch-palette.imgix.net",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://ingrid-efch-palette.imgix.net/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://ingrid-efch-palette.imgix.net/...\" src=\"about:blank\" title=\"ingrid-efch-palette.imgix.net\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "login_emilfrey_ch_login_emilfrey_ch",
                "service": "login.emilfrey.ch",
                "provider": "login.emilfrey.ch",
                "domain_pattern": "*.login.emilfrey.ch",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://login.emilfrey.ch/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://login.emilfrey.ch/...\" src=\"about:blank\" title=\"login.emilfrey.ch\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "qxdf5pokjz_dsn_algolia_net_qxdf5pokjz_dsn_algolia_net",
                "service": "qxdf5pokjz-dsn.algolia.net",
                "provider": "qxdf5pokjz-dsn.algolia.net",
                "domain_pattern": "*.qxdf5pokjz-dsn.algolia.net",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://qxdf5pokjz-dsn.algolia.net/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://qxdf5pokjz-dsn.algolia.net/...\" src=\"about:blank\" title=\"qxdf5pokjz-dsn.algolia.net\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "rns_matelso_de_rns_matelso_de",
                "service": "rns.matelso.de",
                "provider": "rns.matelso.de",
                "domain_pattern": "*.rns.matelso.de",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://rns.matelso.de/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://rns.matelso.de/...\" src=\"about:blank\" title=\"rns.matelso.de\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "uct_service_usercentrics_eu_uct_service_usercentrics_eu",
                "service": "uct.service.usercentrics.eu",
                "provider": "uct.service.usercentrics.eu",
                "domain_pattern": "*.uct.service.usercentrics.eu",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://uct.service.usercentrics.eu/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://uct.service.usercentrics.eu/...\" src=\"about:blank\" title=\"uct.service.usercentrics.eu\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "v1_api_service_cmp_usercentrics_eu_v1_api_service_cmp_usercentrics_eu",
                "service": "v1.api.service.cmp.usercentrics.eu",
                "provider": "v1.api.service.cmp.usercentrics.eu",
                "domain_pattern": "*.v1.api.service.cmp.usercentrics.eu",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://v1.api.service.cmp.usercentrics.eu/...\"></script>",
                "iframe_rewrite": "<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>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
            },
            {
                "id": "web_cmp_usercentrics_eu_web_cmp_usercentrics_eu",
                "service": "web.cmp.usercentrics.eu",
                "provider": "web.cmp.usercentrics.eu",
                "domain_pattern": "*.web.cmp.usercentrics.eu",
                "category_id": "unklar",
                "default_state": "blocked",
                "activation_event": "saferpage-consent-update:unklar",
                "script_rewrite": "<script type=\"text/plain\" data-saferpage-category=\"unklar\" data-src=\"https://web.cmp.usercentrics.eu/...\"></script>",
                "iframe_rewrite": "<iframe data-saferpage-category=\"unklar\" data-src=\"https://web.cmp.usercentrics.eu/...\" src=\"about:blank\" title=\"web.cmp.usercentrics.eu\"></iframe>",
                "gtm_trigger": "Fire only when event equals saferpage_consent_update and consent.unklar equals true.",
                "evidence": "Aus SaferPage-Scan-Evidenz abgeleitet."
            }
        ],
        "loader_snippet": "window.addEventListener('saferpage-consent-update', function(event) {\n  var consent = event.detail || {};\n  document.querySelectorAll('script[type=\"text/plain\"][data-saferpage-category][data-src]').forEach(function(node) {\n    var category = node.getAttribute('data-saferpage-category');\n    if (!consent[category] || node.getAttribute('data-saferpage-loaded') === 'true') return;\n    var script = document.createElement('script');\n    Array.prototype.slice.call(node.attributes).forEach(function(attr) {\n      if (attr.name === 'type' || attr.name === 'data-src' || attr.name === 'data-saferpage-category') return;\n      script.setAttribute(attr.name, attr.value);\n    });\n    script.src = node.getAttribute('data-src');\n    script.async = true;\n    node.setAttribute('data-saferpage-loaded', 'true');\n    node.parentNode.insertBefore(script, node.nextSibling);\n  });\n  document.querySelectorAll('iframe[data-saferpage-category][data-src]').forEach(function(node) {\n    var category = node.getAttribute('data-saferpage-category');\n    if (!consent[category] || node.src === node.getAttribute('data-src')) return;\n    node.src = node.getAttribute('data-src');\n  });\n});",
        "gtm_setup": [
            {
                "step": 1,
                "label": "Consent Initialization",
                "action": "Default Consent Mode vor allen Marketing-/Analytics-Tags auf denied setzen."
            },
            {
                "step": 2,
                "label": "Tag Trigger prüfen",
                "action": "Jeder nicht notwendige Tag braucht Kategoriebedingung aus saferpage_consent_update."
            },
            {
                "step": 3,
                "label": "Unklassifizierte Tags blockieren",
                "action": "Neue oder unbekannte Dienste bleiben aus, bis Kategorie, Zweck und Rechtsgrundlage freigegeben sind."
            },
            {
                "step": 4,
                "label": "Reject/GPC testen",
                "action": "Nach Ablehnen und GPC dürfen keine Marketing-/Analytics-/Embed-Tags nachladen."
            }
        ],
        "placeholder_policy": {
            "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 auslösen."
        },
        "links": {
            "blocking_json": "https://saferpage.de/consent-banner/emilfrey.ch/blocking-json",
            "blocking_markdown": "https://saferpage.de/consent-banner/emilfrey.ch/blocking-md",
            "banner_center": "https://saferpage.de/consent-banner/emilfrey.ch",
            "cmp_plan": "https://saferpage.de/consent/emilfrey.ch/cmp-plan",
            "consent_journey": "https://saferpage.de/consent-journey/emilfrey.ch",
            "consent_mode": "https://saferpage.de/consent-mode/emilfrey.ch",
            "guide": "https://saferpage.de/guides/tracking-und-consent-reparieren"
        },
        "disclaimer": "Auto-Blocking-Regeln sind Betreiber-Vorlagen. Produktivbetrieb braucht CMP-Freigabe, Tests je Consent-Zustand, CSP-/Tag-Manager-Abgleich und fachliche Freigabe."
    },
    "links": {
        "banner_center": "https://saferpage.de/consent-banner/emilfrey.ch",
        "json": "https://saferpage.de/consent-banner/emilfrey.ch/export",
        "csv": "https://saferpage.de/consent-banner/emilfrey.ch/export-csv",
        "markdown": "https://saferpage.de/consent-banner/emilfrey.ch/template-md",
        "blocking_json": "https://saferpage.de/consent-banner/emilfrey.ch/blocking-json",
        "blocking_markdown": "https://saferpage.de/consent-banner/emilfrey.ch/blocking-md",
        "consent_center": "https://saferpage.de/consent/emilfrey.ch",
        "cmp_plan": "https://saferpage.de/consent/emilfrey.ch/cmp-plan",
        "consent_ledger": "https://saferpage.de/consent-ledger/emilfrey.ch",
        "consent_region": "https://saferpage.de/consent-region/emilfrey.ch",
        "consent_journey": "https://saferpage.de/consent-journey/emilfrey.ch",
        "consent_mode": "https://saferpage.de/consent-mode/emilfrey.ch",
        "cookie_declaration": "https://saferpage.de/cookies/emilfrey.ch",
        "guide": "https://saferpage.de/guides/tracking-und-consent-reparieren",
        "report": "https://saferpage.de/emilfrey.ch"
    },
    "sources": [
        {
            "title": "Termly Preference Center",
            "url": "https://support.termly.io/hc/en-us/articles/30710537528977-How-can-I-let-my-users-manage-their-cookie-preferences",
            "note": "Referenz für installierbares Preference Center."
        },
        {
            "title": "Cookiebot custom banner",
            "url": "https://support.cookiebot.com/hc/en-us/articles/360003921454-Can-I-build-my-own-fully-customized-cookie-consent-banner",
            "note": "Referenz für anpassbare Banner-Elemente und Kategorien."
        },
        {
            "title": "Usercentrics banner layouts",
            "url": "https://usercentrics.com/knowledge-hub/usercentrics-cmp-consent-banner-layouts/",
            "note": "Referenz für Banner-Layout-Varianten und Widget-Muster."
        }
    ],
    "disclaimer": "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."
}
