如何检查Google Analytics异步代码段是否已经跟踪完网页,然后再重定向用户?
if(gaFinished())
{
....
“gaFinished()”应该是什么?
提前致谢。
或许如果我使用同步的Google代码,我就不必做这些事情——但是是否有最新的同步脚本(因为我找不到一个)。如果可能的话,我更喜欢这样做。
if(gaFinished())
{
....
“gaFinished()”应该是什么?
提前致谢。
或许如果我使用同步的Google代码,我就不必做这些事情——但是是否有最新的同步脚本(因为我找不到一个)。如果可能的话,我更喜欢这样做。
_gaq数组被用作队列,即一旦操作完成,它就会从数组中删除。除了从数组中删除该项之外,当所有操作都被处理完毕时,整个数组似乎也被删除了。考虑到这一点,以下代码应该可以实现您想要的功能:
if (typeof _gaq.length == "undefined" || _gaq.length == 0)
{
....
}
<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']
是否存在。
编辑
像Randy的解决方案一样,window['_gat']
只能告诉您何时初始化跟踪代码...
另一种方法是_gaq._getAsyncTracker()
,它仅在__utm.gif调用后存在。
所以您可以这样做:
var gaFinished = function(){
try {
var pageTracker = _gaq._getAsyncTracker();
reutrn true;
} catch(err) {
return false;
}
};