프로젝트/GA4 분석

[GA4 코호트 분석] Day9-5 코호트 리텐션 분석 (User Type별 리텐션 비교 분석)

조성호 2026. 5. 22. 21:44

신규 유저와 재방문 유저 중 누가 더 오래 유지되는가?

이번 분석의 목적은 신규 유저와 재방문 유저 중 어떤 그룹이 더 오래 유지되는지를 확인하는 것입니다.

단순히 전체 리텐션율만 보면 어떤 유저군에서 이탈이 크게 발생하는지 파악하기 어렵습니다. 따라서 사용자를 New User와 Returning User로 구분한 뒤, 각 그룹의 주차별 리텐션 변화를 비교했습니다.

이를 통해 신규 유저의 초기 이탈이 큰지, 재방문 유저가 더 안정적으로 유지되는지 확인하고, 이후 신규 유저 재방문 유도 전략의 필요성을 판단하고자 했습니다.

 

SQL

1. User Type 정의 확인 SQL

-- Part5-1. 사용자 유형 정의 확인
-- 목적: first_visit 이벤트 여부를 기준으로 New / Returning User를 구분한다.

SELECT
  CASE
    WHEN event_name = 'first_visit' THEN 'New User'
    ELSE 'Returning User'
  END AS user_type,
  COUNT(DISTINCT user_pseudo_id) AS users
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE event_name IN ('first_visit', 'session_start')
GROUP BY user_type
ORDER BY users DESC;

 

2. User Type별 Weekly Retention SQL

-- Part5-2. User Type별 주차별 리텐션 분석
-- 목적: New User / Returning User별로 cohort_week 이후 재방문율을 비교한다.

WITH first_session AS (
  -- 사용자별 최초 session_start 시점 계산
  SELECT
    user_pseudo_id,
    DATE_TRUNC(
      MIN(DATE(TIMESTAMP_MICROS(event_timestamp))),
      WEEK
    ) AS cohort_week
  FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
  WHERE event_name = 'session_start'
  GROUP BY user_pseudo_id
),

user_type AS (
  -- first_visit 이벤트가 있으면 New User, 없으면 Returning User로 분류
  SELECT
    user_pseudo_id,
    CASE
      WHEN COUNTIF(event_name = 'first_visit') > 0 THEN 'New User'
      ELSE 'Returning User'
    END AS user_type
  FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
  WHERE event_name IN ('first_visit', 'session_start')
  GROUP BY user_pseudo_id
),

user_activity AS (
  -- 사용자별 활동 주차 계산
  SELECT DISTINCT
    user_pseudo_id,
    DATE_TRUNC(
      DATE(TIMESTAMP_MICROS(event_timestamp)),
      WEEK
    ) AS activity_week
  FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
  WHERE event_name = 'session_start'
),

retention AS (
  -- cohort_week 기준으로 몇 주 후에 재방문했는지 계산
  SELECT
    f.cohort_week,
    u.user_type,
    DATE_DIFF(a.activity_week, f.cohort_week, WEEK) AS week_number,
    COUNT(DISTINCT a.user_pseudo_id) AS active_users
  FROM first_session f
  JOIN user_type u
    ON f.user_pseudo_id = u.user_pseudo_id
  JOIN user_activity a
    ON f.user_pseudo_id = a.user_pseudo_id
  WHERE DATE_DIFF(a.activity_week, f.cohort_week, WEEK) >= 0
  GROUP BY
    f.cohort_week,
    u.user_type,
    week_number
),

cohort_size AS (
  -- user_type별 cohort_week의 최초 유저 수 계산
  SELECT
    cohort_week,
    user_type,
    active_users AS cohort_users
  FROM retention
  WHERE week_number = 0
)

SELECT
  r.cohort_week,
  r.user_type,
  r.week_number,
  r.active_users,
  c.cohort_users,
  ROUND(SAFE_DIVIDE(r.active_users, c.cohort_users) * 100, 2) AS retention_rate
FROM retention r
JOIN cohort_size c
  ON r.cohort_week = c.cohort_week
 AND r.user_type = c.user_type
ORDER BY
  r.cohort_week,
  r.user_type,
  r.week_number;

 

결과 해석

1. Returning User 리텐션이 압도적으로 높음

Returning User 평균 리텐션은 약 5.27%로 New User 평균 리텐션 1.09% 대비 약 4~5배 높게 나타났습니다.

이는 이미 서비스를 경험한 유저일수록 반복 방문 가능성이 높다는 의미입니다.

 

2. 신규 유저 초기 이탈이 매우 큼

New User는 Week1부터 빠르게 감소합니다.

대부분의 신규 유저가 첫 방문 이후 다시 돌아오지 않는 구조입니다.

 

3. 서비스의 핵심 과제는 “재방문 유도”

이번 분석에서 중요한 점은 단순 유입 증가보다 신규 유저를 Returning User로 전환시키는 전략이 훨씬 중요하다는 점입니다.

  • 첫 구매 쿠폰
  • 관심 상품 리마인드
  • 장바구니 리텐션 캠페인
  • 이메일/푸시 리마케팅
  • 추천 상품 개인화

같은 전략이 핵심 액션이 될 수 있습니다.

시각화

 

 

Returning User는 New User 대비 훨씬 높은 리텐션을 보였으며, 이미 서비스 경험이 있는 사용자가 반복 방문 가능성이 높다는 점을 확인할 수 있었다. 반면 신규 유저는 첫 방문 이후 빠르게 이탈하는 경향을 보였고, 이는 초기 경험 개선 및 재방문 유도 전략의 중요성을 보여준다.