Как работать с Measurement Protocol в Google Analytics 4
Точный и комплексный анализ данных чрезвычайно важен для управления веб-ресурсами. Один из ключевых инструментов для сбора и анализа информации — Measurement Protocol в Google Analytics 4.
Это протокол передачи статистических данных. С его помощью можно отправлять данные из вашей CRM/ERP-системы непосредственно в Google Analytics через HTTP-запросы. В этом материале я расскажу, как настроить Measurement Protocol, оптимизировать сбор данных через него и решить распространенные проблемы с ним.
- Основные принципы работы с Measurement Protocol.
- Как настроить передачу событий по MP.
- Формирование запроса для GA4 по требованиям документации MP.
- Пример отправки события с помощью MP.
- Проверка настройки передачи событий.
- Оптимизация передачи данных.
- Лимиты в MP.
- Распространенные проблемы в работе с MP.
Основные принципы работы с Measurement Protocol
Measurement Protocol (MP) является дополнением к аналитической инфраструктуре и не заменяет автоматический сбор данных, получаемый через gtag.js, Google Tag Manager и/или Google Analytics для Firebase SDK.
Он полезен, когда нужно видеть и анализировать действия, которые невозможно отследить стандартным JavaScript-кодом. Например, взаимодействие с приложениями, внешними устройствами или отправка форм на сервер.
Рассмотрю несколько случаев применения Measurement Protocol:
- Отслеживание электронной коммерции. Когда платежная система или сервер сообщает об успешной оплате, MP отправляет данные о выполненной транзакции в Google Analytics (GA). А именно идентификатор транзакции, сумму оплаты, приобретенные товары и другие данные, которые помогут понять эффективность магазина и поведение покупателей.
- При работе с мобильными приложениями или другими платформами, где сложно встроить JavaScript-код для отслеживания. MP передает в GA такие события, как открытие приложения, клики на рекламу или использование конкретных функций. Использование MP позволяет получить инсайты об эффективности функционала приложения и улучшить пользовательский опыт.
- Если на сайте есть форма, отправляющая данные на сервер без перезагрузки страницы (AJAX-запрос), используется MP для передачи событий без привязки к клиентской стороне. То есть, данные о событии, например, подписка на рассылку, отправляются напрямую с сервера в систему аналитики, минуя браузер пользователя.
Еще один пример. Если форма применяется для конверсий (подписка на рассылку, оформление заказа), MP используется для отправки события конверсии на сервер аналитики после успешной отправки формы. Такое событие может содержать название формы, место, в котором находится форма, время отправки и другие необходимые для анализа детали. - При необходимости анализа данных вне браузера, применение Measurement Protocol позволяет отправлять информацию непосредственно в систему аналитики. Например, для анализа серверных логов или сгенерированных на сервере данных.
Серверные логи — это файлы, которые автоматически создаются и хранятся на сервере, записывая разнообразную информацию о событиях, происходящих на сервере. Логи содержат данные о посещении веб-страниц, запросы к базам данных, ошибки системы, время доступа пользователей к ресурсу и прочее.
Данные, которые генерируются на сервере, содержат:
- информацию о транзакциях в интернет-магазине;
- результаты выполнения серверных скриптов;
- детали обработки запросов к API;
- другие внутренние процессы, происходящие на сервере.
Например, при каждой покупке в интернет-магазине сервер обрабатывает транзакцию, сохраняя информацию (что куплено, какая сумма, кто покупатель) в серверных логах. С помощью MP можно отправить эти данные в систему аналитики для анализа, в том числе для отслеживания продаж и поведения покупателей.
Таким образом, MP гибко работает с Google Analytics и собирает информацию о взаимодействии пользователей, что выходит за пределы стандартных возможностей JavaScript-отслеживания.
Как настроить передачу событий по Measurement Protocol
- Создайте соответствующую среду. В CRM-системе, ERP или сервере должна быть возможность отправлять HTTP-запросы. Убедитесь, что сервер способен взаимодействовать с Measurement Protocol через HTTP.
- Подключите бэкэнд-разработчика, который внесет необходимые изменения в код для сохранения идентификаторов и отправки запросов через MP. Важно определить, какие данные необходимо передавать, и включить их в соответствующие запросы.
- Подключите маркетолога, который составит техническое задание для бэкэнд-разработчика. Например, пропишет важные для отслеживания события и данные, которые должны быть включены в MP, способ идентификации пользователей и измерения событий.
- Настройте Measurement Protocol. С помощью бэкэнд-разработчика настройте отправку измерений через MP. Установите параметры, которые соответствуют потребностям компании в анализе данных.
- Проведите тестирование. Проверьте корректность отправки данных через MP. Обеспечьте взаимодействие между маркетологом и бэкэнд-разработчиком для исправления возможных ошибок.
Формирование запроса для GA по требованиям документации Measurement Protocol
POST-запрос является одним из самых распространенных методов HTTP и используется для отправки данных на сервер.
Measurement Protocol в GA4 поддерживает только POST-запросы. Чтобы отправить данные о событии, отправьте HTTP POST-запрос в GA4.
Вставьте следующий код в соответствующий JavaScript-файл или HTML-код страницы:
POST /mp/collect HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
<payload_data>
Где <payload_data> — тело запроса, которое содержит названия параметров и их значения. Представляет собой URL-кодированную строку длиной не более 8192 байт.
Необходимые URL-параметры в интерфейсе Google Analytics:
- api_secret — ключ для доступа к учетной записи GA.
Чтобы создать api_secret, перейдите в «Admin — Data streams — выберите свой поток — Measurement Protocol API secrets — Create»;
- measurement_id — идентификатор потока данных.
Этот идентификатор связан с потоком, который можно найти в разделе «Admin — Data streams — выберите свой поток — MEASUREMENT ID».
Необходимые параметры для JSON body, являющегося частью <payload_data>:
- client_id — уникальный идентификатор пользователя в GA, является обязательным параметром;
- user_id — уникальный идентификатор пользователя на сайте;
- timestamp_micros — временная метка Unix, в микросекундах (не миллисекундах), события должны иметь дату не более чем три календарных дня;
- events — массив параметров с событиями.
Чтобы получить client_id с помощью Google tag API (gtag.js), используйте метод gtag('get'). Согласно документации, воспользуйтесь следующим кодом:
gtag('get', '<target>', 'client_id', (clientID) => {
console.log('Client ID:', clientID);
});
<target> указывает на идентификатор учетной записи GA4 (пример G-XXXXXXXXXXXX), из которой планируется получить client_id.
Если у вас есть мобильное приложение, к предыдущим параметрам добавьте:
- firebase_app_id — идентификатор приложения в Firebase, используется GA4 для идентификации приложения, из которого отправляются данные;
- app_instance_id — уникальный идентификатор экземпляра приложения, сгенерированный разработчиком, для идентификации конкретной установки приложения;
- transaction_id — уникальный идентификатор транзакции;
- ad_network_id — идентификатор рекламной сети.
Кроме этих, обязательных, существуют дополнительные параметры для JSON body, которые могут увеличить передачу данных и облегчить их анализ:
- session_id (идентификатор сессии) — определяет уникальную сессию пользователя и позволяет отслеживать его взаимодействие в течение периода активности;
- pageview — просмотр страницы;
- screenview — просмотр экрана приложения;
- event — событие;
- transaction — транзакция;
- item — товар;
- social — социальное взаимодействие, например, лайки в Facebook, ретвиты в X и т. д;
- exception — информация об ошибках, которые появляются на сайте;
- timing — информация о различных временных интервалах, например, время загрузки страницы.
Пример отправки события с помощью Measurement Protocol
Для примера возьму add_to_cart — событие фиксирует, что товар добавлен в корзину для покупки.
Необходимые параметры для массива event:
- currency (строковая переменная) — валюта элементов, связанных с событием, в формате ISO 4217;
- value (десятичное число) — полная сумма заказа, или сумма добавленных товаров в корзину;
- items — массив параметров товара.
Параметры товаров в массиве items:
- item_id (строковая переменная) — уникальный ID товара;
- item_name (строковая переменная) — название товара;
- affiliation (строковая переменная) — параметр, который позволяет установить принадлежность товара поставщику или магазину;
- coupon (строчная переменная) — название/код купона, связанный с товаром;
- discount (десятичное число) — единица денежной скидки, связанная с товаром;
- index (натуральное число) — номер или позиция товара в списке;
- item_brand (строковая переменная) — бренд товара;
- item_category (строковая переменная) — категория товара;
- Item_category2 (3, 4, 5) (строковая переменная) — подкатегории товара;
- item_list_id (строковая переменная) — ID списка товаров;
- item_list_name (строковая переменная) — название списка, например, акции, скидки, рекомендованные товары, лучшие предложения и т. д;
- item_variant (строковая переменная) — вариант товара или уникальный код, описание для дополнительных деталей/параметров товара;
- location_id (строковая переменная) — местоположение, связанное с товаром;
- price (десятичное число) — стоимость единицы товара;
- quantity (натуральное число) — количество товара.
Дополнительно к вышеперечисленным параметрам, можно включить до 25 пользовательских параметров в массив элементов.
Пример кода события добавления товара в корзину (add_to_cart), который отправляется POST-запросом:
const measurementId = `G-XXXXXXXXXX`;
const apiSecret = `<secret_value>`;
fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurementId}&api_secret=${apiSecret}`, {
method: "POST",
body: JSON.stringify({
"client_id": "client_id",
"events": [{
"name": "add_to_cart",
"params": {
"currency": "USD",
"value": 30.03,
"items": [
{
"item_id": "SKU_12345",
"item_name": "Stan and Friends Tee",
"affiliation": "Google Merchandise Store",
"coupon": "SUMMER_FUN",
"currency": "USD",
"discount": 2.22,
"index": 0,
"item_brand": "Google",
"item_category": "Apparel",
"item_category2": "Adult",
"item_category3": "Shirts",
"item_category4": "Crew",
"item_category5": "Short sleeve",
"item_list_id": "related_products",
"item_list_name": "Related Products",
"item_variant": "green",
"location_id": "ChIJIQBpAG2ahYAR_6128GcTUEo",
"price": 10.01,
"quantity": 3
}
]
}
}]
})
});
После успешной сработки, интерфейс GA4 покажет, что клиент добавил в корзину товар с названием Stan and Friends Tee на сумму $30,03.
Полный список параметров, которые можно включать в HTTP-запросы, и примеры передачи событий через Measurement Protocol можно посмотреть в официальной документации.
Проверка настройки передачи событий
После настройки необходимых событий, стоит сделать проверку. Для этого выполните следующие шаги.
Отправьте событие от клиента
Чтобы событие стало действительным, оно должно иметь элемент client_id, который уже использовался для отправки события из gtag.js. Нужно захватить этот идентификатор на стороне клиента и включить его в вызов MP.
Получить идентификатор можно из серверных логов, если это новое событие. В случае, когда серверных логов еще нет, самостоятельно сгенерируйте событие нажав на кнопку, для которой был внедрен MP.
После этого событие будет содержать client_id в формате 'ecDwKrMi5IRwxXftaSDXxCEOL5mUsWz0qpbD'.
Отправьте событие на свой объект
После того как узнали client_id, нужно отправить событие через MP. Для этого вставьте следующий код в соответствующий JavaScript-файл или HTML-код страницы. Для примера, это будет покупка товара (purchase):
const measurementId = `<measurement_id_value>`;
const apiSecret = `<secret_value>`;
fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurementId}&api_secret=${apiSecret}`, {
method: "POST",
body: JSON.stringify({
"client_id": "XXXXXXXXXX.YYYYYYYYYY",
"events": [{
"name": "purchase",
"params": {
"currency": "USD",
"value": "7.17",
"transaction_id": "NTP-017"
}
}]
})
});
Просмотрите отчет в реальном времени
После успешной отправки события, вы увидите его в интерфейсе GA4, перейдя в «Reports — Realtime» в левой панели навигации.
Также проверьте две диаграммы внизу: «Количество событий с разбивкой по параметру Название события и «Конверсии с разбивкой по параметру Название события». Информация об отправленном событии должна появиться в режиме реального времени через несколько секунд после его отправки через MP.
Все параметры для Measurement Protocol есть в официальной справке от Google.
Использование Measurement Protocol позволяет проверять события в реальном времени без необходимости ждать до 48 часов.
Оптимизация передачи данных с помощью Measurement Protocol
Решающим для эффективности и точности анализа в GA4 является правильный формат и структура данных, которые передаются через MP, а также частота их передачи. Далее приведу рекомендации.
Формат и количество передаваемых данных
- Тип данных. Каждый параметр должен иметь четкое назначение, а его значение — соответствующий тип данных. К примеру, текстовый параметр должен быть строкой (string), а числовой — числом (number).
- Эффективность передачи. Уменьшите количество лишней информации и выбирайте оптимальный объем данных для отправки. Большое количество может перегрузить сеть и вызвать задержку отправки.
- Контекстуальные данные. Необходимо добавлять контекстные данные, которые лучше объясняют или описывают события, например, идентификатор пользователя или дополнительные атрибуты, что помогают уточнить контекст события. Это облегчает дальнейший анализ и улучшает интерпретацию результатов.
- Корректность и актуальность. Необходимо убедиться, что данные отправляются в реальном времени и соответствуют актуальному состоянию ресурсов. Это особенно важно для получения точных аналитических данных. Если данные не получаются в реальном времени, ищите ошибку при настройке передачи событий через MP.
Частота передачи данных
Интервал отправки данных с помощью MP определяется потребностями бизнеса и характером событий на платформе. Однако существуют общие рекомендации, которые помогут оптимизировать процесс.
- Оптимальный интервал выбирается таким образом, чтобы избежать чрезмерной нагрузки серверов и сетевых ресурсов:
- для проектов, в которых важна высокая точность данных в реальном времени (финансовые транзакции, мониторинг состояния системы), интервалы короче — каждые несколько секунд;
- для аналитических проектов, в которых данные используются для создания общей картины и не требуют мгновенной актуализации, например, отчеты о посещаемости сайта, интервалы длиннее — каждые несколько минут.
- Мониторинг эффективности отправки данных позволяет вовремя оптимизировать интервалы передачи в соответствии с потребностями компании.
Лимиты в Measurement Protocol
- В запросах максимум 25 событий.
- В событиях — максимум 25 параметров и 25 свойств пользователя.
- В именах свойств пользователя — не более 24 символов.
- Значение свойств — 36 символов или меньше.
- Названия событий — 40 символов или меньше. Только буквенно-цифровые символы и подчеркивания, должны начинаться с буквы.
- Названия параметров, включая параметры элементов, — 40 символов или меньше. Только буквенно-цифровые символы и подчеркивания, должны начинаться с буквы.
- Значения параметров, включая параметры элементов, — не более 100 символов.
- Параметры элемента — максимум 10 настраиваемых параметров.
- Тело сообщения — не более 130 Кб.
- Атрибуция на уровне событий MP поддерживается до 63 дней после последнего онлайн-события, даже если окно конверсии превышает 63 дня. В отличие от этого, атрибуция на уровне событий для обозначения онлайн-событий поддерживается для всего окна конверсии.
- Для целей ремаркетинга вы можете присоединиться к событиям MP в течение определенного количества дней после последнего онлайн-события. Для этого нужен связанный файл cookie или идентификатор устройства:
- для веб-сайта срок от последнего события — 30 дней;
- для мобильного приложения — 42 дня.
- События App Measurement Protocol, отправленные в Google Analytics 4, автоматически не заполняют поисковые аудитории в Google Ads.
Ограничения и рекомендации по срокам
Важно осознавать ограничения во времени для отправки данных через MP. Например, Google рекомендует отправлять данные с историей передачи данных не позднее, чем через три дня с момента первой передачи.
Это ограничение вытекает из необходимости сохранения актуальности и точности аналитических данных. Оно обусловлено потребностью в экономии ресурсов, поскольку система не способна проанализировать весь массив. Если событие старше трех дней, система теряет способность устанавливать связи с источником сеанса пользователя.
Оптимальные сроки отправки данных позволяют максимизировать эффективность использования Measurement Protocol и обеспечивают правдивость аналитической информации.
Распространенные проблемы в работе с MP
При работе с Measurement Protocol, вероятны проблемы с внедрением, которые возникают по разным причинам. Рассмотрю несколько из них.
- Неправильная реализация, что становится причиной некорректной работы протокола:
- неправильная настройка тегов Google Analytics;
- неточное кодирование Measurement Protocol — ошибки в формате запросов, неправильное использование параметров и т. д;
- Проблемы с данными, влияющие на качество анализа:
- неполные или неточные данные;
- дублирование.
- Ошибки сети:
- перебои с подключением к интернету или задержки в передаче данных;
- блокировка запросов со стороны брандмауэров.
- Проблемы с сервером.
Перегрузка, технические проблемы, недоступность сервера Google Analytics. В подобных случаях обратитесь в службу поддержки Google Analytics.
- Изменения в Google Analytics:
- обновляйте код Measurement Protocol, чтобы использовать последнюю версию правил;
- ознакомьтесь с обновленной политикой Google Analytics и внесите необходимые изменения.
- Юридические и этические вопросы:
- несоблюдение правил GDPR при сборе и обработке данных.
- Ограничения Google Analytics:
- ограничение на количество запросов;
- ограничения на объем данных;
- ограничения на функциональность.
Запомнить
- Measurement Protocol (MP) является мощным инструментом в Google Analytics 4, который дает разработчикам гибкость в отслеживании и анализе данных с различных платформ. Использование MP значительно расширяет возможности стандартного сбора, позволяя отслеживать действия пользователей, которые невозможно проследить с помощью JavaScript кода.
- Среди преимуществ использования MP:
- отслеживание данных из любой среды, которая поддерживает HTTP-запросы;
- отслеживание офлайн-конверсий, серверных событий, взаимодействия с внешними устройствами;
- обогащение данных дополнительными параметрами для лучшего анализа;
- отслеживание события в режиме реального времени.
- При использовании MP:
- применяйте обязательные параметры и рекомендуемые форматы;
- выбирайте оптимальный интервал отправки и объем данных;
- соблюдайте сроки отправки и учитывайте ограничения Google Analytics;
- диагностируйте и устраняйте распространенные проблемы с MP.
- Протокол не является заменой стандартному сбору данных Google Analytics, и его следует применять как дополнение для расширения возможностей аналитики.
Свежее
Что такое Affinity audience, и Как на них таргетироваться
Как собрать и настроить рекламу на схожие аудитории. Подробное объяснение и пошаговая инструкция
Как продвигать рекрутинг-сайт в США: рост трафика около 200% — кейс Huntly
Мы помогли бизнесу привлечь первых работодателей в США
Кейс LetyShops в Telegram Ads. Как медийный инструмент обеспечил 412 загрузок приложения за месяц
А также более 1 200 000 показов рекламных объявлений стоимостью 0,071 грн