[英]Google Analytics click event doesn't work
我在页面上有以下按钮:
<a id="DownloadPlatform" href="/some-page-1.html">Download</a>
我想在单击按钮时收紧GA事件,然后重定向到某个页面。 当前,没有单击事件用于按钮单击。 我打开了控制台,粘贴了代码以测试事件,但是我得到的结果令人惊讶,无法解释。 但是,让我们先从代码开始:
_gaq.push(['_trackEvent', 'Downloaded', 'Platform [Web]', window.location.pathname]);
像魅力一样工作,我在GA中获得了一个事件(实时跟踪)。
$('#DownloadPlatform').click(function(){
_gaq.push(['_trackEvent', 'Downloaded', 'Platform [Web]', window.location.pathname]);
});
没有工作! 但是我被重定向到/some-page-1.html。 没有错误。
$('#DownloadPlatform').click(function(e){
e.preventDefault();
_gaq.push(['_trackEvent', 'Downloaded', 'Platform [Web]', window.location.pathname]);
});
确实有效! 但是正如预期的那样,我没有重定向到页面。
$('#DownloadPlatform').click(function(e){
e.preventDefault();
_gaq.push(['_trackEvent', 'Downloaded', 'Platform [Web]', window.location.pathname]);
window.location.href='/some-page-2.html';
});
最后,我被重定向到页面,但未记录GA事件。 谁能解释这种奇怪的行为,可能是什么原因造成的?
您面临的问题是,当您使用Google Analytics(分析)跟踪事件时,它需要将事件发送到其服务器。 由于您在跟踪事件时也会重定向页面,因此Google Analytics(分析)有时会在成功发送事件之前被切断。
因此,这一切都取决于网络,并且首先发生。 您是提供新页面的服务器,还是Google收到跟踪事件的服务器。
您可能倾向于发送跟踪事件并在setTimeout
重定向页面,但这不是一个好主意,因为首先您不能确定Google尚未收到该事件。 然后,您可能倾向于将超时设置为更长,但最终,通过人为增加页面加载时间,只会给用户带来糟糕的体验。
可行的解决方案可能是在重定向到的URL中包含一个特殊参数,然后让新页面查找该参数,然后发送track事件。
/some-page-2.html?track=myEventToTrack
另一种方法是使用Google Analytics(分析)的PHP库并跟踪事件服务器端,这显然会带来更多工作,因此这是为项目选择正确解决方案的一种情况。
Google现在提供事件的回调,以下代码提供了更强大,更优雅的解决方案。
ga('send', 'event', {
'eventCategory': 'a',
'eventAction': 'b',
'eventLabel': 'c',
'eventValue': 1,
'hitCallback': function () {
document.location = '/foo';
}
});
<script>
var trackOutboundLink = function(url) {
ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
function () {
document.location = url;
}
});
}
</script>
<a href="http://www.somepage.com" onclick=”trackOutboundLink(‘http://www.somepage.com’); return false;">Check out somepage.com</a>
hitCallback字段,用于告知Google Analytics(分析)用户互动何时完成。 这样可以确保GA在用户离开您的网站之前收集了互动数据。 您也可以使用以下一种:
ga('send', 'pageview', {
'page': '/some-page',
'hitCallback': function() {
window.location.replace = "[new url]";
}
});
希望这可以帮助!!
ANKIT
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.