2013-10-19 165 views
2

我目前正在玩谷歌分析事件跟蹤,可以看到一些插件漂浮,但我試圖看看我可以把東西放在一起,這將是非常通用和簡單使用。使用jQuery的谷歌分析事件跟蹤表單提交

<script> 
$("form").submit(function(){ 
    _gaq.push(['_trackEvent', $(this).attr('name'), 'Form Submission', 'The-form-name',, false]); 
}); 
</script> 

我想如果我有幾個代碼我的網頁這樣,當提交表單時,我可以跟蹤圍繞揮之不去這些簡單的片斷,以及利用形式的名稱和形式的ID,我可以看到在提交時。

我想我可以使用這個簡單的方法來跟蹤鏈接點擊等,但只是想知道是否有人做過這樣的事情,並會有任何建議,這是否是一種可靠的跟蹤谷歌分析事件的方法。

我之所以這麼做是因爲我會在網站上動態生成一切,大多數標籤都會將id關聯到它們,所以這樣我不需要直接將它們添加到html中通過使用onclick事件處理程序和類似的東西。

感謝您的任何意見

回答

4

你能做到這樣,但你將不得不推遲形式,以留出時間爲trackEvent進行提交。否則表單將立即提交,阻止trackEvent完成並被髮送出去。這同樣適用於跟蹤點擊次數。

這應該工作:

<script> 
$("form").submit(function(e){ 
    e.preventDefault();//prevent the form from being submitted 
    _gaq.push(['_trackEvent', $(this).attr('name'), 'Form Submission', 'The-form-name',, false]); 
    $(this).off('submit');//prevent 'this' jquery submit event recursion 
    setTimeout(function(){//delay the form submit 
     e.currentTarget.submit();//submit form after the track event had time to complete 
    }, 350);//350 ms 
}); 
</script> 

注意:雖然這保證了您的表格將被提交,但不保證提交事件將被跟蹤的100%的時間。但 200ms 350ms應該足夠好,可以正確跟蹤90%以上。 (編輯:我考慮了延遲高延時蜂窩網絡的延遲)。

在低延遲連接的表格onsubmit的此特定示例中。完整的Google廣告跟蹤器腳本最多可以創建4個請求,每個請求的範圍爲30-40毫秒(低於延遲350毫秒)。從技術上講,您只需考慮發送到Google的第一個請求的延遲,以便將事件保存到Google Analytics中。 Network tab in Chromium developer tools

其他唯一的辦法,以確保100%的情況下得到了跟蹤,是使用匹配回調截至描述:https://stackoverflow.com/a/12461558/1647538 然而,匹配回調的需要注意的是,它可以防止表單被提交,因此Hit Callback方法在這裏並不適用。

+3

你總是可以將兩者結合起來。將hitCallback與超時作爲後備 - 如果它在1-2秒內沒有返回任何內容,則強制重定向。 – MisterPhilip

+0

@MisterPhilip是的,我意識到這一點。但這個問題的目的是簡單而直接的使用。所以我不想帶來那些不必要的附加併發症。 – hexalys

+1

@nemo我不完全在你的編輯上。就技術而言,就GA而言,跟蹤事件在技術上只有一個要求。您展示的其他人,似乎是從其他Google廣告腳本並行生成的。即4個請求不是關於這個問題的標準。此外,只需要發送跟蹤請求。如果你得到跟蹤圖像或沒有迴應,這並不重要。所以延遲只是一種方法。我做了重新編輯來解決這個問題,同時保持你的榜樣。 – hexalys