Как отслеживать несколько учетных записей, используя NEW analytics.js?

Мне нужно отслеживать просмотр страниц для двух учетных записей на одной странице, используя новый Google Analytics.js. Существует множество руководств и примеров, как это сделать с более старым ga.js. Но все, что я нашел, это страница документации по Google 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','//www.google-analytics.com/analytics.js','ga');
  ga('create', 'UA-XXXXXXXX-3', 'domain.com');
  ga('create', 'UA-ZZZZZZZZ-1', {'name':'b'});
  ga('send', 'pageview');
  ga('b.send', 'pageview');
</script>

Кто-нибудь знает, что не так с моим кодом? Хорошо выглядит для меня по примеру Google.

5 ответов

Решение

Ваш код для отслеживания нескольких учетных записей с использованием analytics.js правильный, я успешно протестировал аналогичный код на своем сайте. Поэтому вам необходимо проверить следующее на наличие возможных ошибок:

1, подтвердите, если обе данные отслеживания отправлены. Например, в chrome, используйте плагин отладчика GA для chrome, а затем в консоли javascript, посмотрите, получаете ли вы нижеприведенную информацию для обоих ваших идентификаторов отслеживания

adSenseId        (&a)   425734287 
apiVersion       (&v)   1 
clientId         (&cid) xx.xx
encoding         (&de)  UTF-8 
flashVersion     (&fl)  11.8
hitType          (&t)   pageview
javaEnabled      (&je)  1 
language         (&ul)  en-us 
location         (&dl)  domain.com 
referrer         (&dr)
screenColors     (&sd)  24-bit
screenResolution (&sr)  1366x768
title            (&dt)  yourdomaintitle 
trackingId       (&tid) UA-XXXXXXXX-3 
viewportSize     (&vp)  1364x361 

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

2. Для второго идентификатора отслеживания убедитесь, что идентификатор отслеживания точно такой же, как в вашем веб-ресурсе GA.

3. Убедитесь, что вы не применили никаких фильтров к соответствующему представлению внутри вашего веб-ресурса, которые могут отфильтровать трафик. Если вы используете некоторые фильтры, посмотрите нефильтрованный вид и посмотрите, видите ли вы попадания в обзоре в реальном времени

Работа с несколькими объектами отслеживания

Чтобы решить эту проблему, вы должны создать объект отслеживания для каждого веб-ресурса, которому вы хотите отправить данные:

ga('create', 'UA-12345-1', 'auto');
ga('create', 'UA-12345-6', 'auto', {'name': 'newTracker'});  // New tracker.

После запуска будут созданы два объекта трекера. Первый трекер будет объектом отслеживания по умолчанию и не будет иметь имени. Второй трекер будет иметь имя newTracker.

Чтобы отправить просмотр страницы с использованием обоих трекеров, вы должны добавить имя трекера к началу команды, а затем точку. Так, например:

ga('send', 'pageview');
ga('newTracker.send', 'pageview'); // Send page view for new tracker

https://developers.google.com/analytics/devguides/collection/analyticsjs/creating-trackers

С тех пор это было упрощено с использованием четвертого аргумента - обновлено Google 15 декабря 2015 года.

ga('create', 'UA-XXXXX-Y', 'auto');
ga('create', 'UA-XXXXX-Z', 'auto', 'clientTracker');
ga('send', 'pageview');
ga('clientTracker.send', 'pageview');

Я знаю, что это старый ответ, но так как я не видел, чтобы кто-то упоминал об этом решении для одновременной отправки на обе учетные записи, я думал, что поделюсь им...

Использование нескольких трекеров это путь, но если вы хотите всегда использовать обе учетные записи, переопределите ga функционировать так:

ga('create', 'UA-XXXXXXXX-1', {
    'name': 'myCustomTracker',
    'cookieDomain': 'auto'
});
ga('create', 'UA-XXXXXXXX-2', 'auto');

ga(function () { //Wait for Analytics to be fully loaded
    var oldGa = ga;
    ga = function () { //Override ga function to call both trackers
        if (arguments && arguments.length > 0) {
            oldGa.apply(null, arguments);
            arguments[0] = "myCustomTracker." + arguments[0]; //Edit first argument to call second tracker.
            oldGa.apply(null, arguments);
        }
    };

    ga('send', 'pageview'); //Perform page view on both trackers at once.
});

Как это вы сможете позвонить gaработает как раньше, передавая данные на оба трекера одновременно!

В соответствии с примером на странице документации по Google Analytics вы не должны делать:

ga('create', 'UA-XXXXXXXX-3', 'auto');
ga('create', 'UA-ZZZZZZZZ-1', 'auto', {'name':'b'});
// note this last argument            ^^^^^^^^^^^^
Другие вопросы по тегам