Server-side GTM ChatGPT Ads: доставка событий Conversions API из серверного контейнера
Что server-side GTM меняет в измерении ChatGPT Ads
Server-side GTM (sGTM) - это серверный контейнер Google: события со страниц приезжают на ваш теггинг-endpoint, а серверные теги обрабатывают и пересылают их куда нужно. Направленный на ChatGPT Ads, контейнер становится слоем доставки для Conversions API - конверсию отправляет ваш сервер, а не один браузерный пиксель. Логика измерения не меняется относительно прямой интеграции: та же дедупликация по event_id, те же поддерживаемые события, те же условия атрибуции. Меняется операционный контроль - исходящие запросы уходят с вашей инфраструктуры, формой payload вы владеете как кодом, а браузерная зависимость сжимается до того, что пиксель всё ещё должен поймать.
Путь доставки: кастомный шаблон на sendHttpRequest
Серверный контейнер поставляет шаблоны измерения для продуктов Google самого; встроенного тега ChatGPT Ads нет, а официальный способ делать произвольные исходящие HTTP-запросы из серверных шаблонов - API sendHttpRequest из задокументированного набора custom template API на developers.google.com. Минимальный шаблон ChatGPT Ads оборачивает три вещи: endpoint, креденшелы и payload. Документация Conversions API OpenAI определяет вызов как POST на https://bzr.openai.com/v1/events?pid=<PIXEL-ID> с bearer-заголовком:
POST https://bzr.openai.com/v1/events?pid=<PIXEL-ID>
Authorization: Bearer <API-KEY>
Content-Type: application/jsonPixel ID и ключ Conversions API берутся из вкладки conversions в Ads Manager - та же пара, что у прямой интеграции, - и шаблон обращается с ними как с полями конфигурации, а не захардкоженными строками. Кастомные шаблоны объявляют свои разрешения явно, поэтому конфиг шаблона должен разрешить домен исходящего запроса; именно эта декларация не даёт случайному шаблону дёргать чужие хосты.
Что несёт payload
Тело следует схеме событий OpenAI: стандартное имя события, его схема данных и опциональная пара amount-currency в минорных единицах. Серверная доставка открывает два события, которые браузер отправить не может вовсе, - app_installed и app_opened едут только через Conversions API с action_source равным mobile_app. Два поля в шаблоне заслуживают ручной обработки. Click reference oppref, который пиксель складывает в first-party cookie, стоит включать в CAPI-вызовы, когда он доступен, - серверный код читает его из входящего события или кук и пробрасывает дальше. А event_id должен совпадать со значением пикселя для той же конверсии, потому что дедупликация браузерной и серверной копий идёт по этому общему ключу. Для матчинга при потере кликовой ссылки опциональный объект user в payload принимает хешированные email (emails_sha256), а также ip_address и user_agent - поля, которые серверный контейнер может пробросить из собственного контекста запроса.
Consent и браузерная сторона
Серверная доставка дополняет пиксель, а не заменяет его, поэтому браузерные требования остаются в силе. Пиксель поддерживает consent-фичу - oaiq("consent", false) до init с переключением на true после согласия пользователя, - и заблокированные события не реплеятся позже. Сайты с Content Security Policy вливают задокументированные источники OpenAI в свою политику: SDK грузится с bzrcdn.openai.com, а события и конфигурация ходят на bzr.openai.com. Серверная сторона добавляет своё правило: исходящие запросы уважают сетап контейнера, и задача сервера - проносить сигналы согласия в решения о payload, а не обходить их.
Валидация серверной доставки
Валидация следует той же привычке тестировать до спенда, что и любая другая интеграция. Запустите одну конверсию по цепочке браузер-контейнер-OpenAI, затем подтвердите в Ads Manager, что событие приехало в атрибуции к клику, что event_id задедуплицировал пиксельную и серверную копии в одиночный зачёт и что ничего не задвоилось. Preview-режим sGTM показывает входящий запрос и исходящий вызов sendHttpRequest рядом, из-за чего ошибки payload видны до боевого трафика. MOST пропускает работу с шаблоном целиком, доставляя отслеженные конверсии серверно в ChatGPT Ads вместе с Meta, TikTok, Reddit, Snapchat и Pinterest, а бесплатный Pixel Activator валидирует одиночный лендинг на pixel.way2.us для команд, которым сначала нужно одно работающее событие.
