Search

Spec: 추천 팝업

Epic 특정 브랜드 구매 의사가 있는 사용자가 원하는 브랜드의 부스트를 찾을 때 3초 안에 찾을 수 있다.

User story & Wireframe

1. 유저는 추천 팝업을 학습할 수 있다.

시나리오
Scenario 사용자는 추천 팝업을 학습할 수 있다. given 앱이 최신 버전이다. 가입 후 슬라이드형 튜토리얼을 모두 보고 웰컴부스트를 받은 유저다. when 메인에 진입한다. then 추천 팝업 튜토리얼이 노출된다. Scenario 사용자가 가입 직후 메인 화면 진입하기 전에 앱을 종료 given 최신 버전 앱에 마이페이지로 가는 딥링크로 앱에 진입하고 > 부스트 리스트로 나왔다. when 슬라이드형 튜토리얼을 모두 보고 웰컴부스트를 받은 후 앱을 껐다 킨다. then 추천 팝업 튜토리얼이 노출된다. Scenario 사용자는 추천 팝업 튜토리얼에서 쉐이크 후 추천팝업으로 진입할 수 있다. given 최신 버전 앱에 첫 진입이다. 쉐이크 튜토리얼이 노출되고 있다. when 핸드폰을 흔든다. then 추천 팝업이 노출된다.
Plain Text
복사
| 아래 와이어프레임 일부 캡쳐
튜토리얼 안내문
흔들어보세요!
폰을 흔들어서 좋아하는 부스트를
바로 볼 수 있어요
부스트 리스트에서 폰을 흔들면
좋아하는 부스트를 바로 볼 수 있어요
튜토리얼 정책
사용자당 1회만 진행한다.
오늘 가입한 유저일 시, 가입 다음날 첫 진입 시 노출한다.
ex) 28일 가입 유저 : 29일 첫 진입 시 노출
각 뷰마다 다른 튜토리얼 이미지가 노출된다.
버튼뷰
카드뷰
GET /boost/tutorial/welcome-boost-1/status가 “waiting”이 아닌 유저에게만 보여준다. (해당 API 타이밍은 앱을 키고 메인화면을 봤을 때 단 한번)
+ 튜토리얼 직후 보여주는 것이 아니기 때문에 강제적인 화면을 덜 보여준다.
- 캐시를 날리지 않으면 튜토리얼을 볼 수 없다. (껐다 켜야 한다)
쉐이크 알림 (spec-out)
spec out (0524)
추천 팝업 튜토리얼(버튼뷰)
추천 팝업 튜토리얼(카드뷰)

2. 유저가 특정 행동을 했을 때 부스트 추천 팝업을 볼 수 있다.

시나리오
Scenario 사용자는 부스트 추천 팝업을 볼 수 있다. given 사용자는 부스트 리스트에 있다. when 핸드폰을 흔들 때 then 부스트 추천 팝업이 노출된다. Scenario 사용자는 로딩 이미지를 볼 수 있다. given 사용자는 부스트 리스트에서 폰을 흔들었다. when 부스트가 노출되는 동안 then 로딩 이미지가 노출된다. Scenario given 사용자가 강화를 해놓았다. - (not v1.0) when then
JavaScript
복사
필요한 정보
구분*
조건
DB table* / API path
DB column* / API body
브랜드 로고
카드형/버튼형 - 항상 노출
브랜드명
카드형 - 항상 노출
할인률
카드형 - 항상 노출
최대 캐시백 금액
카드형 - **정률의 경우
최소 결제 금액
카드형 - **정액의 경우
필요 번개 개수
카드형 - 항상 노출
Policy
1.
‘흔들기’는 부스트 리스트에서만 사용 가능하다.
2.
레드&신용카드 유저에게만 보여지는 기능이다. 위치가 기준이 아니기 때문에 삭제함.
a.
각 유저에게 현재 노출되고 있는 부스트 리스트를 기반으로 해야한다.
3.
현 시점 부스트 리스트에 있는 부스트만 보여진다.
4.
팝업 내에서 중복되지 않는다.
5.
기존 부스트 정책(사용 가능 횟수, 예산 등)과 동일하게 적용한다.
6.
카테고리 부스트 (예: 카페 부스트, 버거 부스트)도 노출된다.
7.
현재 노출된 캠페인 기준
예산이 만료되지 않았다.
visibleFrom ~ visibleTo 사이에 해당한다.
수동 off 되지 않았다.
8.
로직의 결과가 6개 미만일 경우 디폴트 로직을 적용한다.
디폴트 로직 1
기준: 이미 노출된 브랜드와 중복되지 않되, 최근 카드 유저가 가장 많이 구매한 브랜드의 현재 시점 노출된 캠페인을 노출한다.
1.
많이 구매한 순으로 배치한다.
2.
이때, 서버 부하를 막기 위해 1시간 단위로 끊어서 미리 계산해놓는다. (매 시 정각마다 이전 1시간동안 가장 많이 구매된 브랜드를 모아놓는다.)
3.
모든 카드 유저들에 대해 가장 많이 구매한 브랜드들을 모아놓고 보되, 해당 유저에게 노출되는 리스트에 포함되어있는 캠페인만 보인다.
디폴트 로직 2 *장애 등의 이유로 지난 1시간 동안 부스트 구매 이력이 없는 경우
기준: 현재 부스트 리스트에 있는 값을 아무거나 가져온다.
추천 로직
추천로직 1 30일 기준 유저가 많이 구매한 부스트 top 6
추천로직 2 유저에 최근에 구매한 부스트 top 6 (30일 이내)
추천로직 3 유저가 즐겨찾기한 부스트 random 6
추천로직 4 유저가 최근에 클릭한 부스트 가장 최근에 클릭한 순으로 top 6 (v1.0 에는 고려하지 않습니다.)
추천로직 5 유저에게 가장 가까운 부스트(위치) top 3 / random 3 WIP WIP WIP (v1.0 에는 고려하지 않습니다.)
버튼형
카드형
고려해야 할 부스트
선착순일 경우
1.
일정 시간부터 오픈되는 경우가 많아서 그 이전 시간은 제외해야 합니다.
2.
선착순 인원이 모두 찼을 경우 제외해야 합니다.
타임아웃일 경우
1.
일정 시간부터 오픈되는 경우가 많아서 그 이전 시간은 제외해야 합니다.
특별 부스트일 경우
미션 부스트일 경우

3. 사용자는 추천 팝업에서 원하는 부스트를 구매할 수 있다.

시나리오
부스트 디테일
Scenario 사용자는 부스트 디테일을 볼 수 있다. given 사용자는 부스트 추천 팝업을 보고 있다. when 부스트 영역을 클릭했을 때 then 부스트 디테일이 노출된다.
Markdown
복사
번개가 충분한 경우
Scenario 사용자는 추천 팝업에서 원하는 부스트를 구매할 수 있다. given 앱이 최신 버전이다. 유저에게 번개가 충분하다. when 추천 팝업에서 부스트의 'boost' 버튼을 누른다. then 부스트가 구매된다. 필요 번개 수만큼 번개가 소진된다. Scenario 사용자는 추천 팝업에서 진입한 부스트 디테일 페이지에서 부스트를 구매할 수 있다. given 앱이 최신 버전이다. 유저에게 번개가 충분하다. when 추천 팝업>부스트 디테일에서 'boost' 버튼을 누른다. then 부스트가 구매된다. 필요 번개 수만큼 번개가 소진된다.
Plain Text
복사
번개가 부족한 경우
Scenario 사용자는 추천 팝업에서 원하는 부스트를 구매할 수 있다. given 앱이 최신 버전이다. 유저 번개가 부족하다. when 추천 팝업을 볼 때 then 부스트 버튼이 회색 처리된다. when 버튼을 눌렀을 때 then "번개 N개가 부족해요" 토스트가 노출된다. Scenario 사용자는 추천 팝업에서 진입한 부스트 디테일 페이지에서 부스트를 구매할 수 있다. given 앱이 최신 버전이다. 유저 번개가 부족하다. when 디테일 페이지를 볼 때 then 부스트 버튼이 회색 처리된다. "번개 N개가 부족해요" 메시지가 노출되어 있다.
JavaScript
복사
카드형
버튼형

4. 사용자는 추천 팝업 기능을 끄고 켤 수 있다.

v1.0 에는 고려하지 않습니다.

Wireframe

지표/대시보드

1.
목적: 원하는 부스트를 빨리 찾아서 구매하게 만든다.
2.
성공지표: 부스트를 찾고자 하는 행동(shake)을 한 후 3초 안에 부스트를 구매하는 유저의 수
3.
디자인 버전
a.
카드형
소구점
디테일 없이 바로 구매할 수 있을 때 더 빨리 구매할 것이다.
익숙한 카드 형식
Funnel
1) shake_to_popup → buy_boost(screen_view=’popup_card’)
2) shake_to_popup → click_boost_item(screen_view=’popup_card’) → buy_boost(screen_view=’popup_card_detail’)
3) shake_to_popup → view_boost_list(screen_view=’popup_card’) → click_boost_item(screen_view=’popup_card’) → buy_boost(screen_view=’popup_card_detail’)
b.
버튼형
소구점
부스트를 한 눈에 볼 수 있을 때 더 빨리 구매할 것이다.
Funnel
1) shake_popup → click_boost_item(screen_view=’popup_button’) → buy_boost(screen_view=’popup_button_detail’)
사용성 관련 지표
가설
측정 지표
분석 방법
대시보드 설계
1
유저는 추천 팝업에 진입할 것이다.
메인 진입 unique 대비 위치 팝업 진입 unique
amplitude
1. boost_list (unique) > shake_to_popup (unique)
2
추천 팝업에 유저가 구매하고 싶은 부스트가 있을 것이다.
액션 후 3초 안에 buy boost를 수행한다.
hackle experiment 9 그룹 B,C 비교
1. 각 디자인의 shake_to_popup > buy_boost time to convert 계산
3
추천 팝업에 유저가 구매하고 싶은 부스트가 없으면 진입하지 않을 것이다. (그렇다면, 어느 지점까지 떨어지면 사용 안하는지 알아야 함)
유저별 추천 팝업에서 구매 컨버전, 리텐션 비교
amplitude
buy boost (screen_view = ‘popup_card’, ‘popup_card_detail’, ‘popup_button_detail’) 1. retention 2. shake_to popup > unique conversion
4
유저에게 가장 적합한 로직 (1) 유저가 최근에 구매한 부스트 (2) 즐겨찾기한 부스트 (3) 유저가 가장 많이 구매한 부스트
각 로직 별로 click_boost_item 의 event total
amplitude
- click_boost_item 1. recommendation_logic = ‘user_favorite’, ‘recent_purchase’, ‘frequent_purchase’
기능 관련 지표
가설
측정 지표
분석 방법
기능 출시 전
기능 출시 후
1
전체 부스트 구매 시간이 줄어들 것이다.
- 분자: 특정 유저가 발생시킨 “부스트 구매” 이벤트 발생시점으로부터 가장 최근에 발생한 “부스트 리스트 진입” 이벤트 발생시점과의 time interval 의 합계 - 분모: “부스트 구매” 이벤트 발생횟수
hackle experiment 9 그룹 A 와 B,C 비교
median 24s (amplitude)
2
부스트를 찾기 어렵다는 VOC가 줄어들 것이다.
채널톡 인입 건수가 감소한다.
manual

Mobile Event

Search
Events
Name
description
Related Feature
Related to Event Properties (Related to Events (Event Properties))
Related to Event Properties (1) (Related to Events (1) (Related to Event Properties (Related to Events (Event Properties))))
from = ’boost_list’, ‘popup_tutorial’
campaign_id, brand_id, from = ‘popup_card’, ‘popup_button’, ‘boost_list’ recommendation_logic(opt) = ‘user_favorite’, ‘recent_purchase’, ‘frequent_purchase’ (screen_view가 ’boost_list’인 경우에는 recommendation_logic가 없다)
from(opt) = ‘popup_card_detail’, ‘popup_button_detail’, ‘boost_list_detail’ (딥링크 혹은 마이페이지, 웰컴 부스트를 통해 들어온 경우에는 from이 없다.)
from(opt) = ‘popup_card’, ‘popup_card_detail’, ‘popup_button_detail’, ’boost_list_detail’ (후적용의 경우에는 from이 없다.)
event properties

Engineering