Я пытался просмотреть множество тем вокруг GA, и мне кажется, что я сделал то, что требовалось. Мой сайт состоит из HTML5 и angular.js, страница структурирована примерно следующим образом (через ng-include)
index.html
|-header
--|-navigation
|-content
|-footer
при нажатии на ссылку из панели навигации содержимое изменится (частичная страница в angular), верхний и нижний колонтитулы останутся прежними.
Последний тег скрипта в моем ‹ head > выглядит следующим образом (внутри index.html)
<script type="text/javascript">
var globalLanguage = 'en';
// GA tracking variable
var _gaq = [['_setAccount', 'UA-XXXXXXXX-X'], ['_trackPageview']];
</script>
и в нижней части index.html, перед закрывающим тегом ‹/body >:
<script type="text/javascript">
(function(d, t) {
var g = d.createElement(t), s = d.getElementsByTagName(t)[0];
g.async = 1;
g.src = '//www.google-analytics.com/ga.js';
g.type = 'text/javascript';
s.parentNode.insertBefore(g, s);
}(document, 'script'));
</script>
Все мои функции контроллера angular вызывают общую функцию, как описано в разделе Tracking Google Analytics. Просмотры страниц с помощью Angular.js
function gaqPageView($scope, $location, $window) {
console.log('triggering google analytics');
$scope.$on('$viewContentLoaded', function(event) {
console.log('event triggered, tracking: ' + $location.path());
$window._gaq.push([ '_trackPageview', $location.path() ]);
});
}
Я вижу операторы журнала консоли, в консоли тоже нет ошибок. Когда я распечатываю содержимое _gaq, я получаю массив, который растет по мере того, как я перемещаюсь по странице (что означает, что мой вызов _gaq.push работает нормально).
Однако в моем сетевом вызове (в инструменте разработчика Chrome) я не вижу никакого вызова _utm.gif в Google Analytics. (Основы отладки кода Google Analytics: отладчик GA Chrome и другие инструменты).
Что мне здесь не хватает? похоже, что аналитика Google не запускает событие и не сообщает о нем?
Редактировать: я почти уверен, что здесь я глуп, сама переменная _gaq представляет собой обычный массив javascript, поэтому, конечно, _gaq.push работает просто отлично. Но чего мне не хватает, чтобы заставить Google Analytics включиться и начать отправлять содержимое этого _gaq?