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'}
这一切都得到谷歌好,但在分析,它跟踪页面视图作为一个独特的页面访问,并没有跟踪用户的访问。所以我的分析有点无用,因为它看起来像我有更多的访问量比我真正做的更多,并且是一个荒谬的跳出率。
有什么我失踪,将解决这个问题,并使其跟踪正常的分析安装页面浏览量?
也许这与设置'that.ga'元素的方式有关。它必须是一个cookie问题(谷歌没有得到cookie,所以所有的访问都是新的访问)。尝试从那里调试。 – Frankie
弗兰基 - 我认为你是对的。我通过