강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

hayeonkimmie님의 프로필 이미지
hayeonkimmie

작성한 질문수

BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)

[빠짝스터디 4주차 과제] 최종 과제

해결된 질문

작성

·

166

0

SELECT DISTINCT
  LEFT(FORMAT_DATE('%Y%m%d', event_date), 6) AS login_month,
  COUNT(DISTINCT user_pseudo_id) as count
FROM advanced.app_logs
GROUP BY LEFT(FORMAT_DATE('%Y%m%d', event_date), 6)
스크린샷 2024-11-19 오후 11.20.01.png

2022년 8월부터 2023년 1월까지의 MAU를 살펴보니(MAU기준은 로그인 기록),

첫 달인 2022년 8월에는 미진했지만 그 후로 점차 증가하는 것을 볼 수 있습니다. 특히 9월은 8월 대비 2배에 가까운 성장률을 보였고 10월에는 1.5배 이상의 성장률을 보이면서 점차 사용자가 확대되고 있는 것을 알 수 있습니다.

 

 

WITH base AS (
  SELECT
    DISTINCT
      user_pseudo_id,
      DATE_TRUNC(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul'), WEEK(MONDAY)) AS event_week,
      DATE_TRUNC(MIN(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) OVER(PARTITION BY user_pseudo_id), WEEK(MONDAY)) AS first_week
  FROM `advanced.app_logs`
),
first_week_diff AS (
  SELECT
    user_pseudo_id,
    DATE_DIFF(event_week, first_week, WEEK) AS diff_of_week
  FROM base
),
user_counts AS (
  SELECT
    diff_of_week,
    COUNT(DISTINCT user_pseudo_id) AS user_count
  FROM first_week_diff
  GROUP BY diff_of_week
)
SELECT
  diff_of_week,
  user_count,
  ROUND(SAFE_DIVIDE(user_count, FIRST_VALUE(user_count) OVER (ORDER BY diff_of_week ASC)), 2) AS retention_rate
FROM user_counts
ORDER BY diff_of_week;
스크린샷 2024-11-19 오후 11.20.51.png

주 리텐션율을 살펴보면, 첫 주에는 당연히 1%이지만 그 후로 확연히 주마다 접속하는 사용자가 줄고 있습니다. Foodie Express는 아직 Product Market Fit을 발견하지 못한 것으로 보입니다.

WITH base AS (
SELECT 
    DISTINCT
        user_id,
        user_pseudo_id,
        event_name,
        DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) AS event_date,
        DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_datetime
FROM advanced.app_logs
WHERE 
    event_date BETWEEN '2022-08-01' AND '2022-12-31' -- 데이터 길게보기 
), first_week_and_diff AS (
    SELECT 
        *,
        DATE_DIFF(event_week,first_week, WEEK) AS weeks_after_first_week
    FROM (
        SELECT
            DISTINCT
                user_pseudo_id,
                DATE_TRUNC(MIN(event_date) OVER(PARTITION BY user_pseudo_id), WEEK(MONDAY)) AS first_week,
                DATE_TRUNC(event_date, WEEK(MONDAY)) AS event_week
        FROM base
    )
), active_users AS(
     SELECT
        first_week,
        weeks_after_first_week,
        COUNT(DISTINCT user_pseudo_id) AS avtive_users
  FROM first_week_and_diff
  GROUP BY first_week, weeks_after_first_week
)

SELECT
            first_week,
            weeks_after_first_week,
            avtive_users,
            FIRST_VALUE(avtive_users) OVER(PARTITION BY first_week ORDER BY weeks_after_first_week) AS cohort_users 
         FROM active_users AS a
ORDER BY first_week, weeks_after_first_week;
image.pngimage.png

 

첫 주에 1,211의 사용자가 있었으나 1주차에 32명으로 급감했습니다 (약 2.6% 유지)

2-8주차에는 비교적으로 안정적이었고, 9주차에서 20주에는 사용자가 좀 더 증가하였습니다.

특히 14주차에 142명으로 가장 많은 사용자가 있었습니다.

 

이를 살펴보면, 초기에 감소 후에 오히려 사용자 수가 증가하는 패턴을 보이고

오히려 앱을 사용하면 사용할 수록 더 활발하게 앱을 사용하는 것을 알 수 있습니다.

따라서 어떻게든 사용자들을 앱에 유입시켜서 사용하게 만들어야합니다.

 

특히 주말, 공휴일 또는 음식 주문이 많은 근무 시간 이후에 비활성 사용자에게 정기적인 푸시 알림이나 메시지를 보내면 좋을 것 같습니다.

(음식을 많이 시켜먹는 주말이나, 공휴일 또는 퇴근시간때쯤 맞춰서 푸시알림을 준다)

공휴일에 좀 더 사용자가 증가하는 경향을 보이는 것 같은데, 이 때는 사용자 유입이 많으므로 소액 할인 쿠폰을 제공하는 것이 효과적일 것이라고 판단됩니다.

무엇보다도 정기적인 알림을 통해 앱 사용 습관을 들이는 것이 중요해 보입니다!

 

 

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
hayeonkimmie님의 프로필 이미지
hayeonkimmie

작성한 질문수

질문하기