Google Analytics:未捕获的ReferenceError:未定义_gat

时间:2014-05-19 07:18:06

标签: javascript google-analytics analytics

" _gat未定义"页面加载错误

尝试了来自Uncaught ReferenceError: _gaq is not defined (Google Analytics)的建议,但没有帮助。

这是我的初始代码段:

(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);
})(); 

var pageTracker pageTracker = _gat._createTracker('UA-xxxxxxxx-1'); 

<button onclick="pageTracker._setCustomVar(1,'customvar1', 'value', 3); 
pageTracker._trackPageview();">Fire</button>            

2 个答案:

答案 0 :(得分:1)

这是解决方案(添加延迟):

(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);
})(); 

var pageTracker; 
setTimeout(function(){
    pageTracker = _gat._createTracker('UA-xxxxxxxx-1'); 
    pageTracker._initData(); 
}, 1000); 

<button onclick="pageTracker._setCustomVar(1,'customvar1', 'value', 3); 
pageTracker._trackPageview();">Fire</button>        

在我的测试中,我发现1秒是一个很好的延迟时间 - 任何不到1秒的时间都会产生更高的 _gat undefined 错误的可能性。

答案 1 :(得分:0)

老问题,我知道,但我能够通过将第一个代码段包含在<head>标记中来修复我的“_gat未定义”错误。然后在我要跟踪的页面上包含身体任何位置的第二个片段。

所以这是<head

(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);
})(); 

在您要跟踪的任何页面上显示:

pageTracker = _gat._createTracker('UA-xxxxxxxx-1'); 
pageTracker._trackPageview();