Дебаговање IAB GPP стринга у конзоли прегледача: туторијал корак по корак
Зашто је GPP проблеме тешко уочити
Када амерички посетилац одјави продају или дељење својих података, тај избор мора да стигне до сваког оглашивачког партнера на страници. Са IAB Global Privacy Platform (GPP) он путује као компактан стринг и листа ID-ова секција. Ако је било шта од тога погрешно — недостаје, застарело је или носи погрешну секцију — ништа се видљиво не квари. Огласи се и даље учитавају, банер и даље изгледа уредно, а проблем се појављује тек касније, када партнери игноришу одјаве или нуде мање за ваш инвентар.
Добра вест је да готово све можете да прегледате из конзоле прегледача. Овај туторијал води кроз провере редоследом којим бисмо их извршили на живој страници.
Корак 1: Потврдите да API постоји и да је спреман
CMP компатибилан са GPP-ом излаже глобалну функцију __gpp. Отворите DevTools на својој страници и покрените команду ping:
__gpp('ping', function (data) { console.log(data); });
Враћени објекат вам одмах говори много тога:
- gppVersion — за актуелне имплементације треба да буде 1.1.
- cmpStatus — да ли је CMP учитан или је наишао на грешку.
- cmpDisplayStatus — да ли је банер видљив, сакривен или онемогућен за овог посетиоца.
- signalStatus — “ready” када се CMP определи за стање сагласности, “not ready” док још одлучује.
- supportedAPIs — секције које CMP може да произведе.
- applicableSections — ID-ови секција који се тренутно примењују на овог посетиоца.
- gppString — сам кодирани стринг.
Ако је __gpp недефинисан, CMP stub недостаје или се учитава прекасно. Stub мора да буде на месту пре сваке рекламне скрипте која га очекује, иначе те скрипте неће видети никакав CMP и или ће чекати или ће наставити без сигнала.
Корак 2: Проверите применљиву секцију
Сваки оквир приватности у GPP-у има нумерички ID секције. Они које издавачи најчешће срећу су 2 (EU TCF v2), 5 (канадски TCF), 7 (US National, “usnat”) и 8 па надаље за секције појединачних држава као што су Калифорнија, Вирџинија, Колорадо, Јута и Конектикат. Посетилац из америчке државе би у applicableSections нормално требало да види или националну или одговарајућу државну секцију, а не EU секцију.
Тестирајте са више локација. Честа грешка је CMP који исправно детектује географију за банер, али у стринг упише подразумевану секцију без обзира на то, или обрнуто. Помоћу VPN-а или алата за преглед вашег CMP-а упоредите шта банер приказује са оним што јавља applicableSections.
Корак 3: Прочитајте податке секције
Уместо да стринг декодирате ручно, затражите од CMP-а парсирану секцију:
__gpp('getSection', function (data, success) { console.log(data, success); }, 'usnat');
У US National секцији поља одјаве користе једноставну конвенцију: 0 значи да се не примењује, 1 значи да се корисник одјавио, а 2 значи да се корисник није одјавио. Прво се усредсредите на ова поља:
- SaleOptOut и SharingOptOut
- TargetedAdvertisingOptOut
- Одговарајућа notice поља, која бележе да ли је посетилац обавештен о свакој пракси
Сада извршите одјаву на страници — кликните на свој линк “Do Not Sell or Share” или укључите подешавање у центру за подешавања — и поново покрените getSection. Поља одјаве треба да пређу са 2 на 1. Ако не пређу, кориснички интерфејс и сигнал нису усклађени.
Корак 4: Тестирајте путању Global Privacy Control
Неколико државних закона захтева да предузећа третирају сигнал Global Privacy Control као одјаву. Укључите GPC у прегледачу или додатку који га подржава, потврдите да navigator.globalPrivacyControl у конзоли враћа true, а затим учитајте страницу у новој сесији. Одговарајућа поља одјаве већ треба да показују 1, а да посетилац није дирао банер. Неке секције садрже и поље које показује да избор потиче из GPC сигнала.
Корак 5: Пратите догађаје, а не само снимке стања
Рекламне скрипте не би смеле да прочитају стринг једном при учитавању странице и да га заборави. Региструјте listener да видите шта виде партнери:
__gpp('addEventListener', function (evt) { console.log(evt.eventName, evt.pingData); });
Требало би да уочите догађаје као што су listenerRegistered, signalStatus и sectionChange. Када посетилац промени избор, треба да уследи догађај sectionChange са ажурираним стрингом. Ако ваш header bidding wrapper или интеграција ад сервера чита стринг само пре него што signalStatus постане “ready”, може да пошаље празну или застарелу вредност.
Корак 6: Пратите стринг до захтева за огласе
На крају отворите картицу Network и филтрирајте своје захтеве за огласе. Многи рекламни endpoint-и прихватају параметре gpp и gpp_sid (стринг и применљиви ID-ови секција). Проверите да:
- су оба параметра присутна у захтевима америчких посетилаца;
- се стринг подудара са оним који враћа ping у тренутку захтева;
- након одјаве наредни захтеви носе нови стринг, а не кеширани.
Ако користите Prebid.js, потврдите да је његов модул за управљање сагласношћу конфигурисан за GPP и прегледајте захтеве за понуде који излазе из wrapper-а, као и завршни позив ка ад серверу.
Уобичајени обрасци кварова
- Stub се учитава после рекламних тагова — партнери уопште не виде CMP.
- Погрешна секција за регион — EU секција послата за амерички саобраћај, или никаква секција.
- Кориснички интерфејс и сигнал нису усклађени — прекидач се мења, стринг не.
- GPC игнорисан — сигнал прегледача никад не постаје одјава.
- Застарели стрингови у захтевима — wrapper кешира прву вредност коју је видео.
Кључни закључци
- Почните са ping: верзија, статус, применљиве секције и стринг говоре већину приче.
- Користите getSection за читање поља одјаве; 1 значи одјављен, 2 значи није одјављен.
- Одвојено тестирајте линк за одјаву и GPC и потврдите да оба мењају сигнал.
- Слушајте догађаје и сачекајте сигнал “ready” пре него што захтеви за огласе прочитају стринг.
- Проверите gpp и gpp_sid у стварним мрежним захтевима, пре и после одјаве.