2011-06-24 20 views
0

在单个页面的webapp上,我实现了谷歌异步跟踪器。我创建了一个类可以做一些简单的调用,以便能够在整个网站跟踪用户:谷歌异步跟踪器记录每个“页面视图”的新访问

var GoogleAnalytics = { 
    config : { 
     'account':'UA-XXXXXXXX-X' 
    }, 
    init : function(){ 
     var _gaq = _gaq || []; 
     this.tracker = _gaq; 
     _gaq.push(['_setAccount',this.config.account]); 
     (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); 
      })(); 
    }, 
    doAsyncRequest : function(arr){ 
     if(!this.tracker) this.init(); 
     this.tracker.push(arr); 
    }, 
    trackPageView : function(url){ 
     var args = ['_trackPageview']; 
     if(url) args.push(url); 
     this.doAsyncRequest(args); 
    }, 
    trackEvent : function(category,action,label,value){ 
     var args = ['_trackEvent',category,action]; 
     if(label) args.push(label); 
     if(value) args.push(value); 
     this.doAsyncRequest(args); 
    }, 
    trackCustom : function(index,name,value,scope){ 
     var args = ['_setCustomVar',index,name,value]; 
     if(scope) args.push(scope); 
     this.doAsyncRequest(args); 
    } 
} 

当应用程序被加载,我创建的上面,像这样一个实例:

var that = this; 
require(['js/plugins/GoogleAnalytics'],function(ga){ that.ga = GoogleAnalytics; }); 

它使用require.js加载上面的脚本,并将this.ga赋值给它。

然后,试图跟踪一个页面视图时,我用这个:

var that = this 
$.each(payload.events,function(index,event){ 
    if(event.eventType == 'page'){ 
     var pagePath = event.currentURL.replace(/^(https?:\/\/[^\/]+)/i,''); 
     that.ga.trackPageView(pagePath); 
    } else { 
     that.ga.trackEvent(event.eventType,event.elementClass); 
    } 
}); 

payload.events只包含事件的数组。一个事件看起来像这样的页面视图:{'eventType':'page','currentURL':'http://www.testurl.com/#!/testing/test/test'}

这一切都得到谷歌好,但在分析,它跟踪页面视图作为一个独特的页面访问,并没有跟踪用户的访问。所以我的分析有点无用,因为它看起来像我有更多的访问量比我真正做的更多,并且是一个荒谬的跳出率。

有什么我失踪,将解决这个问题,并使其跟踪正常的分析安装页面浏览量?

+0

也许这与设置'that.ga'元素的方式有关。它必须是一个cookie问题(谷歌没有得到cookie,所以所有的访问都是新的访问)。尝试从那里调试。 – Frankie

+1

弗兰基 - 我认为你是对的。我通过