В этом посте я расскажу о том, как можно отслеживать офлайновые действия посетителей сайта в Universal Analytics и интегрировать данные из CRM со статистикой UA.
Забираем Client ID
Сценарий отслеживания офлайновой активности предполагает, что пользователь сначала обязательно посещает сайт и на нем выполняет действие, которое его как-либо идентифицирует. Причем необязательно, чтобы это была полноценная идентификация - подписка на рассылку с указанием адреса электронной почты или регистрация и т.д. Возможен вариант сбора лидов - например, когда пользователь вводит скидочный купон или просто кладет товар в корзину.
В момент, когда посетитель сайта выполняет подобное действие, мы забираем идентифицирующие данные и импортируем их в CRM-систему.
Какие данные забираются в этот момент. Забрать можно куку посетителя. Технически это возможно осуществить напрямую, что делают очень многие - забирают куку непосредственно из браузера. Однако в Universal Analytics системно предусмотрена возможность получить client ID с помощью джаваскриптной функции get('ClientId') в любой подходящий для владельца сайта момент. Наилучшим образом для этого подходит как раз идентификация пользователя на сайте.
Функция get('ClientId') выглядит следующим образом:
ga(function(tracker) {
var clientId = tracker.get('clientId');
});
Вызывается эта функция в момент, когда пользователь отправляет заполненную регистрационную форму, оформляет подписку - то есть идентифицирует себя тем или иным способом. В этом случае ClientId забирается вместе с данными отправленной формы. Таким образом зарегистрированный пользователь будет ассоциироваться внутри CRM с уникальным номером ClientId, для которого впоследствии можно будет отдавать в Аналитикс данные об офлайновых действиях пользователя.
Можно также вызывать get('ClientId') для реализации сценария сбора лидов - в момент, когда пользователь вводит номер скидочного купона или просто кладет товар в корзину. Во втором случае можно, например, формировать уникальный id корзины и забирать его вместе с ClientId.
Что дальше
После того, как ClientId и ассоциированные с ними идентифицирующие данные оказываются в CRM-системе, владелец бизнеса имеет возможность отследить офлайновые действия и вернуть их в виде, например, событий, обратно в Universal Analytics. Для кейса с корзиной выше можно отследить, забрал ли пользователь товар в магазине либо завершил ли он заказ по телефону. И потом для соответствующего ClientId можно будет данные действия отдать обратно в Аналитикс.
Measurement Protocol
Для передачи данных об офлайновых действиях пользователей разработан специальный протокол передачи измерений - Measurement Protocol. Полная документация на сайте Google Developers
здесь.
Пример post-запроса с отправкой офлайн-события в Аналитикс по Measurement Protocol-у
POST /collect HTTP/1.1
Host: www.google-analytics.com
v=1 // Version of GA protocol. Constant.
&tid=UA-XXXX-Y // Property ID.
&cid=555 // GA Client ID. Retrieved from tracking code.
&ni=1 //
Non-interaction hit.
&t=event //
Event hit type.
&ec=ClientOfflineConv // Event Category.
&ea=OnlineLead // Event Action.
&el=OpportunityRegistered //Event label.
&ev=300 //Event value.
Где параметры tid и cid - номер счетчика (ресурса GA) и номер ClientId. Вторая часть описывает тип хита = событие (non-interaction, то есть без просмотра страницы) плюс стандартный набор параметров, описывающих событие (категория, действие и ярлык) и ценность события.
В соответствии с
правилами Measurement Protocol данные должны быть сконфигурированы без комментариев и будут отправляться вот в таком виде:
v=1&tid=UA-XXXX-Y&cid=555&ni=1&t=event&ec=ClientOfflineConv&ea=OnlineLead&el=OpportunityRegistered&ev=300
Для того, чтобы проверить правильность составленных параметров, можно использовать ссылку http://www.google-analytics.com/collect для имитации вызова сервера.
Полная ссылка для проверки параметров будет выглядеть так:
http://www.google-analytics.com/collect?
v=1&tid=UA-XXXX-Y&cid=555&ni=1&t=event&ec=ClientOfflineConv&ea=OnlineLead&el=OpportunityRegistered&ev=300
Где tid - номер существующего и работающего ресурса, cid - Id клиента. Остальные данные могут быть любыми в зависимости от того, какой хит тестируется. Для проверки нужно будет открыть новое окно или новую вкладку браузера, вставить в адресную строку эту ссылку и запустить ее. Google Analytics примет эти данные и их можно будет увидеть в интерфейсе.
Пользовательские определения
Помимо событий в Analytics можно передавать из CRM и другие данные. Для того или иного клиента мы можем что-то знать в CRM, чего мы не знаем в Analytics. Например, в CRM для определенного клиента может храниться информация, что этот клиент - женщина, 1975 года рождения, постоянный покупатель (есть повторные покупки). Эти данные тоже можно передать в Analytics - аналогично событиям выше.
Важно! Перед тем, как что-то начать отдавать с сервера в Universal Analytics, необходимо создать пользовательский параметр или показатель в интерфейсе соответствующего ресурса. Для ресурса Universal Analytics доступны 20 пользовательских параметров (dimensions) и 20 пользовательских показателей (metrics). Пользовательские определения в Universal Analytics заменили пользовательские переменные (Custom Variables) стандартной версии GA.
Для примера с годом рождения необходимо будет в интерфейсе ресурса создать пользовательский параметр. Назовем этот параметр, например, Age:
Для созданного пользовательского параметра система рекомендует оформление вызовов в следующем синтаксисе:
Созданный пользовательский параметр можно использовать в пользовательском отчете:
Как я уже упомянул, отдавать пользовательские определения можно с сервера (CRM). В случае с параметром Age, если мы получили данные о возрасте клиента не через сайт, а, скажем, при оформлении клиентской карты в магазине, то можно отправить для соответствующего ClientId такие данные:
v=1&tid=UA-XXXX-Y&cid=555&ni=1&t=event&ec=OfflineRegistration&ea=submit&cd1=1975
То есть на хит (событие) по офлайновой регистрации дополнительно прибавляется пользовательский параметр (cd1) со значением "1975". К этому хиту можно добавлять и другие пользовательские параметры и показатели.
Если данные о возрасте посетитель вводил в форме на сайте (то есть в серверной имплементации нет необходимости), то пользовательский параметр с возрастом можно передать с помощью функции send непосредственно в коде сайта на отправку формы. На действие по отправке формы должен быть оформлен хит, например, pageview, а в dimension из формы должно подтянуться соответствующее значение:
ga('send', 'pageview', {
'page': '/reg_form_submitted',
'dimension1': '1975'
});
Или можем оформить событие на клик по кнопке с отправкой формы:
ga('send', {
'hitType': 'event',
'eventCategory': 'registration',
'eventAction': 'submit',
'dimension1': '1975'
});
Дисклеймер! Приведенные в посте фрагменты кода ориентировочны и могут отличаться в зависимости от поставленных задач и требований конкретной платформы. При разработке решений изучайте справочную информацию сайта Google Developers
Полезные ссылки:
-
Функция импорта Client ID
-
Пользовательские параметры и показатели
-
Measurement Protocol.
-
Руководство для разработчиков (eng)
Главная ›
Новости ›
Google Analytics ›
Отслеживание офлайновых действий с помощью Universal Analytics