top of page
Writer's pictureJiehwan Yang

게임 과금 & 장기 접속률 예측 및 영향 변수 찾기

Intro

'게임 한 판만 하고 자야지...' 라고 시작했다가 새벽 2-3시까지 해본 적 있는가?


나는 초등학교 때 친구들과 같이 땡볕에 축구를 하고 에어컨 빵빵한 PC방에 가서 메이플스토리, 피파온라인 등을 하다가 어머니의 핵매운맛 등짝스매시를 맞아 본 아름다운(?) 추억이 있다. 그 시절 우리는 게임 = 중독 = 폐인 이라는 사회적 편견 속에 살고 있었는지도 모르겠다.


하지만 최근 온라인 및 모바일 게임은 우리나라 핵심 산업으로 자리 잡아 지속적인 성장을 통해 게임 산업 전반의 발전 뿐만 아니라 한국 경제에 이바지하고 있다. 한국콘텐츠징흥원의 분석에 따르면, 한국 게임산업은 지난해 17조원을 돌파한 데 이어 올해 18조원을 넘어설 것으로 추정된다고 한다. 우리나라 국내 자동차 판매량이 60조원 가까이 되는 걸로 아는데 서비스 산업이 제조 산업의 1/3 수준으로 덩치가 커진 것이다. 괜히 K-COTENTS라는 말이 나온 게 아닌 것 같다. (코로나로 인한 집콕 생활도 작년 게임 산업 성장에 큰 영향이 있었을 것 같다.)


출처: https://www.hankyung.com/it/article/2021010457781
출처: https://www.hankyung.com/it/article/2021010457781

이런 막대한 수입은 어디서 나오는 걸까? 그렇다. 우리의 주머니가 늘 얇은 데는 이유가 있다.


영리 목적의 게임 회사는 게임 개발뿐만 아니라 고객 유지 및 이탈 방어에 큰 노력을 기울인다. 게임 산업에서는 기존 고객을 유지하는 비용이 신규 고객을 유치하는 비용에 비해 현저히 낮다고 한다. 따라서 게임 회사에게 있어 기존 고객을 유지하기 위해 고객의 이탈을 예측하고 이를 방지하기 위한 노력은 큰 실무적 중요성을 지닐 것이다.



이번 포스트에서는 모바일게임 유저들의 과금과 장기 접속률에 영향을 주는 변수들에 대해 찾아보고, 이에 대한 전략 수립을 해볼 것이다.


 
Data

데이터는 다음과 같이 이루어져 있다.


  • 샘플 수: 55,809건

  • feature 수: 22개

    • 1: os 타입

    • 2: 국가

    • 3: 로그인 타입

    • 4: D+1일차 접속여부

    • 5: D+3일차 접속여부

    • 6: D+5일차 접속여부

    • 7: D+7일차 접속여부

    • 8: D+9일차 접속여부

    • 9: D+11일차 접속여부

    • 10: D+14일차 접속여부 ==> 장기접속률

    • 11: 최종 클리어 스테이지

    • 12: 마지막으로 도전한 스테이지

    • 13: 획득한 불꽃 총 개수

    • 14: 사용한 불꽃 총 개수

    • 15: 코인 교환에 사용한 루비량

    • 16: 버디 슬롯 개방에 사용한 루비량

    • 17: 에피소드 오픈에 사용한 루비량

    • 18: 불꽃 충전에 사용한 루비량

    • 19: 버디 뽑기(가챠)에 사용한 루비량

    • 20: 스테이지 플레이에 필요한 아이템 구매에 사용한 루비량

    • 21: 구매한 상품명

    • 22: 구매 횟수


이번 포스트에서 가장 중점적으로 다룰 두 변수를 간단히 살펴보자면:

  • "D+14일차 접속여부" 는 장기접속률을 나타내는 변수이다.

  • "루비"는 게임 내 메인 캐시역할을 하는 재화이다. 주로 과금을 통해 획득할 수 있다.


 
EDA-1. 신규유저 기본 지표 분석

게임에 들어온 신규유저를 볼 때 가장 관심이 있는 지표는 "잔존율" 이라고 할 수 있다. 잔존율이란 신규 유저 중 다음날, 그 다음날, 2주 뒤, 1개월 뒤에도 게임에 접속하였는지를 측정하는 지표이며, 리텐션(Retention)이라고도 한다. 전체 가입 유저 중 D+N일차 이후에도 접속한 유저의 비율로 계산 가능하다.

전체 잔존율 (좌) OS type 에 따른 잔존율 (우)
  • 가입일 후 시간이 지날수록 잔존율이 떨어지는 걸 확인할 수 있다.

  • Android 유저의 잔존율이 IOS 유저보다 높다. OS에 따른 에러가 없는 지 살펴볼 필요가 있어보인다.


ㅈㄷㅈㄷㅎ
신규유저의 가입 당일 최종 도달 스테이지의 5 number summary (좌) 스테이지별 유저 분포 (중) 유저수와 비중 (우)
  • 유저와 게임의 가장 첫번째 접점 시점인 가입 당일이 게임의 성패를 크게 좌지우지한다. 따라서 신규유저가 가입 당일 게임에 얼마나 engaged 됐는지를 살펴보자.

  • 가입만하고 플레이를 하지 않은 유저가 28%에 달한다. 조금 더 engaging한 스토리나 이벤트, 선물 등으로 게임 시작을 장려할 필요가 있어보인다.

  • 6~9 스테이지와 같이 특정 스테이지에서 비중이 급격히 줄어든다면, 스테이지의 난이도를 조정하거나 시스템 에러/버그가 없는지 확인할 필요가 있다.


 
EDA-2. 재화 지표 분석

가입 당일 과금하며 게임에 몰입하는 유저들은 얼마나 있는지, 구매한다면 어떤 상품을 주로 구매하고 있는지 살펴보려고 한다.


여러 재화들 중 두 가지 중요한 재화에 대해 살펴보자.


먼저, "루비"는 게임 내 메인 캐시 역할을 하는 재화이다. 주로 과금을 통해 획득할 수 있고, 가끔 보상이나 버디 스킬을 통해 획득할 수 있다. 루비 사용처를 파악하면 유저들이 어떤 측면에서 과금 니즈를 느끼는지 확인할 수 있다.


그리고 "불꽃"이라는 재화는 게임 내 메인 스테이지에 입장하기 위한 열쇠 역할을 하는 재화이다. 불꽃을 모두 사용하면 시간이 지남에 따라 최대 5개까지 자동으로 충전되고, 그 외 필요한 불꽃은 루비로 구매할 수 있고, 이벤트를 통해서도 가끔 획득할 수 있다.


이용한 컬럼:

13: 획득한 불꽃 총 개수

14: 사용한 불꽃 총 개수

15: 코인 교환에 사용한 루비량

16: 버디 슬롯 개방에 사용한 루비량

17: 에피소드 오픈에 사용한 루비량

18: 불꽃 충전에 사용한 루비량

19: 버디 뽑기(가챠)에 사용한 루비량

20: 스테이지 플레이에 필요한 아이템 구매에 사용한 루비량



루비의 각 소비처(컬럼 15~20번) 별 루비를 사용한 평균 사용량
  • 스테이지 플레이에 필요한 아이템 구매와 버디 뽑기 (가챠)가 가장 높다. 게임에 engaged된 사용자를 가늠할 수 있는 지표로 사용할 수 있다.

  • 가챠 확률 상승 이벤트를 개시할 경우, 해당 지표를 활용해 이벤트가 성공적으로 이루어지고 있는지 참고할 수 있다.


"스테이지 구분" 별 불꽃 평균 사용량 분포

  • 게임을 플레이하기 위해서는 불꽃을 사용해야 한다. 불꽃은 30분에 1개씩 총 5개까지 지급된다.

  • 20~ 스테이지에서 불꽃 충전에 사용한 루비량이 급격히 늘어난 것을 확인할 수 있다. 게임의 난이도와 그에 따른 루비 사용량을 적절히 자극하는 가를 가늠하는 지표이다.

  • 불꽃을 얼마나 자주 주어야 할지에 대한 고민을 주는 지표이다. 불꽃을 너무 자주 지급하면 루비 사용량이 줄어들어 매출이 줄어들 것이고, 너무 뜸하게 지급하면 유저의 exit을 야기할 수 있다.


 
장기접속률에 영향을 주는 변수

D+14일차 접속여부를 '장기접속률' 이라고 명명할 때, '장기접속율'에 영향을 주는 변수의 중요도에 따라 나열하고, 이를 토대로 장기접속율을 올리기 위한 방법에 대해 살펴보자.


이를 위해 저자는 Random Forest와 Recursive Feature Elimination (RFE) 모델을 통해 알아보도록 하겠다. 2가지 방법론을 통해 무엇이 더 정확한지 또한 알아보자.


데이터가 unbalanced 하기 때문에 under-sampling 을 통해 모델을 구현했다. 두 모델 동일하게 Training: Test = 80:20 으로 데이터를 분배하였다.

Random Forest 모델: 장기접속률 (D+14일차)에 영향을 주는 변수

Random Forest 모델로 구한 중요 변수들의 시사점:

  1. "D_N일차 접속여부"가 장기접속률 (D+14일차 접속여부) 가까울수록 더 높은 영향을 주는 것을 확인할 수 있다다. D+7,+9,+11일차까지의 영향력은 아니지만 D+1,+3일차 접속여부 또한 유의미한 영향을 준다. 따라서 신규가입 사용자를 D+1,+3일차까지 신규가입자 이벤트를 통해서 재접속률을 증대시킴으로써 장기접속률을 늘릴 수 있을 것으로 기대된다. 효율적인 이벤트를 위해서 D+1,+3일차 전에 떠나는 유저들의 경우, 어떤 이유에서 떠났는지에 대한 정보가 우선적으로 필요할 것이다. 만약 대다수의 사용자가 초반의 난이도가 어렵고 불꽃 획득의 빈도가 너무 드물어서 떠난 것이 확인될 경우, 처음 스테이지의 난이도를 쉽게하거나 불꽃 획득 빈도를 높여 초반 접속여부를 향상시킴으로써 장기접속률을 증대시킬 수 있을 것으로 기대된다.

  2. "획득한 불꽃 총 개수"가 장기접속률에 유의미한 영향을 주는 걸 확인할 수 있다. 따라서 사용자에게 불꽃을 얼마나 자주 줬을 때 장기접속률 향상으로 이어지는지에 대한 A/B testing을 실행함으로써 최적화된 불꽃 지급 빈도수를 찾아낼 수 있을 것이다. 그 결과에 따른 최적화 빈도에 맞춰 불꽃을 지급함으로써 장기접속률을 향상시킬 수 있을 것이다.

  3. 최종 플레이 스테이지: 특정 스테이지에서 잔존률이 떨어진다면, 원인 (난이도, 컨텐츠, 버그, etc.)을 분석 및 개선하여 장기접속률을 향상시킬 수 있을 것이다.



두번째 Feature selection 방법은 RFE (Recursive Feature Elimination; 재귀적 특성 제거) 이다. RFE는 모든 특성으로 시작하여 모델을 만들고, feature importance가 가장 낮은 특성을 제거하여 제거된 feature는 제외하고 나머지 feature 전체로 새로운 모델을 만든다. 그리고 지정한 특성개수의 feature가 남을 때까지 이 과정을 반복한다. 통계학에서 배우는 Backward Stepwise Selection과 동일한 컨셉트이다.


아래에서는 RandomForest 결과를 토대로 중요하지 않다고 판단되는 dummy variable을 제외한 모든 특성으로 시작하여 모델을 만들고, 가장 중요한 5개의 feature를 추출해보겠다. (사실 8년된 노트북 성능이 형편없어 RFE Model을 만드는 데 수 시간이 걸렸다...)



위의 Feature Ranking 결과는 1이 위치한 index의 feature(D+1일차 접속여부,마지막으로 도전한 스테이지,획득한 불꽃 총 개수,구매 횟수, os_Android)들이 가장 중요하다는 것을 나타낸다. Random Forest 와 큰 차이를 보인다.

RFE는 높은 변수 중요성을 갖는 변수들을 포함하려는 경향은 있으나, 변수 중요성 홀로 결과물을 예측할 때 몇몇 변수들이 조합하여 잘 작동하는지를 나타내는 좋은 지표가 되지는 못한다. 또한 RFE는 Regression Model이기 때문에 독립변수들 간에 강한 상관관계가 나타날 수도 있는 다중공선성(multicollinearity)의 문제를 내포하고 있다. 이는 회귀분석의 전제 가정을 위배하는 것이므로, 상황에 따라 분산팽창요인(Variance Inflation Factor)을 통해 다중공선성의 문제가 있는 독립변수들을 찾아낼 수 있을 것이다.

이에 반해, Random Forest Model는 다중공선성 문제에 영향받지 않으며 overfitting의 문제 또한 상대적으로 적으므로, RFE Model보다 중요 변수 추출 정확도가 높다고 결론 내릴 수 있겠다.


그렇다면 Random Forest Model의 장기접속률 (D+14일차 접속여부)에 대한 예측 성능을 살펴보자.


Random Forest Model의 장기접속률 예측 성능

성능이 준수하다.


FN 과 FP 둘 중 어떤 것을 최소화 시켜야 하는지는 문제의 성격마다 다르겠지만, 이번 프로젝트에서는 FN을 최소화 하는 모델, 즉 곧 장기접속자가 아닐 것으로 예상되었던 장기접속자의 수를 줄이는 모델이 비즈니스 측면에서 중요할 것이다.



 
일본 유저들의 과금 특성 및 영향 변수

다음으로는 이웃나라 일본 유저들 (sample size = 24998 명)만을 대상으로 과금 특성 및 과금에 영향을 주는 변수들을 살펴보자.


먼저, 구매 횟수 변수의 여부에 따라 "구매여부"라는 변수를 새로 만들어 본 결과, 총 구매를 한 유저의 수는 129 명으로 전체의 0.52% 에 불과하다. 위와 동일하게 데이터가 unbalanced 하기 때문에 under-sampling 을 통해 모델을 구현했다. Training: Test = 80: 20 으로 데이터를 분배했다.

Random Forest Model의 "구매여부" 예측 test 결과

비즈니스의 기준에 따라 모델의 예측 성능에 대한 의견은 다를 것이라 생각된다. 위의 장기접속률 모델과 동일하게 구매여부 모델 또한 FN rate 가 중요하다고 생각한다. ROC를 활용해 적절한 threshold 값을 구해 FN rate를 최소화하는 방법을 시도해볼 수 있다.


다음은 구매여부 변수에 영향을 주는 변수들이다.

  1. "획득한 불꽃 총 개수"가 구매여부에 유의미한 영향을 주는 걸 확인할 수 있다. 따라서 사용자에게 불꽃을 얼마나 자주 줬을 때 장기접속률 향상으로 이어지는지에 대한 A/B testing을 실행함으로써 최적화된 불꽃 지급 빈도수를 찾아낼 수 있을 것이다. 그 결과에 따른 최적화 빈도에 맞춰 불꽃을 지급함으로써 장기접속률을 향상시킬 수 있을 것이다.

  2. "마지막으로 도전한 스테이지" 또한 구매여부에 유의미한 영향을 준다. 해당 변수들의 관계에 대한 분석 결과, stage가 올라갈 수록 구매여부 또한 상승하는 선형적 관계를 띈다. 이는 stage가 올라갈 수록 난이도 상승에 따른 구매욕구 상승이라고 예상된다. A/B testing을 통해 각 stage의 난이도를 조정하여 더 이른 stage에 과금을 유도하고 혹시라도 과도한 조정으로 인해 이탈률이 발생하지 않는지 추적관찰이 필요할 것이다.

  3. "D+N일차" 변수 또한 구매여부에 유의한 영향을 준다. 해당 변수는 마지막으로 도전한 스테이지 변수와도 상관성이 있어 보인다.


추정 결론:


  • 장기 접속율과 구매여부에 영향을 주는 변수들이 크게 다르지 않다.

  • 즉, 장기적으로 접속하는 유저일수록 더 높은 스테이지에 도전하고, 이에 따른 게임 난이도 상승 및 몰입도 상승으로 인해 과금이 늘어나는 걸로 유추할 수 있다.

  • A/B Testing을 통해 불꽃 지급의 개수를 적절히 조절하여 유저들의 재접속율을 향상시킴으로써 과금을 촉진할 수 있을 것으로 기대된다.

  • 이는 출석 체크를 통한 보너스 불꽃 지급, 친구 초대를 통한 보너스 불꽃 지급 등 다양한 형태의 이벤트로 진행될 수 있을 것이다.



 
마치며

  • 게임 데이터를 처음으로 분석해봤는데 사람들의 과금 유형 및 심리를 어느 정도 파악할 수 있다는 점이 재미있고 매력있었다.


  • 유저들간의 교류가 상당한 리니지 같은 게임의 경우, 현실을 모방한 가상 현실의 형태 (공급과 수요에 따른 시세가 변동하는 아이템 거래, 유저들 간의 길드 및 네트워크 형성, etc.) 를 띄는데 NC 소프트는 어떤 지표 관리 및 프로젝트를 진행하는지 궁금하다. (생각해보니 요즘 뜨고 있는 메타버스가 일상화 되면 훨씬 다양하고 복잡한 데이터가 쏟아질 것 같다!)


  • 과금하면 빼놓을 수 없는 게임이 피파온라인이라 생각하는데, 이전에 FIFA 선수 Clustering 프로젝트 에서는 선수 데이터만을 토대로 분석 했다면 다음 번에는 더 다양한 데이터를 가지고 과금 관련 프로젝트를 해보고 싶다. 피파 온라인은 과금을 많이 하는 VIP 유저들을 따로 관리할까? 과금 상위 20%가 전체 과금의 80%를 차지하는 파레토 법칙이 적용될까? 반대로, 조금씩 과금하는 다수가 핵심적인 상위 20%의 소수보다 더 큰 매출을 창출하는 롱테일 법칙이 적용될까? 후자라면 어떤 전략 및 방식으로 다수의 과금을 유도해내는지 정말 궁금하다.


  • 사람을 이해하고 게임을 파악하는 일이 업무인 게임 기획자와 UX 디자이너들이 주로 유저들에 대한 통찰력을 많이 가지게 될 것 같은데, 그런 통찰력을 바탕으로 유저들의 경험 단계에 따라 어떤 리서치 방법을 구축하고 분석 및 결과를 도출해 내는지도 궁금하다.


이번 프로젝트도 궁금증이 더 많아지게 된 시간이었다... 하루 빨리 다양한 사람들과 교류하고 토론하며 이런 궁금증들을 해소하고 싶다!


Comments


bottom of page