谷歌分析链接跟踪javascript剥离联盟链接

时间:2017-01-30 20:27:43

标签: javascript html google-analytics

我们有一个联盟网站,我们正在尝试跟踪出站联属网站的点击次数。我将以下代码插入到我们的html中。

在标题中:

<script>
/**
* Function that tracks a click on an outbound link in Analytics.
* This function takes a valid URL string as an argument, and uses that URL string
* as the event label. Setting the transport method to 'beacon' lets the hit be sent
* using 'navigator.sendBeacon' in browser that support it.
*/
var trackOutboundLink = function(url) {
   ga('send', 'event', 'outbound', 'click', url, {
     'transport': 'beacon',
     'hitCallback': function(){document.location = url;}
   });
}
</script>

在链接的正文中:

<a href="http://domain.com?aff_link=123456" onclick="trackOutboundLink('http://domain.com'); return false;"> The link </a>

此脚本正确跟踪联盟链接点击次数,但设法在用户点击时从域中删除联属代码。换句话说

http://domain.com?aff_link=123456

成了

http://domain.com

因此,没有追踪任何佣金。有没有人知道为什么会发生这种情况以及如何跟踪与GA的联系并保持联盟链接的顺利进行?

谢谢!

2 个答案:

答案 0 :(得分:0)

所以问题是您在onclick="trackOutboundLink('http://domain.com') ...

中传递了没有联盟信息的网址

相反,这应该有效:

onclick="trackOutboundLink(this.href); return false;"

这应该使用链接的“href”属性的值。

话虽如此,我强烈建议使用原生DOM事件而不是html“onclick”属性。

例如,使用jQuery:

$("a").click(function(event) {
    event.preventDefault();
    trackOutboundLink(this.href);
});

<强>更新

事件侦听器方法(第二个选项)的主要好处是,对于同一事件,同一DOM节点上可以有多个事件侦听器。 This SO answer非常详细地解释了这一点。

希望这有帮助!

答案 1 :(得分:0)

因此,您希望跟踪完整的网址而不是根路径。 请尝试使用这个。

var trackOutboundLink = function(event) {
   event.preventDefault();
   var url = event.target.href;
   ga('send', 'event', 'outbound', 'click', url, {
      'transport': 'beacon',
      'hitCallback': function(){document.location = url;}
   });
}

我希望它会对你有所帮助。