Как отслеживать якорные теги с помощью Google Analytics
Я пытаюсь отслеживать клики через 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()
, или может быть какая-то другая причина (кроме того, что никто не нажал на ссылки!)?
6 ответов
по умолчанию Google Analytics отключает отслеживание якорь теги. Чтобы включить его для устаревшего кода отслеживания, используйте следующий формат:
_uanchor = 1;
urchinTracker(val);
установка значения переменной _uanchor
является эквивалентом вызова метода _setAllowAnchor
при использовании последней базы кода GA. (Вы найдете подробное сравнение в Руководство По Миграции Кода Отслеживания Google Analytics - эта ссылка устарела).
метод _setAllowAnchor
описан на the Справочный Сайт Google.
короче говоря, Google Analytics не может отслеживать ссылки на странице, содержащие символ"#". Щелчок по индексу.html#foo рассматривается просто как щелчок по индексу.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 в качестве хэш-значений, а не send код хэш-значение.из руководства цитирует в ответе Терека Габора установка
_uanchor
To one имеет следующие эффекты:если включено, использует
#
вместо?
отделить запрос stem из строки запросаэто в разделе "Отслеживание кампании".
-
ответ Роба Найта работает отлично, но я сделал небольшую модификацию. В псевдо-коде:
if (href contains ?) { href = href.replace('#', '&'); } else { href = href.replace('#', '?'); }
не уверен, что это действительно имеет значение для GA, чтобы иметь URL, как foo.html&bar=baz
но мне просто показалось, что это чище.
https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiCampaignTracking
_gaq.push(['_setAllowAnchor', true]);