используя _gaq asynch в замыканиях - PullRequest
4 голосов
/ 02 сентября 2010

При использовании

var _gaq = _gaq || [];

в теге скрипта, что потребуется для поддержки этого в замыкании для добавления асинхронных запросов аналитики.если _gaq еще не определен, он сможет найти этот массив для выполнения элементов, помещенных в него, как только он будет готов.поскольку _gaq var не является публичным, я думаю, он не будет работать.Есть обходные пути?

Ответы [ 3 ]

5 голосов
/ 02 сентября 2010

Вы можете сделать что-то вроде:

(function (window) {
    var g = window._gaq || (window._gaq = []);
    g.push(['_setAccount', 'UA-XXXXX-X']);
    g.push(['_trackPageview']);
})(this);

Если выполняется в глобальной области видимости, это поможет.

1 голос
/ 05 марта 2013

Это работает (используя нотацию jQuery для document.ready):

$( function() {
    $('.foobar').on('click', function() {
        var _gaq = window._gaq || (window._gaq = []);
        _gaq.push(['_trackEvent', 'category', 'action', 'label']);
    });
});
0 голосов
/ 12 июля 2013

Я не знаю, поможет ли это другим, ищущим ответ, но, возможно, это поможет.У меня была проблема с _gaq, который не был определен.Я понял, что мой фрагмент GA был в конце страницы прямо перед конечным тегом body.Я переместил его сразу после начала тега body, как сейчас предлагает Google.У меня все еще была эта проблема неопределенного _gaq.Помещение

var _gaq = window._gaq || (window._gaq = []);

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

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