Ответ 1
Я считаю, что расширение Chrome ненадежно.
Просто запустите глобальную переменную dataLayer
в консоли, чтобы напечатать массив событий. Одним из объектов должно быть ваше событие просмотра страницы.
Вот пример того, как мы его используем:
Примечание: мы не просто используем $location.path()
, а все в URL-адресе после домена. Что включает в себя .search()
и .hash()
.
$location в документах Angular
модули /analytic.js
(function(window, angular) {
'use strict';
angular.module('Analytic.module', ['Analytic.services']).
run(function($rootScope, $window, $location, GoogleTagManager) {
$rootScope.$on('$viewContentLoaded', function() {
var path= $location.path(),
absUrl = $location.absUrl(),
virtualUrl = absUrl.substring(absUrl.indexOf(path));
GoogleTagManager.push({ event: 'virtualPageView', virtualUrl: virtualUrl });
});
});
})(window, window.angular);
Услуги /analytic.js
(function() {
angular.module('Analytic.services', []).
service('GoogleTagManager', function($window) {
this.push = function(data) {
try {
$window.dataLayer.push(data);
} catch (e) {}
};
});
})();
В GTM
Вам понадобятся {{virtualUrl}}
и {{event}}
макросы, которые прослушивают переменные dataLayer с тем же именем.
Вам понадобится тег отслеживания событий Google Analytics с правилом увольнения, который срабатывает, когда {{event}}
равно "virtualPageView". Убедитесь, что вы удалили правило "Все страницы" по умолчанию, которое запустило его при каждой загрузке страницы. Вместо этого вы хотите, чтобы он выполнялся, когда вы dataLayer.push()
событие, которое может произойти несколько раз на обновление страницы.
Тег должен быть настроен с помощью:
- Тип трека == 'Page View'
- Дополнительные настройки > Основная конфигурация > Виртуальный путь страницы == '{{virtualUrl}}'