본문 바로가기
머신러닝

RFM과 머신러닝을 활용한 모바일 게임 유저 행동 분석 및 마케팅 전략

by 짱태훈 2024. 11. 29.
728x90

1. 분석 개요

1.1 기획 배경 및 분석의 필요성

1.2 분석 방법

 

2. 데이터 수집 및 분석

2.1 데이터 분석 프로세스 수립
2.2 데이터 분석 및 시각화
2.3 정리

 

3. 유저 세그먼테이션

3.1 군집화 및 시각화

 

4. 분석 활용 방안

4.1 RFM 분석 유저 마케팅

4.2 무자본 유저 마케팅

 

5. 프로젝트 요약 및 향후 방향

5.1 프로젝트 요약

5.2 향후 방향


1. 분석 개요

1. 기획 배경 및 분석의 필요성

게임 산업은 코로나19 이후에 급격하게 발전한 산업 중 하나이다. 그래프1을 보면 코로나19 발생 이전인 2018, 2019년에 비해 2020년 국내에도 코로나19 환자가 발생하면서 부터 게임 산업의 매출액이 약 21%가 급등한 것을 확인할 수 있다. 특히, 게임 이용 플랫폼의 경우 그래프2를 통해 알 수 있듯 대부분이 모바일 게임을 주로 한다는 것을 확인 할 수 있다. 

그래프1(출처: 통계청), 그래프2(출처: 한국게임정책자율기구)

이처럼 게임 산업은 지속적인 성장세를 보이고 있으며, 주요 이용 플랫폼이 모바일로 집중되는 경향을 보여주고 있다. 그러나 모바일 게임은 PC 게임과 비교해 다음과 같은 특징과 도전 과제를 가지고 있다

  • 게임 종류 다양성
    모바일 게임은 상대적으로 짧은 개발 주기와 다양한 장르로 제작되는 경우가 많아 콘텐츠가 빠르게 소모되는 경향이 있다.
  • 대용량 콘텐츠 제작의 어려움
    PC 게임과 달리, 모바일 기기의 성능 및 저장 공간 제약으로 인해 대규모 콘텐츠 제작에 한계가 있다.
  • 유저 유입과 이탈의 빈번함
    모바일 게임은 비교적 진입장벽이 낮고 무료로 제공되는 경우가 많아 유저의 유입과 이탈이 활발하다.

따라서, 게임 내부 데이터를 활용한 분석은 모바일 게임 시장에서의 지속 가능한 성장 전략을 마련하는 데 필수적이다. 이를 통해 유저의 행동 패턴을 이해하고, 콘텐츠 품질 개선 및 사용자 경험 향상을 위한 기반을 마련할 수 있다. 특히, 유저 이탈을 줄이고 충성도를 높이는 데이터 기반의 전략은 게임의 경쟁력을 강화하는 핵심 요소가 될 것이다.

 

1.2 분석 방법

앞에서 설명했듯, 모바일 게임 산업은 세 가지 주요 도전 과제를 가지고 있다. 이러한 도전 과제를 해결하기 위해, 본 분석에서는 기본적인 데이터 분석을 통해 데이터에 대한 이해도를 높이고 RFM 기법과 머신러닝 알고리즘을 활용하여 유저 세그먼테이션을 수행하고, 이를 기반으로 결제 데이터를 분석하고 맞춤형 전략을 도출하고자 한다. 

  1. RFM 기법을 활용한 결제 데이터 기반 유저 세그먼테이션
    • RFM (Recency, Frequency, Monetary) 분석을 통해 유저의 결제 행동을 세 가지 주요 지표로 평가할 수 있다.
      • Recency: 유저가 마지막으로 결제한 시점(최근성)
      • Frequency: 일정 기간 동안의 결제 횟수(빈도)
      • Monetary: 유저가 게임 내 결제한 총 금액(금액)
    • RFM 점수를 기반으로 유저를 다양한 그룹(예: VIP 유저, 소극적 결제 유저, 신규 결제 유저 등)으로 분류할 수 있다.
  2. 머신러닝을 활용한 고도화된 세그먼테이션
    • K-Means 클러스터링과 같은 비지도 학습 알고리즘을 활용하여 유사한 결제 패턴을 가진 유저를 그룹화
    • 각 클러스터의 특성을 이해하고 그룹별 맞춤형 전략을 설계
  3. 데이터 기반 전략 도출
    • 그룹별 맞춤형 할인 정책과 보상 시스템
    • 결제를 유도할 수 있는 이벤트 기획과 시간대 최적화
    • 결제 유저의 충성도를 높이기 위한 특별 혜택 프로그램

 

2. 데이터 수집

2.1 데이터 분석 프로세스

1. 데이터 수집

본 프로젝트는 코맨토 직무부트 캠프를 진행하면서 실제 게임 데이터를 기반으로 만들어진 데이터를 기반으로 분석을 진행할 것이다. 데이터의 구성은 다음과 같다.

raw_login_data raw_register_data daily_sales daily_play
4,525,897 rows, 5 columns 16,629 rows, 5 columns 97,133 rows, 5 columns 922,552 rows, 5 columns

 

2. 데이터 전처리

1) SQL을 사용해 데이터베이스에서 분석에 필요한 정보를 추출

2) Retention 비율을 이용한 유저 필터링

  • Retention 비율: 유저가 최초 가입 이후 일정 기간 동안 지속적으로 게임을 플레이하는 비율
  • 목적: 실제 게임을 이용하는 유저를 대상으로 분석 정확도와 실효성을 높임

3) 데이터 분석 및 시각화

  • 실제 플레이 유저를 기반으로 기본적인 데이터 분석
  • 접속 국가
  • 유입 경로
  • 접속 시간

4) RFM 분석 및 시각화

  • 필터링한 유저를 대상으로 RFM (Recency, Frequency, Monetary) 분석 수행
    • Recency: 마지막 결제 일자
    • Frequency: 일정 기간 동안의 결제 횟수
    • Monetary: 총 결제 금액
    • RFM 분석 결과를 Python을 활용하여 그래프로 시각화

3. 군집화 및 시각화

  • RFM 분석 유저 세분화
    • RFM 점수를 기반으로 군집 분석 수행
      • 유사한 결제 행동과 빈도를 가진 유저 그룹화
      • 예: VIP 유저, 낮은 활동 유저, 이탈 가능성 높은 유저 등
  • 무자본 유저 세분화
    • 결제 금액이 0인 유저를 "무자본 유저"로 구분하고, 무자본 유저 분석
    • 무자본 유저를 대상으로 군집 분석 수행
      • 결제로 전환 가능한 잠재 유저 식별

4. 분석 활용 방안

  • 유저 유입 전략
    • 신규 유저를 타겟으로 한 마케팅 캠페인 제안
    • RFM 분석 결과를 바탕으로 맞춤형 할인 및 보상 제도 설계
  • 유저 유지 전략
    • 이탈 가능성이 높은 유저를 식별하고 재참여를 유도하기 위한 알림 또는 보상 제공
    • 무자본 유저를 위한 결제 유도 전략
  • VIP 유저 관리
    • VIP 유저를 위한 특별 보상 프로그램 및 개인화된 혜택 제안
    • 유저 충성도 향상을 위한 프리미엄 콘텐츠 설계

 

2.2 데이터 분석 및 시각화

1. 실제 게임 유저 구분

1) 개인적인 경험

네이버 웹툰은 쿠키를 이용해 웹툰 미리보기 기능을 이용할 수 있다. 네이버 웹툰에서는 쿠키를 현금 결제를 통해 구매하는 방법 외에 광고, 구매, 앱 설치 그리고 게임 접속 및 미션 등 여러 방법을 통해 쿠키를 얻을 수 있는 방법이 있다. 특히, 게임 접속 및 미션을 위해 게임을 설치하고 쿠키를 받으면 게임을 제거하는 사람, 쿠키를 얻기 위한 미션까지만 게임을 플레이한 후 게임 제거하는 사람들도 있기 때문에 게임 데이터를 이용할 때는 실제 게임을 즐기는 유저인지 구분할 필요가 있다. 따라서 네이버 쿠키를 얻기 위한 미션 데이터를 이용해 실제 플레이 유저를 구분의 방법으로 사용할 것이다.

사진1을 통해 네이버 쿠키를 얻기 위해서는 게임에서 특정 미션을 완료해야 된다는 것을 확인할 수 있다. 사진1에서는 미션을 위해 최대 48시간, 레벨의 경우 최대 7레벨이 소요되는 것을 확인할 수 있다. 따라서 Retention 비율을 측정할 때 레벨 6이상, 가입 후 3일째에도 계속 접속하는 가를 기준으로 할 것이다.

사진1, (네이버 웹툰)

 

2) Retention 비율

Retention 비율은 유저가 최초 가입 이후 일정 기간 동안 지속적으로 게임을 플레이하는 비율로 실제 유저를 구분하는데 효과적인 분석이라 판단해 개인적인 경험과 함께 활용해 실제 게임 유저를 구분하려고 한다. 아래 표를 통해 보면 Retention 비율이 지속적으로 증가하는 것을 확인할 수 있다. 하지만 그래프3과 4를 보면 레벨 6에 도달할 때까지는 전체 유저 수와 retained_user 수가 증가하다가 레벨 7부터 유저 수가 감소하는 것을 확인할 수 있다. 특히, 레벨 7을 도달한 유저의 수가 400명이 넘게 감소한 반면 retained_user 수는 100명 조금 넘게 감소해 Retention 비율이 오히려 증가한 것을 확인할 수 있다. 또한, 그래프4를 통해 레벨 8부터 다시 전체 유저가 증가하는 것을 통해 레벨 7까지를 이벤트 미션 레벨로 볼 수 있다. 

즉, 이벤트 미션인 레벨 7에 도달한 일부 유저는 게임을 떠나고, 나머지는 게임을 지속하며 더욱 높은 Retention 비율을 유지하는 걸로 볼 수 있다.

Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 Level 7 Level 8 Level 9 Level 10
0.3422 0.4258 0.4088 0.4518 0.4783 0.5072 0.5385 0.5367 0.5467 0.5682

그래프3
그래프4

WITH level6_users AS (
SELECT WID, MIN(DATE(log_time)) AS first_login_date
FROM project.raw_login_data
WHERE level = 6
GROUP BY WID
),
next_day_logins AS (
SELECT level6_users.WID, level6_users.first_login_date, DATE(l2.log_time) AS next_login_date
FROM level6_users
JOIN project.raw_login_data l2 
ON level6_users.WID = l2.WID
WHERE DATE(l2.log_time) = DATE_ADD(level6_users.first_login_date, INTERVAL 3 DAY)
)
SELECT
    COUNT(DISTINCT level6_users.WID) AS total_level6_users,
    COUNT(DISTINCT nd.WID) AS retained_users,
    COUNT(DISTINCT nd.WID) * 1.0 / COUNT(DISTINCT level6_users.WID) AS retention_rate
FROM
    level6_users
LEFT JOIN
    next_day_logins nd
ON
    level6_users.WID = nd.WID;

 

2. 기본적인 데이터 분석 및 시각화

1) 접속 국가

접속 국가를 분석하기 위해 raw_login_data 테이블을 이용했다. raw_login_data 테이블은 WID, log_time, country, os, level 5개 컬럼으로 이루어져 있다.

분석 대상인 모바일 게임은 총 107개 국가에서 접속을 하고 있다. 하지만 총 접속 유저 16,594명 중 9,554명이 한국과 일본 국적을 가진 유저라로 게임이 타켓으로 설정한 국가는 한국과 일본이라고 추측할 수 있다.

KR JP IQ(이라크) TR(터키) EG(이집트)
6,606 2,949 1,450 653 538

하지만 위의 결과는 앞서 확인한 실제 게임을 즐기는 유저만 추출한 결과가 아니기 때문에 레벨 7 이상의 유저를 대상으로 했을 때는 아래와 같은 결과를 얻을 수 있다.

KR JP IQ(이라크) TR(터키) EG(이집트)
4,182 1,749 810 365 322

그래프5

게임을 즐기는 유저를 추출했을 때 총 10,294명의 유저가 있으며, 한국과 일본 유저가 5,931명으로 해당 게임은 한국과 일본을 타켓팅으로한 게임이라고 볼 수 있다. 따라서 한국과 일본 그리고 기타, 3개의 그룹으로 분류해 분석할 것이다.

SELECT country, COUNT(DISTINCT WID) AS total_unique_login
FROM project.raw_login_data
WHERE WID IN (
    SELECT WID
    FROM project.raw_login_data
    GROUP BY WID
    HAVING MAX(level) > 7
)
GROUP BY country
ORDER BY total_unique_login DESC

 

2) 유입 경로

전체 유저인 16,594명을 대상으로 유입 경로를 분석하기 위해 raw_register_data 테이블을 이용했다. raw_register_data 테이블은

WID, country, log_time, os, register_channel 5개 컬럼을 가지고 있다.

대부분의 유저는 android를 이용해 첫 접속을 했다. os별 유저들의 유입 경로의 경우 대부분이 각 os의 기본 마켓을 통해 유입되었다. 하지만 SNS를 통해 유입된 유저 또한 적지 않은 수를 보여준다. 

android ios
11,485 5,109
google play facebook guest twitter
4,200 2,703 2,597 1,949
apple guest facebook twitter
1,949 1,194 797 621

실제 게임을 즐기는 유저 10,294명을 대상으로 분석을 진행했을 때 결과는 사진2와 같다. 각 os별 기본 마켓에서 유입된 유저가 많았으며, SNS에서 유입된 유저 또한 적지 않은 수를 보여준다. 따라서 게임 홍보를 위해서는 SNS를 적극적으로 활용하는 방법도 좋은 방법이라고 생각한다.

사진2

SELECT COUNT(DISTINCT WID) AS total_unique_reg, os, register_channel
FROM project.raw_register_data
WHERE 
	WID IN (
    SELECT WID
    FROM project.raw_login_data
    GROUP BY WID
    HAVING MAX(level) >= 7
)
GROUP BY os, register_channel
ORDER BY os

 

3) 접속 시간

레벨 7 이상의 유저를 대상으로 접속 시간을 분석하기 위해 raw_login_data 테이블을 이용했다. 한국과 일본은 같은 표준시를 사용하기 때문에 UTC +9로 계산했다. 그래프6을 보면 유저들의 로그인 시간은 아침 6시부터 증가하고 있다. 특히, 18시부터는 급격하게 증가하고 있다. 즉, 유저의 로그인 횟수는 출근을 위해 기상한 시간부터 잠들기 전까지 꾸준히 증가있다. 또한, 퇴근 이후인 18시부터 급증하다가 수면 시간 대인 22시부터 급격하게 감소하고 있다.

그래프6

SELECT 
    MOD(EXTRACT(HOUR FROM log_time) + 9, 24) AS log_hour, 
    COUNT(*) AS login_count
FROM project.raw_login_data
WHERE country = 'KR' or country = 'JP'
AND WID IN (
    SELECT WID
    FROM project.raw_login_data
    GROUP BY WID
    HAVING MAX(level) >= 7
)
GROUP BY log_hour
ORDER BY login_count DESC

 

4) RFM 분석 및 시각화

RFM 분석은 이용객이 얼마나 최근에, 얼마나 자주, 얼마나 많은 금액을 지출했는지에 따라 사용자들의 분포를 확인하거나 그룹 또는 등급을 나누는 분석 기법이다. 따라서 RFM은 아래와 같이 세 가지를 계산해야 한다.

  • Recency: 마지막 결제 일자(최근 구매일)
  • Frequency: 일정 기간 동안의 결제 횟수
  • Monetary: 총 결제 금액

분석하고자는 게임 데이터는 최근의 데이터가 아닌 2022년 1월부터 2023년 9월 30일까지의 데이터로 현재 날짜를 기준으로 Recency를 계산한다면 정확한 분석이 될 수 없기 때문에 현재 날짜를 임의로 2023년 10월 1일로 설정했다.

또한, 실제 게임을 즐기는 유저를 대상 10,294명을 대상으로 진행했기 때문에 게임에 현금 결제를 한 유저 4,793명을 대상으로 RFM 분석을 진행했다.

  • Recency

결제 유저들의 대부분은 2023년 10월 1일을 기준으로 했을 때 지속적인 결제를 했다. 아래 표를 보면 가장 많은 유저가 Recency가 1인 9월 30일에도 결제를 했다. 또한 Recency2, 3이 상위권에 있는 것을 통해 많은 유저가 꾸준히 결제를 하고 있다는 것을 알 수 있다. 또한, 그래프7을 보면 결제를 활발하게 하는 유저가 많으며, Recency가 길어질 수록 밀도가 감소하는 것을 확인할 수 있다.

Recency 1 Recency 2 Recency 3 Recency 14 Recency 17
196 87 49 49 44

그래프7

  • Frequency

그래프8을 보면 많은 유저는 Recency와 다르게 상품 구매 횟수가 적은 것을 확인할 수 있다. VIP유저가 존재하고 VIP 유저가 잦은 결제를 하고 있다는 것을 추측할 수 있다.

그래프8

  • Monetary

그래프9를 보면 배부분의 유저는 적은 결제 금액을 하는 소액 결제 유저로 구분할 수 있다. 대부분의 유저가 소액 결제 유저이기 때문에 소액 결제 유저를 대상으로도 세분화를 진행할 수 있다.

그래프9

WITH filtered_users AS (
    SELECT DISTINCT
        WID,
        CASE
            WHEN country = 'KR' THEN 'KR'
            WHEN country = 'JP' THEN 'JP'
            ELSE 'ETC'
        END AS country_group
    FROM
        project.raw_login_data
    WHERE
        WID IN (
            SELECT DISTINCT WID
            FROM project.raw_login_data
            GROUP BY WID
            HAVING MAX(level) > 7
        )
),
rfm_data AS (
    SELECT
        WID,
        MAX(date) AS latest_date,
        DATE_DIFF(DATE '2023-10-01', MAX(date), DAY) AS recency,
        SUM(buy_count) AS frequency,
        SUM(revenue) AS monetary
    FROM
        project.daily_sales
    GROUP BY
        WID
)
SELECT
    rfm.WID,
    rfm.latest_date,
    rfm.recency,
    rfm.frequency,
    rfm.monetary,
    fu.country_group
FROM
    rfm_data rfm
JOIN
    filtered_users fu ON rfm.WID = fu.WID
GROUP BY
    rfm.WID, rfm.latest_date, rfm.recency, rfm.frequency, rfm.monetary, fu.country_group
ORDER BY
    rfm.latest_date, rfm.frequency, rfm.monetary

 

3. 정리

 

  • 주요 타겟 국가: 한국과 일본
    • 한국과 일본 유저가 게임의 주요 타겟층이며, 해당 국가를 중심으로 맞춤형 콘텐츠와 마케팅 전략을 강화할 필요가 있다.
  • SNS 활용
    • SNS(Facebook, Twitter) 유입 비율이 높아, 게임 홍보와 유저 유입을 위해 SNS를 적극 활용하는 것이 효과적일 수 있다.
  • 주요 접속 시간대
    • 퇴근 이후 시간대(18시~22시)가 유저 접속이 가장 활발한 시간으로, 이 시간대를 겨냥한 이벤트 및 알림 메시지를 활용해 참여를 유도할 수 있다.
  • 소액 결제 유저 관리
    • 소액 결제 유저가 대다수이므로, 이들을 대상으로 소액 결제를 유도하는 프로모션을 설계하는 것이 중요하다.
    • VIP 유저는 별도의 혜택 제공 프로그램으로 충성도를 강화할 수 있다.

 

 

3. 유저 세그먼테이션

  • RFM 유저 세분화

그래프10, KMeans
그래프11, GMM

그래프10과 그래프11을 보면 각각 다른 모델을 이용해 실루엣 스코어를 확인한 것이다. GMM을 이용했을 때 실루엣 스코어는 KMeans보다 많이 낮은 점수를 보여주기 때문에 KMeans를 이용해서 유저 세그먼트를 진행했다.

또한, 그래프10을 보면 KMeans를 이용했을 때 실루엣 스코어는 2개로 나눴을 때가 가장 높은 것을 알 수 있다. 하지만 머신러닝은 잘 나누는 것에 목표를 두기 때문에 2개로 나누는 것은 설명 가능성, 분석 결과 이용 가능성에 대해서는 좋지 않다. 따라서 두 번째로 실루엣 스코어가 높은 4개 군집으로 나누는 것을 선택했다.

4개 군집으로 구분했을 때 그래프12와 같은 결과를 확인할 수 있다. 그래프12의 오른쪽 그래프는 군집화 결과를 군집별로 평균한 것으로 Cluster 2가 VIP 군집인 것을 확인할 수 있다. 

그래프12

클러스터별 특징을 정리하면 다음과 같다.

  • Cluster 0: 장기 휴면 유저, 한국 - 49.38%
    • 총 유저: 1,612명 / 최근 일주일 간 접속한 유저: 13명 
    • Recency: 296.32 -> 약 300일 동안 구매가 없다.
    • Frequency: 22.92 -> 중간 정도 구매 빈도
    • Monetary: 101,756 -> 중간 정도 소비 금액
    • 오랜 기간 활동이 없지만, 과거에는 평균적으로 적당히 구매한 유저
    • 재활성화가 필요한 유저
  • Cluster 1: 최근 구매 유저, 한국 - 46.08% ETC - 33.08%
    • 총 유저: 792명 / 최근 일주일 간 접속한 유저: 291명 
    • Recency: 15.94-> 최근 구매
    • Frequency: 20.97 -> 중간 정도 구매 빈도
    • Monetary: 64,407-> 적은 소비 금액
    • 최근에 구매했지만, 구매 빈도와 소비 금액이 적은 유저
    • 일반 활성 고객으로, 충성도를 높일 수 있는 추가 전략 필요
  • Cluster 2: VIP 유저, 한국 - 51.86%, 일본 - 33.05%
    • 총 유저: 590명 / 최근 일주일 간 접속한 유저: 187명 
    • Recency: 74.68 -> 약 75 전 구매
    • Frequency: 239.10 -> 매우 자주 구매
    • Monetary: 1,673,318 -> 결제 금액 매우 많다.
    • 구매 빈도가 높고 소비 금액이 큰 핵심 유저
    • 충성도 프로그램과 VIP 혜택을 통해 유지 관리 필요.
  • Cluster 3: 소극적 유저, 한국 - 54.78%
    • 총 유저: 1,809명 / 최근 일주일 간 접속한 유저: 16명 
    • Recency: 310.32 -> 약 310 동안 구매가 없다.
    • Frequency: 3.29 -> 매우 적은 구매 빈도
    • Monetary: 8,685-> 적은 소비 금액
    • 장기간 구매 활동이 없고 소비 금액도 낮은 이탈 위험 유저
    • 리마케팅 및 복귀 유도를 위한 강력한 전략 필요
WITH filtered_users AS (
    SELECT DISTINCT
        WID,
        CASE
            WHEN country = 'KR' THEN 'KR'
            WHEN country = 'JP' THEN 'JP'
            ELSE 'ETC'
        END AS country_group
    FROM
        project.raw_login_data
    WHERE
        WID IN (
            SELECT DISTINCT WID
            FROM project.raw_login_data
            GROUP BY WID
            HAVING MAX(level) > 7
        )
),
rfm_data AS (
    SELECT
        WID,
        MAX(date) AS latest_date,
        DATE_DIFF(DATE '2023-10-01', MAX(date), DAY) AS recency,
        SUM(buy_count) AS frequency,
        SUM(revenue) AS monetary
    FROM
        project.daily_sales
    GROUP BY
        WID
)
SELECT
    rfm.WID,
    rfm.latest_date,
    rfm.recency,
    rfm.frequency,
    rfm.monetary,
    fu.country_group
FROM
    rfm_data rfm
JOIN
    filtered_users fu ON rfm.WID = fu.WID
GROUP BY
    rfm.WID, rfm.latest_date, rfm.recency, rfm.frequency, rfm.monetary, fu.country_group
ORDER BY
    rfm.latest_date, rfm.frequency, rfm.monetary

 

  • 무자본 유저 세분화

무자본 유저는 총 5,501명이지만 daily_play테이블에서 NA 값을 가지는 유저가 있다. 따라서 NA 값을 가지는 유저를 제거하면 총 5,471명의 유저가 무자본 유저이다.

또한, 무자본 유저의 경우 간단한 feature engineering을 했다. daily_play에서 latest_log_date, play_count, playtime 컬럼을 이용해 아래와 같은 feature를 만들었다.

  • playtime_category_label: 플레이 시간 범주화
    • Short - 0, Medium - 1, Long - 2, Very Long - 3, Nan - 4
  • avg_playtime: 평균 플레이 시간 (한 번 플레이당 평균 플레이 시간)
  • final_log: 2023년 10월 01일 기준, 현재 날짜 - 마지막 로그인 날짜

무자본 유저 역시 RFM과 같이 KMeans로 군집화를 했을 때 가장 좋은 실루엣 점수를 보여주었다. 또한, 그래프13과 같이 2개 군집으로 나눴을 때 가장 좋은 실루엣 점수를 보여주었지만 RFM과 마찬가지로 설명 가능성과 분석 결과 이용 가능성을 고려해 3개 이상의 군집으로 나누는 방향을 선택했다. 3개 이상 군집에서 가장 좋은 실루엣 점수를 보여준 것은 5개의 군집으로 나눈 것이지만 하이퍼파라미터 튜닝 이후 군집을 4개로 나눈었을 때 0.425 실루엣 점수를 보여주었다. 따라서 4개의 군집으로 나누었고 그래프14와 같이 나누어졌다.

그래프13
그래프14

클러스터별 특징을 정리하면 다음과 같다.

  • Cluster 0: 맛보기 유저
    • 총 778명
    • 초반 흥미를 잃은 유저
    • 이벤트로 인한 초반 참여 유저
  • Cluster 1: Medium 플레이어
    • 총 유저: 2,371명
    • 간헐적으로 긴 시간 플레이하는 유저
    • 이탈 가능성이 높은 그룹으로, 리텐션 강화 전략이 필요
  • Cluster 2: 헌신적인 유저
    • 총 유저: 591명
    • 잦은 로그인
    • 중간 정도 플레이 시간
    • 중간 정도 평균 플레이 시간
    • 짧은 시간씩 자주 플레이하는 유저
    • 활동이 매우 활발
  • Cluster 3: 장기 휴면 유저
    • 총 유저: 1,731
    • 현재는 플레이하지 않는 유저
    • 매우 긴 시간 동안 플레이하는 유저
    • 총 플레이 시간과 평균 플레이 시간 모두 길어 몰입도가 높은 유저
WITH filtered_login_users AS (
    SELECT DISTINCT
        WID,
        CASE
            WHEN country = 'KR' THEN 'KR'
            WHEN country = 'JP' THEN 'JP'
            ELSE 'ETC'
        END AS country_group,
        DATE(MAX(log_time)) AS latest_log_date
    FROM
        project.raw_login_data
    WHERE
        WID IN (
            SELECT DISTINCT WID
            FROM project.raw_login_data
            GROUP BY WID
            HAVING MAX(level) > 7
        )
    GROUP BY
        WID,
        CASE
            WHEN country = 'KR' THEN 'KR'
            WHEN country = 'JP' THEN 'JP'
            ELSE 'ETC'
        END
),
sales_users AS (
    SELECT DISTINCT
        WID
    FROM
        project.daily_sales
),
filtered_daily_play AS (
    SELECT
        dp.Wid,
        sum(dp.play_count) AS play_count, -- 가장 큰 play_count를 선택
        sum(dp.playtime) AS playtime -- 가장 큰 playtime을 선택
    FROM
        project.daily_play dp
    WHERE
        dp.Wid IN (SELECT WID FROM filtered_login_users)
    GROUP BY
        dp.Wid
)
SELECT DISTINCT
    f.WID,
    f.country_group,
    f.latest_log_date,
    dp.play_count,
    dp.playtime
FROM
    filtered_login_users f
LEFT JOIN
    filtered_daily_play dp
ON
    f.WID = dp.Wid
WHERE
    f.WID NOT IN (SELECT WID FROM sales_users)
ORDER BY
    f.latest_log_date DESC;

 

4. 분석 활용 방안

4.1 RFM 분석 유저 마케팅

Cluster 2 - VIP 유저

  • 위험한 상황
  • 평균 Frequency 약 239 구매
  • 평균 Monetary 약 1,673,318 소비 
  • 평균 Recency 약 75일 -> 구매 활동 X
  • VIP 고객임에도 불구하고 최근에는 이탈 조짐
  • VIP 유저: 590명 중 최근 일주일 간 접속했던 유저 187명
  • 마케팅
    • VIP 유저 인앱 구매 할인 또는 무료 충전 아이템 제공
    • VIP 전용 이벤트(VIP 유저 차별화)
    • 이미 다른 게임으로 이탈했을 가능성 -> 피드백 요청

 

Cluster 1 - 최근 구매 유저

  • 총 792명 중 최근 일주일 간 접속했던 유저 291명
  • 마케팅
    • 충성적인 유저, VIP 유저로 전환될 가능성은 낮다.
    • 꾸준한 활동을 인정하는 보상 제공
    • 비교적 낮은 금액으로 접근 가능한 아이템 패키지 제공
    • 한정 할인 이벤트로 결제 유도
    • 업적 시스템
    • 100회 접속 달성! + 보상

 

Cluster 0 - 장기 휴면 유저

  • 총 1,612명 중 최근 일주일 간 접속했던 유저 13명
  • 마케팅
    • 충성적이고 활발한 활동을 보였으나, 이탈한 유저 그룹
    • 왜 이탈했는지 파악 필요 -> 질림, 유사 게임
    • SNS를 이용한 홍보 - 콘텐츠 업데이트
      • 유저가 새로운 [콘텐츠/아이템]을 즐기는 모습
    • 지속적으로 흥미를 끌 수 있는 콘텐츠 필요

 

Cluster 3 - 소극적 유저(이탈 유저)

  • 총 1,809명 중 최근 일주일간 접속한 유저 16명
  • 장기간(310.32일) 구매 활동이 없다.
  • 구매 빈도(3.29회)와 소비 금액(8,685.24)이 매우 낮다.
  • 마케팅
    • 이탈한 유저를 되돌릴 방법 보다는 장기 휴면 유저를 노리면서 신규 유저 유입을 목적으로 마케팅을 하는 것이 효과적이라 판단.

 

4.2 무자본 유저 마케팅

Cluster 2 - 헌신적인 유저

  • 총 591명
  • 잦은 로그인과 짧은 시간씩 자주 플레이하는 유저
  • 활동이 매우 활발
  • 마케팅
    • 플레이 횟수 기반 보상
    • 짧은 이벤트 캠페인
    • 무과금 VIP 관리 프로그램

 

Cluster 1 - Medium 플레이어

  • 총 2,371명
  • 간헐적으로 긴 시간 플레이하며, 이탈 가능성이 높은 유저
  • 마케팅
    • 리텐션 캠페인
    • 7일 연속 접속 시 보상
    • 짧은 이벤트 캠페인
    • 새로운 콘텐츠 알림

 

Cluster 3 - 장기 휴면 유저

  • 총 1,731명
  • 총 플레이 시간과 평균 플레이 시간 모두 길어 몰입도가 높은 유저
  • 마케팅
    • 장시간 접속 보상 이벤트
    • 커뮤니티 중심 캠페인
    • SNS를 이용한 홍보 - 콘텐츠 업데이트
      • 유저가 새로운 [콘텐츠/아이템]을 즐기는 모습

 

Cluster 0 - 맛보기 유저

  • 총 778명
  • 초반 흥미를 잃은 유저
  • 이벤트로 인한 초반 참여 유저
  • 마케팅
    • 이들을 대상으로 한 마케팅보다는 신규 유저 유입 전략에 집중하는 것이 더 효과적이라고  판단

 

5. 프로젝트 요약 및 향후 방향

5.1 프로젝트 요약

본 프로젝트는 모바일 게임 데이터를 기반으로 유저 행동 패턴을 분석하고, 이를 통해 맞춤형 마케팅 전략을 수립하기 위한 목적으로 수행되었다. 코로나19 이후 급격히 성장한 게임 산업에서, 유저의 이탈과 유입 관리는 중요한 과제가 되었다. 모바일 게임 시장의 특성상 유저의 이탈을 막고 신규 유저 유입을 위해 유저의 행동 데이터를 분석하여 충성도 강화 신규 유저 유입 전략을 마련하는 것이 필수적이다.

 

기본적인 데이터 분석(전체 유저)

 

  • 주요 타겟 국가: 한국과 일본
    • 한국과 일본 유저가 게임의 주요 타겟층이며, 해당 국가를 중심으로 맞춤형 콘텐츠와 마케팅 전략을 강화할 필요가 있다.
  • SNS 활용
    • SNS(Facebook, Twitter) 유입 비율이 높아, 게임 홍보와 유저 유입을 위해 SNS를 적극 활용하는 것이 효과적일 수 있다.
  • 주요 접속 시간대
    • 퇴근 이후 시간대(18시~22시)가 유저 접속이 가장 활발한 시간으로, 이 시간대를 겨냥한 이벤트 및 알림 메시지를 활용해 참여를 유도할 수 있다.
  • 소액 결제 유저 관리
    • 소액 결제 유저가 대다수이므로, 이들을 대상으로 소액 결제를 유도하는 프로모션을 설계하는 것이 중요하다.
    • VIP 유저는 별도의 혜택 제공 프로그램으로 충성도를 강화할 수 있다.

RFM 분석 유저(군집화)

  • 유저 감소 경향을 보여준다.
  • Cluster 2 (VIP 유저): 핵심 유저. 충성도 프로그램과 VIP 혜택 설계 필요.
  • Cluster 0 (장기 휴면 유저): 구매 이력이 있으나 장기간 활동하지 않은 유저. 복귀 유도를 위한 리마케팅 전략 필요.
  • Cluster 1 (최근 구매 유저): 최근 구매가 있었으나 소비 금액과 빈도가 낮은 유저. 소규모 할인 및 보상 프로그램 설계.
  • Cluster 3 (소극적 유저): 구매 빈도와 소비 금액이 매우 낮고 장기간 비활동. 신규 유저 유입에 집중하는 것이 더 효과적.

무자본 유저(군집화)

  • Cluster 2 (헌신적인 유저): 플레이 횟수와 로그인이 잦은 유저. 짧은 이벤트 및 무과금 VIP 관리 프로그램 도입 가능.
  • Cluster 1 (Medium 플레이어): 긴 시간 플레이하지만 간헐적 접속. 리텐션 강화 캠페인 필요.
  • Cluster 3 (장기 휴면 유저): 높은 몰입도를 보였으나 현재 활동 없음. 복귀 유도 마케팅 필요.
  • Cluster 0 (맛보기 유저): 초반 흥미를 잃은 유저. 마케팅보다는 신규 유저 유입 전략에 초점.

 

5.2 향후 방향

코맨토에서 직무부트캠프를 진행하면서 얻은 게임 데이터는 게임 유저가 어떤 모드를 얼마나 자주 플레이했는가, 어떤 아이템이 인기가 많은가에 대한 데이터를 포함하고 있다. 따라서 지금 분석한 RFM 기반의 분석뿐만 아니라 더 다양한 분석을 추가적으로 진행해 새로운 방향성을 도출해 내려고 한다.

728x90