Как отслеживать несколько учетных записей, используя 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 ^^^^^^^^^^^^