最佳实践:如何跟踪出站链接?
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 数据的最佳实践