eCommerce Funnel Analysis Portfolio

데이터 기반의 의사결정을 위한 고객 행동 및 전환율 분석

신예원 (Aimee Shin) | 2026.02 | 개인프로젝트
html 주소: https://aimee-shin.github.io/Kaggle---E-Commerce-Funnel-Analysis/
분석 코드: https://www.kaggle.com/code/aimeeshin/e-commerce-analyzing-customers-behavior

목차 (Table of Contents)

1. 문제 정의 및 데이터 개요 (Problem Definition & Overview)

이커머스 플랫폼의 지속적인 성장을 위해서는 사용자가 언제 가장 활발하게 활동하는지 파악하고, 구매 여정(Customer Journey)의 어느 단계에서 이탈이 발생하는지 이해하는 것이 필수적입니다.

본 분석은 다음과 같은 핵심 질문에 답하고자 합니다:

분석 개요 (Overview)

본 포트폴리오는 2019년 11월의 이커머스 로그 데이터를 기반으로 사용자 행동을 분석한 결과입니다. DAU(일간 활성 사용자) 트렌드를 통해 마케팅 골든타임을 도출하고, 전환 퍼널(Conversion Funnel) 분석을 통해 구매 전환의 병목 구간을 진단하였습니다.

데이터 샘플링: 원본 데이터는 약 6,750만 행(67,501,979)의 대용량 데이터셋입니다. 효율적인 분석을 위해 20만 개의 고유 세션(user_session)을 무작위로 추출하여 분석을 진행했습니다.

# Load Data: Extract unique user_session randomly
sessions = pd.read_csv('2019-Nov.csv', usecols=['user_session']).dropna()
unique_sessions = sessions['user_session'].unique()

sample_size = 200000
sampled_sessions = np.random.choice(unique_sessions, size=sample_size, replace=False)

이를 통해 실제 비즈니스에 적용 가능한 구체적인 액션 아이템을 제안합니다.

데이터 정의 및 전처리 (Data Definition & Feature Engineering)

분석에 사용된 주요 변수와 파생 변수의 정의는 다음과 같습니다.

1. 변수 정의 (Variable Definitions)

변수명 설명
event_time 이벤트가 발생한 시간 (UTC 기준)
event_type 이벤트 유형 (view, cart, purchase 등)
user_id 사용자 고유 식별자
user_session 사용자 세션 ID (로그인 ~ 로그아웃 또는 일정 시간 동안의 활동 단위)

2. 파생 변수 생성 (Feature Engineering)

원본 데이터에서 날짜 및 시간 정보를 추출하여 분석에 필요한 파생 변수를 생성했습니다.

파생 변수명 설명 Python Code (Pandas)
date_ymd 이벤트 발생 날짜 (YYYY-MM-DD) df['date_ymd'] = df['event_time'].dt.date
day_of_week 요일 (Monday, Tuesday...) df['day_of_week'] = df['event_time'].dt.day_name()
day_of_week1 요일 인덱스 (0:Mon, ..., 6:Sun) df['day_of_week1'] = df['event_time'].dt.dayofweek
hour 이벤트 발생 시간 (0~23) df['hour'] = df['event_time'].dt.hour
hour_group 시간대 그룹핑 (Morning, Afternoon, Evening, Night) # Example Logic
if 6 <= hour < 12: 'Morning'
elif 12 <= hour < 18: 'Afternoon' ...

2. DAU 트렌드 분석 (DAU Trends Analysis)

요일별, 시간대별 DAU(Daily Active Users) 분석을 통해 사용자의 방문 패턴을 파악했습니다.

▲ 요일별 DAU 트렌드: 토요일이 가장 높고, 금요일과 일요일이 뒤를 잇습니다.

시간대별 활동 히트맵 (DAU Trends by Hour of Day)

DAU Trends by Hour of Day Heatmap

이 히트맵은 요일별 시간대별 사용자 활동을 시각화한 것입니다.

  • 평일: 주로 오후 시간대(14:00~17:00)에 활동이 집중되며, 그 외 시간에는 상대적으로 활동량이 적습니다.
  • 주말(금~일): 4시 부터 17시까지 활동이 활발하게 이어집니다.
  • 토요일 특이점: 다양한 시간대에 걸쳐 활동이 가장 활발하며, 특히 6시~14시 사이 이른 시간대에 피크를 기록했습니다.

💡 인사이트: 주중과 주말의 시간대별 특성에 맞춘 차별화된 프로모션 전략이 효과적일 것입니다.

다음 막대 그래프는 일별 시간대별 평균 DAU 비율을 나타냅니다. 사용자는 오전(6-12시)에 35.16%의 비율로 가장 활동적이며, 그 뒤를 이어 오후(12-18시)에 33.74%의 비율을 보입니다. 이러한 패턴은 주말에 활동하는 사용자가 비교적 많고, 이들 대부분이 오전과 오후에 방문하기 때문일 수 있습니다.

3. 전환 퍼널 분석 (Conversion Funnel Analysis)

사용자의 구매 여정(View → Cart → Purchase)을 단계별로 분석하여 이탈이 발생하는 구간을 식별했습니다.

본 분석은 사용자의 순차적 행동(조회 → 장바구니 → 구매)에만 초점을 맞추며, 조회 후 바로 구매한 사용자의 데이터는 포함하지 않습니다.

상세 퍼널 지표 (Detailed Funnel Metrics)

단계 (Stage) 세션 수 (Sessions) 유지율 (Retention) 이탈율 (Drop-off)
View (상품 조회) 199,863 100.00% 0.00%
Cart (장바구니) 25,037 12.53% 87.47%
Purchase (구매 완료) 11,179 44.65% 55.35%

위의 그래프에서 볼 수 있듯이, '조회(View)'에서 '장바구니(Cart)'로 넘어가는 단계에서 87.47%의 사용자가 이탈했습니다. 반면, '장바구니'에서 '구매(Purchase)'로의 이탈률은 55.35%입니다.

이는 일단 사용자가 상품을 장바구니에 담으면 구매로 이어질 가능성이 비교적 높다는 것을 시사합니다. 그러나 '장바구니' 단계로의 전환이 효과적으로 이루어지지 않고 있어, 사용자가 상품을 장바구니에 담도록 유도하는 즉각적인 개선이 필요함을 나타냅니다.

4. 결론 및 제언 (Summary & Recommendations)

핵심 발견 (Key Findings)

  • 요일별 트렌드: 🥇 토요일(35k) > 🥈 금요일(33k) > 🥉 일요일(29k) 순으로 활동이 많습니다.
  • 시간대별 트렌드: 🥇 오전(6-12시, 35.16%)과 🥈 오후(12-18시, 33.74%)에 활동이 집중됩니다. 특히 주말 오전 6시~오후 2시에 가장 활발합니다.
  • 퍼널 이탈률: View → Cart 단계에서 87.47%의 가장 큰 이탈이 발생합니다.

전략적 제언 (Strategic Recommendations)

  1. 주말 오전 '반짝 세일' (Weekend Morning Rush): 사용자가 가장 활발한 주말 오전 6시~오후 2시에 타임 세일이나 한정 수량 프로모션을 진행하여 구매 전환을 극대화합니다.
  2. 장바구니 담기 유도 (Push to Cart): 이탈률이 가장 높은 View → Cart 단계를 개선하기 위해, 상세 페이지에 '장바구니 담기' 버튼의 시인성을 높이거나, '장바구니 담으면 3% 추가 할인'과 같은 즉각적인 혜택을 제공합니다.
  3. 사회적 증거 강화 (Social Proof): 신뢰도를 높여 구매를 유도하기 위해 인기 리뷰나 평점을 상품 페이지 상단에 노출합니다.
  4. 배송 보장 메시지 (Delivery Assurance): "지금 주문하면 내일 도착"과 같은 퀵커머스 메시지를 노출하여 구매 결정의 불확실성을 줄입니다.