使用optimizely做A/B測試

來源:互聯網
上載者:User

標籤:style   blog   http   java   使用   io   strong   檔案   

摘要:

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,提供精確、簡單、子串、Regex四種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牆

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.