Как отслеживать теги привязки с помощью Google Analytics - PullRequest
8 голосов
/ 31 июля 2009

Я пытаюсь отслеживать клики через Google Analytics, которые не приводят к новому запросу. В частности, клики по вкладкам, которые создаются с помощью виджета jQuery UI tabs . Я использую старую версию кода ('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 ]

9 голосов
/ 14 августа 2009

По умолчанию Google Analytics отключает отслеживание тегов привязки . Чтобы включить его для устаревшего кода отслеживания, используйте следующую форму:

_uanchor = 1;
urchinTracker(val);

Установка значения переменной _uanchor является эквивалентом вызова метода _setAllowAnchor при использовании самой последней базы кода GA. (Подробное сравнение вы найдете в Руководстве по миграции кода отслеживания Google Analytics - , эта ссылка устарела ).

Метод _setAllowAnchor описан на Справочном сайте Google .

3 голосов
/ 10 августа 2009

Короче говоря, 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.

1 голос
/ 11 апреля 2013

Если вы хотите отслеживать клики привязки на странице, глобально будет работать следующее:

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
 });
0 голосов
/ 22 июля 2013
0 голосов
/ 05 ноября 2009
  1. Я пытался использовать метод _uanchor = 1;. Это не работает. Причина, по которой он не работает, заключается в том, что он предназначен для отправки параметров Google Analytics в виде хеш-значений, а не для отправки вашего хеш-значения.

    Из руководства, указанного в ответе Тёрока Габора , установка _uanchor на один имеет следующие эффекты:

    При включении использует # вместо значения по умолчанию ? для отделения основы запроса от строки запроса

    Это в разделе «Отслеживание кампании».

  2. Ответ Роба Найта отлично работает, но я внес небольшую модификацию. В псевдокоде:

    if (href contains ?) {
    href = href.replace('#', '&');
    } else {
    href = href.replace('#', '?');
    }
    

Не уверен, что для GA действительно важно иметь URL вроде foo.html&bar=baz, но мне он показался чище.

0 голосов
/ 17 августа 2009

Звучит так, как вы хотите Отслеживание событий Google Analytics в примерах используется мусор onclick = "", но держу пари, что вы, вероятно, можете связать их и с событиями нажатия jQuery.

...