2016-11-25 151 views
1

有問題在我的谷歌分析中記錄出站鏈接事件。這是一個簡單的任務,我不明白它可能出錯的地方。任何人都可以注意到我的代碼有任何問題。在谷歌的功能正在於我的onclick事件中執行,問題是被記錄在我的谷歌分析儀表盤行爲>事件>概述谷歌分析,出站事件跟蹤

google_analytics.php

<script> 
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
    })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 

    ga('create', 'UA-86854644-1', 'auto'); 
    ga('send', 'pageview'); 


var trackOutboundLink = function(url) { 
    alert(url); 
       ga('send', 'event', 'outbound', 'click', url, { 
         'transport': 'beacon', 
         'hitCallback': function(){document.location = url;} 
       }); 
} 



function handleOutboundLinkClicks(event) { 

  ga('send', 'event', { 
    eventCategory: 'Outbound Link', 
    eventAction: 'click', 
    eventLabel: event, 
    transport: 'beacon' 
  }); 
} 

</script> 

Click事件沒有事件

onclick=\"handleOutboundLinkClicks(this);\" 

的header.php

include_once("/includes/google_analytics.php"); 
+0

我認爲瀏覽器將用戶重定向到鏈接跟蹤完成之前。你必須停止與打開鏈接的瀏覽器的行動['event.preventDefault'(https://developer.mozilla.org/en/docs/Web/API/Event/preventDefault),讓您的'hitCallback'代碼實際上在事件發送後調用。 – danguilherme

+0

我認爲這可能是案例二。我曾嘗試以下是仍然沒有日誌呼叫回的onclick = \ 「trackOutboundLink( '$ hreflink' 事件); \」 變種trackOutboundLink =功能(URL,事件){ 警報(事件); event.preventDefault(); –

回答

0

感謝您的幫助,我同意,事件偵聽器尤其是多個事件一個更好的辦法,但我最初的功能和點擊事件的工作,原來它只是花了一些時間,谷歌分析呈現在我的儀表板。 感謝

0

您可以發送event作爲參數,但它不是this。有沒有這樣的事情'$hreflink'。避免使用onclick! (見下面)

當你發送this,你發送元素本身(在你的情況下<a>元素)。使用onclick屬性

theAnchor.addEventListener('click', function (event) { 
    // avoid browser from following the href 
    event.preventDefault(); 

    // call google analytics, and on hitCallback, follow the url: 
    document.location = this.href; // `this` is the own element 
}); 

避免:所以你的情況我會做類似的this JSFiddle

不要混合使用HTML和JavaScript;不要使用onclick屬性(和類似者)。它們不利於事件管理,隨着應用程序的增長,它們變得更難維護。

這就是說,使用EventTarget.addEventListener事件添加到一個元件(如上文在實施例中看到的)。

+0

聽起來可能,我離開我的電腦自動櫃員機,會盡快嘗試。順便說一句'$ hreflink'是正在導航到的外部頁面的鏈接,它的一個php變量。如果事件監聽器有效,會讓你知道。謝謝 –