Обратная связь
Введите ваши данные, и я свяжусь с вами!
Какой у вас вопрос?

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c обработкой персональных данных

Measurement Protocol Google Analytics

Материал обновлен 09:01:2022
Примеры реальных задач, пошаговые инструкции по BI, DWH и DE в моем телеграм канале подпишитесь сейчас!

Universal Analytics предлагает массу возможностей для отслеживания посетителей сайта, а также сопоставление действий пользователя на сайте и последующее совершение целевых действие в оффлайне.

Для этих целей используется Measurement Protocol или Протокол передачи данных. В каких случаях вы можете использовать эту возможность? Приведу пару примеров.

Первый вариант — посетитель приобретает у вас на сайте товар или услугу, при этом выбирает вариант оплаты «безналичный расчет». Мы можем предположить, что процесс покупки по ряду причин может быть и не завершен, по этому передача в Google Analytics сведений о транзакции после завершения процесса оформления заказа/покупки, некорректна. Данные должны быть переданы после фактического поступления оплаты.

Второй вариант — оплата наличными курьеру при доставке товара. Покупка считается завершенной после получения оплаты курьером.

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

Решить обозначенную проблему нам поможет новая возможность появившаяся в Google Analytics с выходом Universal Analytics, под названием Mesurement Protocol.

В чем заключается принцип работы протокола. Все достаточно просто. Необходимо отправить специальным образом сформированный запрос на определенный URL.

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

Разберем подробнее параметры подлежащие передаче.

Первое — это URL, на который должен быть отправлен запрос, он должен принимать значение

для незащищенного соединения, и

для протокола SSL.

Второе — обязательный набор из 4 параметров:

  1. v — версия протокола, в настоящей момент используется значение равное 1;
  2. tid — идентификатор кода отслеживания (ресурса) Google Analytics в виде UA-XXXX-Y;
  3. cid — анонимный Client-ID;
  4. t — тип хита.

Если первый и второй параметр не должны вызвать сложностей, то третий и четвертый требуют уточнений.

Параметр cid, это анонимный client-id или идентификатор клиента. Если посетитель просматривает ваш сайт с помощью браузера, Universal Analytics сохранит значение client-id в cookie, если вам не известно значение, используйте любое свое.

Обратите внимание, если вы используете client-id, который получен из cookie файла, переданные данные будут сопоставлены с другими действиями посетителя, если передаете свое значение, то будет просто зафиксирован некоторый хит нового посетителя (операции под одним client-id приписываются одному посетителю). Для иллюстрации сказанного посмотрите на изображение:

Демонстрация clid

Демонстрация clid

Просмотр страницы под номером 1, это первое посещение сайта, просмотр 2 сгенерирован с помощью Mesurement Protocol по клику на кнопке, при этом использовался clid из cookie установленного в посещении номер 1. У нас по отчету на сайте будет 1 посетитель.

Просмотр 3 также как и просмотр 2 сгенерирован при клике на кнопку, при этом в качестве clid передано значение 12345, что приводит к появлению на сайте второго посетителя. У нас по отчету уже 2 посетителя. Просмотр 4 полностью аналогичен просмотру 2. Т.е. действие посетителя номер 1, который ранее осуществил просмотры 1 и 2.

Вернемся к параметрам, следующий параметр t, это тип хита. Он может принимать ограниченный круг значений — ‘pageview’, ‘appview’, ‘event’, ‘transaction’, ‘item’, ‘social’, ‘exception’, ‘timing’. Наиболее часто используемые значения:

  • pageview — просмотр страницы;
  • event — событие;
  • transaction — транзакция;
  • item — элемент транзакции.

Уже сейчас вы имеете возможность передачи в Universal Analytics данных с помощью Measurement Protocol. Но для того, чтобы нам получить в отчетах достоверную и полную информацию, необходимо выполнить еще два действия.

  1. Получить client-id посетителя сайта и сохранить его в CRM вместе с данными о заказе (сопоставить активность пользователя на сайте и его оффлайн действия).
  2. Дополнить запрос дополнительными параметрами, позволяющими работать нам с передаваемыми данными в отчетах.

Получить clien-id можно из cookie Universal Analytics:

Cookie Universal Analytics

Cookie Universal Analytics

Вы можете самостоятельно, либо с помощью разработчиков получить нужное значение. Я в своей деятельности пользуюсь следующим кодом на языке PHP (автор Matt Clarke):

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

Рассмотрим некоторые из параметров, которые относятся к ранее обозначенным типам хитов.

  • dh — доменное имя сайта;
  • dp — адрес страницы относительно доменного имени сайта;
  • dt — заголовок страницы;
  • ec — категория события;
  • ea — действие по событию;
  • el — ярлык события;
  • ti — идентификатор транзакции;
  • ta — название филиала или магазина;
  • tr — общая сумма транзакции;
  • in — название товара;
  • ip — стоимость товара;
  • iv — категория товара.

Теперь, когда мы имеем все необходимое для использования Measurement Protocol (протокола передачи данных) можно попробовать на практике приобретенные знания. Мы с вами воспользуемся всеми типами хитов, которые были названы ранее. Я буду демонстрировать передачу данных отправляя запросы с помощью JQuery.

Отправка данных о просмотре страницы:

Отправка данных о событии:

Отправка данных о покупке:

Обратите внимание, что для отправки данных о покупке необходимо сначала передать данные о транзакции, а затем о каждом товаре.

В какой момент вам необходимо передавать данные с помощью Mesurement Protocol? Для примеров, которые я привел в самом начале публикации, моментом передачи данных может быть перевод заявки в CRM из статуса заказ доставляется в заказ оплачен. Разработчикам, при наличии необходимых данных, не составит особого труда отправить сформированный запрос по определенному действию или событию на сайте.

Как видите сложного в использовании этого функционала Universal Analytics нет. Используйте его для сбора достоверных данных и оптимизации вашего бизнеса.

Для получения полной и официальной информации обратитесь к документации.

В заключении приведу пример ролика, который демонстрирует фиксацию событий и передачу сведений в Universal Analytics для датчика движения:

Рассылка бесплатных кейсов, инструкций, обзоров
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности
Ежедневные новости из мира аналитики в Telegram канале
Настройки, интеграции, примеры реальных задач, пошаговые инструкции
материалы ПО ТЕМЕ:
ОБСУЖДЕНИЕ:
Алексей
07.05.2014 at 15:35

Здравствуйте

Вы использовали MP для WAP ресурсов заточенных под фичфоны? В справке ссылаются на MP c использованием прокси. Не совсем понятно, что они имели в виду. Заранее спасибо.

    Иван
    07.05.2014 at 16:05

    Добрый день, Алексей! К сожалению с подобной задачей пока не сталкивался

Павел
22.09.2014 at 12:40

Здравствуйте.
Подскажите пожалуйста, эти данные должны поступать в отчет электронной торговли UA или куда-то ещё? Если да, то не будет ли конфликта передачи данных, если на сайте уже установлен тег Электронной торговли с теми же параметрами?

    Иван
    23.09.2014 at 16:03

    Павел, какие конкретно данные? События идут в отчеты по событиям, торговля — в торговлю и т.д.

    Павел
    24.09.2014 at 15:52

    Данные по конверсиям и оплатам

    Иван
    02.10.2014 at 11:41

    Сморите отчет по конверсиям и по электронной торговле или создайте свой собственный

Дмитрий
11.12.2014 at 00:30

Добрый день.
Пришлось перевести сайт на Universal c переработкой кучи событий.
Пытаемся отправить транзакцию с сервера, получаем код 200 в ответе и пиксель, но транзакции в отчете не появляются. С чем это может быть связано?

    Иван
    14.12.2014 at 13:07

    Дмитрий, добрый день! Вы информацию в каких отчетах просматриваете? Проверьте в реальном времени

Александр
15.01.2015 at 15:09

Насчет получения CID то сам гугл уже советует использовать другой метод.

ga(function(tracker) {
clientId = tracker.get(‘clientId’);
});

Говорит, что куки не круто, так как формат может быть изменен в любое время.

У меня пару вопросов.
— Как посмотреть отчеты по эти событиям. Хочу посмотреть история похода по сайту пользователя с этим CID не никак.
— И так же есть задача передавать информацию о том, что транзакция была не удачное. Иными словами возврат денег. Как это сделать через этот протокол?

ЗЫ: Спасибо за статью. Отличный метод делать запросы через jQuery

    Иван
    18.01.2015 at 13:23

    Александр, по cid нельзя построить отчет, использование идентификаторов для персонализации действий пользователя — нарушение правил Google Analytics. Возврат может быть оформлен также с помощью протокола, используйте минусовые значения, об этом есть информация в официальной документации

Александр
29.01.2015 at 18:07

Насчет минусовых значений, то не отображается в возвратах. Мне таки удалось сделать передачу возврата через этот протокол. вся сложность в том, что у гугла есть задержка по времени в полчаса-час на такие действия.

Дмитрий
24.04.2015 at 13:27

Иван, не можем добиться отображения суммы транзакции в отчётах GA/ данные передаются через Measurement Protocol (Enhanced Ecommerce). Все параметры есть, кроме суммы транзакции. Может Вам известны ссылки на описание «особых» кейсов с передачей этого параметра?

    Иван
    06.05.2015 at 18:05

    Дмитрий, можете отправить мне пример запроса, я проверю его

    Дмитрий
    27.05.2015 at 19:17

    Нашли ошибку в коде валюты. Банальная опечатка.

Алексей
05.07.2015 at 16:36

Здравствуйте. Есть два вопроса по ClientId:
1. Вы пишете, что значение ClientId предварительно получается с помощью функции PHP (автор Matt Clarke). То есть она должна срабатывать при загрузке страницы (помещаем в отдельный файл php), а не при нажатии кнопки отправки?
2. Значение ClientId необходимо отправить в CRM Битрикс24. ClientId необходимо копировать в скрытое поле через параметр Value=»»? А что нужно писать в значении параметра Value, чтобы ClientId скопировался и отправился в CRM? Пишем Value=»$contents[‘cid’];»?
Форма:
А затем передача в CRM по PHP:
$postData = array(
‘IM_OTHER’ => $leadData[‘IM_OTHER’],
);

    Иван
    08.07.2015 at 00:00

    Здравствуйте, Алексей! Получить clienId можно различными способами, описанный в материале служит для иллюстрации такой возможности. По второму вопросу Вам лучше проконсультироваться с Вашими разработчиками, как в шаблонизаторе подставить необходимое значение

Дмитрий Захарченко
08.07.2015 at 02:03

Сколько времени гугл «хранит» информацию по clientId?
Настроена интеграция сервиса коллтрекинга с UA. Нет возможности посмотреть отчет по lp (50% данных имеют значение «not set»).
Вот ответ техподдержки:
«чем больше данных и времени с момента посещения проходит(минут), тем меньше данных ua может сопоставить по отправленным client id.
Часть событий ua сопоставляет в отчетах, часть нет в частности по целевым страницам.»
Насколько правдив ответ?

    Иван
    08.07.2015 at 23:48

    Дмитрий, вероятно на Ваш вопрос Вам смогут ответить технические специалисты из Google Analytics. Не вся информация находится в открытом доступе.

Игорь
08.07.2015 at 19:54

Здравствуйте, господа.
Поделитесь, пожалуйста, советом. Странная ситуация с measurement protocol.
На веб версии стоит UA через GTm, на мобильной версии сайта measurement protocol.
Ситуация в том, что measurement protocol не считывает utm метки и все переходы по доменам 3 уровня считает рефералами. Везде стоит один счетчик.

    Иван
    08.07.2015 at 23:47

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

    Игорь
    17.07.2015 at 12:46

    Иван, подскажите, пожалуйста, как я могу проверить передача каких параметров настроена в measurement protocol?

    Иван
    21.07.2015 at 13:24

    Игорь, используя мой сервис проверки запросов measurement protocol

Геннадий
24.07.2015 at 16:56

Алексей, добрый день.

Скажите, пожалуйста, возможно ли с помощью Measurment передавать маржу по заказам, при этом по прежнему передавая сумму заказа?

    Иван
    09.08.2015 at 22:14

    Геннадий, дополнительные данные по транзакции передать не получится по умолчанию, но можно использовать пользовательские параметры и показатели для подобных целей

Анна
24.03.2016 at 17:27

Здравствуйте,

Может быть что-то подскажете?
Настроена передача данных для эл. коммерции через Measurement Protocol.
Данные успешно передавались, каждый высланный запрос был принят Аналитиксом.
Вдруг на днях, Аналитикс перестал принимать данные.
Хиты идут также, как шли (в синтаксисе никаких изменений, запросы уходят), но данных а Аналитиксе нет. Что интересно, все настроено аналогично для 2 сайтов, передача данных отвалилась только для одного.
Пример запроса, который Аналитикс не принял:
http://www.google-analytics.com/collect?&v=1&tid=UA-********-1&cid=730101859.************&t=transact
Пример запроса, который Аналитикс успешно принял ранее :
http://www.google-analytics.com/collect?&v=1&tid=UA-********-1&cid=249034866.************&t=transact
(идентификаторы tid совпадают).
Как Вы думаете, что может быть причиной?

    Иван
    25.03.2016 at 10:42

    Анна, начните с проверки фактической отправки запроса, а также настроек фильтров в Google Analytics

Анна
25.03.2016 at 17:35

Иван, спасибо за подсказку! Вопрос решен, дело было действительно в фильтрах. Оказалось, что данные не принимались из-за включения фильтра для отсечения спам реффереров: https://www.adwordsrobot.com/en/tools/ga-referrer-spam-killer . Включила чужой фильтр не вдумываясь, вот и получила :). Фильтры выключила, данные эл. коммерции пошли. НО возник вопрос, как бы фильтровать запросы к Аналитиксу, то есть сделать так, чтобы Аналитикс принимал данные, отправленные только с моего сервера (например по IP), а с других серверов не принимал (я имею ввиду данные, отправленные по Measurement Protocol). Смотрела в этих злосчастных фильтрах, нет там ничего, что бы этим управляло… Может подскажете как сделать? или как искать (не совсем погимаю, как это правильно назвать)?

    Иван
    01.04.2016 at 12:35

    Анна, передавайте ip дополнительным параметром в запросе

Дмитрий
31.03.2016 at 16:35

Добрый день.

Спасибо за статью.

Подскажите пожалуйста, что за в переменной prid в Enhanced Ecommerce?
https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters?hl=ru#pr_id
Его можно задать от 1 до 200, значит всего можно передать данные о 200 товарах, если каждому мы присваиваем свой индекс?

Спасибо

    Иван
    01.04.2016 at 12:39

    Дмитрий, это индекс товара в запросе. Т.е. в одном запросе не может быть более 200 товаров

Дмитрий
31.03.2016 at 16:37

*переменная productIndex
сайт удаляет треугольные скобки

    Иван
    01.04.2016 at 12:40

    Замените на целое число, начиная с 1

    Дмитрий
    01.04.2016 at 16:34

    Спасибо!

Norm Iridium
07.06.2016 at 16:44

Скажите где в ГА можно в итоге это всё посмотреть? Облазил весь не нашёл. Может что-то не включил?

Norm Iridium
07.06.2016 at 17:18

Как присваивать правильный канал при загрузке, сейчас по умолчанию идет (direct) / (none).
Отсылаю данные из 1С.

    Иван
    07.06.2016 at 18:52

    Нужно использовать соответствующие параметры в запросе

    Norm Iridium
    08.06.2016 at 16:22

    А какие не подскажите, пожалуйста. На dl пробовал отсылать url входа? Или как то ещё?

    Иван
    13.06.2016 at 12:49

    Для фиксации URL, с которого перешли на Ваш сайт можно использовать возможности встроенных переменных

Алексей
24.07.2016 at 17:27

Добрый день! Используем в работе CRM-систему, которая при определенных условиях сама отправляем клиентам письма. С помощью протокола передачи данных настроили, чтобы можно было следить сколько писем было открыто. А также настроили цели, чтобы отследить переходы и целевые действия. Скажите, как настроить код, чтобы в аналитику передавалась информация, сколько всего писем было отправлено? Код, который сформирован для отслеживания открытых писем —

    Иван
    03.08.2016 at 09:45

    Алексей, Вы можете настроить передачу через протокол фиксируя количество писем событием

Yana
10.11.2016 at 01:58

Здравствуйте. пытаюсь сделать возврат. создала запрос, но он не работает. в чем ошибка?http://www.google-analytics.com/collect?v=1&tid=UA-ХХХХХХХ-Y&cid=101ХХХХХХ7.14ХХХХХХ7&t=transaction&ti=1234&pa=refund&pr1id=DD23444&pr1qt=3

    Иван
    20.11.2016 at 18:36

    Яна, нужно использовать тип хита event либо pageview, а вот в нем действие расширенной торговли purchase

Almiol
16.11.2016 at 12:42

Здравствуйте.
Необходимо точно получать данные по покупке ключей программы. Чаще всего пользователи сначала качают тестовую версию программы, а затем через какое-то время (от нескольких часов до нескольких дней) покупают лицензионный ключ. Основная задача видеть конверсии реальных покупок в адвордс, чтобы оптимизировать рекламную компанию.
Сейчас мы при скачивании пользователем программы получаем идентификатор его в аналитике и затем когда активируется купленный ключ в этой программе мы передаем данные через протокол в аналитику в которых указываем идентификатор пользователя аналитики, выполнение события покупки и цену цели. В итоге покупки в аналитике учитываются, но источник всегда определяется как (direct) / (none). Компания в адвордс пока не настроена, но есть подозрения, что не будет необходимых данных для оптимизации компании по этой конверсии.

    Иван
    20.11.2016 at 18:46

    Добрый день! Вы можете настроить передачу данных об источнике дополнительными параметрами в запросе, в этом случае они будут связаны с хитом

Андрей
25.08.2017 at 16:49

Добрый день! Подскажите пожалуйста. Изменяем состав и общую сумму транзакций через Measurement Protocol. В течении суток все меняется. Но, если прошло более суток с момента транзакции, то не меняется. Есть какие то ограничения по времени?

    Иван
    05.09.2017 at 20:45

    Андрей, не совсем понятен Ваш вопрос. Каждый запрос в течении суток, скорее всего приведет к изменению существующей транзакции, запрос на другой день и позже создаст новую транзакцию с таким-же идентификатором, но с другой датой

Костя
23.03.2018 at 14:28

Вопрос по фильтрам. Если есть фильтр — включить только трафик на хост и имя хоста. Это может повлиять на прием данных?

    Иван
    17.05.2018 at 22:39

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

Alex
25.07.2018 at 17:15

Здравствуйте.
У нас траблы с Measurement Protocol.
Все настроили, видим отчеты но данные в аналитику не передаются. Скорее всего нужно просто где-то поставить галочку)). Но мы не можем найти где. Подскажите, что делать?)

    Иван
    26.07.2018 at 00:04

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

Оставить комментарий
Для добавления комментария — заполните форму!

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c обработкой персональных данных