如何使用整页缓存进行A / B测试?

时间:2014-06-20 14:32:42

标签: javascript html wordpress ab-testing

我试图找到在当前正在构建的网站上执行某些A / B测试的最佳方法。 该网站托管在WPEngine上并使用Wordpress。他们使用整页缓存,无论如何都应该启用。 A / B测试需要针对每个变体使用不同的HTML。由于更改的元素是站点的主菜单,因此使用另一个HTTP请求通过AJAX动态加载它将是不好的。

我无法想象任何其他方法,而不是完全客户端方法。 我的想法是在页面中包含两个变体并只显示一个变体。

<script src="set-variant.js"></script> <!-- sets variant variable -->
<div id="variants">
<!-- <div id="variant1"></div> -->
<!-- <div id="variant2"></div> -->
</div>
<script>

if(variant==1){
   document.write(retrieveVariant1FromComment());
} else {
   document.write(retrieveVariant2FromComment());
}
</script>

它有效,但看起来很奇怪(我宁愿避免使用document.write ......)而且我也不确定 关于SEO。

有人知道在缓存页面时更好的方法吗? 有什么建议?

1 个答案:

答案 0 :(得分:3)

您在Javascript中呈现变体内容时使用的一般方法很常见,并且是Optimizely等工具的工作原理。 (AJAX可能会涉及,但它可能会被组织和优化,不会出现问题。)您可能只想使用Optimizely或类似的东西,这样做也可能允许您的组织在不更改应用程序代码的情况下进行A / B测试每一次。

以下是两种不同的服务器端方法:

  • 将一个变体放在不同的URL(可能在幕后共享代码而不是实际复制整个页面的代码),并将应该看到该变体的用户重定向到该其他URL。 Google Analytics内容实验以这种方式运作。明显的缺点是用户看到了不同的URL,并且可能将其加入书签,因此您可能需要在实验结束后很长时间从变体URL重定向回正常URL。

  • 如果您正在使用允许您指定缓存键的缓存系统,只需将该变量添加到缓存键即可。页面将在每个变体第一次命中并随后缓存时呈现。我不知道你的工具是否可行。

关于搜索引擎优化,Google does run Javascript,所以不要显示您不希望被编入搜索引擎索引的变体。 (我不知道Google的搜索引擎如何处理Google实验。)