手把手教你從0到1搭建AB測試系統(tǒng)(核心架構(gòu))

19 評論 48649 瀏覽 265 收藏 12 分鐘

本文對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),他的作用是:

  1. 重點(diǎn)抓??;
  2. 明確優(yōu)先級;
  3. 提高行動力;

北極星指標(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é)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. SDK里面都包含啥呢?

    來自廣東 回復(fù)
  2. 新手在,看不明白,期待大神的進(jìn)一步更新。

    回復(fù)
  3. 寫的太好了,啥時(shí)候更新

    來自北京 回復(fù)
  4. 老哥有時(shí)間可以更新2了

    回復(fù)
  5. 感謝分享!另外請教一下,描述性統(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)差異較大

    來自廣東 回復(fù)
  6. 為什么就沒有第二篇啦~

    來自福建 回復(fù)
  7. 分流算法可以補(bǔ)充下嗎,我們目前是對移動設(shè)備做哈希,但還是會有偏差,不知道是不是樣本量的問題

    來自廣東 回復(fù)
  8. 試驗(yàn)的狀態(tài)怎么搞?

    來自江蘇 回復(fù)
  9. 老師好

    來自廣東 回復(fù)
  10. 贊,坐等更新

    來自上海 回復(fù)
  11. 想問下如果ab測試的是功能模塊,那怎么上架appstore?一直沒明白,求解答,謝謝

    回復(fù)
  12. 好文!點(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),不用自己折騰啦 ??

    來自北京 回復(fù)
    1. 給機(jī)智的小編加雞腿

      來自廣東 回復(fù)
  13. 啥時(shí)候更新呀,對分層管理和埋點(diǎn)最感興趣了

    來自上海 回復(fù)
  14. 老師,請教下,AB測試,最主要就是變變變,提高轉(zhuǎn)換率,完成北極星指標(biāo)?

    來自新疆 回復(fù)
    1. 老師不敢當(dāng)哈。
      功能那么多,資源又有限,不可能一步到位,需要借數(shù)據(jù)證明是增長、降低還是不變,從而給下次迭代提供參考。
      如果你是電商行業(yè),你的北極星指標(biāo)就是轉(zhuǎn)化率,是GMV,這要看整個(gè)公司的戰(zhàn)略方向。
      不停的實(shí)驗(yàn),不停的朝著北極星目標(biāo)前進(jìn)。

      來自廣東 回復(fù)
  15. 寫的不錯(cuò)。中小電商企業(yè)有必要做 AB測試嗎?

    來自新疆 回復(fù)
    1. 公司的能力:從統(tǒng)計(jì)學(xué)角度來講,只要參與實(shí)驗(yàn)的獨(dú)立用戶超過1000,實(shí)驗(yàn)周期15天,實(shí)驗(yàn)結(jié)論是可信的。所以對公司的用戶量級是有要求的。
      公司的意愿:增長黑客絕不是哪個(gè)員工拍腦袋想做就能做的,得是公司老板有數(shù)據(jù)驅(qū)動的意識。
      公司的資源:公司愿意投入成本去做這件事,并且得有耐心。

      來自廣東 回復(fù)
    2. 獨(dú)立用戶超過1000,這個(gè)1000是怎么定的?

      來自北京 回復(fù)