检查Google Analytics是否已(异步)完成跟踪我的页面

检查Google Analytics是否已(异步)完成跟踪我的页面

问题描述:

如何在我(例如)重定向用户之前检查Google Analytics异步代码段是否已完成跟踪网页?检查Google Analytics是否已(异步)完成跟踪我的页面

if(gaFinished()) 
{ 
    .... 

gaFinished()应该是什么?

在此先感谢。

或者,如果我使用的是同步Google代码,则不需要执行任何操作 - 但是有没有最新的同步脚本(因为找不到一个)。我宁愿这样做是可能的。

_gaq数组被用作队列,即一旦动作被执行,它就从数组中移除。除了从数组中移除项目外,看起来整个数组都会在处理完所有操作后被删除。考虑到这一点,下面的代码应该做你要找的内容:

if (typeof _gaq.length == "undefined" || _gaq.length == 0) 
{ 
    .... 
} 
+0

好吧,这看起来很有趣......我只想澄清,这会告诉我,如果分析已加载或已装+注册浏览量(后者是我所追求的)。 – James 2012-03-28 21:40:40

+0

@詹姆斯,请看我修改后的答案,以解释它是如何工作的。 – 2012-03-28 21:42:47

+0

该阵列不可能被删除,因为它可以随时用于推送事件或电子商务交易。 – 2012-03-29 14:19:46

在我使用谷歌提供和支持的(旧)同步段结束:

<script type="text/javascript"> 
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 
</script> 
<script type="text/javascript"> 
try{ 
var pageTracker = _gat._getTracker("UA-xxxxxx-x"); 
pageTracker._trackPageview(); 
} catch(err) {} 
</script> 

这将只允许脚本在完成跟踪后在页面的下方执行。

您可以检查是否存在window['_gat']

编辑

像兰迪解决方案,window['_gat']只能告诉你,当跟踪代码已被初始化...

的另一种方法是_gaq._getAsyncTracker(),即__utm.gif电话后只existe。 所以,你可以这样做:

var gaFinished = function(){ 
    try { 
     var pageTracker = _gaq._getAsyncTracker(); 
     reutrn true; 
    } catch(err) { 
     return false; 
    } 
};