2013-10-07 148 views
0

我有一個基本的異步谷歌分析代碼trackEvent:谷歌Analytics(分析)不能在功能

var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-XXXXXX']); 
    _gaq.push(['_trackPageview']); 
    (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); 
})(); 

低於,我聽一個點擊,並希望與分析跟蹤它:

$('#content').on("click", "#btn", function(e) { 
    var elem = $(this); 
    this.form.target = '_self'; 
    _gaq.push(['_trackEvent', 'download', elem.text()]); 
    return true; 
}); 

點擊被觸發,我可以看到_gaq被定義爲
但是不知何故,事件永遠不會被跟蹤?
我讀https://developers.google.com/analytics/devguides/collection/gajs/?hl=fr
和型動物堆棧溢出的答案,
但我不發現我缺少的是什麼...

我發現所有的例子,直接把代碼上用onclick在元素上。這是強制性的還是我可以像我一樣將代碼放入函數中?

回答

0

_trackEvent通過向Google Analytics服務器請求跟蹤像素來記錄數據,數據作爲請求中的參數。如果瀏覽器開始處理新頁面(由於遵循鏈接或提交表單),則可以取消圖像請求,並且不記錄數據。

Google的測試版Universal Analytics(analytics.js)允許使用在發送數據時執行的hitCallback函數。

ga.js通常的模式是在鏈接或提交表單之前添加一個輕微的延遲(150毫秒)。

嘗試像

$('#content').on("click", "#btn", function(e) { 
    var elem = $(this); 
    _gaq.push(['_trackEvent', 'download', elem.text()]); 
    var form = this.form; 
    form.target = '_self'; 
    setTimeout(function(){ form.submit(); }, 150); 
    e.preventDefault(); 

});

+0

Thx並祝賀你的4k! –