Web 最佳实践:如何跟踪出站链接?

Web 最佳实践:如何跟踪出站链接?,web,statistics,hyperlink,analytics,Web,Statistics,Hyperlink,Analytics,既然请求是在目标服务器上记录的,而不是您的服务器上记录的,您如何跟踪网站的出站链接 向锚标记添加onclick或onmousedown处理程序。你可以看到很多网站都在这样做,比如谷歌。在我工作过的一个系统上,我们最终将重定向存储在数据库表中,并创建了一个以id作为输入的重定向页面。在内容页上,我们使用此表中的唯一id链接到重定向页。一旦重定向页面通过表中的id查找url,它就会向客户端发送重定向响应,并将它们发送到结束页面 这确实为我们提供了外部链接的日志记录,并且作为额外的好处,它在某些情况下

既然请求是在目标服务器上记录的,而不是您的服务器上记录的,您如何跟踪网站的出站链接

向锚标记添加onclick或onmousedown处理程序。你可以看到很多网站都在这样做,比如谷歌。

在我工作过的一个系统上,我们最终将重定向存储在数据库表中,并创建了一个以id作为输入的重定向页面。在内容页上,我们使用此表中的唯一id链接到重定向页。一旦重定向页面通过表中的id查找url,它就会向客户端发送重定向响应,并将它们发送到结束页面


这确实为我们提供了外部链接的日志记录,并且作为额外的好处,它在某些情况下使对外部URL的大量更改变得更容易。

您可以向页面添加一个快速JQuery脚本,该脚本将跟踪外部链接,并可以将它们重定向到服务器上跟踪链接的文件,然后转发到该文件,或者添加一个ajax请求,该请求将在单击外部链接时提交,并以这种方式跟踪它们

请看这里:

在这里:

我不喜欢Eric Tuttleman所描述的重定向,因为您不幸地失去了链接的“搜索引擎友好性”

我在自己的一个网站上处理这个问题,在我的外发链接中添加一个onClick,它会启动一个函数,将链接URL和时间戳发送到我的数据库。然后我编写了一个后端来检索数据,并允许我按“点击次数最多/24小时”、“点击次数最多/1w”等类别查看数据

我希望这能有所帮助。

方法1:
target=“\u blank”
onclick
和谷歌分析事件 使用以下属性设置传出链接的格式:

定义javascript跟踪功能(需要已经加载google analytics):

优点:

  • 不影响正常链接行为吗
  • 需要重定向到其他url吗
  • 缺点:

  • 不能保证执行
    onclick
    (用户或浏览器可以终止主窗口)
  • 方法2:使用Javascript和Google Analytics回调重定向 使用以下属性设置传出链接的格式:

    定义javascript跟踪功能(需要已经加载google analytics):

    优点:

  • 不需要
    target=“\u blank”
  • 您的事件在Google Analytics中注册的几率更高(与方法1相比)
  • 缺点:

  • 使用
    return false覆盖链接的默认行为
  • 无法在新窗口中打开传出链接
  • 方法#3:使用重定向URL 使用以下属性设置传出链接的格式:

    在您的站点上,您需要实现一个重定向脚本,该脚本超出了本答案的范围

    重定向脚本很可能会跟踪传出链接,然后重定向到提供的url

    优点:

  • 不需要Javascript
  • 不需要谷歌分析吗
  • 干扰正常链接行为吗
  • 缺点:

  • 更难触发谷歌分析事件
  • 链接不会链接到其原始URL。这可能会对搜索引擎优化产生负面影响

  • 这是一个关于网站失去搜索引擎功能的好观点。但我不确定这是不是真的。如果你一定要跟踪所有链接,那么像我描述的重定向这样的操作将捕获我能想到的所有情况。Javascript在某些情况下可能会丢失。我喜欢这种方法-如果访问者没有Javascript,网站将正常工作,如果他有Javascript,你将获得跟踪的奖励。Eric在下面也提出了一个很好的观点,如果你想保证所有点击都被跟踪,那么使用JavaScript就不是一个选项。
    function trackOutgoing(el) {
      ga('send', 'event', {eventCategory: 'outbound',
                           eventAction: 'send',
                           eventLabel: el.getAttribute('href'),
                           eventValue: 1});
    };
    
    function trackOutgoingAndRedirect(el) {
      var url = el.getAttribute('href');
      ga('send', 'event', {eventCategory: 'outbound',
                           eventAction: 'send',
                           eventLabel: url,
                           eventValue: 1,
                           hitCallback: function() { document.location = url; }});
    }