Intro.
하루하루 뭐가 어떻게 지나가고 있는지 모르겠긴한데.
일단 공부 시작했고,
또 어찌저찌 뭐라도 진행되고있다.
나 자신에게 좀 더 관대해지고, 나 스스로에게 좀 더 박수쳐주자.

1. 서론 (Introduction)
1.1 퍼널 분석이란? (What is Funnel Analysis?)
퍼널 분석이라하믄 고객이 특정 목표를 달성하기까지의 단계별 경로를 시각적으로 나타내는 분석 기법이라고 한다.
아 퍼널이 뭐냐고요?


깔때기다.
그 우리 퍼널 분석을 한번이라도 구글링했던지 해봤던 사람이라면, 오른쪽깔때기 모양의 단계별로 정리가 된 시각화 자료를 봤을것이다.
대부분의 블로그를 보면, 퍼널분석이라고 하고 전환율에만 너무 집중하는 글들이 있다.
사실 전환율도 중요하지만, 퍼널이라는 개념을 다양한 흐름이 있는 데이터에서는 사용이 가능하다고 생각한다.
당연히 주로 마케팅과 이커머스 업계에서 자주 사용되며, 뭐 요즘은 어플이나 컨텐츠 회사들?에서도 퍼널을 중요시 본다.
또한 경험상 트래픽이 지나가는 흐름 자체에서도 퍼널 분석을 적용해보고 활용할 수 있었다.
즉 여러 흐름이 있는 곳에서 가능한 분석이라고 생각하면 편할것같다.
다시 말해서 각 단계에서 고객(트래픽, 흐름 등등)의 이탈을 추적하고, 문제점을 식별하여 개선점을 찾는 데 활용을 하는 분석이라고 보시믄 되겠다.
개념과 단어들을 좀 잡고 가자면..
- 퍼널(Funnel): 전체 고객 흐름을 단계별로 나누어 시각화한 형태
- 단계(Stage): 퍼널의 각 구성 요소로, 사용자가 목표에 도달하기 위해 거쳐야 하는 개별 단계
- 전환율(Conversion Rate): 한 단계에서 다음 단계로 이동하는 사용자(흐름의) 비율
- 이탈(Drop-off or Bounce): 한 단계에서 다음 단계로 이동하지 못하고 중간에 이탈한 사용자(흐름).
확실히 비즈니스 분석이고 고객 관점들의 분석 방법론이다 보니 전환율을 어디서나 중요시하게 보는 것 같다.
(지난 코호트에서도 전환율을 가장 중요시 보는 것처럼)
1.2 수학적 표현
퍼널 분석에서 수학적인 표현들을 집고 넘어가보자면, 전환율, 유지율 그리고 이탈률 정도를 계산해볼 수 있을 것 같다.
하지만 경험과 아는걸 최대한 살려서 내가 했었던 광고의(트래픽 혹은 유저)의 응답률, 노출률, 클릭률 까지 한번 집어보자.
실재로 업무에서 아래의 KPI들과 퍼널(흐름)을 중요시하게 생각하기도 했고, 수식수식하다 보니까 급 생각이났다..
(수식하나 적으려고 html을 다시보다니..)
1. 전환율(Conversion Rate)
전환율은 특정 단계에서 사용자가 원하는 행동(전환)을 완료한 비율을 알려준다.
분모는 항상 전단계라는걸 잊지말자
여기서 Ni는 퍼널의 i 단계에 있는 사용자 수, Ni+1 은 다음 단계에 있는 사용자 수.
즉, 다음 단계에 얼마나 갔는지다. 그냥 수식으로 써놔서 그렇지
단순하게는 [2단계 사람수 / 1단계 사람수] 이렇게 보면 된다.
2. 유지율(Retention Rate)
유지율은 사용자가 특정 단계 이후에도 계속해서 다음 단계로 넘어가는 비율을 나타내는데.
유지율(RetentionRate)=NiN1×100
N1을 첫 단계의 수라고했을때 각 단계별로의 비율이기 때문에 분자의 Ni만 바뀌는것이다.
전환율과 유지율을 헷갈려하는 사람이 많다. 나도 그랬다.
리텐션과 컨버젼은 다르다!
- 전환율: 전 단계의 모수를 가지고 현단계에 얼마나 전환이 되었는지
- 유지율: 첫 단계로부터 현재 단계에 얼마나 유지가 되고있는지!
아래 예시에서 다시 설명하겠다.
3. 이탈률(BounceRate)
역시 어렵지 않다.
이탈률은 한 단계에서 다음 단계로 이동하지 못하고 이탈한 사용자 비율을 나타내니까, 위에서 뭐 하면되겠어요?
이탈률(BounceRate)=1−전환율
아니믄,
이탈률(BounceRate)=Ni−Ni+1Ni×100
이런식이겠죠?
아래는 내가 경험했던 광고업계에서의 퍼널을 분석할때 볼수있는 흔한 KPI들이다.
흔하디흔하지만 적어보겠다. 아래 나오는 KPI들은 참고로 전환율이다 전환율!
4. 응답률(Response Rate)
응답률은 특정 마케팅 활동에 반응한 사용자 비율을 나타낸다.
트래픽이라면 트래픽에 대해서 응답을 했다고 하면 좀 이해가 되려나..
수식은 역시나 위처럼
응답률(ResponseRate)=responsetrafficvolume(denominator)×100
위에서는 일단 트래픽이라고 적어놓긴했지만,
분모는 어떤거에 대한 응답이냐에 따라서 다르겠죠?
전환률처럼 전 단계의 수라고 생각하면 편하겠다.
5. 노출률(Impression Rate)
노출률은 전체 사용자 중 특정 콘텐츠나 광고를 본 사용자 비율을 나타냅니다:
응답에 대해서 분모를 가지고 가야한다.
노출률(ImpressionRate)=impressionresponse×100
6. 클릭률(Click-through Rate, CTR)
클릭률은 노출된 콘텐츠나 광고를 클릭한 사용자 비율을 나타냅니다:
당욘당연하게도 분모는 뭐다? 노출이다.
클릭률(CTR)=clickimpression×100
자 아래의 그림을 그려보려고 위의 응답률, 노출률 그리고 클릭률을 가지고 왔다. 퍼널을 대충 그려볼까?

위처럼 전 단계에 대해서 모수(분모)로 잡고 (전환율)
각 단계별로의 수를 분자로 계산했을때 해당 단계에 대해서 우리가 정의를 내리고 쉽게 파악을 할 수 있다 .
앞서 말한것처럼 꼭 고객을 중심으로 퍼널분석한다 라고 말하지 않아도 다양한 분야에서도 퍼널 분석이 가능하다.
1.3 퍼널 분석의 중요성
퍼널 분석은 그럼 어떻게 어디서 쓰이고 얼마나 중요하게 비즈니스에서 보냐?
- 단계별 분석: 지속적인 모니터링을 하면서 퍼널 분석을 통해 고객이 제품이나 서비스를 구매하기까지의 모든 단계를 세밀하게 분석이 가능하다
- 위에서처럼 응답률 혹은 노출률 어떤 부분에서의 지표가 낮은지 파악이 가능한것처럼
- 문제점 식별 및 개선: 각 단계에서 발생하는 문제점을 식별하고 개선할 수 있댜
- 다시말해 다음 단계로 가는 전환률이 확 줄었다면(이탈률이 증가했다면) 해당 부분에 대해서 개선을 할 포인트를 잡을 수 있듯이
- 사용자 경험 개선: 고객 여정을 최적화함으로써 전반적인 사용자 경험이 가능하다
- 즉 회사나 기업 뿐만이 아니라, 고객, 사용자를 위해서 개선점을 먼저 찾고 해결하는데 도움을 줄수도 있을것같다.
보통은 장바구니 분석을 통해서 퍼널을 많이 하는데, 아래 예시를 통해서 연습해보장.
2. 실습: 퍼널 분석 (Hands-on Example)
https://www.kaggle.com/datasets/amirmotefaker/user-funnels-dataset
User Funnels DataSet
Analyzing user funnels involves collecting
www.kaggle.com
데이터 셋을 찾을때는 역시 캐글이다.
별별게 다 있으니 혹시나 데이터 셋이 필요한데? 연습하고싶은데? 라고 하면 캐글로 가서 검색 때려보쟈. 재밌는것도 넘친다.
위 데이터 셋을 보면 간단한 컬럼 세개가 있다.

유저들의 아이디와 각 state, 그리고 그 단계별로에서의 conversion (있는지 없는지)를 보여준다.
아주 심플하다못해 간단한 데이터 셋. 이쁘다 이뻐.
Conversion Rate & Retention Rate
각 단계별로 간단히 전환률과 리텐션도 구해보자.
stages = df['stage'].unique() # 각 단계의 고유한 값
conversion_rates = {}
retention_rates = {}
for stage in stages: # for문으로 계산해보깅
stage_data = df[df['stage'] == stage] # 해당 단계에 해당하는 데이터만 필터링하고
conversion_rate = stage_data['conversion'].mean() # 전환율을 계산할때 'conversion' 열의 평균을 계산하여 True의 비율을 구해야함
retention_rate = len(stage_data) / len(df) # 유지율을 계산합하고, 전체사용자수로 나눠야한다
conversion_rates[stage] = conversion_rate
retention_rates[stage] = retention_rate
conversion_rates_df = pd.DataFrame(list(conversion_rates.items()), columns=['Stage', 'Conversion Rate'])
retention_rates_df = pd.DataFrame(list(retention_rates.items()), columns=['Stage', 'Retention Rate'])


간단히 해석해보자면
전환율(Conversion Rate):
유저들이 홈페이지에서 product_page, 즉 상품페이지에 가는 전환률은 약 50%정도가 된다.
그리고 나서 cart(장바구니)까지 가는 유저들의 전환률은 약 30%
checkout으로 까지 가는 전환률은 약 8%
(여기서의 checkout은 구매가 아니고, 구매를 하기위해 필요한 단계 라고 생각하면 되겠다. 뭐 배송지를 입력한다던가 정보를 적는)
마지막으로 purchase를 보면 6%정도로 나타난다.
유지율(Retention Rate):
homepage단계에서 전체 유저들이 있지만 conversion 이 True일때의 비율이 약 58%라는 소리다.
스킵하고 결과적으로
전체 모수에서 결과적으로 구매까지 이루어진 purchase단계에서의 retention은 1.3%정도로 아주 미미하다?
(업계에서 최종 구매까지 이루어진 저 리텐션의 비율이 1%정도라면 낮다고 해석하는지?... 아시는분 댓글좀)
마지막으로 간단히 시각화까지 해보았다.
# `funnel_data` 데이터 프레임 생성
funnel_data = pd.DataFrame({
'Stage': stages,
'Users': [len(df[df['stage'] == stage]) for stage in stages],
'Conversion Rate': [conversion_rates[stage] for stage in stages],
'Retention Rate': [retention_rates[stage] for stage in stages]
})
# plotly활용해서 퍼널 시각화
fig = go.Figure(go.Funnel(
y=funnel_data['Stage'],
x=funnel_data['Users'],
textinfo="value+percent initial",
hoverinfo="x+percent initial+percent total",
marker=dict(color=["#FF5733", "#FFC300", "#C70039", "#900C3F"]),
text=funnel_data.apply(lambda row: f"Users: {row['Users']:,}<br>CR: {row['Conversion Rate']:.2%}<br>RR: {row['Retention Rate']:.2%}", axis=1)
))
fig.update_layout(
title='User Funnel with Conversion and Retention Rates',
xaxis_title='Number of Users',
yaxis_title='Stage',
yaxis=dict(categoryorder='total descending')
)
fig.show()

깔끔하게 단계별로 화확 줄어드는것이 눈에 너무 잘 보인다.
대부분의 회사들은 저런 아름다운 대시보드를 원한다.
쉽지 않지먄...
아래 캐글에서 풀 코드를 볼 수 있고 데이터 셋도 활용가능하다.
https://www.kaggle.com/code/sungbos/simple-funnel-practice
Simple Funnel Practice
Explore and run machine learning code with Kaggle Notebooks | Using data from User Funnels DataSet
www.kaggle.com
3. 마무리 (Summary)
퍼널 분석의 핵심은 그니까
사용자가 특정 목표(예: 구매, 가입)를 달성하기까지 거치는 여러 단계를 파악(시각화)하고, 각 단계에서의 사용자 행동을 분석함으로써, 사용자가 어느 단계에서 이탈하는지, 그리고 전환율을 높이기 위해 어떤 개선이 필요한지 파악할 수 있다는거!
다시말해서
퍼널 분석은 사용자가 목표 행동을 완료하기까지의 과정을 이해하고, 각 단계의 전환율을 높이기 위해 어디서 개선이 필요한지 파악하는 데 유용한 분석 방법이라고 하믄 되겠댜...
Ref.
https://clevertap.com/blog/funnel-analysis/
https://amplitude.com/blog/funnel-analysis
https://www.appsflyer.com/metrics-comparison/conversion-rate-vs-retention-rate/
Outro.
며칠을 걸려서 마무리한것같은데.... 매일 한 20분?30분 본것같은데 은근히 도움이 된다.
하루만에 하려면 하겠는데 시간도 시간이지만 체력이 더 부족해..
아침운동 다시해야할듯.
'Data Analysis > Methodologies' 카테고리의 다른 글
[데이터 분석 방법론] 감성분석 (Sentiment Analysis) (1) | 2024.08.18 |
---|---|
[데이터 분석 면접론?] 데이터 분석가 / 비즈니스 분석가 인터뷰 면접 준비 (0) | 2024.08.15 |
[데이터 분석 방법론] 퍼널분석(Funnel Analysis) 2 (0) | 2024.08.10 |
[데이터 분석 방법론] AARRR 분석 프레임워크 (AARRR) (1) | 2024.07.05 |
[데이터 분석 방법론] 코호트 분석 (Cohort Analysis) (0) | 2024.06.16 |