вторник, 19 марта 2013 г.

Кастомизация кода Google Analytics

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

В сегодняшнем посте я опишу способы изменения кода Google Analytics - то есть его кастомизации.

Итак, давайте посмотрим, какие изменения можно внести в код Analytics и как они будут отражаться в статистике посещаемости сайта. Кастомизацию начального уровня можно произвести непосредственно в аккаунте GA: жмем на кнопку Администратор справа вверху и далее в интерфейсе управления установками идем в нужный вебресурс и открываем вкладку "Отслеживание информации"


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

Важно! Редактирование кода в интерфейсе аккаунта GA не изменит код у вас на сайте. После внесения всех необходимых изменений не забудьте установить код GA в хедер сайта - перед закрывающим тегом </head>.

Рассмотрим функции, доступные во вкладке "Отслеживание информации", по отдельности. Каждый из этих способов кастомизации кода можно сформировать как в этом интерфейсе, так и самостоятельно редактируя код Analytics.

Отслеживание сайта с несколькими субдоменами


Зачем нужна эта кастомизация? Дело в том, что при отслеживании сайта с несколькими субдоменами стандартным кодом:

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-39237786-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

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

Функция setDomainName между setAccount и trackPagewiew решит проблему обрыва сессий:

_gaq.push(['_setAccount', 'UA-39237786-1']);
_gaq.push(['_setDomainName', 'site.ru']);
_gaq.push(['_trackPageview']);

То есть добавляем в код всего одну строку и устанавливаем этот видоизмененный код на весь сайт.

Важно! домен сайта добавляется без точки. Обратите внимание на синтаксис команды - _setDomainName. Также, если отслеживается сайт электронной торговли, не забудьте продублировать _setDomainName в коде GA с модулем отслеживания транзакций на странице подтверждения заказа.


Отслеживание многодоменных сайтов


Также можно сформировать код для отслеживания сайта на нескольких доменах. Например, если ваш сайт работает в разных языковых версиях (.ru, .com, .de ...) либо, если вы хотите свести в одну территорию отслеживания сайт и форум (на своем отдельном домене), то вы столкнетесь с необходимостью "склеивать" разнодоменные сессии в одну. Стандартный код здесь не поможет. Нужна вот такая кастомизация:

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-39237786-1']);
_gaq.push(['_setDomainName', 'site.ru']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);

В _setDomainName прописываем домен сайта, на котором размещается код. _setAllowLinker - фунцкия, которая разрешает обработку линкера при при переходе с домена на другой домен без разрыва сессии и с сохранением ее изначального реферера.

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

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

Добавление функции ремаркетинга в код GA


В интерфейсе эта опция называется "Поддержка для рекламодателя в КМС". Если ее включить, в коде произойдут вот такие изменения.

Фрагмент исходного кода:
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';

Измененный код:
ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';

Предназначение этой кастомизации - сбор различных аудиторий посетителей сайта внутри аккаунта Google Analytics с последующей возможностью показа рекламы этим пользователям на контекстно-медийной сети Google. Более простыми словами - с видоизмененной строкой код начинает собирать для нас аудитории, на которые потом можно таргетировать объявления (текстовые и баннерные) через AdWords. Например, с помощью фильтров мы сможем выделить пользователей, которые были на нашем сайте, положили товар в корзину, но не купили - мы соберем такую аудиторию, экспортируем ее в аккаунт Адвордз и покажем им баннеры с предложением завершить покупку на сайте.

Теги кампаний


По умолчанию GA использует для пометки рекламных ссылок стандартные utm-метки, которые система унаследовала от Urchin Analytics - платной аналитической системы, которую компания Google купила в 2005 году. Utm-метки выглядят следующим образом: utm_source, utm_medium, utm_campaign и т.д.

Если вы используете отличные метки для обозначения платных/маркетинговых источников трафика, то их можно прописать на этапе формирования кода GA вручную либо в интерфейсе формирования кода:

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

Например, для обозначения источника трафика вы традиционно используете метку source. В структуре целевых страниц эта метка используется таким образом www.site.ru/?source=название_источнка_трафика. Для того, чтобы максимально облегчить структуру меток, можно вместо добавления стандартных меток GA (utm_source), прописать в коде Аналитикс функцию _gaq.push(['_setCampSourceKey', 'source']);

В случае добавления такой функции GA станет брать реферальную информацию об источнике трафика из метки source.

Более подробно о utm-метках читайте в отдельном посте.


Добавление локальных поисковых систем


В GA cуществует проблема отслеживания поискового трафика и поисковых запросов для местных поисковых систем. По умолчанию, система Google Analytics "знакома" с российскими поисковиками Yandex, Rambler и Mail.ru. При установке стандартного кода GA распознает поисковый трафик (organic) с этих источников, а также ключевые слова (поисковые запросы) с них. Для остальных российских и украинских поисковых систем трафик будет помечаться как referral. Referral на языке Analytics означает "какой-то сайт", и внутри этого источника не будет поисковых запросов. Чтобы исправить эту ситуацию, можно прописать поисковик в коде Analytics с помощью функции _addOrganic.

Функция имеет следующую структуру:

_addOrganic(newOrganicEngine, queryParamName, opt_prepend)

Где
newOrganicEngine - доменное имя неизвестной для GA поисковой системы,
queryParamName - параметр поискового запроса в урле, opt_prepend - необязательный параметр, который в значении true выделит поисковик в отдельный источник organic. Если вы хотите отслеживать поисковые запросы с images.yandex.ru, а не внутри yandex/organic, то нужно добавить этот поисковик со значением true в третьем параметре
 
Полностью функция будет выглядеть вот так:


Для поисковика aport.ru

 _gaq.push(['_addOrganic', 'aport.ru', 'searchPhrase']);

Для images.yandex.ru с выделением из yandex/organic

_gaq.push(['_addOrganic', 'images.yandex.ru', 'text', true]);

Где aport.ru и images.yandex.ru - это доменное имя поисковой системы, а searchPhrase и text - параметр поискового запроса. Параметр поискового запроса обнаружить легко - идем в поисковик, выполняем поисковый запрос и смотрим, какой параметр в адресной строке предшествует поисковому запросу.

Непосредственно в коде GA функция будет выглядеть так:

_gaq.push(['_setAccount', 'UA-39237786-1']);
_gaq.push(['_addOrganic', 'aport.ru', 'searchPhrase']);
_gaq.push(['_addOrganic', 'images.yandex.ru', 'text', true]);
_gaq.push(['_trackPageview']);

Длительность жизни Campaign Cookie


Еще одна интересная функция, которую часто используют при кастомизации кода - регулирование длительности действия campaign cookie, которая отвечает за то, чтобы повторные визиты пользователей, пришедших на сайт по рекламе, отслеживались как посещения с рекламы (с данной рекламной кампании). По умолчанию campaign cookie "живет" полгода или 15768000000 милисекунд. Именно благодаря этой функции GA умеет отслеживать повторные визиты пользователей и ассоциировать их с рекламными и маркетинговыми кампаниями. Например, если вы рекламируете сайт в AdWords, пользователи с этой рекламы будут приходить на сайт с реферером google/cpc. При повторном посещении, если пользователь набрал адрес сайта в адресной строке либо перешел на сайт из букмарки, этот визит отразится в статистике как google/cpc. Все последующие посещения также покажутся в отчетах как google/cpc, пока пользователь не посетит сайт, кликнув по другому объявлению - например, с баннерной рекламы во Vkontakte. С этого момента все повторные прямые визиты (type-in) будут ассоциироваться с Vkontakte. И так далее.

Сама по себе эта функция неплохая, поскольку она позволяет отследить "длинный хвост" повторных визитов с рекламных кампаний, которые уже завершились. Если кампания приносит такие повторные визиты, значит она была эффективной.
Однако, некоторые рекламодатели хотят видеть рекламный трафик как рекламный, а прямой - как прямой. Сделать это можно с помощью функции

_gaq.push(['_setCampaignCookieTimeout', 0]);

setCampaignCookieTimeout в значении 0 устанавливает отслеживание кампании на уровне сессии и удаляются в момент завершения посещения. Повторные прямые визиты пользователя не будут ассоциироваться с реферером предыдущего посещения.

В коде GA эта функция будет выглядеть вот так:

_gaq.push(['_setAccount', 'UA-39237786-1']);
_gaq.push(['_setCampaignCookieTimeout', 0]);
_gaq.push(['_trackPageview']);


Кастомизация кода Google Analytics предоставляет много дополнительных возможностей. И я рассмотрел в этом посте лишь наиболее часто встречающиеся. Для более подробного изучения всех дополнительных функций рекомендую прочитать следующие разделы сайта Developers.Google.com:

Обзор асинхронного кода Google Analytics (eng)
Отслеживание рекламных кампаний (eng)
Отслеживание субдоменов и многодоменных сайтов (eng)
Добавление поисковых систем (eng)
Регулирование срока действия campaign cookie (eng)
Распространенные пользовательские настройки отслеживания (eng)

2 комментария:

  1. Станислав, какие локальные поисковые системы рекомендуете добавлять для СНГ?

    ОтветитьУдалить
  2. вот про точку в субдоменах совсем не понятно, половина источников пишут ставить, половина нет.

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