인프런 강의 02. - BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석) by 카일스쿨
두 번째 강의는 다른 강의와 고민을 많이 했는데,
마침 본 채용공고에서 퍼널분석과 리텐션분석을 요구하기에 이 강의를 선택했다.
퍼널 분석
? 퍼널 분석의 큰 흐름
1) 서비스, 비즈니스 파악 (서비스의 목표, 기획서)
2) 문제 정의 (핵심 문제, 목표 정의)
3) 퍼널 정의 (퍼널 매핑: 각 페이지 단독 또는 여러 개의 페이지를 퍼널로 정의, 퍼널 별 핵심 이벤트 정의: 가입완료, 결제완료)
- 최종적으로 알고 싶은 것: 하나의 퍼널에서 다음 퍼널로 얼마나 전환되는가
-- 예시: 회원가입 퍼널, 온보딩 퍼널, 결제 퍼널 등
- 퍼널 정의 방법 : 목적에 맞게 구성, 절대적인 공식이나 법칙이 있는 것은 아님
-- 이벤트가 명시적으로 존재하는 경우, 이벤트의 조합으로 사용(예: 메인화면 진입, 구매완료)
-- 명시적으로 존재하지는 않으나, 모든 페이지의 view가 존재하는 경우, 페이지의 view를 기준으로 퍼널을 정의. view이벤트, 커스텀 이벤트 등을 모두 활용
- 퍼널의 종류
-- open 퍼널: 유저의 이벤트 행동 순서에 상관없이 집계한다. 모든 단계에서 시작될 수 있도록 가정한다. 원클릭 결제 등이 있다면 특정 순서를 넘길 수 있기에 유연한 특징을 가진다. A, B, C가 존재하는지 확인
--- 유연한 유저의 여정, 시작위치와 관계없이 모든 사용자의 상호작용을 파악하는 광범위 분석, 최초의 큰 그림을 볼 때
-- closed 퍼널: 유저가 정해진 단계를 순서대로 거쳐야 집계한다. 다음단계가 항상 이전 단계보다 작거나 같다. 대부분의 분석도구에서 활용한다. A->B->C 존재 및 순서기준 엄격하게 따름. 앞선 퍼널의 이벤트가 먼저 진행되었는지 확인해야한다.
--- 유저의 흐름이 고정되어있고, 순차적으로 해야하며, 앞선 조건이 엄격한 경우 사용한다.
-- 제품에 따라 어떤 퍼널을 사용할 것인지 결정하므로 제품을 잘 이해하여야 한다. (온보딩 과정, 결제 과정에서 skip기능이 존재할 수 있다, 특정 url로 자유롭게 직접 접근할 수 있다. 이전 페이지가 다른 경우 존재한다.)
- 지표 집계 단위
-- 유저 별(DISTINCT user_id, 고유한 사용자 수 count, 로그인 필수 서비스가 아닌 경우 device_id, user_pseudo_id), 페이지뷰 별(WHERE event_name="page_view", 페이지뷰 발생 횟수 count), 세션 별(session_id 없는 경우 사용자 로그 기반으로 세션 직접 생성) 집계
-- 여러 차원dimension으로 집계: 시간축(일자별/주차별/월별), 지역정보, 사용자 인구통계학적 정보
-- 하루에 접속이 여러 번 되는 서비스라면 세션을 확인하는 것이 좋으나, 하루 반복이 적다면 일자별, 유저별 집계가 더 좋을 수 있다.
4) 퍼널 분석
- SQL 쿼리 작성
- 의사 결정 : 어느 부분부터 개선? (이탈율이 높은 부분? 퍼널의 뒷 부분(결제 연관)? ROI가 괜찮은 곳 먼저)
-- 서비스에 대해 전반적인 현황 파악(주요 이벤트 발생량, 퍼널 별 사용자 수 변동(퍼널별 정의, 시간의 흐름에 따른 패턴, 특히 더 빠지는 구간))
-- 시각화한 결과만 보는 것이 아닌 숫자도 보면서 질문하기
5) 팀 공유 -> 가설 도출, 아이디어 -> 이탈 원인 파악(팀이 함께) -> 개선 사항 우선 순위 선정(임팩트, 소요시간 고려)
-- 정답이 명확히 있지 않으므로 팀 공유하면서 가능성 찾기
-- 첫 분석을 오래 붙잡고 있지 말고 1주 내에 정리해서 팀 공유 후에 가설 설정하고 상세 분석하는 방향도 좋다.
6) 기능 개발 및 배포 -> AB Test, 지표 모니터링(효과가 있는지)
? 퍼널 관련 아이디어
- 퍼널 단계를 줄이기(gap 줄이기) : 간편 결제 등
- 퍼널 순서 바꾸기: 회원가입 전에 체험
- 결제 직전 추가 상품 추천해서 업셀링
- 장바구니 담기 전에 프로모션 안내
? 퍼널 분석 유의사항
- 너무 넓게 퍼널 정의하면 그 사이에 일어나는 일들의 이유를 파악하기 어렵다.
- 큰 퍼널로 감을 잡고 쪼개서 페이지별 퍼널 파악해보기
- 중요한 퍼널이 무엇인지는 회사마다 다르기에 논의해보는 것이 필요하다.
리텐션 분석
? 리텐션 분석의 큰 흐름
1) 서비스, 비즈니스 파악 : 서비스의 목표, 기획서 파악
2) 문제 정의 : 핵심 문제(처음에는 서비스의 목표, 딥다이브 시 세부적 목표), 목표 정의, 핵심 이벤트 정의(retain의 정의)
- 리텐션: 시간이 흐르면서 다시 제품을 사용하는지를 측정하는 지표
- Retain의 정의가 필요하다. 특정 이벤트를 하는가? 주로 앱 접속.
-- 핵심 이벤트core event를 retain으로 보거나 / 앱 접속을 retain으로 볼 수도 있다.
-- 초기 서비스의 핵심 이벤트 리텐션의 값은 낮을 수 있다. 초기에는 앱 접속 기록으로 리텐션을 구할 수 있고, 점점 구체적인 이벤트(핵심 이벤트)의 리텐션을 파악해야 한다. 앱 접속은 목표가 아니라 과정이기 때문에!
(광고가 BM인 경우 앱 접속이 목표일 수 있다.)
- 다만 접속 주기에 따라 관점이 달라질 수 있고, 제품이 고도화되어 하나의 제품에 여러 페르소나가 있는 경우 여러 핵심 이벤트가 있는 셈이며 팀마다 다른 주기로 리텐션을 볼 수 있다. 슈퍼앱의 경우 각 기능 별로 daily, weekly 다르게 볼 수 있다.
- retention은 output metric으로 원인 파악을 위해서는 구체적으로 쪼개보는 작업이 필요하다.
- 핵심 이벤트: 제품이 해결하고자 하는 고객의 문제가 우리 제품의 핵심(소셜앱: 피드를 본다, 음식 주문 앱: 음식주문, 택시 앱: 택시 탑승, 이커머스 앱: 원하는 제품 주)
3) 사용 주기 파악 : 고객은 문제를 어떤 빈도로 겪을까? 실제와 예상의 차이 파악, 괴리에 따라 daily, weekly, monthly로 파악
- 제품 특성에 따라 주기가 다르다. (연말정산, 이사)
접속 주기가 긴 서비스들은 커뮤니티 기능 등을 붙여서 리텐션을 올리고자 한다.
다만 이 경우, 본래 서비스에 더해져서 본래 서비스까지 함께 접속하도록 되어 있는데, 유플러스는 왜 계속 별도의 서비스를 만들고 있는 걸까? 좋은 아이디어가 많아서 제품은 잘 이용하고 있지만, 통신사 유플러스의 고객이 아님에도 이용하고 있어서 본 서비스로 연계성이 낮지 않은가 하는 생각이 든다. 나중에 광고를 위해서이려나?
찾아보니 통신사를 넘어 플랫폼 서비스 제공자로 사업 방향을 전환하겠다고 하긴 했는데, 통신3사 이미지가 너무 고착화되어 있다는 생각이 든다. 좌우간 Better 계속 흥했으면.
- 고객의 특성(유료, 무료)마다 리텐션 그래프가 다르게 나올 수 있기에 단일 그래프가 아니라 쪼개서 리텐션 커브 확인
- 평균 사용 주기 확인하기
-- 2번 이상 사용한 사람들의 평균 사용 주기 구하기
4) 리텐션 커브 분석 : PMF 도달 여부 확인, 평평해지는 시점 확인. 바닥이라면 끌어올려야함
- product market fit. 제품이 고객의 핵심 문제 상황을 효과적으로 해결할 수 있다는 것으로 평평한 곳이 유지가 되면 PMF를 찾았다고 본다.
- 리텐션 종류
(1) Classic retention (N day retention) : 사용자가 최초로 '참여'한 day 0 이후 각 day N별로 한 번 더 '참여'했는지 계산. 제일 보수적인 접근으로 낮은 값이 나올 수 있다.
(2) Range retention (Bracket retention) : day N이 아닌 특정 range 내에서 더 '참여'했는지 계산. 제일 유연하고 실용적인 관점이다.
(3) Rolling retention (Unbounded retention) : day N 이후에 한 번이라도 '참여'한 경우 그 동안을 모두 참여했다고 간주. 가장 낙관적인 접근으로 높은 값이 나올 수 있다. 최근에 어떤 유저가 참여하게 되면 과거에 본 데이터가 달라질 수 있다. 다만 사용주기가 길어 장기적인 관점으로 데이터를 볼 경우 사용할 수 있다.
- 리텐션 커브 그래프를 보고 평평한 리텐션(retention plateau, 핵심 가치를 경험한 사람들)이 언제 생기는지를 파악하고 리텐션 커브를 위쪽으로 올리는(PMF를 사람들이 더 많이 경험할 수 있도록) 방향을 모색
- 리텐션 커브 해석하기
-- 이 데이터를 가지고 어떤 액션을 알 수 있을까
-- 리텐션이 낮다면 근본적인 PMF를 찾는 것을 고민
-- 자주 쓰는 사람들의 패턴, 자주 사용하지 않는 사람들의 이유 고민
-- 지표 해석 시 {시기+리텐션 종류} 언급 하고 x%p(퍼센트포인트 사용해 배포 전후의 차이 언급) 상승했다고 말하는 것이 좋다.
5) 추가 분석 : 데이터 쪼개 보기. 코호트, 유저 행동 등. 유저 쪼개서 파악(신규,기존,복귀,이탈유저)
- 코호트 리텐션
-- 코호트: 통계적으로 동일한 특색이나 행동 양식을 공유하는 집단
-- 가입일자 기준 가입한 지 1주차 후에도 여전히 사용하는가? 특정 이벤트 여부, 빈도로 만들 수도 있다.
-- 비율과 숫자를 모두 보며 파악하기. 분모가 작을 때 비율 정보만으로 판단하기 어려움
-- 갑자기 변동된 곳 파악, 이유와 배포 기능 확인. 과거에 비해 어떤 것이 달라졌는지.
-- 올라간 특징을 기능으로 만들 수 있는지 고민
-- 그 다음 주차가 어떻게 될지 지속적으로 확인하는 것도 필요
6) 팀 공유 : 가설 도출, 아이디어, 이탈 원인 파악, 개선 사항 우선 순위 선정
- 많이 분석한다고 방법이 나오는 것이 아니어서 2주 정도(1주차 서비스와 니즈 파악 시간 포함)로 진행하여 빠르게 공유, 아이디어 개발하는 것이 좋을 수 있다.
7) 기능 개발 및 배포 : AB Test, 지표 모니터링
앞서의 PM을 위한 데이터 리터러시(프로덕트 데이터 분석) 강의와 겹치는 부분도 있다. 각 분석의 전후 과정도 비슷하다.
강의에는 SQL로 어떻게 해당 부분을 구현하는지, 구글 스프레드 시트에서 시각화하는지도 다루고 있다.
다만 그런 코드는 글 초반에 적힌 저작권 이슈가 있을 것 같아서 공개로 쓰지는 않으려고 한다. 개인용으로 SQL 코드북 만들어도 좋겠다는 생각은 든다.
퍼널 분석과 리텐션 분석, 코호트 리텐션 분석 개념은 학습하고 있었는데, 이 강의를 통해 실무에서 어떻게 해석하는지, 어떤 태도로 접근해야 하는지에 대해 배웠다. 강사님 경험담 공유와 개인적 의견을 곁들여서 설명해주시는데, 제품 데이터를 가지고 일하는 것이 기대되었다.