2014-06-20 50 views
1

我正試圖找到在當前正在構建的站點上執行一些A/B測試的最佳方法。 該網站託管在WPEngine上,並使用Wordpress。他們使用整頁緩存,無論如何應該啓用它。 A/B測試需要爲每個變體提供不同的HTML。由於更改的元素是網站的主菜單,因此使用另一個HTTP請求通過AJAX動態加載它將會很不好。如何使用整頁緩存進行A/B測試?

我無法想象除了完全客戶端之外的其他任何方法。 我的想法是在頁面中包含兩個變體,並只顯示一個變體。

<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 ......),還我不知道 關於搜索引擎優化。

有沒有人知道一個更好的方法來做到這一點,當頁面被緩存? 有什麼建議嗎?

回答

2

您正在使用的一般方法來呈現Javascript中的變體內容是很常見的,並且像Optimizely這樣的工具是如何工作的。 (可能會涉及到AJAX,但它可能被組織和優化以避免成爲問題。)您可能只想使用Optimizely或類似的東西,這樣做也可以讓您的組織在不更改應用程序代碼的情況下執行A/B測試每次。

下面是兩個不同的服務器端的方法:

  • 把一個變體在不同的URL(可能共享代碼在幕後,而不是實際複製整個頁面的代碼),將用戶重定向誰應該將該變體看到該另一個URL。 Google Analytics內容實驗就是這樣運作的。顯而易見的缺點是用戶會看到不同的URL並可能會將其添加爲書籤,因此您可能需要在實驗結束後很長時間從變體URL重定向到正常的URL。

  • 如果您使用的緩存系統允許您指定緩存密鑰,只需將該變體添加到緩存密鑰即可。該頁面將在每個變體首次觸及並隨後進行緩存時呈現。我不知道你的工具是否可行。

關於SEO,Google does run Javascript,因此不表明你不想被索引的搜索引擎的變種。 (我不知道Google的搜索引擎如何處理Google實驗。)

相關問題