Установка счетчика на AJAX-, SPA-, Flash-сайтах
Для корректной работы счетчика на AJAX-, SPA-, Flash-сайтах необходимо выполнить следующие шаги:
Получить и установить код счетчика на сайт, как описано в других статьях помощи.
Определить случаи и события, которые необходимо рассматривать как отдельный просмотр страницы или достижение цели.
Также необходимо определить url и referrer для этого просмотра. По умолчанию будут использованы текущие url из
location.href
и referrer изdocument.referrer
.Вставить дополнительный код в те места кода, где инициируется новый просмотр страницы. Для этого необходимо вызвать метод
pageView
илиreachGoal
для объекта_tmr
для отправки нового просмотра страницы или достидение цели, соответственно.
Вызов метода для AJAX-сайтов (нужно взять только один вариант в зависимости от отправки url и referrer):
_tmr.pageView({ id: "ID счетчика" });
или с url
_tmr.pageView({ id: "ID счетчика", url: "URL" });
или с url и referrer
_tmr.pageView({ id: "ID счетчика", url: "URL", referrer: "REFERRER" });
Если вы не уверены, что на момент вызова этого кода счетчик уже вставлен на странице и загружен, можно использовать более безопасный вариант отправки хита просмотра страницы:
var _tmr = window._tmr || (window._tmr = []);
_tmr.push({ id: "36383", type: "pageView", url: "URL" });
Для SPA-сайтов чаще всего существует метод в который нужно вставить код аналогичный коду для AJAX-сайтов. Например, в AngularJS можно использовать обработчики $viewContentLoaded
или $routeChangeSuccess
function MyCtrl($scope, $location, $window) {
$scope.$on('$viewContentLoaded', function(event) {
$window._tmr.push({id:"ID счетчика", type: "pageview", url: $location.url() });
});
}
или
app.run(function ($rootScope, $location) {
$rootScope.$on('$routeChangeSuccess', function(){
_tmr.push({id:"ID счетчика", type: "pageview", url: $location.url() });
});
});
Если вы используете GTM для вставки кода, и ваш AJAX-, SPA-сайт меняет урл страницы при новом просмотре, то вместо вставки вышеописанного кода вы можете для контейнера помимо триггера “Просмотр страницы” указать триггер “Изменение в истории”.
Вызов метода для Flash-сайтов на ActionScript 2 (версия Flash меньше 9.0):
getURL("javascript:_tmr.pageView({id: \"ID счетчика\", url: \"URL\" })");
Вызов метода для Flash-сайтов на ActionScript 3 (версия Flash 9.0 и выше):
navigateToURL(new URLRequest("javascript:_tmr.pageView({id: \"ID счетчика\", url: \"URL\" })"), "_self");