(feat. 머신러닝 조금 추가)
신규고객 확보를 위해 UA(User Acqusition) 캠페인을 진행하는 모바일 앱 마케팅의 경우 해당 앱 서비스의 LTV, 즉 고객생애가치가 얼마나 될지 예상하는 것이 중요하다. 그래야 고객생애가치 대비 신규유저 획득 당 비용(CPI)을 조정하면서 캠페인을 최적화하거나 중단하는 등의 결정을 할 수 있기 때문이다.
기존에 모바일 게임의 LTV를 구하는 방법에 대해 글을 쓴 적이 있는데 오늘은 이 내용에 더해 머신러닝을 활용해 어떻게 LTV를 예측할 수 있는 지, 그리고 엑셀을 통해 간단히 예측 모델을 만들어 봄으로써 머신러닝을 활용한 예측이란 어떤 것인지를 간접적으로 경험해 보고자 한다.
모바일 앱 서비스를 하면서 LTV를 예측하는 방법은 크게 3가지로 나눌 수 있다. 리텐션 함수를 활용하는 방법, 비율 모델, 그리고 머신러닝을 활용한 방법 등이다. 각각의 모델에 대해 어떤 데이터를 활용해 어떻게 LTV를 예측하는 것인지 알아보도록 하자.
(1) 리텐션 함수 모델 (Retention-driven model)
1일, 3일, 7일과 같은 초기 리텐션 데이터 포인트를 바탕으로 리텐션을 예측하는 리텐션 함수를 만들고 이를 바탕으로 유저가 90일, 180일 동안 예상 평균이용기간을 계산하는 것이다. 여기에 일일 액티브 유저당 평균수익(ARPDAU)를 곱해 90일 혹은 180일 LTV를 계산하는 방법이다.
LTV=예상 평균이용기간*ARPDAU
리텐션 함수를 만드는 방법은 간단하다. 엑셀에서 1일, 3일, 7일 데이터 포인트를 찍고 추세선(trendline)을 그리면 해당 수식을 표시할 수 있고 90일, 180일 리텐션을 예상할 수 있으며 90일 혹은 180일 동안의 리텐션을 모두 더하면 예상 평균이용일이 나온다.
(2) 비율 모델 (Ratio model)
두 번째는 과거 데이터를 기반으로 90일 또는 180일 LTV를 예측하는 것이다. 예를 들어 3일 동안 사용자당 평균 결제금액(ARPU)가 20센트이고, 과거 데이터에서 90일 LTV / 3일 LTV =3, 즉 그 비율이 3이라면 90일 LTV는 20 X 3 = 60센트로 예상하는 방식이다.
LTV = RATIO x ARPU
대부분의 게임 앱들이 이 방식을 사용하는 데 내가 근무한 회사 역시 이전에 출시한 같은 장르의 MMORPG 게임이 있어서 유사 게임의 과거 LTV 데이터를 기반으로 신규 MMORPG의 LTV를 예상해 마케팅을 집행했다. 아예 기존 데이터가 없거나 참고 데이터가 없는 경우 초기에는 앞서 리텐션 모델을 사용하고 데이터가 쌓여감에 따라 비율 모델을 정교화해 나갈 수 있을 것이다.
리텐션이 좋고 첫째날을 비롯해 초기 2~3일 동안 결제가 잘 일어나는 F2P(Free to Play) 게임의 경우 비율방식이 잘 작동할 가능성이 크다.
(3) 머신러닝 기반 모델 (Behavior-driven model)
머신러닝 기반 모델은 앱에서 나오는 초기 데이터, 즉 세션, 인게이지먼트, 구매, 지역, 단말 타입 등의 대량의 데이터를 바탕으로 머신러닝 기반 모델을 만들고 신규 유저의 유입 채널과 인앱 행동 특성 등의 데이터를 바탕으로 신규 유저의 LTV를 예측하는 것이다.
초기 프리 트라이얼 기간이 길거나 항공기 예약 앱처럼 매출이 자주 금방 발생하지 않는 앱의 경우 캠페인 초기 UA 채널이 효과적인지 평가하고 최적화하는 기간이 길어질 수 밖에 없다. 그래서 이러한 경우 앱 사용에서 나오는 대량의 데이터를 바탕으로 머신러닝 기반 모델을 만들어 사용할 수 있을 것이다.
하지만 이 경우 머신러닝 기반 모델을 만들고 유지하기 위해서는 대규모의 데이터와 팀 리소스가 필요하고 앱 내 새로운 특징을 추가하거나 제거하는 등 변화가 발생할 경우 대응하는 데 시간이 걸린다는 점에서 작은 회사나 팀이 이 방법을 사용하기는 힘들 수도 있다.
이런 머신러닝 기반의 LTV 모델링을 가지고 UA를 하는 회사가 얼마나 될까? 하지만 사용자 기반이 많은 이커머스를 비롯해 서비스 규모가 큰 회사의 경우 UA를 위한 LTV 예측 보다는 고객의 성향과 LTV를 예측해 거기에 맞는 개인화된 제안과 서비스를 제공하기 위해 머신러닝을 활용하는 경우가 더 많지 않을까 생각한다. 물론 자체적으로 머신러닝 관련 팀을 구축하든 외부 플랫폼을 사용하든 말이다.
얼마 전에 앱스플라이어 역시 애플 iOS 14의 개인정보 정책에 따라 iOS에서 앱 추적을 허용하지 않은 사용자의 경우 애플 SKAdNetwork를 통한 제한된 트래킹만 가능해지자 64개까지 획득 가능한 초기 몇 일간의 컨버전 데이터를 바탕으로 머신러닝을 활용해 LTV를 예측해 캠페인 최적화를 돕는다는 predictSK 기능을 내놓기도 했다. (그래서 머신러닝 활용과 관련한 블로그 내용을 요즘 많이 내고 있는 것 같기도 하다.)
앞서 리텐션 커브를 엑셀에서 만들어 보았지만 LTV 자체를 몇 개의 데이터 포인트를 바탕으로 예측모델을 만들어 볼 수도 있을 것이다. 엑셀의 추세선과 수식 표시 기능을 이용하면 예측 모델을 금새 만들어 볼 수 있다. 물론 정확도가 문제일 것이다. 그리고 정확도는 데이터가 많으면 많을 수록 높아지는 경향이 있다.
LTV는 그 자체가 비즈니스의 최종 목적이 되는 지표라면 ROAS (Return on Ad spending)은 광고집행 단가(앱 마케팅에서는 CPI) 대비 LTV를 나타내는 상대적인 지표로 마케팅 채널의 효율적인 광고 집행을
평가할 수 있는 지표이다. ROAS가 100%란 말은 광고에 사용한 비용과 광고에서 나온 매출이 같다는 말이다.
ROAS = (광고집행 비용 / 광고에서 나온 매출) x 100
광고를 집행한 첫 주에 몇 %의 ROAS가 나와야 6개월 후에 100% 손익분기점 달성을 예상할 수 있을까?
광고 집행 첫째주 ROAS와 6개월 ROAS 데이터 포인트가 어느 정도 쌓였다면 엑셀에서 첫째주 ROAS를 x축으로 하고 6개월 ROAS를 y축으로 하는 스캐터 플롯을 그려보자. 엑셀 상에서 해당하는 데이터 포인트를 찍고 이를 연결하는 추세선을 선형으로 선택하면 된다.
수식을 표시하면 나타나는 선형 방정식에서 y값(6개월 ROAS)이 100%가 되는 x 값을 풀면 된다. x는 11.8%로 나오는 데, 즉 광고 집행 첫째주 ROAS가 11.8% 이상이여야 6개월 후 ROAS 100%를 달성할 수
있을 것이란 말이다. 이러한 기준을 가지고 광고 집행 초기 '실적이 저조할 것 같은 느낌'에서 '저조할 것으로 예상되는' 채널의 버짓을 중단하거나 최적화하는 등 대응을 할 수 있다.
마지막으로 이 예측 모델의 정확도를 평가해보자. 예측 모델을 만들기 전에 전체 데이터 가운데 20% 정도를 예측 검증을 위한 데이터로 떼어놓고 나머지 80% 데이터를 가지고 위 예측 모델을 만드는 것이다. 그리고 여기서 나온 선형 방정식에 검증을 위해 떼어놓은 데이터의 x값을 넣어 y 예측값을 얻어낸다. 그리고 이 y 예측값과 검증 데이터의 y 실제값의 차이를 비교해 모델의 정확도를 평가하는 것이다. 정확도가 떨어진다면 다른 예측 방정식을 사용하거나 데이터를 보강할 수도 있다.
이 과정은 머신러닝이 데이터를 가지고 새로운 결과를 예측하는 방법과 동일한데 머신러닝 역시 수많은 데이터를 바탕으로 이들의 관계 혹은 분포를 잘 표현해 줄 수 있는 수식(가중치)을 찾고 평가해 새로운 데이터를 예측하는 방법인 것이다.
https://blogs.nvidia.co.kr/2018/09/03/supervised-unsupervised-learning/
다만 데이터 양이 많거나 x 변수가 많은 복잡한 모델의 경우 R이나 파이썬을 활용한 머신러닝을 활용해 예측 모델을 만들 수 있을 것이다. 머신러닝을 나와는 동떨어진 혹은 너무 어려운 것으로 생각하지 말자. 앞에서 엑셀에서 간단한 예측모델을 만드는 과정을 이미 만들어져 있는 각각의 머신러닝 알고리즘 수식에 학습시키고 데이터를 잘 설명해 줄 수 있는 수식(가중치)을 찾아내고 이를 평가하고 최적화하는 과정이라 생각하면 된다.