使用optimizely做A/B測試


摘要:

optimizaly是一個提供A/B測試服務的網站,可以可視化地在線編輯測試內容和目標,簡單方便。

  1. A/B測試簡介

所謂 A/B 測試,簡單來說,就是為同一個目標制定兩個方案(比如兩個頁面),讓一部分用戶使用 A 方案,另一部分用戶使用 B 方案,記錄下用戶的使用情況,看哪個方案更符合設計目標。參考:

http://oldj.net/article/ab-testing-basic-concept

http://www.zhihu.com/question/20045543

http://en.wikipedia.org/wiki/A/B_testing

https://www.optimizely.com/ab-testing

   2. optimizaly是什么

optimizaly是一個提供A/B測試SaaS服務的互聯網公司,網址是https://www.optimizely.com。是家美國公司,2010年創立,獲得$1.2M,2013.04獲得A輪$28M,2014.05獲得B輪$57M。參考:

https://www.optimizely.com/about

http://en.wikipedia.org/wiki/Optimizely

http://www.zhihu.com/question/23756936

  3. optimizaly的使用簡述

(1)測試發布

測試發布流程:登陸optimizaly的網站  —>輸入要測試的URL —>在optimizaly上編輯對照版本的頁面 —>在optimizaly設定測試目標 —>在頁面源碼上加入一小段js,該js由optimizaly生成 —>啟動測試

所有測試發布操作都是可視化的。可以在線編輯頁面各元素的內容、坐標、樣式,也可以插入或刪除元素。新增圖片時,可以上傳到optimizaly的cdn上,也可以提供已存在圖片的URL。

提供了多種測試目標的設定:

a)點擊事件,在一個預覽頁面上,可視化地進行點擊頁面配置

b)pageView,提供精確、簡單、子串、正則表達式四種URL匹配方法

c)自定義事件,要通過optimizaly提供的api進行設定

操作細節詳見:https://www.optimizely.com/gettingstarted

測試發布的關鍵在於optimizaly生成的js代碼,所有與測試相關的在線編輯,都會相應地體現在該js代碼里,最終也是通過此js控制頁面顯示與數據統計。

 

注意:該js需要加入到html的head中。該js保存在optimizaly的cdn服務器上,每個測試有一個固定的js的url,但每次修改測試內容或目標,都會生成一個新的js,但url不變。

實際的頁面大改版,不適合在線編輯頁面,會有實際的頁面文件存在於我們自己的服務器,可以通過重定向的方式,對新舊版本頁面做A/B測試,詳見:https://help.optimizely.com/hc/en-us/articles/200040675-Redirect-experiments-Comparing-two-separate-pages 

(2)頁面瀏覽與統計

頁面瀏覽流程:輸入網址並回車  —>下載頁面元素,並要下載optimizaly的js —>optimizaly的js通過hash計算出展示給用戶的頁面版本,並通過js控制展示,發送一個uv記錄到optimizaly服務器—>用戶操作...  —>如果觸發預設的事件,則通過ajax發送相應記錄到optimizaly服務器

用戶瀏覽測試頁面,會額外產生兩類流量:

a)下載optimizaly的js代碼:因為js是在head中,所以打開頁面時必然要先加載此js,且會影響到用戶打開頁面的速度。js文件大小是46KB,位於美國的服務器上,我的網絡的打開速度在200-500ms之間。可以考慮把此js放到自己的國內服務器上,但要保證每次修改測試時,都要及時更新js文件。

b)觸發統計事件,發送消息給optimizaly服務器:接受操作日志的服務器也在美國,我的網絡延遲在300ms以上,低概率出現發送失敗或時間超長的情況,但因為是異步發送操作日志,對用戶是沒有影響的。如果發送失敗,則丟失統計數據

(3)統計結果查看

optimizaly有專門的測試結果頁面,使用比較簡單,結果也直觀。有幾個指標,說明如下:

visitor over time:統計周期的uv數

conversion over time:如果用戶對頁面進行操作,此處數值就加1;多次操作也算1

conversion rate:conversion/visitor的計算結果

improvement:會挑選一個版本叫做baseline,此數值表示與baseline的轉換率差值

chance to beat baseline: 若用當前版本替換baseline,戰勝它的概率

  4. optimizaly的一些技術細節

    (1) 如何辨別UV

關鍵在於cookie,會存儲用戶id,測試id,瀏覽版本記錄,用戶設備信息,最近10次歷史操作,時間戳等信息。詳見:

https://help.optimizely.com/hc/fr/articles/200040335-What-information-does-Optimizely-store-in-its-cookies-

https://help.optimizely.com/hc/en-us/articles/200040335-How-Optimizely-Works-Snippet-order-of-operations-JavaScript-evaluation-timing-and-cookies 

optimizaly生成的js中,根據用戶cookies,通過一個hash算法,計算出當前用戶展示的頁面樣式,或者跳轉頁面,一個用戶總會看到相同版本的頁面,算法的細節沒能找到資料。如果刪除了cookie,即便是同一台電腦同一個瀏覽器,再次訪問時,又會當做一個新的uv。

    (2) optimizaly的架構

有三個組件:

a) Google App Engine,用於存儲用戶賬戶、測試配置信息

b) Amazon Elastic Compute Cloud and Simple Storage Service,用於接收、存儲、計算統計數據

c) Akamai ,用於存儲生成的js文件

optimizaly的官方網站沒有披露更多技術細節 

  5. optimizaly的坑

(1)費用

它提供的A/B測試是收費的,按照被測網站的uv收費,類似運營商套餐,按月計費,不同套餐提供不同的月uv上限,超出部分費用另算。詳見:https://www.optimizely.com/pricing

(2)統計精度

可能出現統計不准的情況,可能的原因有

a)統計事件發送失敗:統計服務器在美國,低概率發送失敗,文檔前面有描述

b)統計結果非實時:一次用戶操作后,一般5分鍾以后才能在統計結果里查到,並且各指標是分開統計的,例如可能用戶的uv數已經+1了,但該用戶的點擊操作還沒有+1

c)可能optimizaly本身就不准

(3)optimizaly網站最好翻XX牆

測試配置、統計結果等頁面經常打不開,最好帶梯子。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM