четверг, 14 марта 2013 г.

Несколько счетчиков GA на сайте

Сегодняшний пост о том, стоит ли устанавливать более одного счетичка GA на сайт и, если стоит, то как это сделать правильно.

Два кода Analytics на сайте - хорошо это или плохо


Довольно часто у пользователей Google Analytics возникает потребность в установке нескольких счетчиков GA на сайте. Без лишней надобности так делать не стоит, потому что один счетчик всегда работает лучше, чем два. Более того, счетчик, который стоит выше в коде сайта, будет работать лучше второго счетчика, который стоит ниже, потому что он будет обрабатываться первым. Кто первый - того и тапки.

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

Еще бывает, что владельцу сайта не хватает 50 профилей, доступных для создания в стандартном аккаунте Analytics по умолчанию. 50 профилей - это более чем достаточно для сайта малого или среднего размера. Если вам мало - то, скорее всего, вы - очень крупный сайт, который рекламируется в системах контекстной рекламы - в Яндексе и в Google. И у вас, скорее всего, есть персональный менеджер Google. Просто попросите своего менеджера увеличить лимит профилей в аккаунте. Максимально возможное количество профилей в GA - 200.  

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

Например, у вас есть свой счетчик на сайте, а ваши партнеры просят вас установить их счетчик Analytics и вы никак не можете им отказать.

Или в одном аккаунте вы хотите видеть общие данные, а в другом конструируете что-нибудь особенное - что-то такое, что вы либо не хотите мешать с основными данными, либо принципиально не желаете кому-то показывать.

Для этого существует способ сбора сдвоенного счетчика Google Analytics:

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-65432-1']);
_gaq.push(['_trackPageview']);
_gaq.push(['t2._setAccount', 'UA-65432-2']);
_gaq.push(['t2._trackPageview']);

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

Можно либо сделать сдвоенный код:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-X']);
  _gaq.push(['_trackPageview']);
  _gaq.push(['t2._setAccount', 'UA-YYYYY-Y']);
  _gaq.push(['t2._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 type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-X']);
  _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 type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['t2._setAccount', 'UA-YYYYY-Y']);
  _gaq.push(['t2._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);
  })();

Как вам больше нравится.

Вот таким образом два счетчика Google Analytics не будут конфликтовать друг с другом и данные в них будут более-менее корректными.

Важно! Если в коде сайта используются онклик трекеры с вызовами событий (_trackEvent) или виртуальных просмотров страниц (_trackPageview) - они должны настраиваться в соответствии с тем, к какому счетчику они принадлежат. Например, вызов события _trackEvent будет отсылать события в первый счетчик. Второй счетчик с префиксом t2. не будет получать отчетность по этому событию.

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

  1. А как быть в условиях, когда используется GTM и необходимо установить 2 счетчика?

    ОтветитьУдалить
  2. Анонимный27 июля 2015 г., 17:53

    Такая же проблема - Установлен код GTM и нужно поставить еще один код. Что можно сделать?

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