Debug della stringa IAB GPP nella console del browser: tutorial passo passo
Perché i problemi di GPP sono difficili da notare
Quando un visitatore statunitense rifiuta la vendita o la condivisione dei propri dati, questa scelta deve raggiungere ogni partner pubblicitario presente sulla pagina. Con l'IAB Global Privacy Platform (GPP), viaggia sotto forma di una stringa compatta e di un elenco di ID di sezione. Se uno dei due è sbagliato — mancante, obsoleto o con la sezione errata — nulla si rompe in modo visibile. Gli annunci si caricano ancora, il banner appare a posto, e il problema emerge solo più tardi, quando i partner ignorano le esclusioni o fanno offerte più basse sul tuo inventario.
La buona notizia è che puoi ispezionare quasi tutto dalla console del browser. Questo tutorial percorre i controlli nell'ordine in cui li eseguiremmo su una pagina live.
Passo 1: confermare che l'API esista e sia pronta
Un CMP compatibile con GPP espone una funzione globale __gpp. Apri i DevTools sulla tua pagina ed esegui un comando ping:
__gpp('ping', function (data) { console.log(data); });
L'oggetto restituito dice molto a colpo d'occhio:
- gppVersion — dovrebbe indicare 1.1 per le implementazioni attuali.
- cmpStatus — se il CMP si è caricato o ha riscontrato un errore.
- cmpDisplayStatus — se il banner è visibile, nascosto o disattivato per questo visitatore.
- signalStatus — «ready» quando il CMP ha stabilito uno stato di consenso, «not ready» mentre sta ancora decidendo.
- supportedAPIs — le sezioni che il CMP può produrre.
- applicableSections — gli ID di sezione che si applicano a questo visitatore in questo momento.
- gppString — la stringa codificata vera e propria.
Se __gpp è undefined, lo stub del CMP manca o si carica troppo tardi. Lo stub deve essere presente prima di qualsiasi script pubblicitario che lo aspetti; altrimenti quegli script non vedranno alcun CMP e aspetteranno o procederanno senza segnale.
Passo 2: controllare la sezione applicabile
Ogni quadro di privacy in GPP ha un ID di sezione numerico. Quelli che gli editori incontrano più spesso sono 2 (EU TCF v2), 5 (TCF canadese), 7 (US National, «usnat») e dall'8 in poi per le sezioni dei singoli stati come California, Virginia, Colorado, Utah e Connecticut. Un visitatore di uno stato USA dovrebbe normalmente vedere in applicableSections la sezione nazionale o quella del suo stato, non quella UE.
Testa da più località. Un bug comune è un CMP che rileva correttamente la geografia per il banner ma scrive nella stringa una sezione predefinita a prescindere, o viceversa. Con una VPN o con gli strumenti di anteprima del tuo CMP, confronta ciò che mostra il banner con ciò che riporta applicableSections.
Passo 3: leggere i dati della sezione
Invece di decodificare la stringa a mano, chiedi al CMP la sezione già interpretata:
__gpp('getSection', function (data, success) { console.log(data, success); }, 'usnat');
Nella sezione US National i campi di esclusione seguono una convenzione semplice: 0 significa non applicabile, 1 significa che l'utente ha rifiutato e 2 significa che l'utente non ha rifiutato. Concentrati prima su questi campi:
- SaleOptOut e SharingOptOut
- TargetedAdvertisingOptOut
- I corrispondenti campi notice, che registrano se al visitatore è stata data informativa su ciascuna pratica
Ora esegui l'esclusione sulla pagina — clicca il tuo link «Do Not Sell or Share» o attiva l'impostazione nel centro preferenze — ed esegui di nuovo getSection. I campi di esclusione dovrebbero passare da 2 a 1. In caso contrario, interfaccia e segnale non sono sincronizzati.
Passo 4: testare il percorso Global Privacy Control
Diverse leggi statali richiedono che le imprese trattino un segnale Global Privacy Control come un'esclusione. Attiva il GPC in un browser o in un'estensione che lo supporti, conferma che navigator.globalPrivacyControl restituisca true nella console, poi carica la pagina in una sessione nuova. I campi di esclusione pertinenti dovrebbero già indicare 1 senza che il visitatore tocchi il banner. Alcune sezioni includono anche un campo che indica che la scelta proviene da un segnale GPC.
Passo 5: osservare gli eventi, non solo le istantanee
Gli script pubblicitari non dovrebbero leggere la stringa una sola volta al caricamento della pagina e dimenticarla. Registra un listener per vedere ciò che vedono i partner:
__gpp('addEventListener', function (evt) { console.log(evt.eventName, evt.pingData); });
Dovresti osservare eventi come listenerRegistered, signalStatus e sectionChange. Quando il visitatore cambia una scelta, dovrebbe seguire un evento sectionChange con una stringa aggiornata. Se il tuo wrapper di header bidding o l'integrazione con l'ad server legge la stringa solo prima che signalStatus diventi «ready», potrebbe inviare un valore vuoto o obsoleto.
Passo 6: seguire la stringa nelle richieste pubblicitarie
Infine, apri la scheda Network e filtra le tue richieste pubblicitarie. Molti endpoint pubblicitari accettano i parametri gpp e gpp_sid (la stringa e gli ID di sezione applicabili). Verifica che:
- entrambi i parametri siano presenti nelle richieste dei visitatori USA;
- la stringa corrisponda a quella restituita da ping al momento della richiesta;
- dopo un'esclusione, le richieste successive portino la nuova stringa e non una in cache.
Se usi Prebid.js, conferma che il suo modulo di gestione del consenso sia configurato per GPP, e ispeziona le richieste di offerta in uscita dal wrapper oltre alla chiamata finale all'ad server.
Schemi di errore comuni
- Lo stub si carica dopo i tag pubblicitari — i partner non vedono alcun CMP.
- Sezione errata per la regione — sezione UE inviata per traffico USA, o nessuna sezione.
- Interfaccia e segnale non sincronizzati — l'interruttore cambia, la stringa no.
- GPC ignorato — il segnale del browser non diventa mai un'esclusione.
- Stringhe obsolete nelle richieste — il wrapper mette in cache il primo valore visto.
Punti chiave
- Parti da ping: versione, stato, sezioni applicabili e stringa raccontano la maggior parte della storia.
- Usa getSection per leggere i campi di esclusione; 1 significa rifiuto, 2 significa nessun rifiuto.
- Testa separatamente il link di esclusione e il GPC e conferma che entrambi modifichino il segnale.
- Ascolta gli eventi e attendi un segnale «ready» prima che le richieste pubblicitarie leggano la stringa.
- Verifica gpp e gpp_sid nelle richieste di rete reali, prima e dopo un'esclusione.