Как отслеживать теги привязки с помощью Google Analytics
-
06-07-2019 - |
Вопрос
Я пытаюсь отслеживать клики через Google Analytics, которые не приводят к новому запросу. В частности, клики по вкладкам, которые создаются с помощью виджета вкладок jQuery UI . Я использую старую версию кода ('urchin tracker') и пытаюсь регистрировать клики следующим образом:
$('.ui-tabs-nav li a').click(function() {
val = "/tab/" + $(this).attr('href');
// when uncommented, the following line reports, for example:
// /tab/#main
// as expected.
// console.log(val);
res = urchinTracker(val);
});
Тот же метод работает, в другом случае, единственное существенное отличие которого, насколько я могу судить, заключается в отсутствии символа хеш (#) в строке. Этот символ не допускается в строке, отслеживаемой urchinTracker ()
, или может быть какая-то другая причина (кроме того, что никто не нажимал на ссылки!)?
Решение
По умолчанию Google Analytics отключает отслеживание якорные теги . Чтобы включить его для устаревшего кода отслеживания, используйте следующую форму:
_uanchor = 1;
urchinTracker(val);
Установка значения для переменной _uanchor
является эквивалентом вызова метода _setAllowAnchor
при использовании последней базы кода GA. (Подробное сравнение вы найдете в коде отслеживания Google Analytics. Руководство по миграции - эта ссылка устарела ).
Метод _setAllowAnchor
описан в Справочный сайт Google .
Другие советы
Короче говоря, Google Analytics не может отслеживать ссылки на странице, содержащие символ «#». Нажатие на index.html # foo обрабатывается просто как нажатие на index.html, и все после символа «#» игнорируется.
Вы можете выбрать экранирование символа '#':
$('.ui-tabs-nav li a').click(function() {
val = new String("/tab/" + $(this).attr('href')).replace('#', '&');
// when uncommented, the following line reports, for example:
// /tab/#main
// as expected.
// console.log(val);
res = urchinTracker(val);
});
В вашем примере это запишет просмотр страницы для / tab /? main
, который должен хорошо работать с Google Analytics.
Если вы хотите отслеживать клики привязки на странице, глобально будет работать следующее:
window.onhashchange = function() {
_gaq.push(['_trackPageview', location.pathname + location.search + location.hash]);
}
Имейте в виду, что если у вас есть определенные обработчики onclick
, такие как
$('#someid a').click(function(event){
event.preventDefault();
var target = $(this).attr('href');
// some more clever stuff
});
Вам необходимо вручную добавить хеш, чтобы вызвать onhashchange
$('#someid a').click(function(event){
event.preventDefault();
var target = $(this).attr('href');
// triggers onhashchange
location.hash = target;
// some more clever stuff
});
Звучит так, как вы хотите Отслеживание событий Google Analytics примеры используют onclick = " " мусор, но я уверен, что вы могли бы связать их и с событиями кликов jQuery.
Я пытался использовать метод _uanchor = 1;
. Это не работает. Причина, по которой он не работает, заключается в том, что он предназначен для отправки параметров Google Analytics в виде хеш-значений, а не для отправки вашего хеш-значения. Р>
Из руководства, цитируемого в в T & # 246; r & # 246; k G & # 225; ответе Бора , настройка < code> _uanchor to one имеет следующие эффекты:
Когда этот параметр включен, он использует
#
вместо?
по умолчанию для отделения основы запроса от строки запроса
это в разделе "Отслеживание кампании".
Ответ Роба Найта работает нормально, но я внес небольшую модификацию. В псевдокоде:
if (href contains ?) {
href = href.replace('#', '&');
} else {
href = href.replace('#', '?');
}
Не уверен, действительно ли для GA действительно важно иметь URL-адрес типа foo.html & amp; bar = baz
, но он мне показался чище.
_gaq.push(['_setAllowAnchor', true]);