Как использовать переменную в пользовательской переменной Google Analytics - PullRequest
2 голосов
/ 27 октября 2010

Я пытаюсь отследить определенный раздел ссылок на моей странице. Я хочу знать, что нажимается, поэтому я пытаюсь настроить обработчик щелчков с помощью jQuery, чтобы зарегистрировать пользовательскую переменную в Google Analytics, но она не работает. Вот мой код:

  <!--Google Analytics-->
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-18698622-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

$(function(){
$('a.link-item.bullet').click(function(){
_gaq.push(['_setCustomVar', 1, 'National Link', $(this).text(), 2]);
});
});
</script>

Прошло около 3 или 4 дней, и я еще не видел регистра пользовательских переменных. Может быть, я не могу включить переменную ($ (this) .text ()) в пользовательскую переменную? Кто-нибудь пробовал это раньше?

Ответы [ 3 ]

7 голосов
/ 27 октября 2010

Похоже, вам просто нужно изменить порядок пары строк - в частности, ваша Пользовательская переменная должна быть установлена ​​ до _trackPageview называется .

Вызов trackPageview () объединяет аналитические данные из различных источников (файлы cookie, панель местоположения, заголовки запросов, DOM), объединяет их и отправляет на серверы Google Analytics в заголовке запроса (для _utm.gif). Поэтому, если ваша пользовательская переменная не установлена ​​при вызове этой функции, она не регистрируется GA.

В этом случае значение вашей пользовательской переменной вызывается событием (например, пользователь нажимает кнопку на странице), поэтому просто вызывайте _setCustomVar () при возникновении события. Например,

<input type="button" name="National Link", value=[dynamically set], onclick="my_function()", 2>

* my_function (), конечно, вызывает _setcustomVar *

1 голос
/ 29 октября 2010

Я согласен, что для вашей ситуации отслеживание событий действительно лучше. (Пользователь может зайти на страницу, не щелкая ссылку, или, может быть, щелкнет несколько раз?). Пользовательские переменные удобны, если вы заранее знаете что-то о пользователе, но, как указывает Дуг, вы должны установить их перед вызовом _trackPageview.

<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
  _gaq.push(['_setCustomVar', 1, 'name-goes-here', 'value-goes-here']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>

Что касается примечания, существует известная ошибка, связанная с использованием пользовательских переменных при отслеживании символов, которые необходимо кодировать в URL (http://www.google.com/support/forum/p/Google%20Analytics/thread?tid=2cdb3ec0be32e078&hl=en).

В вашем случае «Национальное событие» будет сохранено как «Национальное событие% 20E» с использованием пользовательских переменных, что тоже не идеально.

Если все сделано правильно, вы можете использовать как собственные переменные, так и отслеживание событий в одном приложении, и создать собственный отчет, который ссылается на оба источника данных. (http://code.google.com/apis/analytics/docs/gdata/gdataReferenceValidCombos.html).

0 голосов
/ 29 октября 2010

Для моих целей было лучше использовать отслеживание событий, а не пользовательскую переменную. Для отслеживания кликов по определенному набору ссылок я мог бы просто использовать следующий код:

$(function(){
$('a.link-item.bullet').click(function(){
_gaq.push(['_trackEvent', 'National Link Event', $(this).text()]);
});
});

Я не уверен, почему это работает, а не функция пользовательских переменных; должно быть, что _setCustomVar зависит от функции _trackPageview, а _trackEvent - нет. Этот код появляется после функции _trackPageview, и он прекрасно работает: при щелчке событие отображается как «Событие национальной ссылки» с действием, названным в честь текста ссылки.

Я до сих пор понимаю, почему было бы полезно использовать переменные в функции _setCustomVar, и я до сих пор не понял этого, но у меня пока нет личного использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...