Отслеживание событий Google Analytics

Я пытаюсь внедрить API отслеживания событий Google в проигрыватель html5, но по какой-то причине он не хочет работать. Вот что я делаю:

var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-myid-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//u/ga_debug.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();


    if (typeof _gaq != undefined){
        _gaq.push(['_trackEvent', 'krusty-player', eventName, 'demo', 1]);
    }

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

console.log(_gaq.push(['_trackEvent', 'krusty-player', eventName]));

я получаю счетчик, который увеличивается на +1 каждый раз, когда вызывается эта часть. тут ошибок нет..

я также пытался использовать:

_trackEvent('krusty-player', eventName);

Это возвращает ошибку "_trackEvent не определен"

Есть идеи, что происходит?


person tk66    schedule 29.08.2012    source источник
comment
Это выглядит хорошо. Правильно ли встречается _trackPageview?   -  person Tchoupi    schedule 29.08.2012
comment
@MathieuImbert нет .. я тоже не вижу запроса на это ..   -  person tk66    schedule 29.08.2012
comment
Какой запрос вы ищете? Это должен быть файл изображения с именем __utm.gif   -  person Tchoupi    schedule 29.08.2012
comment
хорошо, я очищаю консоль, и при запуске события не приходит новый запрос. В любом случае я искал что-то вроде того, что размещено здесь: pranshuarya.com/jaal/Development/   -  person tk66    schedule 29.08.2012
comment
Очень сложно отлаживать без доступа к коду. Является ли ваш сайт общедоступным? Можем ли мы это увидеть?   -  person Tchoupi    schedule 29.08.2012
comment
нет, боюсь, что нет:/ что меня больше всего беспокоит, так это то, что _trackEvent() говорит, что не определено..   -  person tk66    schedule 29.08.2012
comment
давайте продолжим это обсуждение в чате   -  person Tchoupi    schedule 29.08.2012


Ответы (2)


Вы тестируете на локальном хосте или в интрасети? Подробнее см. в разделе GIF-запрос Google Analytics не отправлен.
TLDR: по умолчанию запрос GIF для отслеживания не выполняется для серверов localhost.

Что касается _trackEvent is not defined: _trackEvent() не является отдельной функцией и должна вызываться через _gaq.push.

_gaq.push(['_trackEvent', category, action])

или через объект pageTracker (старый стиль, неасинхронная аналитика)

pageTracker._trackEvent(category, action)
person mike    schedule 29.08.2012
comment
Спасибо! Это решило мою проблему. @ tk66: я чувствую, что это следует принять как ответ ... - person tony722; 05.02.2013
comment
Убедитесь, что у вас установлен асинхронный код отслеживания... developers.google.com/ аналитика/devguides/коллекция/gajs/ - person ATSiem; 14.05.2013

Привяжите действие _gaq.push к событию.

Нравится :

<span onClick="_gaq.push(['_trackEvent', EVENT_NAME, EVENT_ACTION, EVENT_DESCRIPTION]);">Click me</span>

И переименуйте имена заглавных букв с простым/динамически сгенерированным текстом, и это должно работать.

person Cosmin    schedule 29.08.2012
comment
затем просто поместите _gaq.push(['_trackEvent', EVENT_NAME, EVENT_ACTION, EVENT_DESCRIPTION]); в событие клавиатуры ( $('#target').keydown(function() { _gaq.push(['_trackEvent', EVENT_NAME, EVENT_ACTION, EVENT_DESCRIPTION]); }); и, в конце концов, если вы хотите отфильтровать желаемое событие клавиатуры - api.jquery .com/keydown - person Cosmin; 29.08.2012
comment
это большой проект, и структура для событий клавиатуры уже существует ... поэтому я не могу изменить ее. Но разве она не должна работать так же в javascript? - person tk66; 29.08.2012
comment
Да, должно. У меня точно такой же код во всем проекте, и они работают. Извините, я не могу больше помочь. - person Cosmin; 29.08.2012