使用 jQuery 追踪 Google Analytics 中的外链点击

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费额度!

Ian Pitts 之前给我分享了这个技巧,我直到现在才整理好并发布出来。感谢 Ian!

Google Analytics此处为简介视频)功能强大,但一个显著的缺失功能是关于**外链点击**的数据。如果您正在使用 jQuery,只需将以下代码添加到您的页面中,您就可以立即开始追踪外链点击了。

<script type="text/javascript">
  // <![CDATA[
    $(document).ready(function() {
      $("a[@href^='http://']:not(.noAutoLink)").addClass("offSite").attr('target', '_blank').bind('click keypress', function(event) {

        var code=event.charCode || event.keyCode;

        if(!code || (code && code == 13)) {
          if(pageTracker){
            var fixedLink = this.href;
            fixedLink = fixedLink.replace(/https?:\/\/(.*)/,"$1");
            fixedLink = '/outgoing/' + fixedLink;
            pageTracker._trackPageview(fixedLink);
          };
					
        };
    });
  // ]]>
</script>

简单(易懂)的英语

  1. 目标是所有带有 http:// 的 href 属性(假设您的内部链接使用相对文件路径,就像它们应该的那样)
  2. 除了那些具有 .noAutoLink 类的链接(可选,但当您想要特意排除某些链接时非常有用)
  3. 然后它添加一个名为 "offsite" 的类(也是可选的,但可以用作 CSS 钩子来显示某种 "外部链接" 图标,尤其是在您计划使用 target="_blank" 的情况下)
  4. 然后它添加一个 target="_blank" 属性(不符合 XHTML 标准,但由于它是根据需要由脚本添加的,因此不会影响验证)
  5. 然后它绑定到 click 和 keypress 事件…… 因此,使用键盘而不是鼠标的用户也会获得此操作
  6. if(pageTracker) 部分用于检测 GA 的对象
  7. 然后它使用一些正则表达式来处理 href 属性,使其成为可以在 GA 中追踪的格式
  8. 构建了一个虚假的链接,它将显示在一个虚构的 /outgoing/ 目录中
  9. 最后,GA 被告知要记录此新虚假资源的页面浏览量

运行一段时间后(可能需要几天,因为 Google Analytics 不是实时更新的),您可以进入 内容 > 内容细分,找到您的 /outgoing/ 目录。点击它即可查看您最受欢迎的外链!

更新
Ian 在他的博客上发布了此代码的更新/改进。新代码不只是查找 "http://" 来判断是否为外链,而是将主机名与当前站点进行比较。这样,如果您在内部链接中使用完整 URL,它就不会被误认为是外部链接。