2016-11-25 146 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变量。如果事件监听器有效,会让你知道。谢谢 –