遇到问题在我的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");
答案 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)
谢谢你的帮助,我同意事件监听器是一种更好的方法,特别是对于多个事件,但我的初始功能和点击事件有效,原来它只是花了一些时间让谷歌分析在我的仪表板上呈现它。 感谢