четверг, 4 июля 2013 г.

Как "устроен" Universal Analytics

Universal Analytics - новая версия Google Analytics, принципы работы которой несколько отличаются от предыдущих версий. В этом посте я расскажу, как именно происходит отслеживание сайта с помощью кода analytics.js.


Установка кода Analytics.js


Начало работы с Universal Analytics не отличается от предыдущих версий GA - вы должны установить джаваскриптный код в исходный код сайта. Код analytics.js находится в меню Администратор на уровне веб-ресурса в меню Код отслеживания:




Установите этот код на каждую отслеживаемую страницу сайта в хедер. Если вы используете CMS, то добавьте этот код в шаблон страницы - также в хедер. Лучше всего код установить непосредственно перед закрывающим тегом </head>.

Внимание! В исходном коде сайта скрипт Universal Analytics должен выглядеть так, как он выглядит в аккаунте. Если вы вставляете сниппет в код сайта через CMS, проверьте, соответствует ли синтаксис кода UA исходному. Если нет - правильно экранируйте изменяемые cms-кой символы.

Как только вы добавите тег к сайту, в отчете "В реальном времени" должны появиться данные о посещаемости. Если этого не произойдет, это будет означать, что установленный код нерабочий. Стандартный отчеты покажут первые данные где-то в промежутке между 4 и 24 часами. Сервера GA обрабатывают накопленные данные каждые 4 часа, но иногда задержка обработки может составить до 24 часов.

В интерфейсе профиля GA будут доступны все основные данные: посетители, посещения, просмотры, география, источники трафика, содержание сайта, мобильные устройства и т.д.

Как устроен тэг analytics.js


Джаваскриптный код universal analytics (analytics.js) состоит из двух частей:


Первая часть представляет из себя вызов на сервера Google Analytics к библиотеке analytics.js:

< script >
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

Вторая часть отвечает за идентификацию кода - номер счетчика и домен сайта - команда create. В следующей строке этой части кода обозначается его действие - send pageview. То есть код с таким-то ID отсылает информацию о просмотре страницы такого-то сайта:

ga('create', 'UA-12345-67', 'site.ru');
ga('send', 'pageview')
< /script >;

Код analytics.js асинхронный, как и код предыдущей версии (ga.js). Асинхронный код выполняется в своей очереди параллельно загрузке основного кода страницы, что существенно снижает задержку загрузки страницы. А еще это означает, что данный код можно устанавливать на все страницы сайта в хедер - перед закрывающим тегом Head: </head>

Как UA отслеживает пользователей


Технология отслеживания не изменилась. UA использует куки (first party cookie) для отслеживания посетителей. Единственная разница состоит только в том, что в отличие от предыдущей версии GA, в которой использовалось несколько кук, в UA работает одна кука, называется она _ga, представляет собой идентификационный номер и выглядит вот так:

_ga=1.2.838838867.1359565579161

Номер идентификаторая генерируется случайно. Основное его назначение - идентификация уникального пользователя. Срок жизни куки - два года. При каждом повторном посещении сайта в течение двух лет отсчет этого срока возобновляется. При желании длительность жизни куки можно изменить.

Таким образом, если на сайт установлен код analytics.js, в браузер посетителя в момент загрузки первой страницы сайта подгрузится подобный идентификатор, который позволит отслеживать этого посетителя как уникального и возвратного в ходе последующих посещений. Характерное отличие _ga от кук предыдущей версии состоит в том, что в ней уже не содержится информация об источнике и канале перехода посетителя на сайт. Вся эта информация теперь не грузится в браузер, а сохраняется на стороне серверов Analytics.

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

Также стоит упомянуть, что два очень важных параметра, являющиеся базовыми для GA, - session timeout (время бездействия посетителя, после которого закрывается сессия) и campaign timeout (срок отслеживания возвратов с любой кампании) - теперь можно изменять в интерфейсе GA. Изменение самого кода, как это было раньше, теперь не требуется:

Если есть необходимость, можно переименовать куку Universal Analytics. 

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

На основе и по мотивам:

Полезные ссылки:
Обзор Universal Analytics (Справка Google Analytics)
Настройка модуля электронной коммерции Universal Analytics (eng)

5 комментариев:

  1. Станислав скажите пожалуйста:

    1. Как именно происходит переписование куки во время идентификации пользователя на сайте.
    Это должна делать CRM или CMS самого сайта, или же есть какие то функции самого UA.

    2. Как будет рассчитываться и отображаться визит пользователя который сначала зашел на сайт без идентификации, после чего например при посещении 5 страницы решил авторизоваться на сайт. Ведь получается что до авторизации к посещению была привязана кука не идентифицированного пользователя. Если я правильно понимаю на стороне UA должна быть перезапись u_ID для всей сессии?

    ОтветитьУдалить
    Ответы
    1. 1. В момент, когда вы "узнаете" пользователя на сайте, в UA предусмотрена возможность приписать User ID к его client ID. Уникальный User ID вы скорее всего возьмете из CRM.

      2. Это пока вопрос. Я не видел интерфейс отчета Источники трафика для профиля с включенным User ID Control. По логике, источник посещения, в рамках которого произошла приписка User ID, не должен теряться. Предшествующее посещение, в рамках которого не было идентификации пользователя, теряется из цепочки посещений для данного User ID полностью.

      Удалить
  2. не показывает в реальном времени посетителей поддомена. точно ни каких манипуляций не надо делать на страницах поддомена? код тот же, что и на главном домене надо вставлять в страницы поддомена?

    ОтветитьУдалить
  3. Здравствуйте! Есть интернет-магазин. Оплата осуществляется тремя способами: наличными, оплата онлайн (пееход в робо-кассу) и кредит (переход на страницу банка, где человек заполняет заявку на кредит). Возникло два вопроса:

    1) как в такой ситуации настроить электронную торговлю? если с оплатой наличными всё просто (стандартные настройки), то с онлайн-оплатой и заявкой на кредит не понятно, в какой момент отправлять данные о заказе.

    2) Можно ли присвоить пользователям, которые выбрали определённый способ оплаты, пользовательскую переменную и как это сделать в Universal Analytics?

    ОтветитьУдалить