데이터 기반의 의사결정을 위한 고객 행동 및 전환율 분석
이커머스 플랫폼의 지속적인 성장을 위해서는 사용자가 언제 가장 활발하게 활동하는지 파악하고, 구매 여정(Customer Journey)의 어느 단계에서 이탈이 발생하는지 이해하는 것이 필수적입니다.
본 분석은 다음과 같은 핵심 질문에 답하고자 합니다:
본 포트폴리오는 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)
이를 통해 실제 비즈니스에 적용 가능한 구체적인 액션 아이템을 제안합니다.
분석에 사용된 주요 변수와 파생 변수의 정의는 다음과 같습니다.
| 변수명 | 설명 |
|---|---|
| event_time | 이벤트가 발생한 시간 (UTC 기준) |
| event_type | 이벤트 유형 (view, cart, purchase 등) |
| user_id | 사용자 고유 식별자 |
| user_session | 사용자 세션 ID (로그인 ~ 로그아웃 또는 일정 시간 동안의 활동 단위) |
원본 데이터에서 날짜 및 시간 정보를 추출하여 분석에 필요한 파생 변수를 생성했습니다.
| 파생 변수명 | 설명 | 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' ... |
요일별, 시간대별 DAU(Daily Active Users) 분석을 통해 사용자의 방문 패턴을 파악했습니다.
▲ 요일별 DAU 트렌드: 토요일이 가장 높고, 금요일과 일요일이 뒤를 잇습니다.
이 히트맵은 요일별 시간대별 사용자 활동을 시각화한 것입니다.
💡 인사이트: 주중과 주말의 시간대별 특성에 맞춘 차별화된 프로모션 전략이 효과적일 것입니다.
다음 막대 그래프는 일별 시간대별 평균 DAU 비율을 나타냅니다. 사용자는 오전(6-12시)에 35.16%의 비율로 가장 활동적이며, 그 뒤를 이어 오후(12-18시)에 33.74%의 비율을 보입니다. 이러한 패턴은 주말에 활동하는 사용자가 비교적 많고, 이들 대부분이 오전과 오후에 방문하기 때문일 수 있습니다.
사용자의 구매 여정(View → Cart → Purchase)을 단계별로 분석하여 이탈이 발생하는 구간을 식별했습니다.
본 분석은 사용자의 순차적 행동(조회 → 장바구니 → 구매)에만 초점을 맞추며, 조회 후 바로 구매한 사용자의 데이터는 포함하지 않습니다.
| 단계 (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%입니다.
이는 일단 사용자가 상품을 장바구니에 담으면 구매로 이어질 가능성이 비교적 높다는 것을 시사합니다. 그러나 '장바구니' 단계로의 전환이 효과적으로 이루어지지 않고 있어, 사용자가 상품을 장바구니에 담도록 유도하는 즉각적인 개선이 필요함을 나타냅니다.