2011-10-25 41 views
1

我在我的網站上的很多不同的地方(通過腳本,閃存等)調用_gaq.push。我也建立了我自己的本地跟蹤服務。我可以創建一個函數,在我每次調用_gaq.push時調用我的代碼,而不是在當前代碼中的同一時刻調用我的服務。掛鉤_gaq.push - 谷歌分析

如:

if(_gaq.push is called){ 
    $.get('http://mydomain.com/tracking_pixel.gif'); 
} 

回答

6

在變量中捕獲_gaq.push函數,然後用您自己的調用原函數的函數覆蓋它,然後調用您的代碼。然後在覆蓋它之後調用_gaq.push的任何東西都會調用它們。例如:

_gaq.basePush = _gaq.push;       //capture the original 
_gaq.push = function(/* params? */) {    //override it 
    _gaq.basePush(/* params? */);     //call the original 
    $.get('http://mydomain.com/tracking_pixel.gif'); //call your function 
}; 
+0

簡單,完美。 – bradley

+0

嗯,這可能應該設置爲在ga.js加載(並且'_gaq'已經從數組轉換爲特殊對象)之後運行*。否則會嚴重破壞Google Analytics(分析)。你可以通過在'_gaq.push(function(){...})中包含這麼多的代碼來實現這一點;' – Yahel

+0

輝煌。一直在尋找一種方式來做到這一點! – Shermozle

2

關於反向模式幹什麼?

function doPush(){ 
    _gaq.push; //Do your push here 
    $.get('http://mydomain.com/tracking_pixel.gif'); 
} 

我忽略瞭如何使用_gaq.push,但你可以參數化永諾傳遞doPush您需要的參數,並相應地調用_gaq.push

+0

我喜歡這一個更好,因爲如果ga.js加載後,你已經定義了它贏得的功能;噸得到重寫。 – Eduardo