使用设计计算每日活跃用户

时间:2012-12-07 11:10:01

标签: ruby-on-rails-3 devise

我是一名RoR开发者,我想为我的网站计算 DAU 。通过DAU我的意思是:

DAU-访问我网站并登录或访问过该网站且已登录的用户总数。

我在我的网站上实施了Devise,因为它跟踪了current_sign_in_at。后来发现这些属性意味着:

current_sign_in_at - 此人登录我网站的最晚时间。 (使用此功能,我可以获得访问我网站并登录的人数。)

但我错过了访问该网站并已登录的人数。

我发现实现它的方法之一是在延迟作业中触发一个函数,只要调用根操作并加载我的网站的主页,就会更新时间戳。但由于我的网站每分钟大约有1000到2000次点击,我想这个功能将成为瓶颈。

任何人都可以建议我实施它的最佳方式。

非常感谢。

1 个答案:

答案 0 :(得分:0)

可能的解决方案:

  • 使用Google Analytics(自定义变量),KISSmetrics(访客身份)或Mixpanel(distinct_id)等服务向他们发送用户ID,您可以找到每日活跃用户。

  • 您可以执行上述操作,在每次收到请求时将用户的上次活动时间存储在数据库中,如果每分钟获得1000-2000次点击,则可能需要将其存储在在内存中,像redis一样。如果用户将从不同的路径访问您的网站,而不仅仅是根网址,您可以在应用程序控制器中创建一个after_filter,它会根据用户的当前时间更新redis商店。

  • 如果您有兴趣在将来查看更多日常活跃用户,那么在另一个数据库中为您的用户创建日志是值得的。我再次建议在application_controller中使用before或after_filter,它将作业排队以存储时间,user_id,以及您可能感兴趣的任何其他数据。我正在使用与ActiveRecord MySQL数据库分开的mongo db来执行此操作。