我在跟踪外部链接时遇到问题 . 这不是我的解决方案根本不起作用的问题,它只适用于极少数情况 . 就像在Google Analytics中实际跟踪1%的点击次数一样 . 首先,我将超时设置为100毫秒,并认为它可能太短,但即使500没有任何改变 .
任何人都知道这里可能出现什么问题?
<script type="text/javascript">
(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','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXXXX-X', 'domain.com');
ga('send', 'pageview');
</script>
<script type="text/javascript">
function recordOutboundLink(link, category, action) {
try {
ga('send', 'event', 'category', 'action');
} catch(err){}
setTimeout(function() {
document.location.href = link.href;
}, 500);
}
我的链接看起来像这样:
a class =“post”onclick =“recordOutboundLink(this,'Outbound Links','domain.com');” href =“http://www.external.com”rel =“nofollow”>点击这里
在Google Analytics中,我会检查“category = Outbound Links”的目标
提前致谢!
2 回答
您的代码存在一些问题,但您应该使用Universal Analytics内置的
hitCallback
功能:HTML:
JS:
看起来问题是你没有阻止链接的默认事件,所以你设置超时是什么并不重要..你的函数被执行但是然后浏览器继续执行链接的默认事件:即遵循href中指定的目标 . 您可以将代码更新为:
链接(注意使用
event
而不是this
):功能:
根据我的经验,100-200ms的超时应足以让GA代码ping,但你可能不得不稍微玩一下,因为它不能保证 . 或者,您可以编写代码以在ga完成其内容时挂钩,如果您已经在使用类似jQuery的框架,则会更容易 . 但总体而言我同意 Blexy ,您应该切换到提供回调函数的UA(在他的例子中,他通过在onclick中附加
return false
来阻止默认值 .