簡體   English   中英

Google Analytics(分析)點擊事件無效

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM