Отладка строки IAB GPP в консоли браузера: пошаговое руководство

Почему проблемы с GPP трудно заметить

Когда посетитель из США отказывается от продажи или передачи своих данных, этот выбор должен дойти до каждого рекламного партнёра на странице. В IAB Global Privacy Platform (GPP) он передаётся в виде компактной строки и списка идентификаторов разделов. Если что-то из этого неверно — отсутствует, устарело или содержит не тот раздел, — внешне ничего не ломается. Реклама по-прежнему загружается, баннер по-прежнему выглядит нормально, а проблема проявляется позже: партнёры игнорируют отказы или делают меньшие ставки на ваш инвентарь.

Хорошая новость в том, что почти всё можно проверить из консоли браузера. В этом руководстве проверки идут в том порядке, в котором мы выполняли бы их на живой странице.

Шаг 1: убедитесь, что API существует и готов

CMP, совместимая с GPP, предоставляет глобальную функцию __gpp. Откройте DevTools на своей странице и выполните команду ping:

__gpp('ping', function (data) { console.log(data); });

Возвращаемый объект многое сообщает с первого взгляда:

Если __gpp не определена, stub CMP отсутствует или загружается слишком поздно. Stub должен быть на месте до любого рекламного скрипта, который его ожидает, иначе такие скрипты не увидят CMP и либо будут ждать, либо продолжат работу без сигнала.

Шаг 2: проверьте применимый раздел

У каждой рамки конфиденциальности в GPP есть числовой идентификатор раздела. Чаще всего издатели сталкиваются с 2 (EU TCF v2), 5 (канадский TCF), 7 (US National, «usnat») и 8 и далее для отдельных разделов штатов, таких как Калифорния, Вирджиния, Колорадо, Юта и Коннектикут. Посетитель из штата США обычно должен видеть в applicableSections либо национальный раздел, либо соответствующий раздел штата, но не раздел ЕС.

Тестируйте из разных локаций. Типичная ошибка — CMP, которая правильно определяет географию для баннера, но записывает в строку раздел по умолчанию независимо от неё, или наоборот. С помощью VPN или инструментов предпросмотра вашей CMP сравните то, что показывает баннер, с тем, что сообщает applicableSections.

Шаг 3: прочитайте данные раздела

Вместо того чтобы декодировать строку вручную, запросите у CMP разобранный раздел:

__gpp('getSection', function (data, success) { console.log(data, success); }, 'usnat');

В разделе US National поля отказа используют простое соглашение: 0 означает «неприменимо», 1 — пользователь отказался, а 2 — пользователь не отказывался. Сначала обратите внимание на эти поля:

Теперь выполните отказ на странице — нажмите ссылку «Не продавать и не передавать мои данные» или переключите настройку в центре предпочтений — и снова запустите 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 или интеграция с рекламным сервером читает строку только до того, как signalStatus станет «ready», она может отправить пустое или устаревшее значение.

Шаг 6: проследите строку до рекламных запросов

Наконец, откройте вкладку Network и отфильтруйте свои рекламные запросы. Многие рекламные эндпоинты принимают параметры gpp и gpp_sid (строку и применимые идентификаторы разделов). Проверьте, что:

  1. оба параметра присутствуют в запросах от посетителей из США;
  2. строка совпадает с той, которую вернул ping в момент запроса;
  3. после отказа последующие запросы содержат новую строку, а не закэшированную.

Если вы используете Prebid.js, убедитесь, что его модуль управления согласием настроен на GPP, и проверьте как bid-запросы, уходящие из обёртки, так и итоговый вызов рекламного сервера.

Типичные сценарии сбоев

Ключевые выводы

← Блог Читать все →