A/B概述以及Drupal如何做A/B測試
一個商業網站⑰⑱⑲⑳⓪⓿❶❷❸❹❺,最重要的就是用戶的體驗和成交率(用戶轉化率)⑰⑱⑲⑳⓪⓿❶❷❸❹❺,因此做為網站的管理或者市場運維人員❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,應該對訪問者的喜好要有一個基本的把控①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,但是大多數情況下ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,我們無法對訪問者的喜好做出主觀判斷♦☜☞☝✍☚☛☟✌✽✾✿❁❃,因此需要用到一個工具㈠㈡㈢㈣㈤㈥㈦,A/B測試ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ。
所以①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,多數網站⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓,或者說CMS網站系統ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,A/B測試是非常重要的一個環節ⓣⓤⓥⓦⓧⓨⓩ。
本文就A/B測試的基礎概念以及如何在Drupal中做A/B測試①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,做一個簡單的介紹和分析㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉。

深入理解A/B
A/B測試不單單是AB✵✶✷✸✹✺✻✼❄❅,也可以有CD①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,本質上就是做多個版本☈⊙☉℃℉❅,通過對多個版本用戶的行為分析☈⊙☉℃℉❅,然后決定采用哪一個版本❻❼❽❾❿⓫⓬⓭⓮⓯⓰。
我們可以從頁面的展示方式來簡單分為兩種:
1. 全頁面A/B測試(兩個page)웃유ღ♋♂;2. 局部頁面A/B測試(同一個page)⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯。
因為這兩種AB♀☿☼☀☁☂☄,有不同的數據采集模式㈠㈡㈢㈣㈤㈥㈦。
當然兩種是可以轉換的ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,比如第一種的全頁面♦☜☞☝✍☚☛☟✌✽✾✿❁❃,也可以當成第二種的局部❣❦❧♡۵,只是這個局部稍等ⓚⓛⓜⓝⓞⓟⓠⓡⓢ,里面的內容全部替換了⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯。
比如第二種的局部ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,也可以做兩個page☈⊙☉℃℉❅,比較大部分內容一樣❻❼❽❾❿⓫⓬⓭⓮⓯⓰,只是某個部分比如banner不一樣웃유ღ♋♂,雖然是局部ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,但是也做了兩個頁面☾☽❄☃。
所以✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴,針對這兩種♀☿☼☀☁☂☄,我們重點區分是☾☽❄☃,同一個URL或不同URL的AB測試✵✶✷✸✹✺✻✼❄❅。
1. 不同URL㈠㈡㈢㈣㈤㈥㈦,可以通過入口分發♀☿☼☀☁☂☄,這樣在統計結果里面☾☽❄☃,分析不同的URL的統計結果ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,然后可以對比☾☽❄☃,就能測試到AB的結果㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂。
比如兩個URL的停留時間☈⊙☉℃℉❅、熱力圖❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣、點擊事件ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ、轉化率等⑰⑱⑲⑳⓪⓿❶❷❸❹❺。
2. 相同URLⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,那么就需要設置參數♀☿☼☀☁☂☄,讓統計工具知道我是A還是B①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,最后通過AB的結果分析⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓,得到對比數據☈⊙☉℃℉❅。
所以☈⊙☉℃℉❅,同一個URL一般需要配合統計工具的API㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂,可能要寫部分代碼來實現AB測試✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴。
不同URL非常容易理解ⓣⓤⓥⓦⓧⓨⓩ,相同URL的AB測試㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉,可以參考下圖:

通過上圖☈⊙☉℃℉❅,我們就了解了AB測試的整體過程和目標⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ。
那么A/B測試通常會測哪些元素呢①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯?
我們簡單總結了一下⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓,大約有下面幾種類型☧☬☸✡♁✙♆。,、':∶;,
1. 主要標題✺ϟ☇♤♧♡♢♠♣♥,比如不同標題☈⊙☉℃℉❅,可以帶來不同的轉換或者停留時間⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓。
2. 觸發按鈕☾☽❄☃,比如注冊♦☜☞☝✍☚☛☟✌✽✾✿❁❃、訂閱♦☜☞☝✍☚☛☟✌✽✾✿❁❃、聯系我們♦☜☞☝✍☚☛☟✌✽✾✿❁❃,這些按鈕的大小❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣、顏色等變化會促使用戶的操作幾率發生變化ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ。
3. 價格列表㈠㈡㈢㈣㈤㈥㈦,我們通過不同的方式展示產品價格✵✶✷✸✹✺✻✼❄❅,會導致用戶不同的反應⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,這個比較容易理解✺ϟ☇♤♧♡♢♠♣♥。
4. 產品描述☧☬☸✡♁✙♆。,、':∶;,對產品的描述不同⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,用戶查看㈠㈡㈢㈣㈤㈥㈦、下單的幾率也不同☧☬☸✡♁✙♆。,、':∶;,所以也是比較關鍵的♦☜☞☝✍☚☛☟✌✽✾✿❁❃。
5. 客戶評價⑰⑱⑲⑳⓪⓿❶❷❸❹❺,客戶評價對用戶的影響也比較大♦☜☞☝✍☚☛☟✌✽✾✿❁❃,所以通過不同的客戶評價⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,可以分析用戶下單的幾率ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ。
A/B測試的意義
通過上面的介紹ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,我們明白了A/B測試⒜⒝⒞⒟⒠⒡⒢⒣⒤,也大概明白了A/B測試的目的㈠㈡㈢㈣㈤㈥㈦,就是為了提高用戶的轉換率⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,或者成交率☧☬☸✡♁✙♆。,、':∶;。
比如♦☜☞☝✍☚☛☟✌✽✾✿❁❃,我們通過修改用戶下單按鈕的顏色㈠㈡㈢㈣㈤㈥㈦,來提高用戶的下單率✺ϟ☇♤♧♡♢♠♣♥,如下圖所示⒜⒝⒞⒟⒠⒡⒢⒣⒤,我們將按鈕的顏色改成了紫色ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,更鮮艷的顏色⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,可以導致用戶的轉換率提升18%ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,那這個方案勝出⒜⒝⒞⒟⒠⒡⒢⒣⒤。

所以⑰⑱⑲⑳⓪⓿❶❷❸❹❺,A/B測試的目的和意義⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,就是猜出用戶最喜歡的☾☽❄☃,然后提高轉化率㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉。
A/B測試的工具
很多統計工具自帶A/B測試☈⊙☉℃℉❅,尤其國外的收費的統計工具❻❼❽❾❿⓫⓬⓭⓮⓯⓰,當然用免費的Google Analysis或者百度統計也可以ⓚⓛⓜⓝⓞⓟⓠⓡⓢ,通過自定義參數來區分A或者B㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂。
不同URL的A/B比較簡單웃유ღ♋♂,我們重點分析相同URL的A/B測試ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ。
相同URL的A/B的思路♦☜☞☝✍☚☛☟✌✽✾✿❁❃,通過代碼控制A/B①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,然后告知統計工具✵✶✷✸✹✺✻✼❄❅,當前把我統計到A或B⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,這樣通過統計工具就能看到統計結果☧☬☸✡♁✙♆。,、':∶;。
一般配置統計工具✺ϟ☇♤♧♡♢♠♣♥,我們能清晰的對比A/B的測試結果⑰⑱⑲⑳⓪⓿❶❷❸❹❺。
本次⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,我們通過開源的matomo來如何做A/B測試①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯。

1. 首先登錄Matomo✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴,看到A/B測試
2. 創建A/B測試
3. 選擇對比指標⑰⑱⑲⑳⓪⓿❶❷❸❹❺,比如停留時間①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯、轉化率ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ、PV等
4. 生成A/B代碼㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉,將代碼copy下來ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,修改其中對應A/B事件部分♦☜☞☝✍☚☛☟✌✽✾✿❁❃,換成我們自己的操作❣❦❧♡۵。
var _paq = _paq || [];
_paq.push(['AbTesting::create', {
name: 'banner-color-ab', // you can also use '3' (ID of the experiment) to hide the name
percentage: 100,
includedTargets: [{"attribute":"url","inverted":"0","type":"any","value":""},{"attribute":"url","type":"starts_with","value":"https:\/\/sisutest.dev.weijiantou.com\/","inverted":"0"}],
excludedTargets: [],
variations: [
{
name: 'original',
activate: function (event) {
// usually nothing needs to be done here
}
},
{
name: 'Green', // you can also use '5' (ID of the variation) to hide the name
activate: function(event) {
// eg $('#btn').attr('style', 'color: ' + this.name + ';');
}
}, {
name: 'Gradation', // you can also use '6' (ID of the variation) to hide the name
activate: function(event) {
// eg $('#btn').attr('style', 'color: ' + this.name + ';');
}
}
],
trigger: function () {
return true; // here you can further customize which of your visitors will participate in this experiment
}
}]);
比如上面的代碼⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,有一個activate函數㈠㈡㈢㈣㈤㈥㈦,就是對應我們A/B應該做什么操作⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,比如把banner的顏色改成紅色等⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓。
5. 當搭建完AB測試❻❼❽❾❿⓫⓬⓭⓮⓯⓰,我們接下來就需要耐心等待結果⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,然后收集結果웃유ღ♋♂。
比如下圖⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,就從多個維度웃유ღ♋♂,展示了我們AB測試的具體結果數據ⓚⓛⓜⓝⓞⓟⓠⓡⓢ。

基于Drupal的A/B測試
首先A/B測試大多是根據統計工具在一起的ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,所以大多數時候❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,AB測試需要統計工具提供ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,CMS只是輔助的實現ⓚⓛⓜⓝⓞⓟⓠⓡⓢ。
目前☈⊙☉℃℉❅,Drupal有兩個模塊可以實現類似的A/B測試ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ。
1. A/B Test UI
這個模塊其實是做了一個分流的重定向♀☿☼☀☁☂☄,所以他是不同的URL進行A/B的測試✵✶✷✸✹✺✻✼❄❅,理論上通過Nginx也可以♀☿☼☀☁☂☄,在CMS層面方便管理而已⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓。

2. Smart Content
這個模塊❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,是可以通過一些不同的設置條件㈠㈡㈢㈣㈤㈥㈦,展示不同的內容❣❦❧♡۵,因此我們可以在這個條件里面⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,增加A/BⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,然后進行A/B測試♀☿☼☀☁☂☄,不過模塊默認不提供A/B的條件⑰⑱⑲⑳⓪⓿❶❷❸❹❺,我們需要自己開發插件⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾。
下圖웃유ღ♋♂,我們可以看到smart content可以加多個條件ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,相當于if elseif else㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂,條件也有多種選擇ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,比如cookie相關⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯、設備相關❻❼❽❾❿⓫⓬⓭⓮⓯⓰,UTM相關☾☽❄☃,所以這個可以滿足我們大部分需求❣❦❧♡۵,尤其UTM相關①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯。
從推廣A來的☈⊙☉℃℉❅,就顯示A內容ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,從推廣B來的⒜⒝⒞⒟⒠⒡⒢⒣⒤,就顯示B內容❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣。
也可以自定義條件⑰⑱⑲⑳⓪⓿❶❷❸❹❺,關聯到統計統計里面⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,這個也是一個A/B測試的好方法✵✶✷✸✹✺✻✼❄❅。

結論
A/B測試相對來說涉及范圍比較廣⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,可以跟流量渠道結合⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,比如不同流量來源給到不同的AB結果㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂,或者跟用戶畫像相關❻❼❽❾❿⓫⓬⓭⓮⓯⓰,比如有某些特征(年齡♦☜☞☝✍☚☛☟✌✽✾✿❁❃、標簽)的用戶給另外的AB展示⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓。也可以跟統計統計結合⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓,比如GA✺ϟ☇♤♧♡♢♠♣♥、百度統計㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂、Matomo㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂、SmartLookⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ、CrazyEgg♀☿☼☀☁☂☄、Optimizely等等㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉。此外也跟CMS本身相關☈⊙☉℃℉❅,比如內容的呈現ⓣⓤⓥⓦⓧⓨⓩ、AB結果的定制✵✶✷✸✹✺✻✼❄❅、展示等♀☿☼☀☁☂☄。
因此㈠㈡㈢㈣㈤㈥㈦,市面上很多A/B測試是收費的❻❼❽❾❿⓫⓬⓭⓮⓯⓰,或者提供了收費的解決方案❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,所以我們選擇A/B測試工具或者開源工具的時候♦☜☞☝✍☚☛☟✌✽✾✿❁❃,需要對A/B測試的流程⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯、實施✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴、結果收集要有一個完整的了解✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴,才能做到有的放矢ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,達到測試的目的☈⊙☉℃℉❅。
更多關于資源庫建設和CMS建設的文章✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴,請參考下面的相關鏈接⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,
1㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉、文化數據庫方案介紹
2✺ϟ☇♤♧♡♢♠♣♥、基于開源Drupal構建的國內外高校的特色資源庫案例介紹
3✵✶✷✸✹✺✻✼❄❅、免費開源的資源庫管理系統介紹:Islandora
4ⓣⓤⓥⓦⓧⓨⓩ、如何用開源的系統來構建知識庫平臺⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓?
5⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓、如何基于開源系統構建資料庫/文檔庫平臺
6ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ、如何建設在線展覽和多媒體展覽♀☿☼☀☁☂☄?
7❻❼❽❾❿⓫⓬⓭⓮⓯⓰、CMS如何存儲和管理大量圖片/海量圖片⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯?
8♦☜☞☝✍☚☛☟✌✽✾✿❁❃、CMS如何做視頻管理①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯?