我在 myapp.com 和 beta.myapp.com 上设置了两个应用程序。两者都配置了自己的存储库和 Heroku 应用程序,但共享数据库和会话数据。
我的目标是在单独的应用程序上测试关键指标。 目前,我的设置方式是在 application_controller.rb
中使用"之前"过滤器。如果user.id
是偶数,则会将用户发送到 beta.myapp.com。
但此方法要求用户登录。如何为所有用户实现此目的,即使他们已注销?
基本上,我想将 50% 的流量随机化到 beta 版本,然后保留它,以便用户在返回站点时会看到相同的版本。
将您的用户 ID 检查替换为 rand(2)
。这将是50%的机会。
要保留此结果,您可以将其保存到 cookie 中,在实际获取随机数之前,请检查 cookie 值是否存在:
if cookies[:beta] == "true"
# do your redirect
else
rand(2) == 1 ? cookies[:beta] = "true" : cookies[:beta] = "false"
# do your redirect
end
或者,向User
表添加一个额外的字段来存储结果,并检查该字段。
您在这里所做的是A/B测试的一个粗略示例。如果您想进一步推动它,您可能需要研究诸如拆分或优化之类的内容。