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

Posted

技术标签:

【中文标题】最佳实践:如何跟踪出站链接?【英文标题】:Best practice: How to track outbound links? 【发布时间】:2010-09-17 00:23:56 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

见:

http://www.prodevtips.com/2008/08/19/tracking-clicks-with-jquery-and-google-analytics/ https://web.archive.org/web/20090214024330/http://www.justskins.com/development/how-to-track-clicks-on-outgoing-links/132

【讨论】:

我喜欢这种方法 - 如果访问者没有 javascript,该网站将正常运行,如果他有,您将获得跟踪奖励。此外,Eric 在下面提出了一个很好的观点,即如果您想保证所有点击都被跟踪,那么使用 JavaScript 不是一种选择。【参考方案2】:

方法 #1:target="_blank"onclick 和 Google Analytics 事件

使用以下属性格式化您的传出链接:

<a href="http://www.example.com" target="_blank" onclick="trackOutgoing(this);">outgoing</a>

定义一个javascript跟踪函数(需要已经加载谷歌分析):

function trackOutgoing(el) 
  ga('send', 'event', eventCategory: 'outbound',
                       eventAction: 'send',
                       eventLabel: el.getAttribute('href'),
                       eventValue: 1);
;

优点:

    不会干扰正常的链接行为 是否需要重定向到另一个网址

缺点:

    onclick 不能保证执行(用户或浏览器可以终止主窗口)

方法 #2:使用 Javascript 和 Google Analytics 回调重定向

使用以下属性格式化您的传出链接:

<a href="http://www.example.com" onclick="trackOutgoingAndRedirect(this); return false;">outgoing</a>

定义一个javascript跟踪函数(需要已经加载谷歌分析):

function trackOutgoingAndRedirect(el) 
  var url = el.getAttribute('href');
  ga('send', 'event', eventCategory: 'outbound',
                       eventAction: 'send',
                       eventLabel: url,
                       eventValue: 1,
                       hitCallback: function()  document.location = url; );

优点:

    不需要target="_blank" 您的活动被 Google Analytics 注册的机会更高(与方法 #1 相比)

缺点:

    return false; 覆盖链接的默认行为 无法在新窗口中打开传出链接

方法 #3:使用重定向 URL

使用以下属性格式化您的传出链接:

<a href="/redirect?url=http://www.example.com">outgoing</a>

在您的网站上,您需要实现一个超出此答案范围的重定向脚本。

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

优点:

    无需 Javascript 不需要是否需要 Google Analytics 不会干扰正常的链接行为

缺点:

    更难触发 Google Analytics 事件 链接未链接到其原始 URL。这可能会对 SEO 产生负面影响。

【讨论】:

【参考方案3】:

将 onclick 或 onmousedown 处理程序添加到锚标记。您可以看到很多网站都在这样做,例如 Google。

【讨论】:

【参考方案4】:

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

我在我拥有的网站上通过向我的传出链接添加一个 onClick 来处理此问题,该链接会触发一个将链接 URL 和时间戳发送到我的数据库的函数。然后我编写了一个后端来检索数据,并让我按“24 小时点击次数最多”、“1 周点击次数最多”等类别查看它。

我希望这会有所帮助。

【讨论】:

关于网站失去搜索引擎功能的观点很好。我不确定这是不是真的。如果您绝对必须跟踪所有链接,那么执行我描述的重定向之类的操作将捕获我能想到的所有情况。在某些情况下,Javascript 可能会丢失。【参考方案5】:

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

这确实让我们记录了外部链接,并且作为额外的好处,它在某些情况下可以更容易地对外部 URL 进行大规模更改。

【讨论】:

以上是关于最佳实践:如何跟踪出站链接?的主要内容,如果未能解决你的问题,请参考以下文章

项目进度跟踪的最佳实践:每日站立会议

使用 Windows Azure 在 iOS 中进行 GPS 跟踪的最佳实践?

使用 NoSQL DB 跟踪用户时间戳数据的 DB 最佳实践(使用 firebase)

在 mysql 数据库中存储跟踪应用程序的 GPS 数据的最佳实践

REST API 设计 - 最佳实践:链接现有子资源 [关闭]

链接到 Microsoft 编码标准/最佳实践文档?