De IAB GPP-string debuggen in de browserconsole: een stapsgewijze handleiding
Waarom GPP-problemen moeilijk te zien zijn
Wanneer een Amerikaanse bezoeker bezwaar maakt tegen de verkoop of het delen van zijn gegevens, moet die keuze elke advertentiepartner op de pagina bereiken. Bij het IAB Global Privacy Platform (GPP) reist ze als een compacte string en een lijst met sectie-ID's. Als een van beide fout is — ontbreekt, verouderd is of de verkeerde sectie bevat — gaat er zichtbaar niets kapot. Advertenties laden nog, de banner ziet er nog prima uit, en het probleem blijkt pas later doordat partners opt-outs negeren of minder bieden op je inventaris.
Het goede nieuws is dat je bijna alles vanuit de browserconsole kunt inspecteren. Deze handleiding loopt de controles door in de volgorde waarin wij ze op een live pagina zouden uitvoeren.
Stap 1: Bevestig dat de API bestaat en gereed is
Een GPP-compatibele CMP stelt een globale functie __gpp beschikbaar. Open DevTools op je pagina en voer een ping-opdracht uit:
__gpp('ping', function (data) { console.log(data); });
Het teruggegeven object vertelt in één oogopslag veel:
- gppVersion — hoort bij huidige implementaties 1.1 te zijn.
- cmpStatus — of de CMP is geladen of een fout heeft gehad.
- cmpDisplayStatus — of de banner voor deze bezoeker zichtbaar, verborgen of uitgeschakeld is.
- signalStatus — “ready” zodra de CMP een toestemmingsstatus heeft vastgesteld, “not ready” zolang ze nog beslist.
- supportedAPIs — de secties die de CMP kan produceren.
- applicableSections — de sectie-ID's die nu voor deze bezoeker gelden.
- gppString — de gecodeerde string zelf.
Als __gpp niet gedefinieerd is, ontbreekt de CMP-stub of laadt die te laat. De stub moet aanwezig zijn vóór elk advertentiescript dat hem verwacht, anders zien die scripts geen CMP en wachten ze of gaan ze zonder signaal door.
Stap 2: Controleer de toepasselijke sectie
Elk privacyframework in GPP heeft een numeriek sectie-ID. Uitgevers komen het vaakst 2 (EU TCF v2), 5 (Canadese TCF), 7 (US National, “usnat”) en 8 en hoger tegen voor afzonderlijke staatssecties zoals Californië, Virginia, Colorado, Utah en Connecticut. Een bezoeker uit een Amerikaanse staat zou in applicableSections normaal gesproken de nationale sectie of de betreffende staatssectie moeten zien, niet de EU-sectie.
Test vanaf meerdere locaties. Een veelvoorkomende bug is een CMP die de geografie voor de banner correct bepaalt maar toch een standaardsectie in de string schrijft, of andersom. Vergelijk met een VPN of de voorbeeldtools van je CMP wat de banner toont met wat applicableSections meldt.
Stap 3: Lees de sectiegegevens
In plaats van de string met de hand te decoderen, vraag je de CMP om de geparste sectie:
__gpp('getSection', function (data, success) { console.log(data, success); }, 'usnat');
In de sectie US National volgen de opt-outvelden een eenvoudige conventie: 0 betekent niet van toepassing, 1 betekent dat de gebruiker zich heeft afgemeld en 2 betekent dat de gebruiker zich niet heeft afgemeld. Richt je eerst op deze velden:
- SaleOptOut en SharingOptOut
- TargetedAdvertisingOptOut
- De bijbehorende notice-velden, die vastleggen of de bezoeker over elke praktijk is geïnformeerd
Voer nu de opt-out uit op de pagina — klik op je link “Do Not Sell or Share” of schakel de instelling in het voorkeurencentrum om — en voer getSection opnieuw uit. De opt-outvelden horen van 2 naar 1 te springen. Als dat niet gebeurt, lopen de UI en het signaal niet synchroon.
Stap 4: Test het Global Privacy Control-pad
Verschillende staatswetten vereisen dat bedrijven een Global Privacy Control-signaal als opt-out behandelen. Schakel GPC in via een browser of extensie die het ondersteunt, bevestig dat navigator.globalPrivacyControl in de console true teruggeeft en laad de pagina dan in een nieuwe sessie. De relevante opt-outvelden horen al 1 te tonen zonder dat de bezoeker de banner aanraakt. Sommige secties bevatten ook een veld dat aangeeft dat de keuze uit een GPC-signaal komt.
Stap 5: Volg gebeurtenissen, niet alleen momentopnames
Advertentiescripts mogen de string niet één keer bij het laden van de pagina lezen en dan vergeten. Registreer een listener om te zien wat partners zien:
__gpp('addEventListener', function (evt) { console.log(evt.eventName, evt.pingData); });
Je zou gebeurtenissen moeten zien zoals listenerRegistered, signalStatus en sectionChange. Wanneer de bezoeker een keuze wijzigt, hoort er een sectionChange-gebeurtenis met een bijgewerkte string te volgen. Als je header-biddingwrapper of adserverintegratie de string alleen leest voordat signalStatus “ready” wordt, verstuurt die mogelijk een lege of verouderde waarde.
Stap 6: Volg de string in advertentieverzoeken
Open tot slot het Network-tabblad en filter op je advertentieverzoeken. Veel advertentie-eindpunten accepteren de parameters gpp en gpp_sid (de string en de toepasselijke sectie-ID's). Controleer of:
- beide parameters aanwezig zijn op verzoeken van Amerikaanse bezoekers;
- de string overeenkomt met die welke ping op het moment van het verzoek teruggaf;
- verzoeken na een opt-out de nieuwe string dragen in plaats van een gecachete.
Als je Prebid.js gebruikt, bevestig dan dat de consent-managementmodule voor GPP is geconfigureerd, en inspecteer zowel de biedverzoeken die de wrapper verlaten als de uiteindelijke adserveraanroep.
Veelvoorkomende foutpatronen
- Stub laadt na de advertentietags — partners zien helemaal geen CMP.
- Verkeerde sectie voor de regio — EU-sectie verstuurd voor Amerikaans verkeer, of helemaal geen sectie.
- UI en signaal niet synchroon — de schakelaar verandert, de string niet.
- GPC genegeerd — het browsersignaal wordt nooit een opt-out.
- Verouderde strings in verzoeken — de wrapper cachet de eerste waarde die hij zag.
Belangrijkste inzichten
- Begin met ping: versie, status, toepasselijke secties en de string vertellen het grootste deel van het verhaal.
- Gebruik getSection om opt-outvelden te lezen; 1 betekent afgemeld, 2 betekent niet afgemeld.
- Test de opt-outlink en GPC apart en bevestig dat beide het signaal wijzigen.
- Luister naar gebeurtenissen en wacht op een “ready”-signaal voordat advertentieverzoeken de string lezen.
- Verifieer gpp en gpp_sid in echte netwerkverzoeken, vóór en na een opt-out.