Как использовать Measurement Protocol
Статья
Протокол передачи данных Measurement Protocol – это базовый инструмент для разработчиков. Он активен на любом сайте, где стоит код счетчика Google Analytics.
С помощью протокола вы отправляете информацию о продажах, просмотрах страниц и других событиях на сервер Google Аналитики. Это можно делать практически из любого источника или устройства, подключенного к интернету.
В этой статье вы узнаете, как работает Measurement Protocol, как его применять и что при этом учитывать.
Для чего нужен Measurement Protocol
Протокол помогает решать следующие задачи:
- Отслеживать в разных средах (устройствах, источников), как пользователи взаимодействуют с компанией.
Допустим, в отделении банка с вами работает специалист и по окончании вы оцениваете качество обслуживания. Зеленая кнопка – отлично, желтая – нормально, красная – плохо. В тот самый момент, когда вы нажмете одну из них, данные поступают в Google Аналитику.
- Связывать онлайн- и офлайн-действия аудитории, чтобы проследить весь путь пользователя к конверсии (звонка / заявки / заказа).
Один и тот же пользователь в ходе сделки может совершать действия на сайте и в офлайне: оформляет заказ, а оплачивает безналичным расчетом, или отдает деньги курьеру при доставке.
Дело в том, что мы не всегда получаем оплату сразу же по факту. Поэтому если передавать данные о покупке, когда платеж еще не состоялся, есть риск, что статистика будет некорректной. На этапе, когда заказ оформлен, не факт, что пользователь дойдет до оплаты – он может и отменить заказ.
Другой пример – вы предлагаете в офлайне покупателю оформить скидочную карту и просите его оставить данные – телефон, пол, возраст и т.д. Он активирует карту на сайте в личном кабинете. Впоследствии когда этот же покупатель приходит снова, вы распознаете его по данным в анкете.
- Отправлять данные с прокси-сервера, если необходимо.
Некоторые среды не могут отправлять данные сразу в Google Аналитику. Например, устаревшие мобильные устройства, на которых нельзя запускать JavaScript, или корпоративный интранет. Брандмауэр блокирует такие запросы.
В таких случаях можно настроить промежуточное звено – прокси-сервер, чтобы отправлять сперва на него. Затем уже он передает данные в Google Analytics с помощью Measurement Protocol.
Чтобы получать данные об IP-адресе и агенте пользователя с клиентского устройства, а не прокси-сервера, укажите оба эти значения в протоколе. Они будут использоваться вместо тех, которые Google обычно получает из заголовков запроса.
Общая схема работы Measurement Protocol
- Какие данные передает протокол?
Необработанные статистические данные о пользовательских взаимодействиях – событиях и обращениях.
- Откуда можно их передавать?
С любых устройств, у которых есть доступ к интернету – помимо сайта и приложений это могут быть телевизоры, игровые консоли и т.д. В отличие от классического отслеживания, для которого обязательно, чтобы устройства выполняли JavaScript.
Также с любых источников – например, CRM-системы, Google Таблиц, базы данных, платежного терминала и других. Условие то же – подключение к глобальной сети.
- В каком виде эти данные передаются?
В виде HTTP-запросов. Можно использовать для этого POST-запросы, чтобы отправлять данные, и GET-запросы, чтобы их получать данные. Технически оба вида работают одинаково.
- Куда они поступают?
На серверы Google Аналитики. У протокола единая точка входа: www.google-analytics.com/collect.
- Когда происходит передача данных?
Каждый раз, когда кто-либо просматривает страницу или совершает событие, запрос поступает в Google Analytics.
Как он выглядит и из чего состоит – разберем далее.
Как формируется запрос
Где посмотреть адрес конкретного запроса
1) Зайдите на сайт;
2) Откройте инструменты разработчика:
![Measurement Protocol – инструменты разработчика Measurement Protocol – инструменты разработчика](https://imgs.yagla.ru/blog/899/01-measurement-protocol--instrumenty-razrabotchika.png)
3) Выберите вкладку «Network»:
![Measurement Protocol – Network в панели разработчика Measurement Protocol – Network в панели разработчика](https://imgs.yagla.ru/blog/899/02-measurement-protocol--network-v-paneli-razrabotchika.png)
4) В строке поиска наберите «collect» и обновите страницу:
![Measurement Protocol – поиск в панели разработчика Measurement Protocol – поиск в панели разработчика](https://imgs.yagla.ru/blog/899/03-measurement-protocol--poisk-v-paneli-razrabotchika.png)
5) Выберите запрос, например:
![Measurement Protocol – выбор запроса в панели разработчика Measurement Protocol – выбор запроса в панели разработчика](https://imgs.yagla.ru/blog/899/04-measurement-protocol--vybor-zaprosa-v-paneli-razrabotchika.png)
Структура запроса
Как правило, запрос включает 3 строки:
1) Пользовательский агент (user-agent) – это то, что браузер пользователя отправляет в Google Аналитику. Выглядит примерно так:
![Measurement Protocol – пример, как выглядит пользовательский агент Measurement Protocol – пример, как выглядит пользовательский агент](https://imgs.yagla.ru/blog/899/05-measurement-protocol--primer-kak-vyglyadit-polzovatelskiy-agent.png)
Если вы отправляете запросы вручную, эта строка необязательная.
2) Строка отправки (transport) включает адрес Google Analytics и конечную точку URL (/collect или /batch, если в одном запросе несколько обращений). То есть куда именно вы отправляете запрос:
![Measurement Protocol – пример, как выглядит строка отправки Measurement Protocol – пример, как выглядит строка отправки](https://imgs.yagla.ru/blog/899/06-measurement-protocol--primer-kak-vyglyadit-stroka-otpravki.png)
3) Набор данных с параметрами (payload data) – это параметры, которые вы передаете в запросе. Они представлены в одной строке в виде пар «название = значение», которые разделяются символом «&». Вместо пробелов – нижнее подчеркивание.
![Measurement Protocol – пример, как выглядит строка набора данных с параметрами Measurement Protocol – пример, как выглядит строка набора данных с параметрами](https://imgs.yagla.ru/blog/899/07-measurement-protocol--primer-kak-vyglyadit-stroka-nabora-dannyh-s-parametrami.png)
Measurement Protocol поддерживает следующие типы данных в значениях параметров:
- Числа (целые или десятичные);
- Текст. При этом в необработанном тексте удаляются начальные и конечные пробелы, а двойные, тройные и более символы разметки (включая пробелы, табуляцию, разрывы строки и т. д.) преобразуются в одинарные;
- true / false (1/0);
- Валюта (десятичный формат до 6 знаков). После отправки удаляется текст до первой цифры, дефиса (-) или десятичной точки. Таким образом, $-55.00 превращается в -55.00.
Все значения нужно кодировать в UTF-8 и URL. Если какие-либо символы закодированы неправильно, Google заменяет их подстановочным символом Unicode xFFFD.
Отличие запросов POST и GET
В POST-запросе следующий порядок представления данных:
User-Agent: user_agent_string (строка пользовательского агента)
POST https://www.google-analytics.com/collect (строка отправки)
payload_data (набор данных с параметрами)
Пояснения:
- user_agent_string – используется при расчете следующих параметров: браузер, платформа и мобильные возможности. Если значение не задано, эти параметры не будут вычислены;
- payload_data – тело запроса. Может включать только одну кодированную строку длиной не более 8 192 Б;
- IP-адрес – неявно передается в HTTP-запросе и используется для вычисления всех параметров географического местоположения и сети в Google Analytics.
GET-запрос выглядит так:
GET /collect?payload_data HTTP/1.1 (конечная точка URL?набор данных с параметрами)
Host: https://www.google-analytics.com (адрес Google Аналитики)
User-Agent: user_agent_string (строка пользовательского агента)
В этом случае максимальная длина закодированного URL – 8 000 Б.
В некоторых средах (например, браузерах) HTTP-запросы GET могут кешироваться. В таком случае последующие запросы могут не отправляться в Google Analytics, а извлекаться из кеша.
Чтобы это предотвратить и обеспечить уникальность всех запросов, используйте очистку кеша. В Measurement Protocol для этого есть специальный параметр z, который принимает случайно выбранное число. Лучше добавлять его последним:
https://www.google-analytics.com/collect?payload_data&z=123456
Google рекомендует использовать метод POST, поскольку так можно передавать больше данных. В средах, где POST не применяется, можно отправлять HTTP-запросы с помощью метода GET в ту же конечную точку.
Если запрос сформирован правильно, возвращается 2XX код статуса. Если данные неправильно сформатированы, неверные или Google Analytics не удалось их обработать – код ошибки не возвращается. Прежде чем отправлять повторный запрос, исправьте возможные ошибки в HTTP-запросе.
Далее рассмотрим сами параметры.
Обязательные параметры запроса
Строка набора данных с параметрами должна включать следующие 4 элемента:
- v – версия протокола, на данный момент первая, поэтому v = 1;
- tid – идентификатор отслеживания, или идентификатор вашего ресурса в Google Аналитике. С ним связываются все собираемые данные;
- uid или cid. Оба параметра по отдельности необязательные, но один из них нужно указать.
Идентификатор пользователя (uid) – идентификатор, который пользователю присваивает владелец сайта или пользователь библиотеки отслеживания. Он должен быть анонимным, то есть не связанным с личной информацией, а его значение не должно сохраняться с помощью cookie или других средств хранения данных в Google Аналитике.
Уникальный идентификатор клиента (cid) берется из файла cookie в браузере сайта и генерируется случайным образом для каждого случая установки мобильного приложения. По этому значению выполняется анонимная идентификация пользователя, устройства или браузера.
- t – тип обращения (взаимодействия). Например, pageview (просмотр страницы), event (событие) и другие.
То есть при каждой отправке данных указывайте следующие параметры:
![Measurement Protocol – обязательные параметры в запросе Measurement Protocol – обязательные параметры в запросе](https://imgs.yagla.ru/blog/899/08-measurement-protocol--obyazatelnye-parametry-v-zaprose.png)
Дополнительно для каждого типа обращения есть собственный набор обязательных и необязательных параметров. Информацию по ним ищите в справке по параметрам.
Например, t = event (событие). Согласно справке, к нему нужно добавить обязательные параметры события:
- ec (event category) – категория события;
- ea (event action) – действие события.
Если категория события – регистрация (ec = registration), а действие – заполнение формы (ea = form), строка набора параметров будет выглядеть примерно так:
![Measurement Protocol – пример строки параметров для события Measurement Protocol – пример строки параметров для события](https://imgs.yagla.ru/blog/899/09-measurement-protocol--primer-stroki-parametrov-dlya-sobytiya.png)
А вот как формируется строка для обращения «Просмотр главной страницы» (тип – pageview):
![Measurement Protocol – пример строки параметров для просмотра страницы Measurement Protocol – пример строки параметров для просмотра страницы](https://imgs.yagla.ru/blog/899/10-measurement-protocol--primer-stroki-parametrov-dlya-prosmotra-stranicy.png)
dp – это дополнительный параметр для обращения типа pageview, обозначающий путь, в данном случае – к главной странице. Символ косой черты (/) обозначается как %2F. В запросе всё вместе выглядит как сочетание «dp=%2F».
Как отправлять несколько обращений в одном запросе
Используйте конечную точку /batch вместо /collect и укажите каждый фрагмент данных в отдельной строке.
Например, вы хотите отслеживать пользователя 5555, посетившего страницы «Главная», «О компании» и «Контакты». Чтобы передать информацию о просмотре сразу трех страниц, отправьте такой запрос:
![Measurement Protocol – отправка нескольких обращений в одном запросе Measurement Protocol – отправка нескольких обращений в одном запросе](https://imgs.yagla.ru/blog/899/11-measurement-protocol--otpravka-neskolkih-obrashcheniy-v-odnom-zaprose.png)
При этом указывайте в одном запросе не больше 20 обращений. Их общий объем не должен превышать 16 КБ. Ограничение для одного фрагмента данных – 8КБ.
Обращение по отслеживанию посещений страниц при отправке в Google Аналитику со всеми строками будет выглядеть так:
![Measurement Protocol – обращение по отслеживанию посещений страниц Measurement Protocol – обращение по отслеживанию посещений страниц](https://imgs.yagla.ru/blog/899/12-measurement-protocol--obrashchenie-po-otslejivaniyu-poseshcheniy-stranic.png)
А вот так – для отслеживания событий:
![Measurement Protocol – обращение по отслеживанию событий Measurement Protocol – обращение по отслеживанию событий](https://imgs.yagla.ru/blog/899/13-measurement-protocol--obrashchenie-po-otslejivaniyu-sobytiy.jpg)
Другие типы обращений смотрите в справочнике разработчика Google Analytics.
Как проверить сформированный запрос в интерактивном режиме
Используйте для этого инструмент Measurement Protocol Hit Builder. Также в нем можно вручную отправлять данные в POST-запросе.
Для этого авторизуйтесь по ссылке:
![Measurement Protocol – авторизация в Hit Builder Measurement Protocol – авторизация в Hit Builder](https://imgs.yagla.ru/blog/899/14-measurement-protocol--avtorizaciya-v-hit-builder.png)
Выберите нужный аккаунт:
![Measurement Protocol – выбор аккаунта при регистрации в Hit Builder Measurement Protocol – выбор аккаунта при регистрации в Hit Builder](https://imgs.yagla.ru/blog/899/15-measurement-protocol--vybor-akkaunta-pri-registracii-v-hit-builder.png)
Дайте разрешение на доступ к нему:
![Measurement Protocol – разрешение на доступ в Hit Builder Measurement Protocol – разрешение на доступ в Hit Builder](https://imgs.yagla.ru/blog/899/16-measurement-protocol--razreshenie-na-dostup-v-hit-builder.png)
Введите обязательные и дополнительные параметры в указанных на скриншоте полях:
![Measurement Protocol – заполнение обязательных и дополнительных параметров для проверки запроса Measurement Protocol – заполнение обязательных и дополнительных параметров для проверки запроса](https://imgs.yagla.ru/blog/899/17-measurement-protocol--zapolnenie-obyazatelnyh-i-dopolnitelnyh-parametrov-dlya-proverki-zaprosa.png)
Для дополнительных есть кнопки добавления и удаления:
![Measurement Protocol – кнопки добавления и удаления для дополнительных параметров Measurement Protocol – кнопки добавления и удаления для дополнительных параметров](https://imgs.yagla.ru/blog/899/18-measurement-protocol--knopki-dobavleniya-i-udaleniya-dlya-dopolnitelnyh-parametrov.png)
Результат – готовый запрос по заданным параметрам – появится здесь:
![Measurement Protocol – кнопка для проверки запроса Measurement Protocol – кнопка для проверки запроса](https://imgs.yagla.ru/blog/899/19-measurement-protocol--knopka-dlya-proverki-zaprosa.png)
Нажмите на указанную кнопку, чтобы проверить правильность запроса.
Кроме того, данное приложение позволяет передавать данные методом GET через адресную строку браузера.
Важно! Для отправки обращений на проверку в конце URL должно быть /debug/collect вместо /collect.
Данные в режиме реального времени отправляются в Google Analytics согласно запросу, который вы составили:
![Measurement Protocol – изменение данных в Google Аналитике в режиме реального времени Measurement Protocol – изменение данных в Google Аналитике в режиме реального времени](https://imgs.yagla.ru/blog/899/20-measurement-protocol--izmenenie-dannyh-v-google-analitike-v-rejime-realnogo-vremeni.png)
Правила использования Measurement Protocol
1) Убедитесь, что у вас достаточно прав для работы, загрузки и использования данных в аккаунте Google Аналитики;
2) Сообщите конечным пользователям о том, какие данные вы собираете и связываете ли их с другими доступными вам данными, и получите их согласие. Или дайте возможность отключить функции Google Analytics;
3) Не загружайте данные, которые позволяют идентифицировать личность пользователя (имя, номер социального страхования, адрес электронной почты и т. п.) или отдельное устройство (например, уникальный идентификатор мобильного телефона, если его нельзя сбросить) даже в хешированной форме.
Не нарушайте эти правила, иначе могут закрыть ваш аккаунт Google Аналитики, и вы потеряете все данные из него.
Высоких вам конверсий!
Метки: Аналитика, Google Analytics
Читайте ещё статьи по этой теме
Скорая помощь при выгорании аудитории Статья
Замечали ли вы, что в определенный момент рекламная кампания перестает приносить желаемые результаты? Хотя вы ничего не меняли, а раньше всё шло вполне успешно. Вероятная причина этому – выгорание аудитории.
Как собрать MAC-адреса через Wi-Fi и настроить на них рекламу Статья
Настроить рекламу можно по самым разным признакам аудитории. В том числе по тем, которые собирает Wi-Fi сеть: MAC-адресам.6
Как привлекать клиентов в офлайн-бизнес: 4 способа продвижения без соцсетей Статья
В этой статье руководитель маркетингового агентства Statura Аллан Андроник делится опытом привлечения клиентов для предпринимателей, кто владеет или управляет офлайн-бизнесом. .
Написать комментарий
Обсуждаемое
Как юристу вести Telegram канал. Отвечает адвокат Валерий Рогальский Статья
В современном мире цифровых технологий и социальных медиа юристам предоставляется уникальная возможность расширить свою аудиторию и продвигать свои услуги через онлайн-платформы. Telegram – одна из таких платформ, которая предлагает удобный и эффективный способ взаимодействия с клиентами и коллегами.
Кейс клиента Vitamin.tools о продвижении детского лагеря в VK Ads: как получать заявки по 500 рублей 3 месяца подряд Статья
Таргетолог Марк Косых, клиент Vitamin. tools — рекламной экосистемы, возвращающей до 18% с пополнения рекламы, — пробовал запускать рекламу и в старом, и в новом рекламном кабинетах.
Лидогенерация на мероприятия Статья
Я расскажу в целом о том, как выстроить грамотный диджитал для продвижения мероприятий. Это актуально как для онлайна, так и для оффлайна.
Свежее
Пустые бланки резюме для устройства на работу – где взять? Статья
Создать современное резюме с оформлением и структурой можно с помощью готовых шаблонов резюме. Пустые бланки в формате docx и pdf подойдут для заполнения в любом текстовом редакторе: используйте шаблоны, заполняйте их с помощью пошаговой инструкции и привлекайте работодателей.
6 советов от клиента Vitamin.tools по продвижению психолога в TG через Директ Статья
Директолог Ольга Сивцова, клиент Vitamin. tools — рекламной экосистемы, возвращающей до 18% с пополнения рекламы, — отливала бюджет на TG-бота 2,5 месяца.
Работа на фрилансе или в агентстве: плюсы и минусы Статья
Первый плюс работы в агентстве – меньше ответственности, потому что у нас ее нет перед конечным заказчиком, другими сотрудниками, если не нанимаем помощников и ничего не делегируем. У нас есть ответственность только перед нашим работодателем.