10
20

1. A/B Test란?

  • 임의로 나눠진 두 집단(AB)에게 서로 다른 비/ UX 등을 제시하고, 두 집단 중 어떤 집단이 더 높은 성과를 보이는지 정량적으로 평가하는 방식
  • 대부분의 IT기업에서 데이터 기반 의사 결정의 도구로 활용하고 있음
    • google, amazon, facebook : 매년 10,000개의 실험 진행
    • bing : 300개 이상의 실험이 매주 완료됨
    • Uber : 1,000개 이상의 실험 상시 진행
    • airbnb : 500개 이상의 실험 상시 진행
  • 대표적인 데이터 기반의 의사결정 및 서비스 기획 방법
    • 각각 다른 A, B 화면으로 Variation을 준 후에 전환율을 비교하기

2. A/B Test를 하는 이유

  • 급변하는 시장에서, 정답은 아무도 모름
  • 쉽고 빠르게 테스트할 수 있는 환경에서 경험있는 개인에게 의지하는 것은 너무 위험하거나, 너무 비효율적임
  • 최고의 인재가 모인 Google, Microsoft 등에서 하는 실험의 10~30%만이 긍정적인 결과를 얻음 (출처 : 링크)

3. A/B Test 진행과정

1)  목표 설정 

  • AB 테스트를 진행할 때 반드시 테스트의 목표를 구체화해야 함
    • 명확한 목표가 있어야, 유의미한 지표 선정 및 가설 설정이 가능해짐
  • 명확한 목표를 세웠다면, 그에 맞는 지표를 설정해야 함
    • 서비스 가입자를 늘리고 싶다면 서비스 가입전환율, 버튼 클릭 인원을 늘리고 싶다면 버튼 클릭전환율을 지표로 잡을 수 있음
  • 지표를 설정할 때, 분자와 분모를 명확히 해야함
    • 동일한 가입전환율이라도 분모가 가입페이지 방문자 수인지, 인스톨 유저인지에 따라서 값이 크게 차이나기 때문임

2)  가설 수립 

  • 목표와 지표를 설정하였다면, 어떤 일을 해야 해당 지표가 개선될 수 있을지에 대한 가설을 수립해야 함
  • 가설을 기반으로 어떻게 실험을 진행할지, 무엇을 학습할지가 결정 되므로 신중하게 가설을 세워야 함
  • 가설을 결정하기 전에
    • 가설이 목표와 얼라인되는지 반드시 확인해야 함
    • 해당 가설과 관련한 정보를 충분히 탐색하는 것이 중요함
      • 신입 기획자로 업무를 시작할 경우 이미 회사에서 진행되었던 다양한 실험을 꼼꼼하게 파악해야 자원낭비를 줄일 수 있음
  • 모든 A/B 테스트를 진행할 때마다 반드시 가설과 실험을 통한 결과를 기록해야 함
  • ex. 넷플릭스 - 아트웍이 유저의 CTR에 영향을 미칠 것이라는 가설을 세우고, 하나의 작품에 여러가지 아트웍을 사용하여 A/B 테스트를 진행함
    • 작품의 노출 대비 클릭 전환율을 높이는 것이 목표

3)  실험 설계 

< 지표 설정 >

  • 지표의 종류
    • 합계지표 (sum)
    • 평균이나 중앙값 (mean, median)
      • 가장 자주 쓰는 평균의 함정에 빠지지 않도록 주의
        • 평균 깊이 1m
          • A: 1m, 1m, 1m, 1m, 1m
          • B : 5cm, 5cm, 5cm, 5cm, 4m80cm
        • Median, mode(최빈값) 등을 확인하여 아웃라이어 존재 여부를 파악해야함
          • mean : 1m
          • median : 5cm
          • mode : 5cm
    • 비율(0~1)
      • A/B 테스트 시에 가장 많이 사용되는 지표의 종류
      • 분모와 분자의 값에 따라 값이 크게 달라질 수 있기 때문에 분모에 특히 신경을 쓰는 것이 중요함
      • ex. 결제완료 횟수 / 결제페이지 진입 횟수
  • 민감도(Sensitivity)와 강건성(Robustness)
    • 아무 변화도 가하지 않았는데 들쑥날쑥하는 지표는 강건성이 낮아 실험에 적절한 지표라고 볼 수 없음
    • 어떠한 변화를 가해도 크게 변화하지 않는 지표는 충분히 민감하지 못해 적절한 지표라고 볼 수 없음
    • 민감도와 강건성을 모두 고려해서 결과적으로 실험을 통해 변화시킬 수 있지만 실험 외 영향에서는 어느 정도 안정성을 유지하고 있는 지표를 설정하는 것이 매우 중요함

< Target Users > 

  • Target Users : 어떤 유저 대상으로 실험을 수행할 것인가?
    • 실험군의 모수 설정
      • 많은 유저가 사용하고 있는 서비스라면, 실험의 부작용을 최소화 하기 위해서 실험군을 5~10% 로 설정하는 경우가 많음(실험의 위험도에 따라 다름)
      • 반면, 아직 초기 단계의 스타트업이라면, 유의미한 실험 모수를 빠르게 확보하기 위해서 50% 가량으로 진행하기도 함
      • Sample size
        • 샘플수가 많을수록 결과의 신뢰도가 올라감
        • 다양한 AB testing sample size calculator 가 있어서 쉽게 계산 가능
  • AB testing sample size calculator
    • Baseline Conversion Rate : 통제군의 결제 전환율(가입 전환율 등)
    • Minimum Detectable Effect : 최소 측정 가능 효과 ⇒ 낮을수록 더 정밀한 실험이 되어서 더 많은 사이즈의 샘플이 필요함
    • Statistical Significance : 통계적 유의도 ⇒ 보통은 95%가 기본

< 분기 단위와 분석 단위 >

  • Unit of Diversion (분기 단위)
    • AB test 진행시 A, B가 온전히 랜덤이어야만 두 그룹의 차이점이 Stimulus에 의한 변화라고 확신할 수 있게 됨
    • 자주 사용되는 것
      • 유저들의 고유한 Id : 안정성이 높음 (홀수 짝수 등)
      • event : 유저가 특정 행동(event)를 했을 때 무작위로 A 혹은 B의 결과를 보여줌 (유저 1: 이벤트 n)
        • 가장 Randomize 된 샘플을 뽑을 수 있으나, 서비스의 일관성이 떨어질 수 있기 때문에 유저는 눈치채지 못할 변화에만 사용해야 함
  • Unit of Analysis (분석 단위)
    • A/B Test를 통해 영향을 주고자 하는 최소 단위
    • 보통 지표의 분모로 사용됨
      • 지표가 ARPU (총 구매액 / 회원 수) 이라면 분석단위는 회원
    • 분기 단위를 정할 때는 분석 단위와 일치시키는 것이 바람직함
      • 만약 분석하고 싶은 단위가 '회원' 인데, 분기단위가 '페이지뷰'로 분기되어 있다면, 한명의 회원이 여러개의 페이지 뷰를 만들 수 있음
      • 이 경우 각 페이지뷰는 동일 회원이 만들어 내었으므로 서로 확률이 연관되어있고, 독립성이 없음
      • 만약 어떤 회원은 페이지뷰를 100번하고, 어떤 회원은 1번 했을 때 실험 데이터가 왜곡될 가능성이 커짐

< Duration과 Variation 설정 >

  •  Duration
    • 보통 기간이 길수록 정확성은 높아짐
    • 그러나 명절과 같은 특수한 이벤트가 기간에 포함될 경우 결과 분석에 유의해야 함
  • Variation 설정
    • 어떤 것을 다르게 보여줄 것인가?
    • 둘의 차이가 너무 복합적이면 유의미한 결과 해석이 어려워짐
    • 최대한 실험 단위를 쪼개서 영향력을 확인하고 싶은 부분을 제외하고는 통제하는 것이 좋음

4)  실험 진행 

  • A/B 테스트의 분기가 제대로 이뤄지고 있는지 파악해야 함
  • 실험 기간이 너무 짧을 경우, 유의미한 결과값을 얻을 수 없을 가능성이 높음
  • 지속적으로 데이터를 확인하면서 통계적 유의미성이 확보되었는지 확인해야 함

5)  결과 분석 

  • 통계적 유의성 확인
    • 실험군, 대조군의 각각의 모수와, 전환 유저 값을 통해서 통계적 유의미도를 계산함
    • p-value 계산에서는 보통 0.05보다 낮으면 유의미하다고 판단함
    • 다양한 AB Test 통계적 유의미도를 계산할 수 있는 계산기가 많음
    • 통계적 유의미도가 충분히 확보되지 않은 상태에서 섣부른 결론을 내서는 안됨
  • 불변지표 확인
    • 실험 과정이 문제없었는지 점검하기 위해서 실험 과정에서 변하면 안되는 수치인 '불변지표'를 확인해야 함
    • ex. 구글 - AB 테스트 전후에 AA 테스트를 진행해서 분기에 문제가 없는지 파악함

 

6)  A/B Test 시 주의해야 할 사항들

  • AB testing은 최적화 도구일 뿐 큰 그림을 보여주지는 못함
    • 완전히 새로운 기능을 추가하거나, 훨씬 높은 단계의 의사결정에 관해서는 효과적이지 않음
    • 즉, 산을 잘 올라가고 있는지 말해주지만, 어느 산에 올라가야 하는지 말해주지 못함
  • 대부분의 가설은 틀린다는 것을 명심해야 함
    • 스스로 만든 가설이 잘못된 가설이었다는 것에 두려움을 갖는다면, 올바른 자료 해석이 불가능함
    • 실험을 통해 잘못된 가설이었다는 것을 증명하는 것도 매우 큰 성과이므로 두려움 없이 결과를 직면해야 함
  • 실험을 너무 빨리 끝내면 안됨
    • 많은 기업에서 공들여 AB 테스트를 진행하지만, 정작 실험의 결과의 통계적 유의미성이 낮은 상황에서 실험을 조기 종료하는 경우가 많음
    • 여유를 가지고 실험 결과를 기다려야 함
  • 너무 많은 변인을 한꺼번에 테스트 하면 안됨
    • 한 번에 여러가지 테스트를 진행하고자 욕심을 부릴 경우, 정작 실험 결과에 영향을 미친 핵심 변인이 무엇인지 해석할 수 없게 됨

4. A/B Test 케이스스터디

1)  Airbnb 

① 유저 별점을 함께 노출하는 것이 더 높은 효율을 발휘함 (2019년 9월 23일)

  • A (기존)
    • 유저 : 별에 색칠된 정도가 정확한 수치를 표현하지 못해 의사결정에 도움 받지 못함
    • 호스트 : 잘 확인도 안되는 리뷰를 더 잘 받기 위해 노력할 동기 부여가 사라짐
  • B (실험)
    • 별점을 숫자로 표현
    • 별 옆의 숫자가 리뷰의 개수라는 것을 명확하게 표현
  • 결과적으로 더 높은 예약 전환율이 발생함

② 업체의 가용일정을 노출하고, 원클릭으로 여행일정을 입력하는 테스트를 진행하였으나, 많은 사용을 못 받고 폐기됨 (2020년 9월 3일)

③ 예약하기 버튼을 상단으로 올렸고, 더 높은 효율을 발휘하여 채택됨 (2020년 8월 10일)

  • 예약 버튼 위치의 변경, 세부 항목 보는 방법의 변경 두 가지가 섞여서 실험이 진행된 점은 다음엔 확실히 분리해서 보완할 필요가 있음

2)  bol.com 

① 유저 별점과 별점에 참여한 유저 수를 함께 노출하는 것이 더 높은 효율을 발휘함 (2020년 9월 23일)

  • 이미 검증된 AB 테스트를 레퍼런스 삼아서 바로 적용하는 것도 우리 리소스를 낭비하지 않고 좋은 실험 결과를 프로덕트에 적용시키는 방법임

3)  Amazon 

 정기결제를 늘리기 위해서, 정기결제를 기본 선택값으로 변경하였으나, 효율이 낮아 원래되로 회귀함 (2020년 2월 24일)

  • 정기결제 전환율을 높이기 위해 시도한 것들이 일반결제의 전환율에 악영향을 미치지는 않았는지 고려해야 함
  • 가드레일 지표로 일반 결제 전환율이 특정 이상 떨어지지 않도록 기준점을 설정해둬야 함
  • 정기결제 전환율, 일반결제 전환율의 트레이드오프 관계를 고려하여 전체 결제 전환율, 전체를 통해 얻는 수익 추이 등을 동시에 트래킹하면서 실행을 진행해야 함
  • ★ 모든 회원에게 특정 상품에 대해 정기결제를 기본 선택값으로 설정되도록 하기보다 특정 상품을 n주 이내 재구매한 회원들을 대상으로 선별적으로 정기 결제 기본 선택을 적용했으면 어땠을까? 하는 생각도 듦

② 3가지 보증 내용을 아이콘으로 추가하였고 이를 통해 구매 전환율을 개선하였음

  • 특정 실험을 하기 전에 어느 정도까지 강조할까 고민될 때는 실험 전에 유저 테스트, 유저 인터뷰, 포커스 그룹 인터뷰 등의 정성적 피드백을 바탕으로 비중을 결정하는 것도 하나의 기술임

4)  Netflix 

가입에 필요한 이메일 입력필드를 최앞단에 배치함으로써 가입 전환율을 높였음 (2020년 2월 18일)

② 가입에 필요한 이메일 입력필드를 최앞단에 배치하며 가입률 개선을 이뤘기에, 비밀번호 및 이메일 발송 opt-out 체크박스를 추가하여 회원가입을 한번에 끝내는 UX 를 구성하여 실험하였으나, 낮은 전환율로 인하여 기존안으로 회귀함 (2020년 3월 31일)


5)  booking.com 

① 예약 날짜 설정 date picker가 자동 노출되도록 변경하였고, 높은 검색 전환율을 보여 유지함 (2019년 3월 6일)


6)  Etsy 

상세 배송 타임라인을 제공하여, 배송 관련된 정보의 Visibility 를 높여고, 더불어 오늘 주문해야 표기된 날짜 안에 배송받을 수 있다는 긴급도를 유저에게 심어주었음. 실험군이 더 좋은 효율을 보여주어 채택됨 (2020년 11월 24일)

  • 이커머스 플랫폼에서는 유저가 구매를 망설이는 이유를 파악하고 이 원인을 어떻게 제거할지 고민하는 과정이 필요함
    • ex. 쿠팡 - 언제까지 주문할 경우, 언제 배송이 된다는 정보를 명확하게 명시해서 긴급도를 인지시킴

② 아마존은 Buy Now 버튼을 제거하는 실험을 하였고 이는 실패하여 100% 원래대로 회귀함 (2020년 5월 4일)

  • PO는 Buy Now 버튼을 삭제함으로써 ARPPU, AOV, ABS 등이 높아질 것으로 기대했을 것임
    • ARPPU(Average Revenue Per Paid User) : 구매 유저 당 평균 수익
    • AOV(Average Order Value) : 한 번 주문할 때 평균 얼마 주문하는가? = (전체 주문액 / 전체 주문수)
    • ABS(Average Basket Size) : 평균 장바구니 크기
  • 실험군에서 기업의 수익성이 높아짐을 확인해도 고객에게 불편함을 가져다주는 점은 기업의 본질을 흩트리는 것이기에 수익성 개선이 목표 기준점에 도달하지 못했으면 기존의 대조군이 채택되었을 수도 있음
  • 회사 생각하는 주요 가치랑 수익성 등 현재의 중요한 KPI 간에 상충이 있을 경우 단순히 수치가 높다는 것이 아닌 특정 이상 더 높아야 한다는 기준점을 갖고 실험을 진행함

③ 엣시는 상품 페이지에서 구매 수량을 함께 표기하였고 이 실험은 성공하여 100% 적용됨 (2020년 9월 10일)

  • PO는 ARPPU, AOV, ABS 등의 증대를 기대했을 것임
  • 1개 선택했다는 것을 명확하게 보여주고, 1개 이상의 제품을 장바구니에 넣고싶을 때 수량 선택의 접근성을 높여줌으로써 유저가 더 많은 상품을 구매할 전환율이 더 높아진 것으로 추정됨

COMMENT