手把手教你從0到1搭建AB測試系統(tǒng)(核心架構(gòu))
本文對AB測試做了相關(guān)的整體介紹。什么是A/B測試?為什么要使用A/B測試?A/B測試的架構(gòu)是什么?
最近一段時(shí)間在負(fù)責(zé)公司內(nèi)部AB測試系統(tǒng)從0到1的搭建,在實(shí)現(xiàn)中踩了很多坑,也做了很多競品分析了解國內(nèi)外的競品通用做法。
借此機(jī)會總結(jié)下這段時(shí)間的經(jīng)驗(yàn)并分享給大家,希望能讓看到這篇文章的人少走彎路。
之所以命名這個(gè)題目是因?yàn)槲倚W(xué)的時(shí)候曾學(xué)過一篇文章叫《手把手教你從0-1搭建傳奇私服》,一不小心就暴露了年齡哈哈哈,跟著教程確實(shí)搭建成功并且還有附近的人進(jìn)入游戲,可是當(dāng)時(shí)自己的電腦作為服務(wù)器的性能太差,運(yùn)營一天就關(guān)閉了,傷感。
分析大多是從產(chǎn)品經(jīng)理需要了解的寬度和深度來描述,具體的技術(shù)不會涉及很多。AB測試的系統(tǒng)里面細(xì)講起來會比較復(fù)雜,這一系列文章的主要目的就是掰開了揉碎了結(jié)構(gòu)化的把這點(diǎn)事說清楚。
閑話少敘,進(jìn)入正題!
一、什么是AB測試?
引用VWO對AB測試的解釋:
A/B testing (sometimes called split testing) is comparing two versions of a web page to see which one performs better.?You compare two web pages by showing the two variants (let’s call them A and B) to similar visitors at the same time. The one that gives a better conversion rate, wins!
從圖中可以看出,AB測試是對比兩個(gè)或多個(gè)變體在同一地方好壞的方法,并且需要保證樣本的同時(shí)和同質(zhì)。
同時(shí)性:兩個(gè)變體是同時(shí)投入使用的,而不是今天使用A變體,明天使用B變體,這樣會有其他因素影響。比如,對于電商網(wǎng)站來說今天沒有活動,而明天是雙十一,在這個(gè)條件下我們不能判斷變體B比變體A好。
同質(zhì)性:兩個(gè)變體對應(yīng)的使用群體需要保證盡量一致。比如,想想一個(gè)極端場景:變體A里全是女性,變體B中全是男性,我們根本無法判斷出來究竟是方案影響了最終效果還是性別。
為什么要使用AB測試?
先來看下最近挺火的一個(gè)概念:增長黑客。
俗話說:人挪活,樹挪死?;ヂ?lián)網(wǎng)想要成長也得挪一挪,我個(gè)人理解增長黑客的核心就是:變。
左邊PDCA戴明環(huán),這個(gè)四部的循環(huán)一般用來提高產(chǎn)品品質(zhì)和改善產(chǎn)品生產(chǎn)過程。
右邊是增長黑客環(huán),是不是很像?
互聯(lián)網(wǎng)的好處就是能對數(shù)據(jù)能夠有更加深層次的挖掘和記錄,經(jīng)過對整體數(shù)據(jù)的分析提出能夠達(dá)成自己的目標(biāo)的解決方案,然后排期、測試,根據(jù)測試數(shù)據(jù)再進(jìn)行分析依次循環(huán),如下圖:
觀察力驚人的你一定還發(fā)現(xiàn)了增長黑客里邊有個(gè)紅色星星是干啥的?
增長黑客里叫北極星指標(biāo),他的作用是:
- 重點(diǎn)抓??;
- 明確優(yōu)先級;
- 提高行動力;
北極星指標(biāo)舉例:
詳細(xì)介紹北極星指標(biāo)的文章可以看這篇:如何選擇正確的數(shù)據(jù)指標(biāo)?
上述說了這么多概念,主要是為了讓大家對AB測試的背景有個(gè)基礎(chǔ)的認(rèn)知,接下來重點(diǎn)說AB測試。
二、AB測試的架構(gòu)
我會從四個(gè)方面:管理后臺、分流引擎、結(jié)構(gòu)數(shù)據(jù)、對接方式來解構(gòu)如果想要做一個(gè)AB測試系統(tǒng)需要準(zhǔn)備哪些。
這篇文章的目的是為了讓大家有一個(gè)宏觀的了解,詳細(xì)的功能性闡述會放在后續(xù)的文章中。
下面這張是宏觀的腦圖:
1. 管理后臺
我們習(xí)慣定義每一個(gè)AB測試都屬于一個(gè)獨(dú)立的實(shí)驗(yàn),方便管理和查看統(tǒng)計(jì)數(shù)據(jù)。
在管理后臺當(dāng)中可以創(chuàng)建、管理實(shí)驗(yàn),還可以在實(shí)驗(yàn)進(jìn)行中、結(jié)束后查看實(shí)驗(yàn)數(shù)據(jù)。
舉例國外和國內(nèi)分別做的比較好的AB測試平臺的實(shí)驗(yàn)架構(gòu):
國外:Google 的 Optimize。Google的實(shí)驗(yàn)架構(gòu)一共有五層:
國內(nèi):吆喝科技。吆喝科技的實(shí)驗(yàn)架構(gòu)一共有四層:
為什么有這么多層?
其實(shí)真正看實(shí)驗(yàn)的是最下面那兩層,實(shí)驗(yàn)下面綁定不同的變體(或者叫版本)。
上面的層是為了更好的管理賬號,他們作為商業(yè)軟件需要更靈活的適合不同公司的情況,各位按需即可。
2. 分流引擎
AB測試一般又稱為桶測試,為啥叫桶測試呢?奧秘就在分流這塊!
先解釋一下變體和桶的關(guān)系:
為了方便計(jì)算,假設(shè)現(xiàn)在有12個(gè)人(Customer),我們給12個(gè)人進(jìn)行編號,C1~C12;有6個(gè)桶(Bucket)我們編號為B1~B6。
每個(gè)用戶在訪問實(shí)驗(yàn)時(shí),會先進(jìn)入到分流算法中,由算法來決定分到哪個(gè)桶里面,都分完后最理想的是每個(gè)桶里正好有2個(gè)人。(實(shí)際上基于大數(shù)定律原理,數(shù)據(jù)量越大分配的會越平均)
那么現(xiàn)在,假設(shè)每個(gè)變體的流量是50%,變體A我們假定對應(yīng)的是三個(gè)桶B1、B2、B3桶,變體B也是對應(yīng)的是B4、B5、B6桶。
實(shí)際上有沒有發(fā)現(xiàn),變體A選中的概率是50%,所以只要對應(yīng)任意三個(gè)桶即可:
- 算法:保證分每個(gè)桶分到的越隨機(jī)越平均越好。
- 節(jié)點(diǎn):前端分流和后端分流
- 分流主體:Cookie、Session
國內(nèi)的AB測試一般采取的是Cookie分流,Google采取的是Session分流。
3. 結(jié)構(gòu)數(shù)據(jù)
- 埋點(diǎn)方式:主要是數(shù)據(jù)的采集和上報(bào)
目前市面上常用的埋點(diǎn)方式為:代碼埋點(diǎn)、可視化埋點(diǎn)、全埋點(diǎn)(或者無埋點(diǎn))
- 數(shù)據(jù)倉庫:埋點(diǎn)數(shù)據(jù)的清洗、計(jì)算、儲存。
結(jié)構(gòu)數(shù)據(jù)的準(zhǔn)確性決定了,AB測試數(shù)據(jù)分析準(zhǔn)確性,如果你所在的公司埋點(diǎn)沒有搞起來,并且無法保證數(shù)據(jù)的準(zhǔn)確性,我勸你還是不要做AB測試?yán)速M(fèi)時(shí)間 [尷尬又不失禮貌的微笑]。
4. 對接方式:業(yè)務(wù)方接入到AB測試的方式
對接方式更偏技術(shù),但是從產(chǎn)品的角度需要知道不同方式對AB測試競爭力的影響。
如果是商用的AB測試軟件SDK肯定是首選,因?yàn)槟悴豢赡苊看味寂c業(yè)務(wù)方對接接口,并且SDK里面是會包含埋點(diǎn)的。
如果只是內(nèi)部使用,并且是初步搭建AB測試系統(tǒng),最好還是選取接口的方式,方便快捷并且比較穩(wěn)定。
5. 從訪問到產(chǎn)生實(shí)驗(yàn)統(tǒng)計(jì)數(shù)據(jù)的流程
上面是拆分了不同的模塊做了簡單的介紹,下面介紹一下用戶從訪問到產(chǎn)生實(shí)驗(yàn)統(tǒng)計(jì)數(shù)據(jù)的整個(gè)流程。
1. 分流引擎:當(dāng)用戶來到實(shí)驗(yàn)時(shí)會通過分流引擎把流量一部分分到變體A,一部分分到變體B。
注:在分流引擎中會有一些模塊拆分,這些會在后續(xù)的文章中詳細(xì)講解。
2. 變體展示:為了方便理解,假設(shè)我們本次實(shí)驗(yàn)每個(gè)變體流量均為50%,則所有訪問本次實(shí)驗(yàn)的將會有50%的概率看到變體A,有50%的概率看到變體B。
注:實(shí)驗(yàn)對應(yīng)的每個(gè)變體的流量是可以通過管理后臺進(jìn)行配置的。
3. 埋點(diǎn)指標(biāo):業(yè)務(wù)端或者AB測試服務(wù)提供端采集預(yù)先定義好的“埋點(diǎn)指標(biāo)”。埋點(diǎn)指標(biāo)的意思是,能證明此是否達(dá)成了所設(shè)定的北極星指標(biāo)的具體數(shù)據(jù)。
4. 數(shù)據(jù)整理:針對埋點(diǎn)指標(biāo)進(jìn)行清洗、計(jì)算。
5. 數(shù)據(jù)展示:對應(yīng)到管理后臺中是實(shí)驗(yàn)報(bào)告,是對本次實(shí)驗(yàn)結(jié)果的集中展示。包括描述性統(tǒng)計(jì)分析和決策統(tǒng)計(jì)分析。
6. 變體編輯:對不同變體實(shí)際功能需求的開發(fā)。這個(gè)模塊是發(fā)生整個(gè)實(shí)驗(yàn)開始之前,需要定義好每個(gè)變體究竟是以什么方式展示給參與實(shí)驗(yàn)的用戶。
比如:變體A用紅色按鈕,變體B用綠色按鈕。
如果把所有的信息全部都寫進(jìn)一篇文章可能大家對這篇文章剩下的操作就只剩收藏了,加之平時(shí)寫文章的時(shí)間畢竟也比較有限,所以就把它拆分成了一個(gè)系列。
本次只是先將AB測試做整體介紹,后續(xù)再分開做某一模塊的詳細(xì)介紹。大家可以在留言中給自己感興趣留言,疑問比較多或者更多人感興趣的地方會優(yōu)先更新。
萬一此篇文章看的人很少也沒人回復(fù),只能按自己的節(jié)奏逐步更新,就全當(dāng)總結(jié)歸納罷了。
水平有限,歡迎各位大神來砸場討論!謝謝!
本文由 @?任秀明 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
SDK里面都包含啥呢?
新手在,看不明白,期待大神的進(jìn)一步更新。
寫的太好了,啥時(shí)候更新
老哥有時(shí)間可以更新2了
感謝分享!另外請教一下,描述性統(tǒng)計(jì)和決策統(tǒng)計(jì)這塊,一般的開展維度有哪些呢?按我理解:
1)描述性統(tǒng)計(jì):更多的是對實(shí)驗(yàn)設(shè)定的指標(biāo)做基礎(chǔ)值觀測,包括組內(nèi)指標(biāo)的眾數(shù)、分位數(shù)、方差等
2)決策統(tǒng)計(jì):基于上面的數(shù)據(jù)對比,增加一個(gè)顯著性校驗(yàn),基于校驗(yàn)結(jié)果來說明實(shí)驗(yàn)和參照組哪些指標(biāo)差異較大
為什么就沒有第二篇啦~
分流算法可以補(bǔ)充下嗎,我們目前是對移動設(shè)備做哈希,但還是會有偏差,不知道是不是樣本量的問題
試驗(yàn)的狀態(tài)怎么搞?
老師好
贊,坐等更新
想問下如果ab測試的是功能模塊,那怎么上架appstore?一直沒明白,求解答,謝謝
好文!點(diǎn)贊,很干貨,樓主在自己公司內(nèi)部搭建自家的AB測試,想必公司規(guī)模達(dá)到數(shù)量級了。
不過,一般團(tuán)隊(duì)來說很難有精力和資源來搞自己的AB測試系統(tǒng),推薦下Testin云測A/B測試:http://ab.testin.cn,標(biāo)準(zhǔn)版免費(fèi),不用自己折騰啦 ??
給機(jī)智的小編加雞腿
啥時(shí)候更新呀,對分層管理和埋點(diǎn)最感興趣了
老師,請教下,AB測試,最主要就是變變變,提高轉(zhuǎn)換率,完成北極星指標(biāo)?
老師不敢當(dāng)哈。
功能那么多,資源又有限,不可能一步到位,需要借數(shù)據(jù)證明是增長、降低還是不變,從而給下次迭代提供參考。
如果你是電商行業(yè),你的北極星指標(biāo)就是轉(zhuǎn)化率,是GMV,這要看整個(gè)公司的戰(zhàn)略方向。
不停的實(shí)驗(yàn),不停的朝著北極星目標(biāo)前進(jìn)。
寫的不錯(cuò)。中小電商企業(yè)有必要做 AB測試嗎?
公司的能力:從統(tǒng)計(jì)學(xué)角度來講,只要參與實(shí)驗(yàn)的獨(dú)立用戶超過1000,實(shí)驗(yàn)周期15天,實(shí)驗(yàn)結(jié)論是可信的。所以對公司的用戶量級是有要求的。
公司的意愿:增長黑客絕不是哪個(gè)員工拍腦袋想做就能做的,得是公司老板有數(shù)據(jù)驅(qū)動的意識。
公司的資源:公司愿意投入成本去做這件事,并且得有耐心。
獨(dú)立用戶超過1000,這個(gè)1000是怎么定的?