Google Analytics. Measurement Protocol. Фиксация продаж

Mish-ka
На сайте с 08.06.2011
Offline
414
16589

Создать данную тему меня вдохновила статья в блоге Андрея Осипова. Она написана для передачи в GA динамических событий, а передо мной стояла задача передачи транзакций. Динамические события - это хорошо, но параметров там маловато, и отчеты по событиям очень скудные.

Поэтому пришлось разобраться, переделать и доработать под передачу параметров Электронной Торговли. Скрипт я перепилил, и написал подробную (как мне кажется) инструкцию, как этим пользоваться.

Начнем с теории. Measurement Protocol – протокол передачи статических данных в Google Analytics (GA). Передача данных идет через точку http://www.google-analytics.com/collect , с определенными параметрами. В мануале все очень сложно описано, для простого обывателя, поэтому попытаюсь все по-простому рассказать, направить и показать на примере.

Зачастую владельцы небольших ИМов, витрин, офлайн-магазинов, ведут продажи через обычные таблицы в MS Excel. Забивают туда артикул, дату, цену, название товара и т.д. Даже далеко не все владельцы ИМов устанавливают на сайт модуль Ecommerce, а просто фиксируют продажи в CRM, или в том же Excel.

Но даже если мы поставили Ecommerce, кроме классического оформления товаров через корзину, есть еще несколько способов взаимодействия – заказ в один клик (с заполнением формы с телефоном), заказ обратного звонка, форма «помогите мне выбрать» и прочее. Все эти транзакции мы будем учитывать, передадим их Google Analytics и привяжем их к источнику трафика. Мы же хотим оценить эффективность наших каналов – SEO, Контекст, Маркет, Тизеры и т.д.

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

Нам понадобится обычный Гугл-аккаунт, установленный GA на наш сайт (с включенной Электронной Торговлей (ЭТ) в представлении) и таблица в Google Spreadsheets

Таблицы и GA могут быть на разных аккаунтах. Это не важно.

Вся работа будет состоять из двух этапов:

  • Извлечение ClientID (CID)
  • Передача транзакций в Google Analytics

1. Извлекаем ClientID (CID) из Cookies

Мы должны получить ClientID (CID) при взаимодействии пользователя с нашим сайтом. Откуда? Из любой формы, которая приходит к нам на почту: заказ товара через корзину, форма обратного звонка, заказ в 1 клик, «помогите выбрать» и прочее.

Это делается очень просто.

В форму, которая отправится нам на почту, вставляем одно скрытое поле

<input name="cid" type="hidden" id="cid">

Вызовем скрипт функцией

onsubmit="return getCid(); "

И сам скрипт

<script>



function getCid()
{
var match = document.cookie.match('(?:^|;)\\s*_ga=([^;]*)');
var raw = (match) ? decodeURIComponent(match[1]) : null;
if (raw)
{
match = raw.match(/(\d+\.\d+)$/);
}
var gacid = (match) ? match[1] : null;
if (gacid)
{
document.getElementById("cid").value = gacid;
}
return true;
}


</script>

На выходе, вместе с формой заявки, заказа, звонка и пр, у нас еще будет уникальный индивидуальный номер, в котором зашифрованы данные по нашему пользователю.

Выглядит он примерно так - 696332372.1461079684

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

2. Записываем наши данные в таблицу.

Вот ссылка на таблицу, с написанным к ней макросом. Скопируйте себе в акк, чтобы можно было изменять. (Файл - Создать копию). При первом запуске Google запросит разрешение на авторизацию.

[ATTACH]151234[/ATTACH]

Разберемся в таблице.

  • Идентификатор ресурса в GA. Это наш номер счетчика. Не забывайте сменить на свой.
  • Статус отправки. Мы его не заполняем. Это поле заполняется автоматически скриптом, когда в поле номер 7 появляется значение YES. Оно у вас должно быть пустое, изначально. Перед началом работы очистите там все поля.
  • CID. Это наш CID, который мы выдернули из Кукисов, отправили себе его в почту, вместе с заявкой. Отпечаток этого CID хранится в нашей GA, поэтому Аналитикс потом его сравнит, и выставит правильный источник нашей транзакции.
  • ID транзакции. Тут все просто – порядковый номер транзакции. Любое число, хоть по порядку, хоть из вашей системы учета. Только учтите, при одинаковых ID, Аналитикс склеит эти транзакции в одну корзину. Лучше делать их все уникальными.
  • Название товара, думаю, объяснять не надо. Там может быть и услуга, например, если это не ИМ.
  • Цена в валюте Аналитикса. Тут стоят рубли. Если есть цены с копейками, то разделитель – точка.
  • Статус оплаты. Проставляется вручную, когда товар оплачен. Нужно вписать туда «YES»
  • Главная кнопка нашего файлика. Она формирует URL, согласно правилам Measurement Protocol, и отправляет данные в Аналитикс. После отправки, в столбце номер 2 появляется надпись «Отправлено в GA». Те товары, напротив которых прописано «Отправлено в GA», повторно отправлены не будут!

Дата - просто для нас. Можно не заполнять.

В принципе – все.

Теория на этом закончена. Приступим к практике.

Я взял тестовый домен, разместил почти пустую HTML страничку, установил на него GA, и повесил форму со скриптом извлечения CID. Сгенерировал несколько УРЛов с разными UTM-метками (для имитации различных источников трафика), заполнил форму, получил несколько CID, и записал их рандомно в столбец номер 3.

Столбец 4 заполнил по порядку, начиная с 10001.

В столбец 5 поместил случайные названия товаров.

В шестом столбце прописал случайные цены, потом проставил сегодняшнюю дату.

В столбце 7, со статусом, выборочно написал “YES” и нажал на красную кнопку.

Ждем минуты 2-4, и смотрим в отчеты Аналитикса – Источники трафика – Весь трафик – Источник/канал.

А там такая вот картина. (Центр таблицы я вырезал, ибо там ничего нет)

[ATTACH]151233[/ATTACH]

Разберем скриншот.

В рамочке слева – Источник и Канал трафика. Они фейковые, так как я их искусственно сгененрировал, используя UTM-метки. Но для эксперимента очень хорошо видно, что GA их отлично распознает, и очень правильно записывает источник трафика.

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

Мы уже можем смело делать первый шаг, к отслеживанию эффективности рекламных расходов.

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

Также нам доступны отчеты, в разделе «Электронная торговля». Щелкайте по отчетам, сегментируйте, смотрите, изучайте.

Подведем итог.

Мы научились извлекать CID, по взаимодействию пользователя на сайте. Откуда его можно дергать, чаще всего: клик по оформлению через корзину, клик по форме отправки заявки на сайте, заказ в один клик, заказ звонка, а также…небольшой лайфхак-костыль – в определенных случаях можно использовать «шторку» на телефоне, и по клику на шторке тоже извлекать CID. В последнем случае мы будем иметь некое представление о звонках, с распределением по источникам трафика.

Мы имеем табличку-файлик, которая передает в GA обязательные(!!!) параметры Электронной Торговли. Обратите внимание, что именно обязательные параметры. В ЭТ GA есть огромное кол-во необязательных параметров, которые тоже можно прописать в макросе, и расширить анализ. В документации по параметрам Measurement Protocol описаны все виды параметров. Прочтите, на досуге. Передавать можно почти все что угодно.

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

Код макроса открыт (Инструменты - Редактор скриптов) – допиливайте как хотите, под свои нужды. Я допилил его под свои нужды и предоставил вам. Но я практически уверен, что этим будут заниматься, максимум, один из десяти. Большинству хватит и этого. )))

Возможная критика в мою сторону: - это же все пурга! Зачем все это, если можно сделать автоматически, через модули Электронной Торговли прямо на сайте, и ссылку для Measurement Protocol формировать скриптом прямо в CRM. И нафига эти «шторки», если люди придумали коллтрекинг.

И я скажу – вы абсолютно правы. Это все можно сделать, прикрутить, настроить, реализовать.

НО!

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

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

Понятное дело, что материал в основном рассчитан на новичков, но даже опытные товарищи почерпнут из статьи несколько полезных моментов…я так думаю. © )))

Замечания, критика, советы по улучшению - глубоко приветствуются.

Спасибо за внимание.

png an3.png
png an4.png
Серч уже не торт => https://se.guru
Виталий Макаркин
На сайте с 24.06.2011
Offline
99
#1

А отслеживать по одному клиенту несколько сделок можно, так называемый если не ошибаюсь CPL (CostPerLife)

“Инновации отличают лидера от последователя” Steve Jobs Аудит сайта. Семантическое ядро. Анализ рынка. Продвижение. (/ru/forum/684396) Виталий Макаркин
irbs
На сайте с 23.01.2012
Offline
72
#2

с платными каналами все понятно, можно по метке отслеживать.

а что делать в разрезе ключевых фраз из поиска? их же мы не можем отследить. Решали этот вопрос как-нибудь?

и если у нас не ИМ, а сайт услуг. Можно таким же макаром прикрутить как-нибудь коллтрекинг и считавать cid -телефон - источник - кампания - ключевое слово?

A
На сайте с 03.07.2016
Offline
6
#3

Mish-ka, вы проделали довольно интересный труд, чтобы написать эту инструкциюмор, было очень интересно прочесть, спасибо. Если я верно понял, в оригинале статьи Андрея предлагалось использовать Cid, чтобы привязать источники полученных транзакций к событиям оплаты, передаваемым уже в некий другой день и час, отличающийся от дня и часа транзакций. Позвольте поинтересоваться, в вашем случае заказы, полученные из разных форм на сайте, попадают в аналитикс сразу? Или они попадают в ваш гуглдок вместо транзакций? А только после выставления статуса Yes они попадут в аналитикс в виде транзакций?

---------- Добавлено 03.07.2016 в 23:06 ----------

irbs,

а что делать в разрезе ключевых фраз из поиска? их же мы не можем отследить. Решали этот вопрос как-нибудь?

как минимум вы можете настроить фильтр для замены тех ключевых слов, которые попадают в виде Not Set на URL страницы входа. Так вы хотя бы сможете определять примерную тему запроса посетителей: если пришёл на раздел про услуги Х, то запрашивал, фразу связанную с ними, если на главную или на страницу контактов, скорее всего брендовый трафик.

Можно таким же макаром прикрутить как-нибудь коллтрекинг и считавать cid -телефон - источник - кампания - ключевое слово?

Про колл трекинга по Cid, правда в распарсенном виде, можете вот здесь прочитать

http://oborot.ru/article/853/12

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

Anton111
На сайте с 13.08.2005
Offline
138
#4

Я хотел добавить, что когда данные отправляются в GA через Measurement Protocol, то транзакция присваиваются последнему источнику трафика, который был с этим CID.

То есть, может быть такая ситуация:

1) пользователь зашел на сайт через Я.Директ, сделал заказ

2) потом зашел на сайт через поиск Яндекса

3) оплатил

4) менеджер принял оплату, отправил запрос в GA - эта транзакция присвоилась последнему источнику данных, т.е поиску Яндекса

Но GA работает по модели "Последний непрямой клик", то есть, если бы было:

1) пользователь зашел на сайт через Я.Директ, сделал заказ

2) потом зашел на сайт через закладки (набрал в браузере адрес сайта)

3) оплатил

4) менеджер принял оплату, отправил запрос в GA - эта транзакция присвоилась последнему непрямому источнику данных, т.е Я.Директу

Актуальный seo'шный old school (http://miralinks.ru/users/registration/from:341)
A
На сайте с 03.07.2016
Offline
6
#5

Anton111, верно говорите, коллега. В этом и есть причина моего вопроса

Позвольте поинтересоваться, в вашем случае заказы, полученные из разных форм на сайте, попадают в аналитикс сразу? Или они попадают в ваш гуглдок вместо транзакций? А только после выставления статуса Yes они попадут в аналитикс в виде транзакций?

Ведь важно точно определить источник трафика для транзакции.

I2
На сайте с 12.09.2016
Offline
0
#6

Транзакции надо отправлять и в аналитикс и в метрику. При настройке расширенной электронной торговли это происходит по одному протоколу.

Привязка к поисковым фразам в аналитиксе стандартная через консоль веб-мастера.

Из метрики и директа в аналитикс можно передать все, что захотите в автоматическом режиме. OWOX BI используется. На бесплатном аккаунте все реализуется.

Чтобы не пилить сайт каждый раз, ставьте все сторонние скрипты и теги (отслеживание электронной торговли, события, цели, метрику, колл-трекинг и тд) через GTM. Поставил контейнер один раз на сайт и забыл в большинстве случаев о программистах (только на расширенную торговлю потребуется еще на пару часиков).

R
На сайте с 21.09.2016
Offline
0
#7

Здравствуйте. Я как раз новичок в деле аналитики. В общих чертах всё понятно, а вот с частностями возникают проблемы. Никак не удаётся получить clientId, чтобы хотябы на почту его отправить.

Строку

<input name="cid" type="hidden" id="cid">

Нужно писать внутри тега <form> ?

А если он имеет аргумент:

<form action="order.php" ... 
, то есть в файлике order.php написан код самого письма. Что нужно добавить в этот файл, чтобы можно было посмотреть cid?

Куда писать строку вызова скрипта

onsubmit="return getCid(); "
? До самого скрипта или после?

В панели разработчика в консоли появляется сообщение об ошибке:

Uncaught SyntaxError: Unexpected token *

и подчёркивается эта строка:

var raw = (match) ? decodeURIComponent(match***91;1***93;) : null; 

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий