Consent Database / Ledger

bestandsuebersicht-acdp.faust-web.de: Einwilligungen nachweisbar speichern

bestandsuebersicht-acdp.faust-web.de: Consent-Ledger-Blueprint mit 14 Datenfeldern, 7 Ereignissen, 7 Log-Zeilen und 6 Kategorien für auditierbare Einwilligungsnachweise.

Der Ledger-Blueprint ist eine technische Betreiber-Vorlage. Rechtsgrundlage, Speicherfrist, Zugriffsschutz und Integration in CMP/Backend müssen fachlich freigegeben werden.

60 Ledger
7Ereignisse 14Felder 7Log-Zeilen 6Kategorien 5Kontrollen

Consent Log

Downloadbare Transaktionszeilen mit Hashkette

NDJSON exportieren
Banner angezeigt show · 2026-06-08T11:15:48+00:00

Evidence: https://saferpage.de/nachweise/bestandsuebersicht-acdp.faust-web.de/export

Hash: 784ce867a49fc9eb6f0875a8 · Previous: 8462e1b2e3c037316b1f7c3f
Einwilligung gespeichert accept_or_save · 2026-06-08T11:16:48+00:00

Evidence: https://saferpage.de/nachweise/bestandsuebersicht-acdp.faust-web.de/export

Hash: e16d744aeac81564649d86e4 · Previous: 784ce867a49fc9eb6f0875a8
Ablehnung gespeichert reject · 2026-06-08T11:17:48+00:00

Evidence: https://saferpage.de/nachweise/bestandsuebersicht-acdp.faust-web.de/export

Hash: 723ee7a3612bd27e9c2d7b2e · Previous: e16d744aeac81564649d86e4
Widerruf gespeichert withdraw · 2026-06-08T11:18:48+00:00

Evidence: https://saferpage.de/nachweise/bestandsuebersicht-acdp.faust-web.de/export

Hash: 8d70247d27c06b7304df1ee7 · Previous: 723ee7a3612bd27e9c2d7b2e
GPC-Signal berücksichtigt gpc · 2026-06-08T11:19:48+00:00

Evidence: https://saferpage.de/nachweise/bestandsuebersicht-acdp.faust-web.de/export

Hash: e20b9ac9ff89e6a5cd819b06 · Previous: 8d70247d27c06b7304df1ee7
Downstream-Sync sync · 2026-06-08T11:20:48+00:00

Evidence: https://saferpage.de/nachweise/bestandsuebersicht-acdp.faust-web.de/export

Hash: e588e0ef79e915fd187b0f7b · Previous: e20b9ac9ff89e6a5cd819b06
Re-Scan-Nachweis rescan · 2026-06-08T11:21:48+00:00

Evidence: https://saferpage.de/nachweise/bestandsuebersicht-acdp.faust-web.de/export

Hash: fa295a8b7660e119e42eca67 · Previous: e588e0ef79e915fd187b0f7b
Domain und Zeitraum

Export immer nach Domain, Zeitraum und Rechtsraum filtern; keine domainübergreifenden Rohlogs ohne Zweckfreigabe.

Pseudonymisierung

Subject-, IP- und User-Agent-Bezug nur gehasht und mit Zugriffsschutz exportieren.

Hashkette

Jede Zeile enthält previous_hash und row_hash, damit nachträgliche Änderungen auffallen.

Betroffenenrechte

DSAR-Export trennt Nachweiszweck, technische Logs und Lösch-/Sperrentscheidungen.

Aufbewahrung

Nachweisfrist und Löschfristen je Zweck dokumentieren; abgelaufene Rohdaten aggregieren oder löschen.

Ereignisse

Welche Consent-Aktionen protokolliert werden

Banner angezeigt Erstaufruf ohne gespeicherte Entscheidung

Belegt, welche Version Nutzer gesehen haben.

Felder: domain, banner_version, policy_version, region, created_at
Einwilligung gespeichert Nutzer klickt Akzeptieren oder speichert Kategorien

Zentrale Nachweiszeile für aktive Einwilligung.

Felder: consent_id, categories, services, action, created_at
Ablehnung gespeichert Nutzer klickt Ablehnen

Ablehnen muss genauso auditierbar sein wie Akzeptieren.

Felder: consent_id, categories, action, created_at
Widerruf gespeichert Privacy-Trigger oder Preference Center ändert Entscheidung

Widerruf überschreibt Downstream-Zustände und muss nachvollziehbar bleiben.

Felder: previous_consent_id, withdrawn_at, categories, source
GPC-Signal berücksichtigt Browser sendet Global Privacy Control

0 Datenschutz-Domain(s) im GPC-Kontext.

Felder: gpc_signal, region, action, created_at
Downstream-Sync Tag Manager, Analytics, Ads, CRM oder CMP erhält Status

0 datenschutzrelevante Browserkontakt(e) aus dem Scan.

Felder: destination, categories, sync_status, created_at
Re-Scan-Nachweis SaferPage prüft nach Änderung erneut

Verbindet Betreiberentscheidung mit technischer SaferPage-Evidenz.

Felder: scan_id, checked_at, result_url, evidence_hash

Datenmodell

Minimale Felder für auditierbare Nachweise

consent_id uuid/string

Eindeutiger Nachweisdatensatz

Nicht als Klartext-Personenkennung verwenden.
subject_key_hash sha256/string

Wiedererkennung ohne Klartext-ID

Salt/Rotation und Zugriffsschutz dokumentieren.
domain string

Betroffene Website

Mandanten-/Domain-Trennung erzwingen.
region string

DE/EU/CH/AT oder CMP-Region

Regelbasiertes Verhalten nachvollziehbar machen.
banner_version string

Version der Consent-Oberfläche

Bei Text-/Layoutänderung erhöhen.
policy_version string

Datenschutz-/Cookie-Hinweis-Version

Mit veröffentlichtem Hinweis und Datum verbinden.
categories_json json

Status je Kategorie

Nur notwendige Kategorien speichern.
services_json json

Optionaler Status je Dienst

Dienste aus Anbieterregister synchronisieren.
action enum

accept, reject, save, withdraw, gpc

Ablehnung und Widerruf gleichwertig protokollieren.
ip_hash string/null

Missbrauchs-/Nachweisbezug

Klartext-IP vermeiden; Speicherfrist begrenzen.
user_agent_hash string/null

Technischer Kontext

Nicht für Tracking oder Profiling verwenden.
evidence_ref string

Verweis auf Scan, Screenshot oder Export

Keine sensiblen Rohdaten in öffentliche Exporte schreiben.
created_at datetime

Zeitpunkt der Entscheidung

Zeitzone und Serverzeit stabil halten.
expires_at datetime/null

Review-/Ablauffrist

Regelmäßige Erneuerung und Löschung planen.

Speicherung

Kontrollen für Datenschutz und Betrieb

Daten minimieren

Klartext-IP, User-Agent und Personenkennung vermeiden; Hash/Salt und kurze Fristen verwenden.

Versionen speichern

Banner-, Policy-, Kategorie- und Anbieterregister-Version bei jeder Entscheidung speichern.

Widerruf aktiv synchronisieren

Widerruf an Tag Manager, CMP, Analytics, Ads und CRM weitergeben und Synchronisierung protokollieren.

Löschfrist festlegen

Nachweisfrist, Zweckende, erneute Einwilligung und DSAR-Löschung als Löschtrigger definieren.

Zugriff beschränken

Ledger nur für Datenschutz/Compliance/IT freigeben; Exportzugriffe protokollieren.

Snippets

Backend und Banner verbinden

Runbook exportieren
SQL Ledger Tabelle Backend-Datenbank oder Consent-Service

CREATE TABLE consent_ledger_bestandsuebersicht_acdp_faust_web_de ( consent_id text PRIMARY KEY, subject_key_hash text NOT NULL, domain text NOT NULL, region text NOT NULL, banner_version text NOT NULL, policy_version text NOT NULL, action text NOT NULL CHECK (action IN ('accept','reject','save','withdraw','gpc')), categories_json jsonb NOT NULL, services_json jsonb NOT NULL DEFAULT '{}'::jsonb, gpc_signal boolean NOT NULL DEFAULT false, ip_hash text, user_agent_hash text, evidence_ref text, created_at timestamptz NOT NULL DEFAULT now(), expires_at timestamptz ); CREATE INDEX consent_ledger_bestandsuebersicht_acdp_faust_web_de_subject_idx ON consent_ledger_bestandsuebersicht_acdp_faust_web_de (subject_key_hash, created_at DESC);

Browser Event Bridge Nach Banner-Entscheidung, serverseitig validieren

window.addEventListener('saferpage-consent-update', function (event) { fetch('/privacy/consent-ledger', { method: 'POST', headers: {'Content-Type': 'application/json'}, credentials: 'same-origin', body: JSON.stringify({ domain: 'bestandsuebersicht-acdp.faust-web.de', banner_version: 'v1', policy_version: 'privacy-notice-current', action: 'save', categories: event.detail, evidence_ref: window.location.href }) }); });