使用 Keen.io 创建分析面板——如何防止由 Google 和 Bing 机器人创建的事件

Using Keen.io to create analytics panel -- how do I prevent events created by Google an Bing bots

我正在将 keen.io 与 Rails 3.2 应用集成。一切都很好,除了例如在记录的 500 次综合浏览量中,400 次来自 Google 抓取网站的其他引擎。特别是因为我们将按事件付费,所以我试图阻止 Keen 记录这些非用户事件。有没有一种简单的方法可以在记录事件之前检查用户代理?

我最终在控制器中执行了以下操作:

bots = /googlebot|bingbot|CCBot|008|ABACHOBot|Accoona-AI-Agent|AddSugarSpiderBot|Arachmo|B-l-i-t-z-B-O-T|...|ZyBorg/ unless request.env["HTTP_USER_AGENT"].downcase.match(bots) if user_signed_in? @user = current_user Keen.publish...

不确定这是否是最好的方式,但它似乎可以显示真实用户的事件。

对我来说这是一个合理的解决方案。

如果您希望在全局范围内实现此行为,作为 Rack 中间件,您可以考虑 gem,例如 fnando/browser。乍一看,它似乎具有机器人检测功能以及包含的中间件。