Цели google analytics и отправка событий через js

Цели google analytics и отправка событий через js

Нужно было установить на один сайт отслеживание целей в google analytics и яндекс метрика. Делать подобное иногда случается, но обычно достаточно повесить onclick/onsubmit на кнопку, форму, здесь же отправка события должна происходить после отработки некого скрипта.

с метрикой все решилось нормально, через yaCounterXXXXXXXX.reachGoal (''), с аналитикой же возникли проблемы.

Цель настроена следующим образом: установка цели - собственная, тип - событие, условия события:

настройки цели гугл аналитика

Для отслеживания был установлен стандартный код аналитики, в футере. Данные о просмотрах собирались нормально.

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXX-XX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-XXXXXX-XX');
</script>

Для передачи события использован вот такой вариант:

**********
success: function (json) {
**********
_gaq.push(['_trackEvent', 'order', 'сlick']);
yaCounterXXXXXX.reachGoal ('order');
}
**********

Сразу вылезла ошибка, Uncaught ReferenceError: _gaq is not defined..., от которой удалось избавиться небольшими изменениями в коде отслеживания:

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXX-XX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-XXXXXX-XX');
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-XX']);
_gaq.push(['_trackPageview']);
</script>

Но цели по прежнему не отслеживались. Поискав информацию, обнаружил другой метод отслеживания. Код аналитики переместил в head (иначе не сработает) с заменой на предлагаемый:

<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-XXXXXX-XX', 'auto');
ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>

Для передачи события использовал:

**********
success: function (json) {
**********
ga('send', 'event', 'order', 'click');
yaCounterXXXXXX.reachGoal ('order');
}
**********

После этого все заработало. Также можно использовать такой вариант:

настройки цели гугл аналитика без события

ga('send', 'event', 'order');

Добавить комментарий

Комментарии ()