我正在考慮將onclick事件附加到我網站上的內部鏈接,以執行一些Google Analytics事件跟蹤。但我擔心表現。我的理解是,工作流程將發生變化:鏈接上的Google Analytics事件跟蹤是否會減慢用戶體驗?
- 用戶點擊超鏈接
- 的調用谷歌分析做出發送事件跟蹤數據
- 瀏覽器等待來自GA服務器的響應
- 瀏覽器跟隨鏈接並打開新頁面。
我關心的步驟2和3。所以,問題是引入的時延:
- 是我流的理解是否正確?
- 調用GA事件跟蹤所引入的典型延遲(以毫秒爲單位)是什麼?
我正在考慮將onclick事件附加到我網站上的內部鏈接,以執行一些Google Analytics事件跟蹤。但我擔心表現。我的理解是,工作流程將發生變化:鏈接上的Google Analytics事件跟蹤是否會減慢用戶體驗?
我關心的步驟2和3。所以,問題是引入的時延:
我已經在內部和外部實施了GA,並且在性能上沒有看到明顯的差異。另外,我相信跟蹤鏈接點擊的最新方法可以使跟蹤以異步方式完成。
Collections- Google Developers Guide
添加以這種方式跟蹤將允許用戶按照鏈接操作,同時跟蹤是異步完成的。
onclick="_gaq.push(['_trackEvent', 'myLink', 'clicked'])"
事件跟蹤通過向Google服務器發送圖片請求來工作。問題在於,在指向新網址的鏈接後,將停止任何待處理/正在進行的請求。如果瀏覽器在跟蹤請求完成之前在同一窗口中打開了指向新網址的鏈接,則可能會丟失分析數據。
因此第3步不是等待,而是必須添加延遲以允許跟蹤圖像請求完成(或至少啓動)。 100-150毫秒對於請求來說足夠長,但足夠短而不會被用戶注意到。
我用下面的事件跟蹤代碼(jQuery代碼)的一些變化:
$('.someClassForTracking').click(function(e){
_gaq.push(['_trackEvent', category, action, ...]);
if (this.target != '_blank') {
e.preventDefault();
var url = this.href;
setTimeout(function(){location.href = url}, 150);
}
});
謝謝,邁克。谷歌並不要求我們這樣做,以手動引入延遲來進行跟蹤工作。所以我假設GA的JS會自動完成。你會碰巧有這方面的文件,要求人們介紹setTimeout延遲? – tinkerr 2012-08-14 17:57:03
Google在http://support.google.com/analytics/bin/answer.py?hl=zh_CN&answer=1136920 ... – mike 2012-08-14 18:52:17
謝謝使用延遲與事件跟蹤的出站鏈接。我剛剛發現它,並即將編輯我的評論:)我也看到了一個不使用setTimeout的變體,但_gaq.push(function(){document.location = href;});.對我來說似乎更清潔。 – tinkerr 2012-08-14 18:53:20
可以使用hitCallback
機制,這是記錄爲analytics.js
,但也可用於ga.js
。
這是另一個問題解決:Track event in google analytics upon clicking form submit
您需要添加「hitCallback」一旦跟蹤在GA的最終完成的時候觸發。不要擔心超時,因爲如果GA需要很長時間才能得到響應 - 簡言之,它會處理事件超時。
<script>
/**
* Function that tracks a click on an outbound link in Google Analytics.
* This function takes a valid URL string as an argument, and uses that URL string
* as the event label.
*/
var trackOutboundLink = function(url) {
ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
function() {
document.location = url;
}
});
}
</script>
您還需要爲鏈接添加(或修改)onclick屬性。用這個例子作爲您自己的鏈接模式:
<a href="http://www.example.com" onclick=」trackOutboundLink(‘http://www.example.com’); return false;">Check out example.com</a>
從這裏摘自:https://support.google.com/analytics/answer/1136920?hl=en
謝謝,但我認爲你錯了異步跟蹤。異步跟蹤提供的優點是它使用_gaq數組將事件存儲在隊列中,這意味着即使GA JavaScript尚未加載並且用戶執行了要跟蹤的操作,仍然可以執行此操作。但是,對於要跟蹤的任何內容,都必須向GA的服務器撥打電話,並且_gaq的所有頁面數據都必須發送給Google。我的假設是,GA的JS引入了一些document.unload處理程序,它會延遲文檔的卸載,直到所有信息已發送給GA。 – tinkerr 2012-08-14 17:45:14
@tinkerr - 如果您使用某種卸載處理程序發現有關GA的任何確認,我會非常感興趣......這似乎是做事的合乎邏輯的方式! – mike 2012-08-14 19:00:37