Was Consent Mode eigentlich ist
Consent Mode ist ein Satz von Flags, die Google-Tags lesen, um ihr Verhalten zu bestimmen: analytics_storage, ad_storage, ad_user_data, ad_personalization (die letzten beiden kamen mit v2 hinzu) sowie functionality_storage, personalization_storage und security_storage. Jedes ist granted oder denied. Die Flags werden mit gtag('consent', 'default', {...}) gesetzt, bevor ein Tag lädt, und mit gtag('consent', 'update', {...}) aktualisiert, wenn der Besucher entscheidet.
Es ist keine Consent-Management-Plattform und macht kein Banner rechtskonform. Es ist die Schnittstelle zwischen deiner Consent-Entscheidung und Googles Tags.
Zwecke zuordnen, nicht Anbieter
Die meisten Implementierungen scheitern daran, dass sie eine Anbieterliste an die Flags hängen. Ein saubereres Modell — das von Track — leitet die Flags aus Consent-Zwecken ab:
| Zweck | analytics_storage | ad_storage | ad_user_data | ad_personalization |
|---|---|---|---|---|
| nur notwendig | denied | denied | denied | denied |
| + Analytics | granted | denied | denied | denied |
| + Marketing | granted* | granted | granted | denied |
| + Marketing + Personalisierung | granted* | granted | granted | granted |
* nur, wenn Analytics ebenfalls erteilt ist.
ad_user_data betrifft das Senden von Nutzerdaten an Google für Werbung — das Flag, das Enhanced Conversions und nutzerseitige Daten steuert. ad_personalization betrifft personalisierte Werbung und Remarketing. Die Trennung erlaubt einem Besucher, Messung zu akzeptieren, ohne Personalisierung zu akzeptieren — genau die Unterscheidung, die Aufsichtsbehörden interessiert.
Basic versus Advanced
Basic-Modus: Nichts von Google lädt, bevor das relevante Flag erteilt ist. Keine cookielosen Pings, keine Modellierungsgrundlage. Einfach zu erklären, leicht zu verteidigen.
Advanced-Modus: Google-Tags laden sofort und senden cookielose Pings, solange der Consent verweigert ist, damit Google später Conversions modellieren kann. Ob diese Pings zulässig sind, ist eine rechtliche Bewertung deiner Situation, keine technische Einstellung. Track behält deshalb den Basic-Modus als Standard und aktiviert den Advanced-Modus nur, wenn eine juristische Prüfnotiz zur Consent-Policy gespeichert ist — der Assistent kann ihn nicht stillschweigend umschalten.
Die Serverseite muss den Browser spiegeln
Serverseitige Zustellung trifft dieselbe Entscheidung ein zweites Mal — und muss zum selben Ergebnis kommen. Konkret:
- Das Event trägt den Consent-Snapshot (erteilte Zwecke, Quelle, Policy-Version, Region, GPC-Flag) vom Zeitpunkt der Erfassung.
- Google-Ads-Click-Conversion-Uploads enthalten
consent: { adUserData, adPersonalization }, abgeleitet aus diesem Snapshot. - GA4-Measurement-Protocol-Requests tragen
consent.ad_user_dataundconsent.ad_personalizationsowienon_personalized_ads, wenn Marketing nicht erteilt ist. - Kein Event wird für eine spätere Zustellung „sobald der Consent da ist“ zwischengespeichert. Verhalten vor der Einwilligung wird verworfen.
Wenn der Browser „denied“ sagt und der Server „granted“, lügt einer von beiden — meist, weil der Server ein Session-Flag liest, das sich nach dem Event geändert hat. Ein Snapshot pro Event beseitigt diese Fehlerklasse.
Global Privacy Control und TCF
GPC ist ein Browsersignal (navigator.globalPrivacyControl), das manche Rechtsräume als Opt-out werten. Eine sichere Regel: Ist GPC gesetzt, gelten Marketing und Personalisierung unabhängig vom Banner als verweigert — es sei denn, eine bewusste Policy sagt für eine Region etwas anderes.
Unter TCF 2.2 bilden die Zwecke 1 (Speicherung), 7 (Werbeleistung messen), 8 (Inhaltsleistung messen) und die Vendor-Consents auf die vier Flags ab; der TC-String wird als Nachweis mit dem Consent-Snapshot gespeichert. Ein CMP-Adapter liest __tcfapi-Events, sodass der Tracker ohne eigenen Code aktualisiert.
Teste es so, wie eine Aufsichtsbehörde es täte
- Lade die Site mit einem frischen Profil. Prüfe, dass vor der Banner-Entscheidung keine Google-Anfrage abgeht (Basic-Modus).
- Lehne alles ab. Prüfe, dass außer dem Consent-Datensatz selbst nichts gespeichert wird und der Server nichts für Analytics oder Marketing erhalten hat.
- Akzeptiere nur Analytics. Prüfe, dass GA4-Events mit
ad_user_data: DENIEDfließen. - Akzeptiere alles, dann widerrufe. Prüfe, dass das nächste Event verworfen wird und kein Replay stattfindet.
- Lies den Consent-Snapshot eines Beispiel-Events im Event-Debugger — das ist das Artefakt, das du brauchst, wenn jemand fragt.
Wo der Assistent hilft
Der Einrichtungsassistent erfasst das CMP, schlägt die Zweck-Zuordnung vor und schreibt die Consent-Policy-Version. Was er nicht tut: einen Standard aufweichen. Advanced-Modus, Opt-out-Regionen oder Marketing ohne Consent erfordern eine explizite menschliche Entscheidung mit Notiz — und diese Entscheidung wird auditiert.