2012-03-28 62 views
3

如何在我(例如)重定向用戶之前檢查Google Analytics異步代碼段是否已完成跟蹤網頁?檢查Google Analytics是否已(異步)完成跟蹤我的頁面

if(gaFinished()) 
{ 
    .... 

gaFinished()應該是什麼?

在此先感謝。

或者,如果我使用的是同步Google代碼,則不需要執行任何操作 - 但是有沒有最新的同步腳本(因爲找不到一個)。我寧願這樣做是可能的。

回答

0

_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

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> 

這將只允許腳本在完成跟蹤後在頁面的下方執行。

0

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

編輯

像蘭迪解決方案,window['_gat']只能告訴你,當跟蹤代碼已被初始化...

的另一種方法是_gaq._getAsyncTracker(),即__utm.gif電話後只existe。 所以,你可以這樣做:

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