Google Analytics,出站事件跟踪

时间:2016-11-25 15:57:48

标签: javascript google-analytics event-log outbound

遇到问题在我的Google Analytics中记录出站链接事件。这是一个如此简单的任务,我无法理解它可能出错的地方。任何人都可以注意到我的代码有任何问题。谷歌功能正在我的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>

点击活动

onclick=\"handleOutboundLinkClicks(this);\"

的header.php

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

2 个答案:

答案 0 :(得分:0)

您可以将event作为参数发送,但不是this。没有'$hreflink'之类的东西。避免使用onclick! (见下文。)

当您发送this时,您正在发送元素本身(您的案例中为<a>元素)。所以在你的情况下我会做this JSFiddle中的事情:

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
});

避免使用onclick属性!

不要混用HTML和JavaScript;不要使用onclick属性(和类似物)。它们不适合事件管理,随着应用程序的增长,它们的维护也越来越难。

也就是说,使用EventTarget.addEventListener向元素添加事件(如上例所示)。

答案 1 :(得分:0)

谢谢你的帮助,我同意事件监听器是一种更好的方法,特别是对于多个事件,但我的初始功能和点击事件有效,原来它只是花了一些时间让谷歌分析在我的仪表板上呈现它。 感谢