Перейти к содержимому

База знанийGoogle Analytics 4

Что умеет Measurement Protocol в GA4?

Определение

GA4 Measurement Protocol передаёт события напрямую в Google Analytics через HTTP, обычно с сервера или из офлайн-системы.

Так можно записывать действия, недоступные браузерному тегу, включая покупки и возвраты. Протокол дополняет теги. Для связи с предыдущими действиями посетителя серверному событию нужны верные идентификаторы и контекст.

запрос
client_idmeasurement_idapi_secret
Контекст сессии
session_idengagement_time_msec
задним числом
до 72 часов
  1. На практике

    Что он может добавить и чего не может восстановить?

    Я использую протокол, когда бэкенд подтверждает действие и располагает нужными для GA4 данными. Это помогает связать онлайн- и офлайн-действия и собрать серверные и браузерные события в одном ресурсе.

    Протокол не восстановит просмотры, которые не записывались. По документации Google, он дополняет автоматический сбор через тег Google, Tag Manager или Firebase. Полученное событие без связи с исходным посетителем не подтверждает восстановление атрибуции исходной сессии.

    События можно датировать задним числом: до 72 часов назад. Это не способ задним числом добавить пропавшие покупки прошлого месяца, а сам этот лимит не гарантирует привязку к сессии.

  2. На практике

    Для чего нужны client_id и transaction_id?

    Для веб-потока client_id идентифицирует экземпляр пользователя и должен совпадать с ID, который генерирует тег GA4 сайта. Когда это разрешено, я переношу это значение в бэкенд, а не заменяю его номером заказа или новым случайным значением для каждой покупки. В запросе также нужны measurement_id потока и api_secret, который остаётся на сервере.

    transaction_id идентифицирует заказ в событии покупки. По документации Google, в веб-потоках дедуплицируются покупки одного и того же пользователя с одним и тем же transaction ID. В любой серверной копии я сохраняю идентификатор клиента из браузера и тот же идентификатор заказа. Один transaction ID сам по себе не обещает дедупликацию между разными пользователями или потоками приложений.

  3. На практике

    Когда серверное событие ломается?

    Я проверяю поток назначения, сохранение client_id, пустой или повторно использованный transaction_id, параметры ecommerce и время события. Важен и контекст сессии. Для точных метрик сессий и вовлечённости, включая Realtime, Google рекомендует session_id и engagement_time_msec. Я передаю реальные данные сессии, без выдуманных значений вовлечённости.

  4. Не путать с

    Не путать с
    Это неЭто
    восстановление атрибуции исходной сессиидополняет автоматический сбор
    способ задним числом добавить пропавшие покупки прошлого месяцаСобытия можно датировать задним числом: до 72 часов назад

    Эндпоинт сбора возвращает HTTP 2xx, когда получает запрос, даже если payload неверный или событие не обработано. Это три разные проверки: успешная передача, корректная структура события и правильно учтённая покупка.

  5. Где проверить

    Как проверить событие Measurement Protocol?

    1. Посмотрите подготовленный payload в тестовой среде. Сравните идентификаторы клиента и заказа в нём с браузерным событием и записью в бэкенде; API secret в логах не оставляйте.
    2. Проверьте тестовый payload через /debug/mp/collect и ENFORCE_RECOMMENDATIONS. Изучите validationMessages; события валидации в отчётах не появляются.
    3. Отдельно проверьте настроенный поток и secret. Проверка структуры сама по себе не доказывает, что учётные данные верны.
    4. В тестовом ресурсе, где это разрешено, найдите событие и проверьте параметры. Сверьте покупку с заказом в бэкенде. Одного HTTP-статуса для приёмки недостаточно.
  6. Источники
Daniil Maximkin

Здравствуйте, я Даниил.

Я сам разбираюсь в задаче, выполняю работу и передаю результат. Все вопросы вы обсуждаете напрямую со мной. Общаюсь на русском и английском. На испанском могу переписываться с помощью переводчика.

Что нужно сделать?

Опишите задачу

Отвечу в течение одного рабочего дня. Первый ответ бесплатный. Или напишите напрямую: next@taskfordaniel.com

Обсудить задачу

Расскажите, что нужно разработать, исправить или подключить.

Описать задачу next@taskfordaniel.com