GH GambleHub

Verwaltung von Einwilligungen

1) Begriffe und Haftungsgrenzen

Zustimmung (consent): freiwillige, informierte, konkrete und eindeutige Willensäußerung; kann widerrufen werden.
Rechtsgrundlage: Zustimmung ist nur eine der Optionen (Vertrag, Rechtsgrundlage, legitimes Interesse usw.). Das Modell muss sowohl die Basis als auch den Zweck speichern.
Zweck der Verarbeitung (Zweck): atomare Ursache: Analytics, Personalisierung, Anzeigen, email_marketing, data_sharing_vendor_X.
Granularität: Einwilligungen werden nach Zielen, Kanälen, Anbietern, Regionen, Datenkategorien gespeichert.
Subjektprofil: Person, Gerät, Haushalt, Konto des Kindes (Sonderregeln für Minderjährige).

2) Lebenszyklus der Einwilligung

1. Sammlung: Banner/SMR, Einstellungen im Profil, API/SDK, Offline-Kanal (Contact Center).
2. Validierung: Alter, Region, Verfügbarkeit von Alternativen (keine „dunklen Muster“).
3. Registrierung: Erstellen Sie ein Zustimmungsereignis und eine aktuelle Momentaufnahme der Zustände für die Zwecke.
4. Verteilung: Veröffentlichung im Ereignisbus, Aktualisierung der Caches am Rand, Synchronisation mit den Anbietern.
5. Ausführung: Anwendung in Echtzeit (Gateways/Pixel/SDK), in Batch (ETL/Analytics), in ML-Pipelines.
6. Änderung/Widerruf: sofortiges Verbot einer neuen Sammlung/Aktivierung, anschließende „Bereinigung“ historischer Daten über die Politik.
7. Audit/Reporting: Nachweisbarkeit der Einwilligung zum Zeitpunkt der Verarbeitung (wer, wann, welche Version des Textes).

3) Architektonische Komponenten

CMP (Consent Management Platform): UI/SDK + APIs zur Formatierung von Einwilligungsvarianten unter UX/Jurisdiktionen; Quelle der Wahrheit durch Texte und Versionen.
Consent Registry: Zuverlässiger Speicher für Zustands- und Zustimmungsereignisse (Append-only-Log + aktuelle Projektion).
Consent PDP/PEP: Policy Decision/Enforcement Point. PDP entscheidet "Ist es möglich? ", PEP wendet die Lösung auf API-Gateway, ETL, SDK usw. an.
Edge-Zustimmungs-Cache: geringe Latenz für Perimeter-Validierung.
Partner/GPP/IAB-Gateway: Übersetzen Sie lokale Ziele in Partner-Signale und zurück.
Data Lineage & Tagging: Kennzeichnung der Daten mit Zustimmungs-/Basisflags entlang der gesamten Kette.

4) Datenmodell (Diagramme)

Momentaufnahme der Benutzerzustimmungen (vereinfacht):
json
{
"subject_id": "usr_123",
"subject_scope": "user",
"region": "EU",
"legal_basis": {
"analytics": "consent",
"personalization": "consent",
"security": "legitimate_interest",
"contract_core": "contract"
},
"purposes": {
"analytics": {"status": "granted", "version": "v5", "updated_at": "2025-10-31T13:20:10Z"},
"personalization": {"status": "denied", "version": "v5", "updated_at": "2025-10-31T13:21:31Z"},
"ads": {"status": "denied", "version": "v5", "updated_at": "2025-10-31T13:21:31Z"},
"email_marketing": {"status": "granted", "channel":"email","updated_at":"2025-10-31T13:22:05Z"}
},
"text_bundle": {"locale":"uk-UA","policy_version":"2025-09"},
"evidence": {"capture_ip":"203. 0. 113. 5","capture_ua":"Chrome/142"}
}
Zustimmungsereignis (nur Append):
json
{
"event_id": "cse_987",
"subject_id": "usr_123",
"purpose": "personalization",
"previous": "denied",
"current": "granted",
"legal_basis": "consent",
"policy_version": "2025-09",
"captured_at": "2025-10-31T13:21:31Z",
"channel": "web",
"evidence": {
"banner_id": "cmp_v3",
"text_hash": "sha256:...",
"ip": "203. 0. 113. 5",
"ua": "Chrome/142",
"locale": "uk-UA"
}
}

5) Signalprotokolle und Verteilung

Web/App/SDK: Speicherung des Zustimmungs-Tokens (Cookie/Local Storage/Secure Storage) + Signatur/Integritätsprüfung; Auto-Resink beim Login.
Server-Seite: Header 'X-Consent-Token '/' X-Purposes', bidirektionaler Austausch bei SSR/Edge-Rendering.
Partner/Anbieter: Übersetzung in ihre Formate (z.B. Zielvektor, Gesamtsignal „GPP/TCF“); bei Ausfall - Nullsignal/eingeschränkter Modus.
Offline-Kanal: Aufnahme der Audio-Einwilligung/Checkbox durch den Betreiber mit anschließender Verifizierung und Verknüpfung mit 'subject _ id'.

6) Ausführung: Wo und wie der Verkehr „geschnitten“ wird

Am API-Gateway (PEP):
  • Endpunkte/Felder ohne Einwilligung sperren (/profile/enrich ,/ads/,/events/track).
  • Antwort/Anfrage mutieren: Schneiden Sie Tracker, Personalisierungsfelder, IDs aus.
  • Weisen Sie dem Backend einen Zustimmungskontext in der Anfrage zu (JWT-Stempel oder einzelne Header).
In Datenströmen:
  • Der Ereignistransformator löscht/maskiert Felder anhand von Zustimmungsflags.
  • Kennzeichnung von Datasets: "dataset. consent_scope=analytics:granted; ads:denied`.
  • In der ML-Pipeline sind Einträge ohne entsprechende Zustimmungen ausgeschlossen; Training/Aktivierung für verbotene Zwecke deaktiviert.

7) Pseudocode: Lösung am Gateway

python def enforce_consent(request, consent_snapshot):
purpose = map_endpoint_to_purpose(request. path) # /ads/ -> "ads"
basis  = consent_snapshot. legal_basis. get(purpose)
status = consent_snapshot. purposes. get(purpose, {}). get("status", "denied")

if basis! = "consent": # e.g. security/contract - allowed without return ALLOW banner

if status!= "granted":
return DENY # or ALLOW with redaction if degradation is allowed

return ALLOW

8) Versionierung und Nachweisbarkeit

Version des Einwilligungstextes: 'policy _ version', 'text _ hash', 'banner _ id' speichern.
Ort und Region: Welcher Text und in welcher Sprache wird angezeigt.
Momentaufnahme zum Zeitpunkt der Verarbeitung: Möglichkeit zu antworten "Warum wurde die Anzeige 2025-10-15 um 09:03 Uhr angezeigt? ».
Unveränderliches Protokoll: WORM/append-only mit Krypto-Ereignis-Signatur.

9) Sonderfälle

Minderjährige: Altersvalidierung, elterliche Zustimmung, individuelle Ziele und Fristen.
Gast → Login: Zusammenführen eines anonymen Tokens mit einem Konto; Regeln im Konflikt (das Strengste gewinnt).
Multigerät: konsistenter Resink; beim Widerruf - Push-Behinderung von Token auf allen Geräten.
Regionalregime: „Strict“ (EU) vs „Opt-Out“ (einige Märkte) - CMP-Voreinstellungen wechseln.
A/B-Tests: Datenexperimente sind ein separates Experimentierungsziel; ohne sie - nur Funktionstests ohne persönliche Daten.
Recht auf Löschung: Der Widerruf kann die Löschung/Anonymisierung historischer Daten zu einem bestimmten Zweck auslösen („purge on revoke“ -Richtlinie).

10) Anti-Muster

Eine „gemeinsame“ Checkbox für alles.
Fehlen von Textversionen und Nachweisbarkeit der Darstellung.
Speichern Sie nur das Cookie-Flag ohne Serverregister.
Die Anwendung der Einwilligung erfolgt nur im UI, nicht aber im ETL/ML/Export.
Widersprüchliche Quellen der Wahrheit (SDK ≠ Backend).
Dunkle Muster, Einverständniserklärung: Rechts- und Reputationsrisiken.

11) Beobachtbarkeit und Metriken

Coverage: Anteil des Verkehrs mit gültigem Zustimmungsmarker.
Latency PDP: Zeitpunkt der Entscheidung am Perimeter.
Drift: Diskrepanz zwischen SDK und Server-Snapshot.
Revoke SLA: Zeit des Widerrufs → Zeit der vollständigen Deaktivierung/Reinigung.
Vendor Compliance: Prozentsatz der Partneranrufe mit korrektem Signal.
Incidents: Verarbeitungsversuche ohne Einwilligung, blockierte Anrufe.

Dashboards: „Zustimmungstrichter“, Karte der Regionen/Kanäle, Heatmaps der Ausfälle.

12) Prüfung und Verifizierung

PDP/PEP-Vertragstests: Wahrheitstabelle nach Ziel-/Regionenkombinationen.
Chaos/Drift-Tests: nicht synchrone SDK-Zustände ↔ Server; Cache-TTL-Ablauf.
CMP Releases: A/B-Validierung von Texten und UX-Neutralität (ohne dunkle Muster).
E2E-Tracing: User-Revoke-Ereignis → kein Senden an Affiliate-Pixel und Pipelines.

13) Miteinander verbundene Fähigkeiten

Anonymisierung/Pseudonymisierung: Durchführung von Ablehnungen vor und nach der Anonymisierung.
Verschlüsselung und KMS: Token/Log-Schutz.
Geo-Routing: Auswahl regionaler Texte/Regeln.
Beobachtbarkeit: private Dashboards ohne PD; Korrelation nur über Token.
Data Lineage: In jedem Dataset gibt es einen Abdruck von Einwilligungen.

14) Mini-Rezepte

Deklarative Zielpolitik (Beispiel YAML):
yaml purposes:
analytics:
legal_basis: consent enforcement: redact_fields: [ad_id, gaid, idfa]
personalization:
legal_basis: consent enforcement: deny_endpoints: [/recs/, /profile/enrich]
security:
legal_basis: legitimate_interest enforcement: allow email_marketing:
legal_basis: consent channel: email
Kennzeichnung von Ereignissen im Bus:

event. meta. consent. analytics = granted    denied event. meta. consent. ads    = denied event. meta. legal_basis    = consent    contract    li
Löschen von Rückrufdaten:

on user_revoke(purpose):
mark subject_id + purpose as "purge_pending"
schedule purge jobs over datasets with lineage(purpose)
emit audit_event("purge_started", scope=purpose)

15) Checkliste des Architekten

1. Gibt es ein einheitliches Register und ein unveränderliches Zustimmungsprotokoll?
2. Sind die Ziele überall atomar und versionierbar?
3. Ist die Ausführung am Perimeter, in den Streams, in der Analytik und in ML?
4. Rückruf und Richtlinie zur Bereinigung historischer Daten umgesetzt?
5. Sind UI/SDK/Server-Snapshots und Resin-Mechanismen konsistent?
6. Coverage/Drift/Revoke SLA Metriken und Reporting konfiguriert?
7. Gibt es ein Runbook zu Vorfällen (Verstöße, Beschwerden, Aufsichtsbehörde)?
8. Werden spezielle Modi (Kinder, Regionen, B2B-Partner) unterstützt?

Schluss

Das Zustimmungsmanagement ist kein modales Fenster, sondern eine durchgängige architektonische Funktion: von der Deklaration von Zielen und der Versionierung von Texten über die maschinelle Ausführung von Echtzeitentscheidungen bis hin zur anschließenden Berichterstattung. Ein strenges Datenmodell, ein einheitliches Register, PDP/PEP auf allen Ebenen, vollständige Telemetrie und Reinigungsverfahren machen Compliance zu einem Wettbewerbsvorteil - eine Plattform, der vertraut wird.

Contact

Kontakt aufnehmen

Kontaktieren Sie uns bei Fragen oder Support.Wir helfen Ihnen jederzeit gerne!

Telegram
@Gamble_GC
Integration starten

Email ist erforderlich. Telegram oder WhatsApp – optional.

Ihr Name optional
Email optional
Betreff optional
Nachricht optional
Telegram optional
@
Wenn Sie Telegram angeben – antworten wir zusätzlich dort.
WhatsApp optional
Format: +Ländercode und Nummer (z. B. +49XXXXXXXXX).

Mit dem Klicken des Buttons stimmen Sie der Datenverarbeitung zu.