IAB-GPP-String in der Browser-Konsole debuggen: Eine Schritt-für-Schritt-Anleitung
Warum GPP-Probleme schwer zu erkennen sind
Wenn ein US-Besucher dem Verkauf oder der Weitergabe seiner Daten widerspricht, muss diese Entscheidung jeden Werbepartner auf der Seite erreichen. Bei der IAB Global Privacy Platform (GPP) wird sie als kompakter String und als Liste von Sektions-IDs übertragen. Ist eines von beiden falsch — fehlt, ist veraltet oder enthält die falsche Sektion — geht sichtbar nichts kaputt. Anzeigen laden weiter, das Banner sieht weiter gut aus, und das Problem zeigt sich erst später darin, dass Partner Opt-outs ignorieren oder weniger auf Ihr Inventar bieten.
Die gute Nachricht: Fast alles lässt sich in der Browser-Konsole prüfen. Diese Anleitung geht die Prüfungen in der Reihenfolge durch, in der wir sie auf einer Live-Seite ausführen würden.
Schritt 1: Bestätigen, dass die API existiert und bereit ist
Eine GPP-kompatible CMP stellt eine globale Funktion __gpp bereit. Öffnen Sie die DevTools auf Ihrer Seite und führen Sie einen ping-Befehl aus:
__gpp('ping', function (data) { console.log(data); });
Das zurückgegebene Objekt verrät auf einen Blick viel:
- gppVersion — sollte bei aktuellen Implementierungen 1.1 lauten.
- cmpStatus — ob die CMP geladen wurde oder einen Fehler hatte.
- cmpDisplayStatus — ob das Banner für diesen Besucher sichtbar, verborgen oder deaktiviert ist.
- signalStatus — „ready“, sobald die CMP sich auf einen Einwilligungsstatus festgelegt hat, „not ready“, solange sie noch entscheidet.
- supportedAPIs — die Sektionen, die die CMP erzeugen kann.
- applicableSections — die Sektions-IDs, die gerade für diesen Besucher gelten.
- gppString — der kodierte String selbst.
Ist __gpp nicht definiert, fehlt der CMP-Stub oder er lädt zu spät. Der Stub muss vor jedem Anzeigenskript vorhanden sein, das ihn erwartet, sonst sehen diese Skripte keine CMP und warten entweder oder fahren ohne Signal fort.
Schritt 2: Die zutreffende Sektion prüfen
Jedes Datenschutz-Framework in GPP hat eine numerische Sektions-ID. Publisher begegnen am häufigsten 2 (EU TCF v2), 5 (kanadisches TCF), 7 (US National, „usnat“) und 8 aufwärts für einzelne Landessektionen wie Kalifornien, Virginia, Colorado, Utah und Connecticut. Ein Besucher aus einem US-Bundesstaat sollte in applicableSections normalerweise entweder die nationale oder die jeweilige Landessektion sehen, nicht die EU-Sektion.
Testen Sie von mehreren Standorten aus. Ein häufiger Fehler ist eine CMP, die die Geografie für das Banner korrekt erkennt, aber unabhängig davon eine Standardsektion in den String schreibt, oder umgekehrt. Vergleichen Sie mit einem VPN oder den Vorschau-Werkzeugen Ihrer CMP, was das Banner zeigt und was applicableSections meldet.
Schritt 3: Die Sektionsdaten lesen
Statt den String von Hand zu dekodieren, fragen Sie die CMP nach der geparsten Sektion:
__gpp('getSection', function (data, success) { console.log(data, success); }, 'usnat');
In der US-National-Sektion folgen die Opt-out-Felder einer einfachen Konvention: 0 bedeutet nicht zutreffend, 1 bedeutet, der Nutzer hat widersprochen, und 2 bedeutet, der Nutzer hat nicht widersprochen. Konzentrieren Sie sich zuerst auf diese Felder:
- SaleOptOut und SharingOptOut
- TargetedAdvertisingOptOut
- Die zugehörigen Notice-Felder, die festhalten, ob dem Besucher zu jeder Praxis ein Hinweis gegeben wurde
Führen Sie nun den Opt-out auf der Seite durch — klicken Sie Ihren Link „Do Not Sell or Share“ oder schalten Sie die Einstellung im Präferenzcenter um — und führen Sie getSection erneut aus. Die Opt-out-Felder sollten von 2 auf 1 wechseln. Tun sie das nicht, sind UI und Signal nicht synchron.
Schritt 4: Den Global-Privacy-Control-Pfad testen
Mehrere Landesgesetze verlangen, dass Unternehmen ein Global-Privacy-Control-Signal als Opt-out behandeln. Aktivieren Sie GPC in einem Browser oder einer Erweiterung, die es unterstützt, bestätigen Sie in der Konsole, dass navigator.globalPrivacyControl true zurückgibt, und laden Sie die Seite dann in einer frischen Sitzung. Die relevanten Opt-out-Felder sollten bereits 1 anzeigen, ohne dass der Besucher das Banner berührt. Einige Sektionen enthalten außerdem ein Feld, das angibt, dass die Entscheidung aus einem GPC-Signal stammt.
Schritt 5: Ereignisse beobachten, nicht nur Momentaufnahmen
Anzeigenskripte sollten den String nicht einmal beim Laden der Seite lesen und dann vergessen. Registrieren Sie einen Listener, um zu sehen, was Partner sehen:
__gpp('addEventListener', function (evt) { console.log(evt.eventName, evt.pingData); });
Sie sollten Ereignisse wie listenerRegistered, signalStatus und sectionChange beobachten. Ändert der Besucher eine Entscheidung, sollte ein sectionChange-Ereignis mit aktualisiertem String folgen. Liest Ihr Header-Bidding-Wrapper oder Ihre Ad-Server-Integration den String nur, bevor signalStatus auf „ready“ steht, sendet sie womöglich einen leeren oder veralteten Wert.
Schritt 6: Dem String in die Anzeigenanfragen folgen
Öffnen Sie schließlich den Network-Tab und filtern Sie nach Ihren Anzeigenanfragen. Viele Ad-Endpunkte akzeptieren die Parameter gpp und gpp_sid (den String und die geltenden Sektions-IDs). Prüfen Sie, dass:
- beide Parameter bei Anfragen von US-Besuchern vorhanden sind;
- der String zum Zeitpunkt der Anfrage dem von ping zurückgegebenen entspricht;
- spätere Anfragen nach einem Opt-out den neuen String tragen statt eines zwischengespeicherten.
Wenn Sie Prebid.js verwenden, bestätigen Sie, dass das Consent-Management-Modul für GPP konfiguriert ist, und prüfen Sie sowohl die den Wrapper verlassenden Bid-Anfragen als auch den abschließenden Ad-Server-Aufruf.
Häufige Fehlermuster
- Stub lädt nach den Anzeigen-Tags — Partner sehen überhaupt keine CMP.
- Falsche Sektion für die Region — EU-Sektion für US-Traffic gesendet oder gar keine Sektion.
- UI und Signal nicht synchron — der Schalter ändert sich, der String nicht.
- GPC ignoriert — das Browsersignal wird nie zu einem Opt-out.
- Veraltete Strings in Anfragen — der Wrapper speichert den ersten gesehenen Wert zwischen.
Wichtigste Erkenntnisse
- Beginnen Sie mit ping: Version, Status, geltende Sektionen und der String erzählen den Großteil der Geschichte.
- Nutzen Sie getSection, um Opt-out-Felder zu lesen; 1 bedeutet Opt-out, 2 bedeutet kein Opt-out.
- Testen Sie Opt-out-Link und GPC getrennt und bestätigen Sie, dass beide das Signal ändern.
- Hören Sie auf Ereignisse und warten Sie auf ein „ready“-Signal, bevor Anzeigenanfragen den String lesen.
- Verifizieren Sie gpp und gpp_sid in echten Netzwerkanfragen, vor und nach einem Opt-out.