Debugiranje IAB GPP stringa u konzoli preglednika: tutorial korak po korak
Zašto je GPP probleme teško uočiti
Kada se američki posjetitelj odjavi od prodaje ili dijeljenja svojih podataka, taj izbor mora doći do svakog oglasnog partnera na stranici. S IAB Global Privacy Platformom (GPP) putuje kao kompaktan string i popis ID-ova sekcija. Ako je bilo što od toga pogrešno — nedostaje, zastarjelo je ili nosi pogrešnu sekciju — ništa se vidljivo ne kvari. Oglasi se i dalje učitavaju, baner i dalje izgleda uredno, a problem se pojavi tek kasnije, kad partneri ignoriraju odjave ili nude manje za vaš inventar.
Dobra vijest je da gotovo sve možete pregledati iz konzole preglednika. Ovaj tutorial vodi kroz provjere redom kojim bismo ih provodili na živoj stranici.
Korak 1: Potvrdite da API postoji i da je spreman
CMP kompatibilan s GPP-om izlaže globalnu funkciju __gpp. Otvorite DevTools na svojoj stranici i pokrenite naredbu ping:
__gpp('ping', function (data) { console.log(data); });
Vraćeni objekt na prvi pogled govori mnogo:
- gppVersion — za aktualne implementacije treba biti 1.1.
- cmpStatus — je li CMP učitan ili je naišao na pogrešku.
- cmpDisplayStatus — je li baner vidljiv, skriven ili onemogućen za ovog posjetitelja.
- signalStatus — “ready” kad se CMP odluči za stanje privole, “not ready” dok još odlučuje.
- supportedAPIs — sekcije koje CMP može proizvesti.
- applicableSections — ID-ovi sekcija koji se trenutačno primjenjuju na ovog posjetitelja.
- gppString — sam kodirani string.
Ako je __gpp nedefiniran, CMP stub nedostaje ili se učitava prekasno. Stub mora biti na mjestu prije svake oglasne skripte koja ga očekuje, inače te skripte neće vidjeti nikakav CMP i ili će čekati ili će nastaviti bez signala.
Korak 2: Provjerite primjenjivu sekciju
Svaki okvir privatnosti u GPP-u ima numerički ID sekcije. Oni koje izdavači najčešće susreću su 2 (EU TCF v2), 5 (kanadski TCF), 7 (US National, “usnat”) i 8 nadalje za sekcije pojedinih država poput Kalifornije, Virginije, Colorada, Utaha i Connecticuta. Posjetitelj iz američke savezne države u applicableSections normalno bi trebao vidjeti ili nacionalnu ili odgovarajuću državnu sekciju, a ne EU sekciju.
Testirajte s više lokacija. Čest je bug CMP koji ispravno detektira geografiju za baner, ali u string upiše zadanu sekciju bez obzira na to, ili obrnuto. Pomoću VPN-a ili alata za pregled vašeg CMP-a usporedite što baner prikazuje s onim što javlja applicableSections.
Korak 3: Pročitajte podatke sekcije
Umjesto da string dekodirate ručno, zatražite od CMP-a parsiranu sekciju:
__gpp('getSection', function (data, success) { console.log(data, success); }, 'usnat');
U US National sekciji polja odjave koriste jednostavnu konvenciju: 0 znači da se ne primjenjuje, 1 znači da se korisnik odjavio, a 2 znači da se korisnik nije odjavio. Najprije se usredotočite na ova polja:
- SaleOptOut i SharingOptOut
- TargetedAdvertisingOptOut
- Odgovarajuća notice polja, koja bilježe je li posjetitelj obaviješten o svakoj praksi
Sada izvršite odjavu na stranici — kliknite svoju poveznicu “Do Not Sell or Share” ili uključite postavku u centru za postavke — i ponovno pokrenite getSection. Polja odjave trebaju prijeći s 2 na 1. Ako ne prijeđu, korisničko sučelje i signal nisu usklađeni.
Korak 4: Testirajte put Global Privacy Control
Nekoliko državnih zakona zahtijeva da poduzeća signal Global Privacy Control tretiraju kao odjavu. Uključite GPC u pregledniku ili dodatku koji ga podržava, potvrdite da navigator.globalPrivacyControl u konzoli vraća true, a zatim učitajte stranicu u novoj sesiji. Odgovarajuća polja odjave već trebaju pokazivati 1, a da posjetitelj nije dirao baner. Neke sekcije sadrže i polje koje pokazuje da izbor potječe iz GPC signala.
Korak 5: Pratite događaje, a ne samo snimke stanja
Oglasne skripte ne bi smjele pročitati string jednom pri učitavanju stranice pa ga zaboraviti. Registrirajte listener da vidite što vide partneri:
__gpp('addEventListener', function (evt) { console.log(evt.eventName, evt.pingData); });
Trebali biste uočiti događaje poput listenerRegistered, signalStatus i sectionChange. Kad posjetitelj promijeni izbor, treba uslijediti događaj sectionChange s ažuriranim stringom. Ako vaš header bidding wrapper ili integracija ad servera čita string samo prije nego što signalStatus postane “ready”, može poslati praznu ili zastarjelu vrijednost.
Korak 6: Pratite string do oglasnih zahtjeva
Naposljetku otvorite karticu Network i filtrirajte svoje oglasne zahtjeve. Mnogi oglasni endpointi prihvaćaju parametre gpp i gpp_sid (string i primjenjivi ID-ovi sekcija). Provjerite da:
- su oba parametra prisutna u zahtjevima američkih posjetitelja;
- se string podudara s onim koji vraća ping u trenutku zahtjeva;
- nakon odjave sljedeći zahtjevi nose novi string, a ne keširani.
Ako koristite Prebid.js, potvrdite da je njegov modul za upravljanje privolom konfiguriran za GPP te pregledajte zahtjeve za ponude koji izlaze iz wrappera, kao i završni poziv prema ad serveru.
Uobičajeni obrasci kvarova
- Stub se učitava nakon oglasnih tagova — partneri uopće ne vide CMP.
- Pogrešna sekcija za regiju — EU sekcija poslana za američki promet, ili nikakva sekcija.
- Korisničko sučelje i signal nisu usklađeni — prekidač se mijenja, string ne.
- GPC ignoriran — signal preglednika nikad ne postaje odjava.
- Zastarjeli stringovi u zahtjevima — wrapper kešira prvu vrijednost koju je vidio.
Ključni zaključci
- Počnite s ping: verzija, status, primjenjive sekcije i string govore većinu priče.
- Koristite getSection za čitanje polja odjave; 1 znači odjavljen, 2 znači nije odjavljen.
- Zasebno testirajte poveznicu za odjavu i GPC te potvrdite da oba mijenjaju signal.
- Slušajte događaje i pričekajte signal “ready” prije nego što oglasni zahtjevi pročitaju string.
- Provjerite gpp i gpp_sid u stvarnim mrežnim zahtjevima, prije i poslije odjave.