사쿠의 데이터 블로그

LTV 예측하기 본문

게임 데이터 분석

LTV 예측하기

토스트먹어 2020. 5. 24. 22:33

LTV(Life Time Value) 예측에 관한 글을 작성하려 합니다. 주 내용은 다른 게임 회사에서 적용중인 프로세스들을 참고해정리한 내용으로 그들보다 배경과 이론 설명이 부족할 수 있습니다. 혹시 궁금하신 점이 있다면 댓글 혹은 제가 참고한 링크들을 참조 부탁드립니다. (Devsisters), (NCSOFT)

글의 순서 입니다

LTV 예측이 필요한 이유
LTV 계산하기
Summary

 

LTV 예측이 필요한 이유

"항상 궁금한 예상 매출액을 집계할 수 있고, CPI 관리를 할 수 있어 마케팅에 더 집중할 수 있다."

최종 목적은 예상 위와 같습니다. 예상 매출액을 집계할 수 있다면 회계 작성 시에도 도움이 되고 앞으로 펼칠 사업의 방향을 정할 때도 매우 도움이 됩니다. 결과과 정확한 편이라면 장점은 나열하는게 손가락 아플정도 입니다.

CPI는 Cost Per Install 의 약자 입니다. App을  다운로드 받을 때 발생하는 비용으로, 예를들어 100만원 짜리 캠페인으로 고객 100명을 유치했다면 CPI는 인당 1만원이 됩니다. CPI는 낮을 수록 성공적인 캠페인이 됩니다.

참고 사례였던 Devsisters(2019) & NCSOFT(2020)

먼저, 데브시스터즈는 2019 NDC에서 LTV예측 사례를 발표 했습니다.

핵심 내용은 "30일 데이터를 이용해 향후 90일 예측" 입니다. 예측도 유저가 남긴 데이터를 바탕으로 해야 했기에 30일 이라는 제약 조건이 있었고, 이를 바탕으로 향후 90일을 예측하는 시도를 했습니다. 

다음으로는 2020년 NCSOFT인데요 핵심내용은  1) 예측 기간은 30, 90, 120일 지정    2) 최소 7일간 데이터로 향후 30일 예측  3) 이후 8일차에는 8, 7일 모델 2가지의 합으로 계산   핏 보면 복잡해 보일 수 있습니다. Devsisters와 NCSOFT의 차이점은 다음과 같습니다.

Train Data를 활용하는 정도: NC에서는 모델 개발에 필요한 기간을 7일로 잡아 최대한 빠르게 예측할 수 있도록 했습니다. 이렇게 되면 Output의 Variance가 매우 커지게 될 여지가 있는데  N일차, N+1일차 마다 모델을 업데이트 해주는 방식으로 단점을 보완했다고 생각합니다.

(생각이 나는데로 추가할 예정입니다)

 

LTV 계산하기

LTV 예측의 예시

LTV(Life Time Value)는 말 그대로 고객의 생애가치를 뜻합니다. 모바일 게임에서 LTV는 고객이 이탈할 때까지 발생한 결제금액의 합이 LTV가 될 수 있습니다. 위 사례에서 일 평균 결제금액은 전체 결제금액의 합 \17,200 나누기 100인 \172이 되고 100일뒤 이탈했으니, 172 X 100 = 17,200이 LTV가 됩니다. (*CPI는 100일동안 변하지 않고 \10,000입니다.)

하지만, 우리에게 유저는 A만 존재하지 않습니다. 또한, 이탈 시점을 정확히 예측할 수 없고 일 결제금액에 따라 LTV가 크게 변할 수 있기에 유저 단위로는 잘 계산하지 않습니다. 주로 가입일자를 기준으로 계산을 하는데요. 그 방법은 아래와 같습니다.

가입일자가 동일한 유저를 대상으로 LTV 계산하는 방법

ARPU: 여기서는 ARPDAU와 같은 의미로 일 평균 결제금액을 뜻함
NRU: 신규 가입 유저 수
Retention_i : 가입후 i일이 지난 뒤, 들어온 NRU의 비율
(ex: 100명의 NRU중 3일뒤 50명이 접속했다면 Retention_3은 50%가 된다)

이 방법은 실제로는 잘 작동하지 않습니다. 왜냐하면 분모에 있는 Retention부분이 등비가 아니기 때문입니다. Retention은 야속하게도 항상 감소하고 있습니다. 유저들이 항상 떠나고 있다는 말과 동일합니다. 왜냐하면 플레이 하고 있는 게임이 본인의 취향하 맞지 않을 수도 있고, 광고에 낚여서 들어왔을 수도 있습니다. 이유가 어떻든 리텐션은 항상 감소하고 있습니다. 그림으로 예시를 들면 아래와 같습니다. 

X축: 가입 후 경과한 일자, Y축: i일자에 들어론 NRU의 비율

Retention의 개형이 이렇기 때문에 먼저 Retention을 제대로 예측하고 LTV를 예측하여 합니다. Two Step으로 진행

그렇다면!! 다른 회사들은 어떻게 이 문제를 풀었는지 살펴보도록 하겠습니다.

 

LTV를 예측하려는 다양한 시도들

참고한 사례에서 사용한 방법들

먼저, 2019 데브시스터즈에서는 3가지 함수를 사용했지만 최종적으로는 멱함수와 유리함수의 가중평균을 이용해 예측을 했습니다. sBG (Shifted Beta Geometric)은 사용방법이 복잡하지만 성능은 멱함수와 유사했다고 합니다. 멱함수(Power)는 실제보다 높게 추정하는 경향이 있고 유리함수는 실제보다 낮게 추정하는 경향이 있어 이 둘을 가중 평균내어 완성했다고 합니다. 

다음으로 NCSOFT에서는 리텐션 데이터에 전처리를 실시했습니다. 앞서 말씀드린 것 처럼 Retention이 감소하긴 하지만 가끔은 위로 치솟을 때도 있습니다. 왼쪽의 데스시스터즈에서도 비슷한 경향이 있는 걸 알 수 있습니다. 지속적인 감소를 반영하기 위해 어제까지의 Retention보다 큰 일자가 나타나면 전에 발생했던 값 중 최댓값을 사용합니다. (계단모양이 나타나는 이유). 이 후의 방법은 데브시스터즈와 비슷하게 진행했습니다.

요약해보면 아래와 같습니다.

어떤 모습의 함수가 가장 적당할까요?

저는 실험을 진행한 결과, 유리함수가 sGB보다는 잘 맞았습니다. 여러분이 가지고 있는 데이터에는 어떤 모습의 함수가 가장 적당했는지 알려주세요~!! 

* 본문에 적힌 sGB는 기하분포의 모수 p를 베타분포를 이용해 추정하는 방법을 뜻합니다. 기하분포는 "베르누이 시행에서 처음 성공할 때까지 실패한 횟수의 분포"이며 여기서 성공은 유저 이탈을 뜻합니다. 

유리함수를 이용해 예측한 Retention 데이터

 

이제 Retention예측이 끝났으니, ARPU를 예측할 수 있다면 당일 LTV를 예측하는데 문제가 없습니다!! 

하지만, ARPU는 예측하기 정말 힘든 존재입니다. 유저의 결제금액을 맞춰야 하는데 이게 여간 쉽지 않습니다.

N+1 - N일자 ARPU의 모습. 수렴하지 않고 항상 변동이 있는 모습

NCSOFT에서는 이 문제를 해경하기 위해 그간 발생했던 ARPU들의 이동평균값을 사용하곤 했습니다. 저도 이것저것 바꿔가면서 실험을 진행하고 있는데요, 현재까지는 이동평균이 가장 효과가 좋은것 같습니다.

 

자!!!! 이제 모든 준비는 끝났습니다. 예측만 하면 되는데요,

 

만약, 30일자 LTV를 예측하고 싶다면 위 공식에서 덧셈을 D+30까지만 진행하시면 됩니다. 정말 간단하죠? (찡긋)

 

마지막으로 제가 진행한 결과를 첨부한 뒤,  챕터를 마무리 하려 합니다. sBG와 유리함수를 사용해 봤습니다. 

 

 

Summary

위 글에 사용했던 방법들을 다시 한번 정리한 그림입니다. 

 

위 참고사례들을 바탕으로 저두 저만의 방법을 개발하고 있습니다. 실 서비스에 이용되기까지는 아직 시간이 걸리겠지만 완성되면 블로그에 소개하도록 하겠습니다. 긴글 봐주셔서 감사합니다.

 

※ 참고 URL

데브시스터즈 : http://ndcreplay.nexon.com/NDC2019/sessions/NDC2019_0026.html#c=NDC2019&k%5B%5D=LT

 

NDC Replay

본 홈페이지에 게재, 공개된 발표자료, 동영상, 이미지, 스크립트 등 일체의 저작물(이하 “저작물”이라 합니다)에 대한 저작권 (2차적저작물작성권 및 편집저작물작성권 포함)은 해당 저작물��

ndcreplay.nexon.com

NCSOFT: https://danbi-ncsoft.github.io/works/2020/03/16/works-mobile_mkt_ltv.html

 

게임 고객 LTV 추정하기

 

danbi-ncsoft.github.io