IAB GPP -merkkijonon virheenjäljitys selaimen konsolissa: vaiheittainen opas
Miksi GPP-ongelmat on vaikea huomata
Kun yhdysvaltalainen kävijä kieltäytyy tietojensa myynnistä tai jakamisesta, valinnan on tavoitettava jokainen sivun mainoskumppani. IAB Global Privacy Platformissa (GPP) se kulkee tiiviinä merkkijonona ja osio-ID-listana. Jos jompikumpi on väärä — puuttuu, on vanhentunut tai sisältää väärän osion — mikään ei näkyvästi hajoa. Mainokset latautuvat edelleen, banneri näyttää edelleen hyvältä, ja ongelma paljastuu vasta myöhemmin, kun kumppanit sivuuttavat kieltäytymiset tai tarjoavat vähemmän inventaaristanne.
Hyvä uutinen on, että lähes kaiken voi tarkastaa selaimen konsolista. Tämä opas käy tarkistukset läpi siinä järjestyksessä, jossa ajaisimme ne toimivalla sivulla.
Vaihe 1: varmista, että API on olemassa ja valmis
GPP-yhteensopiva CMP tarjoaa globaalin __gpp-funktion. Avaa sivullasi DevTools ja suorita ping-komento:
__gpp('ping', function (data) { console.log(data); });
Palautettu objekti kertoo yhdellä silmäyksellä paljon:
- gppVersion — nykyisissä toteutuksissa pitäisi olla 1.1.
- cmpStatus — onko CMP latautunut vai tapahtuiko virhe.
- cmpDisplayStatus — onko banneri tälle kävijälle näkyvissä, piilotettu vai poistettu käytöstä.
- signalStatus — “ready”, kun CMP on päätynyt suostumustilaan, “not ready”, kun se vielä päättää.
- supportedAPIs — osiot, joita CMP voi tuottaa.
- applicableSections — osio-ID:t, jotka koskevat tätä kävijää juuri nyt.
- gppString — itse koodattu merkkijono.
Jos __gpp on undefined, CMP-stub puuttuu tai latautuu liian myöhään. Stubin on oltava paikallaan ennen mainoskriptejä, jotka sitä odottavat, muuten nämä skriptit eivät näe CMP:tä ja joko odottavat tai jatkavat ilman signaalia.
Vaihe 2: tarkista sovellettava osio
Jokaisella GPP:n tietosuojakehyksellä on numeerinen osio-ID. Julkaisijat kohtaavat useimmin seuraavat: 2 (EU:n TCF v2), 5 (Kanadan TCF), 7 (Yhdysvaltain kansallinen, “usnat”) sekä 8 ja siitä eteenpäin yksittäisten osavaltioiden osiot, kuten Kalifornia, Virginia, Colorado, Utah ja Connecticut. Yhdysvaltalaisen osavaltion kävijän applicableSections-kentässä pitäisi yleensä näkyä joko kansallinen osio tai asianomaisen osavaltion osio, ei EU:n osiota.
Testaa useista sijainneista. Yleinen virhe on CMP, joka tunnistaa maantieteen bannerille oikein mutta kirjoittaa merkkijonoon oletusosion riippumatta siitä, tai päinvastoin. VPN:n tai CMP:si esikatselutyökalujen avulla vertaa, mitä banneri näyttää ja mitä applicableSections raportoi.
Vaihe 3: lue osion tiedot
Sen sijaan että purkaisit merkkijonon käsin, pyydä CMP:ltä jäsennetty osio:
__gpp('getSection', function (data, success) { console.log(data, success); }, 'usnat');
Yhdysvaltain kansallisessa osiossa kieltäytymiskentät käyttävät yksinkertaista sopimusta: 0 tarkoittaa, ettei sovellu, 1 tarkoittaa, että käyttäjä kieltäytyi, ja 2 tarkoittaa, ettei käyttäjä kieltäytynyt. Keskity ensin näihin kenttiin:
- SaleOptOut ja SharingOptOut
- TargetedAdvertisingOptOut
- Vastaavat notice-kentät, jotka kirjaavat, annettiinko kävijälle ilmoitus kustakin käytännöstä
Suorita nyt sivulla kieltäytyminen — napsauta “Do Not Sell or Share” -linkkiäsi tai vaihda asetus asetuskeskuksessa — ja suorita getSection uudelleen. Kieltäytymiskenttien pitäisi vaihtua 2:sta 1:ksi. Jos eivät, käyttöliittymä ja signaali eivät ole synkronissa.
Vaihe 4: testaa Global Privacy Control -polku
Useat osavaltioiden lait edellyttävät, että yritykset käsittelevät Global Privacy Control -signaalin kieltäytymisenä. Ota GPC käyttöön selaimessa tai laajennuksessa, joka sitä tukee, varmista, että navigator.globalPrivacyControl palauttaa konsolissa true, ja lataa sitten sivu uudessa istunnossa. Asianomaisten kieltäytymiskenttien pitäisi jo olla 1 ilman, että kävijä koskee banneriin. Joissakin osioissa on myös kenttä, joka osoittaa valinnan tulleen GPC-signaalista.
Vaihe 5: seuraa tapahtumia, älä vain tilannekuvia
Mainoskriptien ei pitäisi lukea merkkijonoa kerran sivun latautuessa ja unohtaa sitä. Rekisteröi listener nähdäksesi, mitä kumppanit näkevät:
__gpp('addEventListener', function (evt) { console.log(evt.eventName, evt.pingData); });
Sinun pitäisi nähdä tapahtumia kuten listenerRegistered, signalStatus ja sectionChange. Kun kävijä muuttaa valintaa, perään pitäisi tulla sectionChange-tapahtuma päivitetyllä merkkijonolla. Jos header bidding -wrapperisi tai mainospalvelinintegraatiosi lukee merkkijonon vain ennen kuin signalStatus muuttuu “ready”-tilaan, se voi lähettää tyhjän tai vanhentuneen arvon.
Vaihe 6: seuraa merkkijonoa mainospyyntöihin
Avaa lopuksi Network-välilehti ja suodata mainospyyntösi. Monet mainosten päätepisteet hyväksyvät parametrit gpp ja gpp_sid (merkkijono ja sovellettavat osio-ID:t). Tarkista, että:
- molemmat parametrit ovat mukana yhdysvaltalaisten kävijöiden pyynnöissä;
- merkkijono vastaa sitä, jonka ping palautti pyynnön hetkellä;
- kieltäytymisen jälkeen seuraavat pyynnöt kantavat uutta merkkijonoa eivätkä välimuistissa olevaa.
Jos käytät Prebid.js:ää, varmista, että sen suostumuksenhallintamoduuli on määritetty GPP:lle, ja tarkasta sekä wrapperista lähtevät tarjouspyynnöt että lopullinen mainospalvelinkutsu.
Yleiset vikamallit
- Stub latautuu mainostagien jälkeen — kumppanit eivät näe CMP:tä lainkaan.
- Väärä osio alueelle — EU:n osio lähetetään Yhdysvaltain liikenteelle tai osiota ei lähetetä lainkaan.
- Käyttöliittymä ja signaali eivät ole synkronissa — kytkin muuttuu, merkkijono ei.
- GPC sivuutetaan — selaimen signaalista ei tule koskaan kieltäytymistä.
- Vanhentuneet merkkijonot pyynnöissä — wrapper tallentaa ensimmäisen näkemänsä arvon välimuistiin.
Keskeiset opit
- Aloita ping-komennolla: versio, tila, sovellettavat osiot ja merkkijono kertovat suurimman osan tarinasta.
- Käytä getSection-komentoa kieltäytymiskenttien lukemiseen; 1 tarkoittaa kieltäytynyt, 2 tarkoittaa ei kieltäytynyt.
- Testaa kieltäytymislinkki ja GPC erikseen ja varmista, että molemmat muuttavat signaalia.
- Kuuntele tapahtumia ja odota “ready”-signaalia, ennen kuin mainospyynnöt lukevat merkkijonon.
- Tarkista gpp ja gpp_sid oikeissa verkkopyynnöissä ennen kieltäytymistä ja sen jälkeen.