Всем привет! Сегодня пост технический.
Поговорим про API Google Analytics под названием Measurement Protocol. А именно: как настроить передачу данных средствами PHP в систему аналитики. Если вы уже увидели много незнакомых слов, можете просто переслать эту статью вашим программистам и маркетологу/аналитику. Возможно, статья пригодится им.
Проблема дублирования или потери заказов на сайте при отправке в Universal Analytics очень распространенная. Это, как правило, связано со спецификой реализации оформления заказа/отправки заявки в вашей CMS. Мы частично поднимали схожий вопрос в посте про передачу данных в электронную торговлю Google Analytics. Проблема заключается в том, что обработка события javascript не всегда корректно справляется с этой задачей. Например, мы хотим, чтобы отработка цели передавалась в аналитику при нажатии кнопки «отправить заявку». При этом, введенные в форму данные заказа проходят валидацию на сервере. Это означает, что если пользователь ввел некорректные данные, то страница перезагрузится минимум два раза. А значит, и заветная кнопка будет нажата несколько раз. Как вы думаете, что мы получим в результате? Верно. Будет считаться, что цель сработала несколько раз.
Можно попытаться поставить обработку цели на страницу с сообщением об успешной отправке формы, так называемую страницу «Спасибо за заказ». Но и тут снова может происходить дублирование. Так как пользователь может открыть эту страницу несколько раз. Именно поэтому, часто, самое эффективное и быстрое решение задачи подсчета выполненных целей — обработка и отправка события на сервере с помощью PHP.
В помощь нам приходит Measurement Protocol. Принцип работы заключается в формировании нужного нам запроса с параметрами. Для того чтобы например, отправить событие с категорией «new_order», нам нужно отправить следующий запрос:
http://www.google-analytics.com/collect?v=1&tid=UA-XXXXXX-1&cid=YYYYYY.YYYYYY&t=event&ec=new_order’
Теперь рассмотрим по подробнее из чего он состоит:
- v — это версия протокола, в данном случае 1
- tid — это id вашей аналитики в google. Получить его не представляет особой сложности, останавливаться подробнее не стану.
- cid — это id клиента. Тут немного сложнее и чуть ниже опишу подробно откуда его брать, чтобы корректно работала связь события с пользователем, который инициировал это событие.
- t — это тип передаваемых данных. В нашем случае это событие. О других возможностях Measurement Protocol можно ознакомиться по ссылке выше, а с более конкретным случаем отправки данных об электронной коммерции можно ознакомиться тут.
- ec — категория нашего собтия, new_order
И так что же такое cid, id клиента? При заходе на сайт, с установленной аналитикой от Google, пользователю в COOKIE прописывается переменная вида “_ga=GA1.2.XXXXXXX.YYYYYYYY”. Она состоит из 4 частей, отделенных друг от друга точками. Нас интересуют последние 2 — они и есть наш cid. Далее нам нужно сформировать запрос, собрав все переменные. Сделать это можно например так. Сначала достаем нужную нам COOKIE:
list($version,$domainDepth, $cid1, $cid2) = split(‘[\.]’, $_COOKIE[«_ga»],4); // разбираем COOKIE
$cid = $cid1.’.’.$cid2; // «сшиваем» 2 последние части
А теперь отправляем запрос в google:
file(‘http://www.google-analytics.com/collect?v=1&tid=UA-86049282-1&cid=’.$cid.’&t=event&ec=new_order‘); // отправляем в google
На этом все. Задавайте вопросы, если что-то нужно уточнить, готов подсказать.
Web-программист