Справочное руководство по Measurement Protocol

На этой странице описаны транспортный механизм и параметры данных для Measurement Protocol.

Транспортная часть

Все данные должны передаваться по защищенному протоколу HTTPS POST.

Отправьте запрос на следующий адрес:

https://www.google-analytics.com/mp/collect

Если вы хотите, чтобы данные собирались в ЕС, используйте следующий адрес:

https://region1.google-analytics.com/mp/collect

Пример запроса POST:

POST /mp/collect HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
PAYLOAD_DATA

Замените PAYLOAD_DATA на полезную нагрузку запроса.

При получении HTTP-запроса Measurement Protocol возвращает код статуса 2xx. Measurement Protocol не возвращает код ошибки, если полезная нагрузка имеет некорректный формат, данные в ней неверны или не были обработаны Google Аналитикой.

Полезная нагрузка

Полезная нагрузка состоит из двух частей:

  1. Параметры запроса.
  2. Тело запроса в формате JSON POST.

Параметры запроса

Название параметра Описание

api_secret

Обязательный параметр. Секретный ключ API из интерфейса Google Аналитики.

Чтобы найти этот идентификатор, откройте Google Аналитику и выберите Администратор > Потоки данных > [нужный поток] > Measurement Protocol > Создать.

Доступно только вашей организации. Рекомендуется регулярно обновлять, чтобы избежать спама.

firebase_app_id

Обязательный параметр. Идентификатор приложения в Firebase. Идентификатор приложения Firebase.

Чтобы найти этот идентификатор, откройте консоль Firebase и выберите Настройки проекта > Общие > Ваши приложения > Идентификатор приложения.

Тело запроса POST в формате JSON

Размер тела запроса POST в формате JSON должен быть менее 130 КБ.

Ключ Тип Описание

app_instance_id

string Обязательный параметр. Уникальный идентификатор экземпляра приложения Firebase.

Не то же самое, что веб-client_id.

Идентификатор должен быть получен с помощью Firebase SDK:

user_id

string

Это необязательный параметр. Уникальный идентификатор пользователя. Подробности см. в статье Как отслеживать действия на разных платформах с помощью функции User-ID. Может содержать только символы в кодировке UTF-8.

timestamp_micros

number

Это необязательный параметр. Временная метка Unix в микросекундах, а не в миллисекундах. Представляет время события. Используйте только для регистрации уже произошедших событий. Может быть переопределено временными метками события user_property или события. События можно датировать задним числом (до 72 часов).

user_properties

object Это необязательный параметр. Свойства пользователя для измерения. В одном запросе можно передавать данные о максимум 25 свойствах пользователей. Название свойства пользователя может содержать не больше 24 символов, а значение – не больше 36.

user_data

object Это необязательный параметр. Данные, предоставленные пользователями.
object Это необязательный параметр. Настройки согласия для запроса. Подробнее о согласии…

non_personalized_ads

boolean Необязательно. Значение true указывает, что данные пользователя не должны использоваться для персонализированной рекламы.

user_location

object Это необязательный параметр. Задает географическую информацию для запроса в структурированном формате.

ip_override

string Это необязательный параметр. IP-адрес, который Google Аналитика использует для получения географической информации о запросе.

device

object Необязательное поле. Задает информацию об устройстве для запроса в структурированном формате.

validation_behavior

string

Необязательное поле. Задает поведение при проверке для запроса.

RELAXED или ENFORCE_RECOMMENDATIONS. Если этот параметр не задан, по умолчанию используется RELAXED.

events[]

array Обязательный параметр. Массив из event элементов. В одном запросе можно передавать данные о максимум 25 событиях. Рекомендуемые события перечислены в справочном руководстве События.

events[].name

string Обязательный параметр. Название события. Название события должно содержать не более 40 символов. Рекомендуемые события описаны в разделе События.

events[].params

object Это необязательный параметр. Параметры события. В одном событии можно передавать данные о максимум 25 параметрах. Подробнее о параметрах, рекомендуемых для каждого события, и распространенных параметрах событий…

Название параметра может содержать не больше 40 символов. Значение параметра должно содержать не более 100 символов для стандартного ресурса Google Аналитики и не более 500 символов для ресурса Google Аналитики 360.

Общие параметры событий

В Measurement Protocol есть следующие общие параметры событий:

Ключ Тип Описание

session_id

number Положительное число, идентифицирующее сеанс пользователя. Требуется для нескольких распространенных вариантов использования. Должен соответствовать регулярному выражению ^\d+$.

Идентификатор должен быть получен с помощью Firebase SDK:

engagement_time_msec

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

timestamp_micros

number Unix-время в микросекундах для события. Этот параметр позволяет переопределить временную метку события.

Атрибут consent задает типы согласия и состояния. Если не указать consent, Google Аналитика будет использовать настройки согласия из соответствующих онлайн-взаимодействий с клиентом или экземпляром приложения.

Ключ Тип Описание

ad_user_data

string

Это необязательный параметр. Согласие на отправку в Google пользовательских данных из событий и свойств пользователя, связанных с рекламой.

GRANTED или DENIED.

ad_personalization

string

Это необязательный параметр. Согласие пользователя на персонализированную рекламу.

GRANTED или DENIED.

Информация о местоположении

Атрибуты user_location и ip_override содержат географическую информацию. Правило user_location имеет приоритет над правилом ip_override.

Ниже приведена структура поля user_location. Добавьте как можно больше атрибутов. Мы рекомендуем использовать как минимум country_id и region_id.

Ключ Тип Описание

city

string Это необязательный параметр. Название города. Если город находится в США, также задайте значения country_id и region_id, чтобы Google Аналитика могла правильно сопоставить название города с идентификатором города.

region_id

string Это необязательный параметр. Страна и подразделение в формате ISO 3166. Примеры: US-CA, US-AR, CA-BC, GB-LND, CN-HK.

country_id

string Это необязательный параметр. Страна в формате ISO 3166-1 alpha-2. Примеры: US, AU, ES, FR.

subcontinent_id

string Это необязательный параметр. Субконтинент в формате UN M49. Примеры: 011, 021, 030, 039.

continent_id

string Это необязательный параметр. Континент в формате UN M49. Примеры: 002, 019, 142, 150.

Ниже приведен пример запроса user_location.

"user_location": {
  "city": "Mountain View",
  "region_id": "US-CA",
  "country_id": "US",
  "subcontinent_id": "021",
  "continent_id": "019"
}

ip_override – альтернатива user_location. Если вы отправите ip_override, Google Аналитика получит географическую информацию из IP-адреса. Если вы отправите user_location, Google Аналитика проигнорирует ip_override.

Если вы не передаете значения user_location или ip_override, Google Аналитика получает географическую информацию из событий с тегами, используя app_instance_id.

Google Аналитика применяет к запросу настройки детализации геоданных ресурса независимо от отправленной географической информации.

Информация об устройстве

Чтобы отправить информацию об устройстве, используйте поле device. Вот структура поля device. Укажите как можно больше атрибутов. Мы рекомендуем использовать не менее category.

Ключ Тип Описание

category

string Необязательно. Категория устройства. Примеры: desktop, tablet, mobile, smart TV.

language

string Необязательно. Язык в формате ISO 639-1. Примеры: en, en-US.

screen_resolution

string Необязательно. Разрешение устройства в формате WIDTHxHEIGHT. Примеры: 1280x2856, 1080x2340.

operating_system

string Необязательно. Операционная система или платформа. Пример:MacOS.

operating_system_version

string Необязательно. Версия операционной системы или платформы. Пример: 13.5.

model

string Необязательно. Модель устройства. Примеры:Pixel 9 Pro, Samsung Galaxy S24.

brand

string Необязательно. Бренд устройства. Примеры:Google, Samsung.

browser

string Необязательно. Бренд или тип браузера. Примеры:Chrome, Firefox.

browser_version

string Необязательно. Версия браузера. Примеры:136.0.7103.60, 5.0.

Во фрагменте кода ниже приведен пример настроек device:

"device": {
  "category": "mobile",
  "language": "en",
  "screen_resolution": "1280x2856",
  "operating_system": "Android",
  "operating_system_version": "14",
  "model": "Pixel 9 Pro",
  "brand": "Google",
  "browser": "Chrome",
  "browser_version": "136.0.7103.60"
}
Если в запросе не указан параметр device, Google Аналитика получает информацию об устройстве из событий с тегами, используя параметр app_instance_id.

Независимо от того, указали вы device, Google Аналитика применяет к запросу настройки детализированных данных об устройствах ресурса.

Проверка

Атрибут validation_behavior определяет, как Measurement Protocol проверяет содержимое запроса.

  • Проверка RELAXED отклоняет только запросы с неверным форматом. Она может принимать события и параметры с недопустимыми названиями полей или данными неправильного типа, но игнорирует параметры, которые превышают ограничения. По умолчанию в Measurement Protocol используется проверка RELAXED.
  • ENFORCE_RECOMMENDATIONSПри проверке отклоняются события и параметры товаров, которые имеют неправильный тип или содержат параметры, превышающие ограничения. Кроме того, ENFORCE_RECOMMENDATIONS отклоняет любое событие или свойство пользователя с временной меткой, которая не относится к последним 72 часам.

Мы рекомендуем следующий подход:

  • Используйте ENFORCE_RECOMMENDATIONS при проверке событий, чтобы получать как можно больше отзывов о потенциальных проблемах с вашими запросами.

    Вы также можете проверять запросы с помощью конструктора событий, поскольку при проверке запросов он указывает ENFORCE_RECOMMENDATIONS.

  • Не указывайте validation_behavior, когда отправляете события, чтобы уменьшить количество данных, отклоняемых Measurement Protocol.

    Если при отправке определенного запроса вы хотите, чтобы строгая проверка была приоритетнее сбора данных, добавьте поле validation_behavior и задайте для него значение ENFORCE_RECOMMENDATIONS.

Специальные параметры

Вы можете включить специальные параметры на уровне пользователя, на уровне события и на уровне позиции в полезную нагрузку Measurement Protocol.

  • Специальные параметры на уровне пользователя можно добавить в объект user_properties.
  • Специальные параметры на уровне события можно добавить в объект events[].params.
  • Специальные параметры на уровне позиции можно добавить в items.

Для некоторых событий есть рекомендуемые параметры. Подробнее о параметрах, рекомендуемых для поддерживаемых событий…

Зарезервированные названия

Некоторые названия событий, параметров и свойств пользователей зарезервированы, и вы не можете их использовать:

Зарезервированные названия событий

Эти названия событий зарезервированы, и вы не можете их использовать:

  • ad_activeview
  • ad_click
  • ad_exposure
  • ad_query
  • ad_reward
  • adunit_exposure
  • app_clear_data
  • app_exception
  • app_install
  • app_remove
  • app_store_refund
  • app_update
  • app_upgrade
  • dynamic_link_app_open
  • dynamic_link_app_update
  • dynamic_link_first_open
  • error
  • firebase_campaign
  • firebase_in_app_message_action
  • firebase_in_app_message_dismiss
  • firebase_in_app_message_impression
  • first_open
  • first_visit
  • notification_dismiss
  • notification_foreground
  • notification_open
  • notification_receive
  • notification_send
  • os_update
  • session_start
  • user_engagement

Кроме того, события ad_impression, in_app_purchase и screen_view разрешены только для потоков приложений.

Зарезервированные названия параметров

Эти названия параметров зарезервированы, и вы не можете их использовать:

  • firebase_conversion

Названия параметров не могут начинаться со следующих префиксов:

  • _ (underscore)
  • firebase_
  • ga_
  • google_
  • gtag.

Зарезервированные названия свойств пользователей

Эти названия свойств пользователей зарезервированы, и вы не можете их использовать:

  • first_open_time
  • first_visit_time
  • last_deep_link_referrer
  • user_id
  • first_open_after_install

Также названия свойств пользователей не могут начинаться со следующих префиксов:

  • _ (underscore)
  • firebase_
  • ga_
  • google_