Как отслеживать теги привязки с помощью Google Analytics

StackOverflow https://stackoverflow.com/questions/1211507

  •  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 , но он мне показался чище.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top