[英]Google Analytics click event doesn't work
我在頁面上有以下按鈕:
<a id="DownloadPlatform" href="/some-page-1.html">Download</a>
我想在單擊按鈕時收緊GA事件,然后重定向到某個頁面。 當前,沒有單擊事件用於按鈕單擊。 我打開了控制台,粘貼了代碼以測試事件,但是我得到的結果令人驚訝,無法解釋。 但是,讓我們先從代碼開始:
_gaq.push(['_trackEvent', 'Downloaded', 'Platform [Web]', window.location.pathname]);
像魅力一樣工作,我在GA中獲得了一個事件(實時跟蹤)。
$('#DownloadPlatform').click(function(){
_gaq.push(['_trackEvent', 'Downloaded', 'Platform [Web]', window.location.pathname]);
});
沒有工作! 但是我被重定向到/some-page-1.html。 沒有錯誤。
$('#DownloadPlatform').click(function(e){
e.preventDefault();
_gaq.push(['_trackEvent', 'Downloaded', 'Platform [Web]', window.location.pathname]);
});
確實有效! 但是正如預期的那樣,我沒有重定向到頁面。
$('#DownloadPlatform').click(function(e){
e.preventDefault();
_gaq.push(['_trackEvent', 'Downloaded', 'Platform [Web]', window.location.pathname]);
window.location.href='/some-page-2.html';
});
最后,我被重定向到頁面,但未記錄GA事件。 誰能解釋這種奇怪的行為,可能是什么原因造成的?
您面臨的問題是,當您使用Google Analytics(分析)跟蹤事件時,它需要將事件發送到其服務器。 由於您在跟蹤事件時也會重定向頁面,因此Google Analytics(分析)有時會在成功發送事件之前被切斷。
因此,這一切都取決於網絡,並且首先發生。 您是提供新頁面的服務器,還是Google收到跟蹤事件的服務器。
您可能傾向於發送跟蹤事件並在setTimeout
重定向頁面,但這不是一個好主意,因為首先您不能確定Google尚未收到該事件。 然后,您可能傾向於將超時設置為更長,但最終,通過人為增加頁面加載時間,只會給用戶帶來糟糕的體驗。
可行的解決方案可能是在重定向到的URL中包含一個特殊參數,然后讓新頁面查找該參數,然后發送track事件。
/some-page-2.html?track=myEventToTrack
另一種方法是使用Google Analytics(分析)的PHP庫並跟蹤事件服務器端,這顯然會帶來更多工作,因此這是為項目選擇正確解決方案的一種情況。
Google現在提供事件的回調,以下代碼提供了更強大,更優雅的解決方案。
ga('send', 'event', {
'eventCategory': 'a',
'eventAction': 'b',
'eventLabel': 'c',
'eventValue': 1,
'hitCallback': function () {
document.location = '/foo';
}
});
<script>
var trackOutboundLink = function(url) {
ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
function () {
document.location = url;
}
});
}
</script>
<a href="http://www.somepage.com" onclick=”trackOutboundLink(‘http://www.somepage.com’); return false;">Check out somepage.com</a>
hitCallback字段,用於告知Google Analytics(分析)用戶互動何時完成。 這樣可以確保GA在用戶離開您的網站之前收集了互動數據。 您也可以使用以下一種:
ga('send', 'pageview', {
'page': '/some-page',
'hitCallback': function() {
window.location.replace = "[new url]";
}
});
希望這可以幫助!!
ANKIT
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.