회사에서 진행했던 A/B test를 회고하고, 부족했던 부분을 보완해서 다시 분석해보는 것이 목적
A/B test 분석, 결과 전달에 필수적으로 들어가야 할 내용
- 가설 탐색
- 실험 진행 여부 결정
- 이 가설을 검증하는데 A/B test가 꼭 필요한지?
- 비즈니스 임팩트는 있는지?
- 비즈니스 임팩트가 있는데, 불확실성이 존재함을 확인했는지?
- 불확실성? 기존에 존재하지 않은 새로운 기능이 추가될 때 (과거 데이터가 없으니 판단 어려움)
- 이 가설을 검증하는데 A/B test가 꼭 필요한지?
- 실험 설계
- 실험 타켓
- 어떤 유저에게 test를 진행할지?
- 어떻게 A/B를 나눌지?
- 지표
- 실험을 통해 어떤 지표를 개선하고 싶은지?
- Primary, Secondary, Guardrail Metric은 무엇?
- MDE를 설정했는지?
- 실험 기간
- 언제, 어느 기간 동안 진행할지?
- 유의미함이 검증될 수 있는 샘플 수는 무엇이고, 그에 따라 책정된건지?
- 샘플 책정 시 MDE를 고려했는지?
- 강의에선 보통 2주가 필요하다고 함
- 프로모션 등 외부 요인이나 계절성 존재하는 기간 제외되었는지?
- 실험 방식
- 빈도주의 접근. 어떤 통계 검정 방식을 사용할 것인지?
- 멘탈 시뮬레이션을 했는지
- 실험이 잘 되었을 때 / 안되었을 때 어떤 행동을 할까?
- 의사 결정할 수 없는 실험 결과일 경우 어떤 행동을 할까?
- 실험을 위한 데이터 로그 설계
- 실험 타켓
- 기능 배포: 데이터 잘 들어오는지 확인, 결과 분석 준비
- 실험 분석
- 지표 확인
- 가드레일 지표는?
- Primary metric은?
- P 값은
- 결과 해석
- 초두 효과(Primary effect), 신기 효과(Novelty effect) 등의 현상이 나타났는지?
- 실험 결과가 애매하다면, 사후 분석을 진행했는지?
- Segment 분석 (주로 유저 정보 기반)
- A/A test는 시도해봤는지? (트래픽만 분할하고 화면 그대로 두고 실험 진행)
- 종합해서 실험 종료 판단
- decision tree와 비슷한 방식으로 실험을 종료시켰는지?
- 지표 확인
- 실험 회고: 회고 및 이후 action plan 수립
- 기타
- 실험이 진행되는 기간 사내 전파했는지? 마케팅이나 CS에 전파해서 실험에 영향 받는 이슈 있으면 바로 확인 필요
- 실험에 대한 내용 잘 기록했는지 (다음 분석을 위한 토대)
- 조직에 lesson learned 잘 공유했는지
- 실험이 많아질 것을 대비해 분석 자동화를 고려했는지
- 스크립트를 자동화 염두에 두고 코딩해볼 수도 있고
- 실험 플랫폼 도입할 것을 건의해볼 수도 있고
A/B test 1: 인게임 재화 충전 모달 A/B test
- 21년 11월에 진행
- 충전 모달에 표시되는 상품 금액은 모두 달러
- 충전 모달 퍼널
퍼널 1 | 퍼널 2 | 퍼널 3 |
---|---|---|
![]() | ![]() | ![]() |
- 발단: 국가별 퍼널 전환율 차이가 남을 데이터 통해 확인
- 왜 전환율 차이가 날까?
- 추측 1 : 실제로 결제해야 하는 금액을 정확히 인지한 시점에 이탈이 발생한다.
- 추측 2 : 스팀의 충전과정이 불편하기 때문에 이탈한다.
- 왜 전환율 차이가 날까?
- 가설: G-Coin 충전 모달에서 자국통화로 예상결제 금액을 보여주면 전환율이 높아지지 않을까? (NA 지역 외에서)
- 실험 설계
- PC 플랫폼 대상
- 타겟 유저: 마지막 OS언어가 중국어 간체 zh_CN인 유저
- A/B 구분 방법: account_id 첫글자가 0, 1, 2, 3, 4, 5, 6, 7이면 A, 나머지는 B
- 확인하려는 지표: G-coin 충전모달의 전환율
- 일정: 21년 9월에 10일 동안 진행
- 테스트하려는 UI
기존 | 변경 |
---|---|
![]() | ![]() |
- 분석
- 가설
- 귀무가설: A 그룹과 B 그룹 간 전환율은 통계적으로 유의미한 차이가 없다
- 대립가설: A 그룹과 B 그룹 간 전환율은 통계적으로 유의미한 차이가 있다
- 검정 방법: 비율 검정, 카이제곱 검정
- 가설
- 결과
- 기존 UI(달러만 표시)에 비해, 자국 통화를 같이 표시한 경우, 충전모달에서 전환율이 낮아지고(약 10%p), 스팀 결제 단계에서 전환율이 높아졌다(약 9%p)
- 그룹 간 전환율은 통계적으로 유의미하게 차이가 있다.
- 보다 정확히는, 차이가 없다고 보기엔 주어진 데이터(전환율 차이)가 너무 강력한 반증이다.
- = 추측 1을 어느정도 뒷받침함
- 스팀 결제가 불편했다면, 스텀 결제 단계에서 전환율이 높아지지 않았을 것 → 유저들이 스팀 결제 시스템을 불편하다고 느끼진 않는다.
- = 추측 2에 대한 반증
회고 (생각나는 것들만)
- 지표를 하나만 봄
- MDE 설정 없음
- 샘플 수 계산 없이 실험 기간 잡음
- 일부 유저도 아닌 전체 유저 대상이었던 것 같음…
- 멘탈 시뮬레이션 무 (결과 안 좋으면 당연히 롤백~ 끝! 이었고, 이후 사후분석을 진행할 생각 없었음)
- 로그 설계는 필요없었음. 패스
- 애매한 실험 결과인데, segment 어찌 나눠보긴 했으나 전달력이 떨어졌음 (결과 해석하면서 나도 무슨 말 하는지 몰랐던 기억이..)
- decision tree와 같이 정형화된 의사결정 방식이 아니라, 그냥 주먹구구 식으로 결과 전달하고, 흐지부지 된 것으로 기억남
재구성
총 두 개 문서 작성 필요: A/B 테스트 설계 문서, 결과 분석 문서
GCoin 충전모달 A/B Test 설계 문서
- 가설 탐색
- 목표: UI/UX 관점에서 지코인 상품 구매 전환율 증가
- 현재 상황:
- 지코인을 충전하는 모달의 퍼널 전환율이 국가마다 차이 있음
- 달러 국가권에선 높은 전환율을, 그 외 통화권에서는 낮은 전환율
- 가설: 지코인 충전 모달에서 자국 통화로 예상 결제 금액을 보여준다면, 달러 비사용 국가권에서의 최종 전환율이 높아질 것
- 실험 진행 여부 결정
- 이 가설을 검증하는데 A/B test가 꼭 필요한지
- 비즈니스 임팩트는 있는지
- 최종 전환율을 높인다면 매출이 증가할 것으로 기대해볼 수 있음. 그러나 자국 통화를 띄우는 퍼널2에서 이탈이 높아진다면, 전환율 증가분이 상쇄될 수도 있음
- 당장 전환율 증가분이 매출 상승으로 이어지지 않더라도, 제공하는 프로덕트에서의 사용성 개선이 이뤄진다면, 추후 매출이 증가하는데 걸림돌을 없애는 것과 같음
- 비즈니스 임팩트가 있는데, 불확실성이 존재함을 확인했는지?
- 비즈니스 임팩트는 있다고 보이나, 기존에 없던 기능 & 데이터가 필요해서 불확실성이 존재함 -> 실험 필요
- 비즈니스 임팩트는 있는지
- 이 가설을 검증하는데 A/B test가 꼭 필요한지
- 실험 설계
- 실험 타켓
- 어떤 유저에게 test를 진행할지?
- 비달러권 국가 중 CN 유저 대상
- 왜 CN 유저만? 가장 큰 파이를 차지하는 것도 있고, 다양한 국가의 다양한 통화를 모두 실험 때 반영하는 것은 리소스 크다고 판단. 두가지를 고려해 위안화만 사용할 수 있고 임팩트 큰 중국 유저 대상으로만 진행
- 어떻게 A/B를 나눌지?
- 접속할 때 언어가 중국어 간체인 유저
- 실험 기간 동안 OS 언어가 변경되지 않은 유저 대상
- account_id 앞글자가 특정 집합에 속하면 A, 아니면 B로 5:5 비율로 배분
- 어떤 유저에게 test를 진행할지?
- 실험 타켓
- 지표
- 실험을 통해 어떤 지표를 개선하고 싶은지? MDE는?
- Primary: 최종 구매 전환율 (MDE 10%)
- Secondary: 충전 모달 체류 시간 (MDE -10%)
- 유저가 고민했어야 할 문제를 제공함으로써 유저 경험 개선을 시키는 영향도 있을 것이라 생각함
- 이게 드러나는 지표로 모달에서의 체류 시간을 선정
- Guardrail: 충전 팝업에서 이탈율 - 최종 구매 전환율 (MDE는 10%p)
- 최종 구매 전환율을 높이는 것이 목적이라 이탈을 감내해야 하긴 하는데, 최종 전환율보다 이탈이 높아지는 것은 막아야 함
- 이탈 유저 수 - 최중 구매 유저 수 는?
- 실험을 통해 어떤 지표를 개선하고 싶은지? MDE는?
- 실험 기간
- 언제, 어느 기간 동안 진행할지? 21년 9월 8일 ~ 17일
- 유의미함이 검증될 수 있는 샘플 수는 무엇이고, 그에 따라 책정된건지?
- 비율 검정이 필요하고, 단측 검정임을 감안했을 때 sample size 구하는 공식은,
- 애초에 검정하려는 효과가 커서 적은 수의 샘플만 필요하다고 나옴. 저 기간 동안 충분한 유저 수 수집될 것으로 예상
- 샘플 책정 시 MDE를 고려했는지?
- 이건 어떻게 하는걸까
- 프로모션 등 외부 요인이나 계절성 존재하는 기간 제외되었는지?
- 해당 사항 없는 것 확인
- 실험 방식
- 빈도주의 접근. 어떤 통계 검정 방식을 사용할 것인지? 검정이랑 베이지안 둘 다 해보면?
- 멘탈 시뮬레이션
- 실험이 잘 되었을 때 / 안되었을 때 어떤 행동을 할까?
- 의사 결정할 수 없는 실험 결과일 경우 어떤 행동을 할까?
- 테스트와 달리 실제 기능 개발에는 더 큰 리소스 필요 (여러 국가 환율 반영해야 하기 때문)
- 환율 데이터 수집부터, 데이터 무결성, 정합성 검증 및 데이터 파이프라인 구축 외 백, 프론트 개발 필요
- 애매한 결과일 경우, 롤백하는 것이 적절
- 실험을 위한 데이터 로그 설계
- 이미 심어져 있어 별도 로그 설계, 개발 불필요
- 실험이 잘 되었을 때 / 안되었을 때 어떤 행동을 할까?
GCoin 충전모달 A/B Test 분석 문서
- 실험 분석
- 지표 확인
- Primary = 최종 전환율
- A: 0.3
- B: 0.29
- Secondary = 충전 모달 체류 시간
- A: 6.8초
- B: 8.9초
- 5% 단위로 모든 백분위수 살펴봤는데, B에서 체류 시간이 대체로 2~4초 높음
- Guardrail = 최종 전환율 - 충전 모달 이탈율
- A: 0.3 - 0.26 = 0.04%p
- B: 0.29 - 0.43 = -0.14%p
- Primary = 최종 전환율
- 지표 확인
- 결과 해석
- 가드레일 지표가 B안에서 마이너스.. 성공 지표는 MDE보다 낮은 차이.. 심지어 B안에서 더 낮아짐
- 검정 결과? 검정까지 갈 필요가..
- 실험 결과가 애매하다면, 사후 분석을 진행했는지?
- Segment 분석 (주로 유저 정보 기반)
- A/A test는 시도해봤는지? (트래픽만 분할하고 화면 그대로 두고 실험 진행)
- 종합해서 실험 종료 판단
- 위 decision tree에 따라 충분한 데이터 쌓였지만, 가드레일 지표 하락 & 성공 지표 하락으로 롤백 결정
- 실험 회고: 회고 및 이후 action plan 수립
- 교훈? 위안화를 표시함으로써 유저 행동에 유의미한 변화를 일으키긴 했는데, 그게 최종 전환율 증가로 이어지기는 어려움
- 시도해볼만한 사후 분석
- 충전 모달에 유입되는 경로에 따라. 현재는 크게 두가지 있음
- 지코인 가격을 처음 접한 유저 대상으로만. 지코인 상품 자체는 고정적이라 기존에 구매했던 유저는 어느정도 위안화에 익숙해서 B안에 별다른 영향이 없었을 것
A/B test 스터디 회고
소감
- 아는 만큼 보이는 것처럼, a/b test의 전반적인 프로세스를 직접 계획하고 분석하니, 봐야 할 지표가 그려지는 경험이 신기했음
- 프로젝트 내내 ‘그 떄 이렇게 했더라면, 그 떄 이 결과값을 전달했더라면..’ 중얼거림. 후회가 많이 남긴한데, 그만큼 반성 & 성장 많이 한 것 같음
- a/b test 자체에 대한 기획, 기술적인 피드백, 평가가 있었어도 좋았겠지만, 이런 기회를 통해 직접 무언가를 해서 남겼다는 것에 큰 의의가 있음
아쉬운 점
- 테스트 자체에 대한 통계적 지식이 더 완벽했으면 ()
- 여러 a/b test 플랫폼을 직접 활용해보는 기회가 있었으면 더 좋았을 듯
- 그 플랫폼에서는 어떤 통계적 기법을 사용하는지 탐구하는 것도