Google 分析、出站事件跟踪
Google Analytics, Outbound Event Tracking
在我的 google 分析中记录出站 link 事件时遇到问题。这是一个如此简单的任务,我不明白它会在哪里出错。任何人都可以注意到我的代码有任何问题吗? google 函数正在我的 onclick 事件上执行,问题是我的 google 分析仪表板上没有记录任何事件在行为 > 事件 > 概述
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");
您可以将 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
向元素添加事件(如上例所示)。
感谢您的帮助,我同意事件侦听器是一种更好的方法,尤其是对于多个事件,但我的初始功能和点击事件有效,结果 google 分析只是花了一些时间来呈现它我的仪表板。
谢谢
在我的 google 分析中记录出站 link 事件时遇到问题。这是一个如此简单的任务,我不明白它会在哪里出错。任何人都可以注意到我的代码有任何问题吗? google 函数正在我的 onclick 事件上执行,问题是我的 google 分析仪表板上没有记录任何事件在行为 > 事件 > 概述
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");
您可以将 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
向元素添加事件(如上例所示)。
感谢您的帮助,我同意事件侦听器是一种更好的方法,尤其是对于多个事件,但我的初始功能和点击事件有效,结果 google 分析只是花了一些时间来呈现它我的仪表板。 谢谢