谷歌分析跟踪点击而不提供网址

时间:2017-03-10 20:47:16

标签: jquery wordpress

我多年来一直在使用Stack Overflow,但是我第一次发布了一个我想不通的简单jQuery解决方案。

我正在运营一个网站,并希望跟踪出站链接。我已阅读并实施https://support.google.com/analytics/answer/1136920?hl=en。我正在使用wordpress,调整每个链接,特别是标题链接是非常烦人的,所以我想添加一个javascript / jquery脚本,捕获所有链接上的点击事件,以及链接链接到的链接。

Google Analytics要求在每个html链接标记中使用以下代码:

<a href="http://www.example.com" onclick="trackOutboundLink('http://www.example.com'); return false;">Check out example.com</a>

但我想编写一个简单的jQuery函数,该函数由我网站上任何链接的所有点击触发,并用trackOutboundLink("")填充任何链接。在这种情况下,我可以使用$this.href()或其他东西吗?

基本上,我想为所有链接都有一个事件监听器,并按如下方式记录它们:

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

抱歉,我知道我的问题措辞不对,而且我是一个巨大的jQuery n00b,但不知道更好的方式来问它...而且,是的,我确实要记录每个链接,甚至内部链接。我不在乎。我只想要一种非常简单的方法来记录链接。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

首先,您需要一个选择器来选择所有出站的网址。他们的一个特点是它们通常包含某种形式的协议。然后排除指向您的域的所有链接。最后,您使用简单的单击事件来阻止导航的默认行为,而是执行将使用户通过回调导航的跟踪代码。

jQuery(function ($) {
  var domain = "example.com";
  $('a[href*=http]:not([href*=\'' + domain + '\'])').on('click', function (e) {
    var url = $(this).attr('href');
    e.preventDefault();
    ga('send', 'event', 'outbound', 'click', url, {
       'transport': 'beacon',
       'hitCallback': function(){document.location = url;}
    });
  });
});