Как мы устанавливаем код Universal Analytics с помощью Google Tag Manager (GTM)?

Установка кода отслеживания Google Analytics — типовая операция, в интернете можно найти десятки инструкций как это сделать, в том числе и через GTM. Так почему возник этот вопрос?

Ответ простой. Практика показала, что при установке кода через GTM типовыми способами (по инструкции), в custom dimension счётчика Google Analytics частично не передаётся ClientId. Потери могут составлять 20-40%.

Если у вас уже настроена передача ClientId, то проверить это достаточно просто. В Google Analytics зайти в Отчет «Весь трафик >> Источник/канал» и в качестве «Дополнительного параметра» выбрать ваш кастомный параметр.

Если всё в порядке, то в столбце «Сеансы» у вас будет отображаться 90-100%.

Почему это важно

Если вы планируете в дальнейшем выстраивать у себя сквозную аналитику с помощью Google Analytics, то точная передача параметра ClientId — один из ключевых пунктов.

Именно с помощью него мы потом привязываем продажи в вашей CRM (CMS) к конкретному посетителю сайта и можем видеть какие рекламные каналы дали реальные покупки.

Упрощенно говоря: Если в столбце «Сеансы» отображается, например, 70% сеансов, то это означает, что в 30% случаев мы не сможем привязать сделанную Продажу к конкретному Посетителю и статистика в Google Analytics будет не точной.

Это не совсем точная формулировка, но суть она отражает полностью.

Что мы обычно делаем

1. Добавляем код отслеживания только в виде «Пользовательский HTML».

2. Используем немного модифицированный код счётчика Universal Analytics:

<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','https://www.google-analytics.com/analytics.js','ga');

//Здесь в строке надо указать ваш номер счётчика Google
ga('create', 'UA-XXXXXX-X', 'auto');
function getCookie(name) {
	var matches = document.cookie.match(new RegExp(
        "(?:^|; )" + name.replace(/([.$?*|{}()[]\/+^])/g, '\$1') + "=([^;]*)"
        ));
	return matches ? decodeURIComponent(matches[1]) : '(not_set)';
}

/*dimension1 - заменить на Специальный параметр, который вы добавили
в настройках вашего Ресурса счётчика Google. В этот параметр передаём
clientId посетителя */
ga(function (tracker) {
	client_id = tracker.get('clientId');
	client_id = client_id ? client_id : getCookie('_ga');
	tracker.set('dimension1', client_id);
});

/*Через 15 секунд после загрузки страницы отправляем событие, чтобы в
счётчике не было завышенного показателя отказов. Показатель отказов в идеале
будет совпадать с данными в Яндекс.Метрике */
setTimeout(function(){
ga('send', 'event', 'Новый посетитель', location.pathname);
}, 15000); 

ga('send', 'pageview');
</script>

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

3. В коде счётчика помимо передачи ClientId заодно передаем событие «Новый посетитель», оно срабатывает через 15 секунд после открытия страницы посетителем.

Вещь простая, но нужная. Помогает скорректировать показатель отказов в отчетах Google Analytics. Можно реализовать в GTM и другим способом, через триггер типа «Таймер», но зачем плодить сущности :0)

После этого, цифры по «Отказам», «Глубине просмотра» и «Времени на сайте» в Google Analytics и Яндекс.Метрика начинают совпадать (отклонения в районе 1-2%).

Back To Top