使用PHP设置简单的A / B测试

时间:2010-11-17 23:02:43

标签: php testing

我的网站上有一个网页 - 或者它真的是一个网络应用程序,这个页面就是仪表板(必须登录)。

我想为页面右侧显示的面板尝试两种设计。

我有2个面板设计,我可以很容易地跟踪每个被点击的时间,但我如何提供这些替代性的版本?

  • 我应该以某种方式在页面加载时加载它们(这意味着一个人同时看到它们)

  • 我应该将用户标记为a还是b,他们只看到该版本?

如何均匀地传递它以便访问者1获得A,访问者2获得B等

2 个答案:

答案 0 :(得分:2)

我会获取用户IP地址的哈希值,然后使用mod 2获取0或1值。

$ip=$_SERVER['REMOTE_ADDR'];
$hash=md5($ip);
$number = hexdec( substr($hash, 0, 4));
$version = $number % 2;

if( $version == 0) {
  // show A
} else {
  // show B
}

这很好,因为单个用户将始终看到相同的版本,并且它会在两个版本中均匀分布用户。

答案 1 :(得分:0)

这实际上取决于您想要的解决方案的重量级。如果用户没有NAT,则Jon的解决方案将起作用,但如果您想要防止该问题,则可以添加会话。如果您想要一个更具参与性和灵活性的选项,那里有无数的工具,包括phpab