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

19 評(píng)論 49118 瀏覽 269 收藏 12 分鐘
🔗 产品经理在不同的职业阶段,需要侧重不同的方面,从基础技能、业务深度、专业领域到战略规划和管理能力。

本文對(duì)AB測(cè)試做了相關(guān)的整體介紹。什么是A/B測(cè)試?為什么要使用A/B測(cè)試?A/B測(cè)試的架構(gòu)是什么?


最近一段時(shí)間在負(fù)責(zé)公司內(nèi)部AB測(cè)試系統(tǒng)從0到1的搭建,在實(shí)現(xiàn)中踩了很多坑,也做了很多競(jìng)品分析了解國(guó)內(nèi)外的競(jìng)品通用做法。

借此機(jī)會(huì)總結(jié)下這段時(shí)間的經(jīng)驗(yàn)并分享給大家,希望能讓看到這篇文章的人少走彎路。

之所以命名這個(gè)題目是因?yàn)槲倚W(xué)的時(shí)候曾學(xué)過一篇文章叫《手把手教你從0-1搭建傳奇私服》,一不小心就暴露了年齡哈哈哈,跟著教程確實(shí)搭建成功并且還有附近的人進(jìn)入游戲,可是當(dāng)時(shí)自己的電腦作為服務(wù)器的性能太差,運(yùn)營(yíng)一天就關(guān)閉了,傷感。

分析大多是從產(chǎn)品經(jīng)理需要了解的寬度和深度來(lái)描述,具體的技術(shù)不會(huì)涉及很多。AB測(cè)試的系統(tǒng)里面細(xì)講起來(lái)會(huì)比較復(fù)雜,這一系列文章的主要目的就是掰開了揉碎了結(jié)構(gòu)化的把這點(diǎn)事說(shuō)清楚。

閑話少敘,進(jìn)入正題!

一、什么是AB測(cè)試?

引用VWO對(duì)AB測(cè)試的解釋:

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測(cè)試是對(duì)比兩個(gè)或多個(gè)變體在同一地方好壞的方法,并且需要保證樣本的同時(shí)和同質(zhì)。

同時(shí)性:兩個(gè)變體是同時(shí)投入使用的,而不是今天使用A變體,明天使用B變體,這樣會(huì)有其他因素影響。比如,對(duì)于電商網(wǎng)站來(lái)說(shuō)今天沒有活動(dòng),而明天是雙十一,在這個(gè)條件下我們不能判斷變體B比變體A好。

同質(zhì)性:兩個(gè)變體對(duì)應(yīng)的使用群體需要保證盡量一致。比如,想想一個(gè)極端場(chǎng)景:變體A里全是女性,變體B中全是男性,我們根本無(wú)法判斷出來(lái)究竟是方案影響了最終效果還是性別。

為什么要使用AB測(cè)試?

先來(lái)看下最近挺火的一個(gè)概念:增長(zhǎng)黑客。
俗話說(shuō):人挪活,樹挪死。互聯(lián)網(wǎng)想要成長(zhǎng)也得挪一挪,我個(gè)人理解增長(zhǎng)黑客的核心就是:變。

左邊PDCA戴明環(huán),這個(gè)四部的循環(huán)一般用來(lái)提高產(chǎn)品品質(zhì)和改善產(chǎn)品生產(chǎn)過程。

右邊是增長(zhǎng)黑客環(huán),是不是很像?

互聯(lián)網(wǎng)的好處就是能對(duì)數(shù)據(jù)能夠有更加深層次的挖掘和記錄,經(jīng)過對(duì)整體數(shù)據(jù)的分析提出能夠達(dá)成自己的目標(biāo)的解決方案,然后排期、測(cè)試,根據(jù)測(cè)試數(shù)據(jù)再進(jìn)行分析依次循環(huán),如下圖:

觀察力驚人的你一定還發(fā)現(xiàn)了增長(zhǎng)黑客里邊有個(gè)紅色星星是干啥的?

增長(zhǎng)黑客里叫北極星指標(biāo),他的作用是:

  1. 重點(diǎn)抓取;
  2. 明確優(yōu)先級(jí);
  3. 提高行動(dòng)力;

北極星指標(biāo)舉例:

詳細(xì)介紹北極星指標(biāo)的文章可以看這篇:如何選擇正確的數(shù)據(jù)指標(biāo)?

上述說(shuō)了這么多概念,主要是為了讓大家對(duì)AB測(cè)試的背景有個(gè)基礎(chǔ)的認(rèn)知,接下來(lái)重點(diǎn)說(shuō)AB測(cè)試。

二、AB測(cè)試的架構(gòu)

我會(huì)從四個(gè)方面:管理后臺(tái)、分流引擎、結(jié)構(gòu)數(shù)據(jù)、對(duì)接方式來(lái)解構(gòu)如果想要做一個(gè)AB測(cè)試系統(tǒng)需要準(zhǔn)備哪些。

這篇文章的目的是為了讓大家有一個(gè)宏觀的了解,詳細(xì)的功能性闡述會(huì)放在后續(xù)的文章中。

下面這張是宏觀的腦圖:

1. 管理后臺(tái)

我們習(xí)慣定義每一個(gè)AB測(cè)試都屬于一個(gè)獨(dú)立的實(shí)驗(yàn),方便管理和查看統(tǒng)計(jì)數(shù)據(jù)。

在管理后臺(tái)當(dāng)中可以創(chuàng)建、管理實(shí)驗(yàn),還可以在實(shí)驗(yàn)進(jìn)行中、結(jié)束后查看實(shí)驗(yàn)數(shù)據(jù)。

舉例國(guó)外和國(guó)內(nèi)分別做的比較好的AB測(cè)試平臺(tái)的實(shí)驗(yàn)架構(gòu):

國(guó)外:Google 的 Optimize。Google的實(shí)驗(yàn)架構(gòu)一共有五層:

國(guó)內(nèi):吆喝科技。吆喝科技的實(shí)驗(yàn)架構(gòu)一共有四層:

為什么有這么多層?

其實(shí)真正看實(shí)驗(yàn)的是最下面那兩層,實(shí)驗(yàn)下面綁定不同的變體(或者叫版本)。

上面的層是為了更好的管理賬號(hào),他們作為商業(yè)軟件需要更靈活的適合不同公司的情況,各位按需即可。

2. 分流引擎

AB測(cè)試一般又稱為桶測(cè)試,為啥叫桶測(cè)試呢?奧秘就在分流這塊!

先解釋一下變體和桶的關(guān)系:

為了方便計(jì)算,假設(shè)現(xiàn)在有12個(gè)人(Customer),我們給12個(gè)人進(jìn)行編號(hào),C1~C12;有6個(gè)桶(Bucket)我們編號(hào)為B1~B6。

每個(gè)用戶在訪問實(shí)驗(yàn)時(shí),會(huì)先進(jìn)入到分流算法中,由算法來(lái)決定分到哪個(gè)桶里面,都分完后最理想的是每個(gè)桶里正好有2個(gè)人。(實(shí)際上基于大數(shù)定律原理,數(shù)據(jù)量越大分配的會(huì)越平均)

那么現(xiàn)在,假設(shè)每個(gè)變體的流量是50%,變體A我們假定對(duì)應(yīng)的是三個(gè)桶B1、B2、B3桶,變體B也是對(duì)應(yīng)的是B4、B5、B6桶。

實(shí)際上有沒有發(fā)現(xiàn),變體A選中的概率是50%,所以只要對(duì)應(yīng)任意三個(gè)桶即可:

  • 算法:保證分每個(gè)桶分到的越隨機(jī)越平均越好。
  • 節(jié)點(diǎn):前端分流和后端分流
  • 分流主體:Cookie、Session

國(guó)內(nèi)的AB測(cè)試一般采取的是Cookie分流,Google采取的是Session分流。

3. 結(jié)構(gòu)數(shù)據(jù)

  • 埋點(diǎn)方式:主要是數(shù)據(jù)的采集和上報(bào)

目前市面上常用的埋點(diǎn)方式為:代碼埋點(diǎn)、可視化埋點(diǎn)、全埋點(diǎn)(或者無(wú)埋點(diǎn))

  • 數(shù)據(jù)倉(cāng)庫(kù):埋點(diǎn)數(shù)據(jù)的清洗、計(jì)算、儲(chǔ)存。

結(jié)構(gòu)數(shù)據(jù)的準(zhǔn)確性決定了,AB測(cè)試數(shù)據(jù)分析準(zhǔn)確性,如果你所在的公司埋點(diǎn)沒有搞起來(lái),并且無(wú)法保證數(shù)據(jù)的準(zhǔn)確性,我勸你還是不要做AB測(cè)試?yán)速M(fèi)時(shí)間 [尷尬又不失禮貌的微笑]。

4. 對(duì)接方式:業(yè)務(wù)方接入到AB測(cè)試的方式

對(duì)接方式更偏技術(shù),但是從產(chǎn)品的角度需要知道不同方式對(duì)AB測(cè)試競(jìng)爭(zhēng)力的影響。

如果是商用的AB測(cè)試軟件SDK肯定是首選,因?yàn)槟悴豢赡苊看味寂c業(yè)務(wù)方對(duì)接接口,并且SDK里面是會(huì)包含埋點(diǎn)的。

如果只是內(nèi)部使用,并且是初步搭建AB測(cè)試系統(tǒng),最好還是選取接口的方式,方便快捷并且比較穩(wěn)定。

5. 從訪問到產(chǎn)生實(shí)驗(yàn)統(tǒng)計(jì)數(shù)據(jù)的流程

上面是拆分了不同的模塊做了簡(jiǎn)單的介紹,下面介紹一下用戶從訪問到產(chǎn)生實(shí)驗(yàn)統(tǒng)計(jì)數(shù)據(jù)的整個(gè)流程。

1. 分流引擎:當(dāng)用戶來(lái)到實(shí)驗(yàn)時(shí)會(huì)通過分流引擎把流量一部分分到變體A,一部分分到變體B。

注:在分流引擎中會(huì)有一些模塊拆分,這些會(huì)在后續(xù)的文章中詳細(xì)講解。

2. 變體展示:為了方便理解,假設(shè)我們本次實(shí)驗(yàn)每個(gè)變體流量均為50%,則所有訪問本次實(shí)驗(yàn)的將會(huì)有50%的概率看到變體A,有50%的概率看到變體B。

注:實(shí)驗(yàn)對(duì)應(yīng)的每個(gè)變體的流量是可以通過管理后臺(tái)進(jìn)行配置的。

3. 埋點(diǎn)指標(biāo):業(yè)務(wù)端或者AB測(cè)試服務(wù)提供端采集預(yù)先定義好的“埋點(diǎn)指標(biāo)”。埋點(diǎn)指標(biāo)的意思是,能證明此是否達(dá)成了所設(shè)定的北極星指標(biāo)的具體數(shù)據(jù)。

4. 數(shù)據(jù)整理:針對(duì)埋點(diǎn)指標(biāo)進(jìn)行清洗、計(jì)算。

5. 數(shù)據(jù)展示:對(duì)應(yīng)到管理后臺(tái)中是實(shí)驗(yàn)報(bào)告,是對(duì)本次實(shí)驗(yàn)結(jié)果的集中展示。包括描述性統(tǒng)計(jì)分析和決策統(tǒng)計(jì)分析。

6. 變體編輯:對(duì)不同變體實(shí)際功能需求的開發(fā)。這個(gè)模塊是發(fā)生整個(gè)實(shí)驗(yàn)開始之前,需要定義好每個(gè)變體究竟是以什么方式展示給參與實(shí)驗(yàn)的用戶。

比如:變體A用紅色按鈕,變體B用綠色按鈕。

如果把所有的信息全部都寫進(jìn)一篇文章可能大家對(duì)這篇文章剩下的操作就只剩收藏了,加之平時(shí)寫文章的時(shí)間畢竟也比較有限,所以就把它拆分成了一個(gè)系列。

本次只是先將AB測(cè)試做整體介紹,后續(xù)再分開做某一模塊的詳細(xì)介紹。大家可以在留言中給自己感興趣留言,疑問比較多或者更多人感興趣的地方會(huì)優(yōu)先更新。

萬(wàn)一此篇文章看的人很少也沒人回復(fù),只能按自己的節(jié)奏逐步更新,就全當(dāng)總結(jié)歸納罷了。

水平有限,歡迎各位大神來(lái)砸場(chǎng)討論!謝謝!

 

本文由 @?任秀明 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來(lái)自Unsplash,基于CC0協(xié)議

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

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

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

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

    回復(fù)
  5. 感謝分享!另外請(qǐng)教一下,描述性統(tǒng)計(jì)和決策統(tǒng)計(jì)這塊,一般的開展維度有哪些呢?按我理解:
    1)描述性統(tǒng)計(jì):更多的是對(duì)實(shí)驗(yàn)設(shè)定的指標(biāo)做基礎(chǔ)值觀測(cè),包括組內(nèi)指標(biāo)的眾數(shù)、分位數(shù)、方差等
    2)決策統(tǒng)計(jì):基于上面的數(shù)據(jù)對(duì)比,增加一個(gè)顯著性校驗(yàn),基于校驗(yàn)結(jié)果來(lái)說(shuō)明實(shí)驗(yàn)和參照組哪些指標(biāo)差異較大

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

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

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

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

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

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

    回復(fù)
  12. 好文!點(diǎn)贊,很干貨,樓主在自己公司內(nèi)部搭建自家的AB測(cè)試,想必公司規(guī)模達(dá)到數(shù)量級(jí)了。
    不過,一般團(tuán)隊(duì)來(lái)說(shuō)很難有精力和資源來(lái)搞自己的AB測(cè)試系統(tǒng),推薦下Testin云測(cè)A/B測(cè)試:http://ab.testin.cn,標(biāo)準(zhǔn)版免費(fèi),不用自己折騰啦 ??

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

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

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

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

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

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

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

      來(lái)自北京 回復(fù)