jquery Заполнить _link () для Google Analytics Асинхронный синтаксис (междоменный) - PullRequest
1 голос
/ 04 мая 2011

Чтобы отвлечься от того, что обсуждалось здесь , я хочу обновить существующий плагин, чтобы помочь мне переключиться на "Асинхронный синтаксис" Google Analytic, чтобы события onclick могли применяться к нашему исходящему ссылки для междоменного отслеживания, как показано здесь:

<a href="http://example.com/test.html" onclick="_gaq.push(['_link', 'http://example.com/test.html']); return false;">click me</a>

Это моя текущая реализация для отслеживания исходящих ссылок с помощью jquery, которая, как я надеялся, может быть изменена для поддержки "Асинхронного синтаксиса" Google Analytic

$(document).ready(function(){
    $('a:not(.popupwindow)').filter(function() {
            var theHref = this;
            if (theHref.hostname && theHref.hostname !== location.hostname) {
                $(theHref).not(".noAutoIcon").addClass("offSite");
                $(theHref).not(".noAutoLink").attr('target','_blank').bind('click keypress', function(event) {
                    var code=event.charCode || event.keyCode;
                    if (!code || (code && code == 13)) {
                        if(pageTracker){
                            var fixedLink = this.href;
                            fixedLink = fixedLink.replace(/https?:\/\/(.*)/,"$1");
                            fixedLink = '/outgoing/' + fixedLink;
                            pageTracker._trackPageview(fixedLink);
                        };
                    };
                });
            };
        });
});

Когда пользователь должен щелкнуть от example.com до mysite.com, при этом оба сайта мои, информация о файлах cookie будет передана _link, и все это будет считаться одним посещением.

Это наш текущий код Google Analytics:

    try {
    var pageTracker = _gat._getTracker("UA-111222333-1");
    pageTracker._setDomainName(".example.com");
    pageTracker._setAllowLinker(true);
    pageTracker._setAllowHash(false); 
    pageTracker._trackPageview();
    } catch(err) {}

Это мой новый Асинхронный код Google Analytics

var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-111222333-1']);
  _gaq.push(['_setXDomain', {  
  domainName: '.example.com',
  include: /(firstsite.com|secondsite.com)/
  }]);
  _gaq.push(['_trackOutbound']);
  _gaq.push(['_trackDownload']);
  _gaq.push(['_trackMailTo']);
  _gaq.push(['_trackError']);
  _gaq.push(['_formAnalysis',{minFields: 3}]);
  _gaq.push(['_setDayOfWeek']);
  _gaq.push(['_trackPageview']);

Мой сайт работает под управлением CMS, и добавление событий onclick к ссылкам вручную невозможно, поэтому мне нужно сделать это с помощью jquery, поэтому я надеялся воспользоваться преимуществами нашего существующего отслеживания исходящих ссылок jquery и просто изменить его. .

1 Ответ

0 голосов
/ 09 мая 2011

Я не вижу старый _link звонок, но я предполагаю, что он сразу после _trackPageview.Миграция довольно проста.

$(document).ready(function(){
    $('a:not(.popupwindow)').filter(function() {
        var theHref = this;
        if (theHref.hostname && theHref.hostname !== location.hostname) {
            $(theHref).not(".noAutoIcon").addClass("offSite");
            $(theHref).not(".noAutoLink").attr('target','_blank').bind('click keypress', function(event) {
                var code=event.charCode || event.keyCode;
                if (!code || (code && code == 13)) {
                    var fixedLink = this.href;
                    fixedLink = fixedLink.replace(/https?:\/\/(.*)/,"$1");
                    fixedLink = '/outgoing/' + fixedLink;
                    _gaq.push(['_trackPageview', fixedLink]);
                    _gaq.push(['_link', this.href]);
                };
            });
        };
    });
});
...