LW IT Solutions logo LW IT Solutions logo LW IT Solutions
« Blog-Übersicht /Digital Analytics / GA4 Consent Mode v2: Der gcd-Parameter, CMP-Wettläufe...
Diesen Artikel in anderen Sprachen lesen:

GA4 Consent Mode v2: Der gcd-Parameter, CMP-Wettläufe und serverseitiges Debugging

Teil 3 von 4 der Reihe Einwilligung richtig verdrahten

GA4 Consent Mode v2: Der gcd-Parameter, CMP-Wettläufe und serverseitiges Debugging
Inhalt
  1. Vier Signale statt eines pauschalen Freigabewerts
  2. Was gcs und gcd zeigen
  3. Einen CMP-Wettlauf nachvollziehbar prüfen
  4. Reihenfolge korrigieren, Wartezeit begrenzen
  5. Basic und Advanced richtig unterscheiden
  6. Serverseitig bis zum Empfänger prüfen
  7. Fragen und Antworten
  8. Quellen

gcd ist ein Diagnosehinweis in Google-Anfragen. Der Parameter ersetzt weder die Prüfung der Einwilligung noch die Kontrolle ausgehender Daten. Besonders bei einer asynchron geladenen Consent Management Platform (CMP) zählt die Reihenfolge: Ausgangszustand, gespeicherte Auswahl, Aktualisierung, Messereignis und tatsächliche Übertragung.

Vier Signale statt eines pauschalen Freigabewerts

Signal Bedeutung
ad_storage Speicherung für Werbezwecke, etwa Cookies.
analytics_storage Speicherung für Analysezwecke.
ad_user_data Übermittlung von Nutzerdaten an Google für Onlinewerbung.
ad_personalization Personalisierte Werbung.

Diese Signale haben unterschiedliche Aufgaben. Eine Analysefreigabe ist keine allgemeine Marketingfreigabe; ad_user_data erteilt insbesondere keine automatische Freigabe für Meta CAPI. Andere Empfänger und Zwecke benötigen eine eigene Zuordnung zur tatsächlich erfassten Auswahl.

Vier Prüfschritte: Ausgangswerte, CMP-Aktualisierung, Browseranfrage und zielbezogene Serverausgabe.
Vier Prüfschritte: Ausgangswerte, CMP-Aktualisierung, Browseranfrage und zielbezogene Serverausgabe.

Was gcs und gcd zeigen

Google beschreibt gcs als Transport der Zustände für ad_storage und analytics_storage. gcd enthält ausführlichere Consent-Informationen und wird auch ohne aktivierten Consent Mode übertragen. Die bloße Anwesenheit von gcd belegt deshalb keine korrekte Einrichtung.

Google weist ausdrücklich darauf hin, dass codierte HTTP-Felder veränderlich sind. Beobachtete Buchstabentabellen und feste Zeichenpositionen sind kein dauerhaft dokumentierter Schnittstellenvertrag. Eine Prüfung wie gcd.charAt(6) sollte daher keine Freigabeschranke für Datenweiterleitungen bilden. Auch ein scheinbar passender Wert bestätigt weder eine gültige Einwilligung noch einen vollständigen Verlauf aller Entscheidungen.

Einen CMP-Wettlauf nachvollziehbar prüfen

Ein früher Request mit anderem Consent-Muster als spätere Requests kann auf eine verzögerte Aktualisierung hinweisen. Eine normale spätere Zustimmung, unterschiedliche regionale Vorgaben oder eine teilweise Aktualisierung sind ebenfalls mögliche Erklärungen. Der Netzwerkvergleich allein beweist die Ursache nicht.

  1. In einer neuen Tag-Assistant-Sitzung den frühesten Consent-Eintrag und alle vier Ausgangswerte prüfen.
  2. Den Zeitpunkt der CMP-Initialisierung und eine vorhandene gespeicherte Auswahl dokumentieren. Eine gespeicherte Auswahl muss zum aktuellen Zweck- und Anbietermodell passen.
  3. Beim Consent-Update die vier Werte und die zeitliche Position zum ersten Messereignis vergleichen.
  4. Beim betroffenen Tag die Consent-Prüfungen und den Auslösegrund kontrollieren; anschließend die Browseranfrage zuordnen.
  5. Den Ablauf mit neuer Sitzung, gespeicherter Ablehnung, gespeicherter Zustimmung, Teilzustimmung, Widerruf und langsamer CMP wiederholen. Regionale Varianten gesondert prüfen.

Ein nachvollziehbarer Befund lautet beispielsweise: Die CMP hatte eine passende gespeicherte Zustimmung, das Update erreichte den Consent-Zustand jedoch erst nach dem untersuchten Messereignis. Erst diese Zeitachse grenzt ein Reihenfolgeproblem von einer regulären späteren Entscheidung ab.

Reihenfolge korrigieren, Wartezeit begrenzen

Bei GTM gehört das Setzen der Ausgangswerte in ein geeignetes Consent-Template am Trigger Consent Initialization – All Pages. Für Templates sind setDefaultConsentState und updateConsentState vorgesehen. Ein dort verwendeter gtag('consent', ...)-Aufruf kann durch die Warteschlange zu spät verarbeitet werden. Ein früh gestartetes Template garantiert trotzdem nicht, dass eine anschließend asynchron geladene CMP bereits fertig ist.

Bei einer direkten gtag.js-Integration müssen die Ausgangswerte vor messenden config– oder event-Befehlen stehen. wait_for_update setzt eine begrenzte Wartefrist für ein Update. Der häufig gezeigte Wert 500 Millisekunden ist ein Beispiel, keine verlässliche Obergrenze für CMP-Ladezeiten. Nach Ablauf gelten die dann vorhandenen Consent-Zustände.

Ein dokumentiertes CMP-Ereignis kann Teil einer passenden Auslösestrategie sein. Ein frei erfundener Ereignisname oder ein zusätzlicher Pageview bei jeder Consent-Änderung kann dagegen Messungen verlieren oder doppelt senden. Auslösung, Wiederholung und Seitenwechsel müssen gemeinsam geprüft werden.

Basic und Advanced richtig unterscheiden

Im Basic Consent Mode werden die betreffenden Google-Tags bis zur erforderlichen Zustimmung blockiert. Im Advanced Consent Mode können geladene Google-Tags bei Ablehnung eingeschränkte Pings ohne die betreffenden Cookies senden. Deshalb bedeutet denied nicht automatisch „kein Netzwerkverkehr“. Falls ein Aufbau vor Zustimmung keinerlei entsprechende Übertragung erlauben soll, muss die tatsächliche Blockierung auf allen beteiligten Wegen geprüft werden.

Serverseitig bis zum Empfänger prüfen

Im dokumentierten Google-Aufbau verarbeitet ein GA4-Client die eingehende Anfrage im Server-Container; consentfähige Google-Tags berücksichtigen die transportierten Signale. Das Verhalten unterscheidet sich nach Ziel und Tag. Ein GA4-Request ist kein vorgeschriebener Datenträger für sämtliche anderen Server-Clients oder Drittanbieter.

Die Server-Vorschau muss deshalb die empfangene Anfrage, den zuständigen Client, das erzeugte Ereignis, die ausgelösten Tags und deren ausgehende Requests zusammen zeigen. Drittanbieter-Templates benötigen ausdrücklich geprüfte Regeln für den jeweiligen Empfänger und Zweck. Ein von außen geliefertes Consent-Feld ist zudem kein kryptografischer Einwilligungsnachweis.

Fehlende oder unverständliche Signale sollten als eigener Fehlerfall sichtbar bleiben. Eine Freigabe darf daraus nicht abgeleitet werden. Für erforderliche Nachweise eignen sich minimierte Angaben wie Testfall, Ereigniszeitpunkt, Tagversion, Auslöseentscheidung und Ziel; vollständige URLs oder Nutzerdaten gehören nicht ungeprüft in Diagnoseprotokolle.

Fragen und Antworten

Beweist ein fehlendes gcd eine Ablehnung?

Nein. Der Parameter kann in einem anderen Übertragungsweg fehlen. Herkunft, Client und erwartetes Datenformat müssen geklärt werden. Unbekannt und ausdrücklich abgelehnt sind unterschiedliche Diagnosezustände.

Reicht gcs als Nachweis, dass keine Cookies geschrieben wurden?

Nein. Der Parameter beschreibt übertragene Zustände. Cookie-Zugriffe und tatsächliche Requests müssen zusätzlich im Browser und gegebenenfalls am Server geprüft werden.

Garantiert Consent Mode Rechtskonformität?

Nein. Technische Signale ersetzen keine Prüfung der Einwilligung, Zwecke, Empfänger, Dateninhalte und Aufbewahrung. Eine erfolgreiche Testreihe belegt nur die geprüften Abläufe und Versionen.

Quellen

Einwilligung richtig verdrahten

  1. Google Consent Mode v2 implementieren
  2. Wie cookielose Pings im Google Consent Mode funktionieren
  3. GA4 Consent Mode v2: Der gcd-Parameter, CMP-Wettläufe und serverseitiges Debugging
  4. Consent-Status an Server-Side GTM übergeben
Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Kontakt

Eine Frage oder eine Idee für ein Webprojekt? Schreib mir kurz, worum es geht. Das Formular nutzt reCAPTCHA zum Schutz vor Spam.

Kommentar schreiben

Abweichende Zahlen aus anderen Konten und Rückfragen zur Einrichtung sind hier willkommen.

Die E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem Stern versehen.