Preflight (OPTIONS) в server-side GTM: чек-лист перед запуском
Если вы ведёте события через server-side Google Tag Manager (GTM), важно помнить: для некоторых HTTP-вызовов браузер сначала отправляет preflight-запрос методом OPTIONS. Он нужен, чтобы “проверить”, что сервер умеет обработать нужный тип cross-origin (межсайтового) запроса. Если сервер не отвечает корректно — ваши события не уйдут, и это будет выглядеть как проблема трекинга, а не как настройка CORS.
Чек-лист действий перед релизом:
— Зафиксируйте, какие запросы уходят
Проверьте в DevTools/логах server-side endpoint: действительно ли есть OPTIONS перед POST/PUT с событиями. Убедитесь, что речь не про “пустые” фоновые вызовы, а именно про ваш трекинг.
— Проверьте обработку OPTIONS на стороне сервера
В конфигурации endpoint должна быть обработка OPTIONS (обычно ответ 200/204). Если сервер возвращает ошибку или не имеет маршрута — preflight “провалится”, и клиент не отправит основной запрос.
— Настройте корректные CORS-заголовки именно под нужные методы
Убедитесь, что сервер в ответе на preflight указывает разрешённые методы (например, POST) и что ваш browser-to-server вызов соответствует требованиям. Проблема часто в том, что разрешили GET, а фактический event идёт POST.
— Разрешите нужные заголовки (allowed headers) для вашего payload
Если в запросе используются нестандартные заголовки (например, auth/хедеры, связанные с сериализацией), сервер должен вернуть их в allowed headers. Иначе основной запрос блокируется браузером.
— Проверьте статус ответа и кеширование preflight (max-age)
Если preflight отвечает корректно, но слишком “часто” дергается — вы получаете шум в логах и рискуете утопить производительность. Настройте max-age там, где это допустимо политиками вашей инфраструктуры.
— Проведите тест “как браузер”, а не только curl-ом
curl может не воспроизвести поведение браузера по preflight. Проверяйте в сценарии, который реально выполняет ваш сайт: тот же домен, тот же тип запроса, тот же режим кросс-источников.
— Добавьте мониторинг отказов preflight в аналитике/логах
В server-side логах выделите случаи OPTIONS с ошибочным статусом и сохраняйте причину (что вернул сервер, какие заголовки). Это ускорит диагностику, когда “пропали события” и атрибуция просела.
когда это пригодится: перед внедрением server-side трекинга или после смены доменов/прокси/CDN, когда события вдруг начинают “не доходить” без явной ошибки в GTM.
— @MarketingAnalyticsRoomPro
Маркетинг-аналитика
@MarketingAnalyticsRoomPro
Preflight (OPTIONS) в server-side GTM: чек-лист перед запуском
Этот пост опубликован в Telegram-канале Маркетинг-аналитика. Подписаться можно по ссылке: @MarketingAnalyticsRoomPro.