게임 통계에서 성과 지표(KPI, Key Performance Indicator)는 게임의 성과를 평가하고 게임 플레이의 질적, 양적 지표를 측정하는 중요한 요소입니다. 이러한 지표들은 플레이어 행동, 게임 밸런스, 게임 매출 등에 대한 다양한 정보를 제공하며, 이를 바탕으로 게임 디자인 및 운영 전략을 조정할 수 있습니다. 아래는 게임에서 자주 사용되는 성과 지표와 이를 파이썬으로 계산하는 방법을 설명합니다.
1. 주요 성과 지표 설명
1.1 ARPU (Average Revenue Per User)
- 정의: 유저 1인당 평균 매출을 나타내는 지표로, 특정 기간 동안의 총 매출을 유저 수로 나눈 값입니다.
- 공식:
[
ARPU = \frac{\text{총 매출}}{\text{활동 유저 수}}
]
1.2 Retention Rate (유저 유지율)
- 정의: 게임에 참여한 유저가 일정 기간 이후에도 다시 돌아오는 비율을 나타내는 지표입니다.
- 공식:
[
\text{Retention Rate} = \frac{\text{재방문 유저 수}}{\text{처음 방문한 유저 수}} \times 100
]- Day 1 Retention: 처음 게임을 다운로드한 유저가 1일 후에도 게임을 플레이하는 비율
- Day 7 Retention: 다운로드 후 7일 후에도 돌아오는 유저 비율
1.3 DAU/MAU (Daily Active Users / Monthly Active Users)
- 정의: DAU는 일일 활성 유저 수, MAU는 월간 활성 유저 수입니다. 이 두 지표를 통해 유저 활동을 평가할 수 있으며, DAU/MAU 비율을 계산하면 게임의 유저 활동성을 알 수 있습니다.
- 공식:
[
DAU/MAU = \frac{\text{DAU}}{\text{MAU}} \times 100
]
1.4 Churn Rate (이탈율)
- 정의: 일정 기간 동안 게임을 그만두는 유저 비율을 나타냅니다.
- 공식:
[
\text{Churn Rate} = \frac{\text{기간 동안 게임을 떠난 유저 수}}{\text{전체 유저 수}} \times 100
]
1.5 Conversion Rate (구매 전환율)
- 정의: 무료 사용자 중 유료로 전환하는 유저의 비율입니다.
- 공식:
[
\text{Conversion Rate} = \frac{\text{유료 사용자 수}}{\text{전체 사용자 수}} \times 100
]
2. 파이썬 예제 코드
예시 데이터
먼저 가상의 유저 데이터 및 매출 데이터를 준비합니다.
import pandas as pd
# 가상의 데이터
data = {
'user_id': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'join_date': ['2024-10-01', '2024-10-01', '2024-10-02', '2024-10-03', '2024-10-04', '2024-10-05', '2024-10-06', '2024-10-07', '2024-10-07', '2024-10-07'],
'last_played': ['2024-10-07', '2024-10-06', '2024-10-03', '2024-10-04', '2024-10-07', '2024-10-07', '2024-10-07', '2024-10-07', '2024-10-07', '2024-10-07'],
'revenue': [5, 0, 0, 10, 0, 15, 0, 20, 0, 25] # 유저별 매출
}
# 데이터프레임 생성
df = pd.DataFrame(data)
df['join_date'] = pd.to_datetime(df['join_date'])
df['last_played'] = pd.to_datetime(df['last_played'])
print(df)
2.1 ARPU 계산
ARPU는 특정 기간 동안 발생한 총 매출을 그 기간 동안 활동한 유저 수로 나눈 값입니다.
# 총 매출 및 유저 수
total_revenue = df['revenue'].sum()
active_users = len(df)
# ARPU 계산
arpu = total_revenue / active_users
print(f"ARPU (평균 유저당 매출): ${arpu:.2f}")
2.2 Retention Rate 계산
Retention Rate는 유저가 게임에 재방문하는 비율을 나타냅니다. 예시에서는 Day 1 Retention을 계산합니다.
# 첫날 가입한 유저
first_day_users = df[df['join_date'] == '2024-10-01']
# 첫날 이후에도 게임을 플레이한 유저
retained_users = first_day_users[first_day_users['last_played'] > '2024-10-01']
# Day 1 Retention 계산
day1_retention = len(retained_users) / len(first_day_users) * 100
print(f"Day 1 Retention Rate: {day1_retention:.2f}%")
2.3 DAU/MAU 계산
DAU/MAU 비율은 유저가 얼마나 자주 게임에 참여하는지 평가하는 데 유용한 지표입니다.
# DAU: 특정 날짜의 활성 유저 수
dau = len(df[df['last_played'] == '2024-10-07'])
# MAU: 특정 월에 활동한 유저 수
mau = len(df['user_id'].unique()) # 전체 고유 유저 수 (월 단위로 본다 가정)
# DAU/MAU 비율 계산
dau_mau_ratio = dau / mau * 100
print(f"DAU/MAU 비율: {dau_mau_ratio:.2f}%")
2.4 Churn Rate 계산
Churn Rate는 유저가 게임을 그만두는 비율입니다.
# 마지막으로 게임을 한 날짜가 오래된 유저는 이탈한 것으로 간주
# 예시로, '2024-10-05' 이후로 게임을 하지 않은 유저를 이탈자로 본다.
churned_users = df[df['last_played'] < '2024-10-05']
# Churn Rate 계산
churn_rate = len(churned_users) / len(df) * 100
print(f"Churn Rate: {churn_rate:.2f}%")
2.5 Conversion Rate 계산
Conversion Rate는 무료 사용자 중 유료로 전환한 유저의 비율입니다.
# 유료 사용자 수 (매출이 0보다 큰 경우)
paying_users = df[df['revenue'] > 0]
# Conversion Rate 계산
conversion_rate = len(paying_users) / len(df) * 100
print(f"Conversion Rate: {conversion_rate:.2f}%")
3. 결과 해석
위의 코드에서 각 성과 지표의 결과를 해석하면 다음과 같습니다:
- ARPU (평균 유저당 매출): 유저 1인당 게임에서 발생한 평균 매출을 나타냅니다. 이 값이 높을수록 유저가 더 많은 돈을 게임에 지출하고 있음을 의미합니다.
- Retention Rate (유저 유지율): 처음 게임을 시작한 유저가 얼마나 자주 다시 돌아오는지를 나타냅니다. 높은 Retention Rate는 유저가 게임에 만족하고 있음을 나타냅니다.
- DAU/MAU 비율: 유저들이 얼마나 자주 게임을 플레이하는지를 나타내는 지표입니다. 이 비율이 높을수록 유저 활동이 활발함을 의미합니다.
- Churn Rate (이탈율): 유저가 게임을 그만두는 비율로, 이 값이 높을수록 게임이 유저를 유지하는 데 어려움을 겪고 있음을 의미합니다.
- Conversion Rate (구매 전환율): 무료 유저 중 얼마나 많은 유저가 유료로 전환했는지를 나타냅니다. 이 값을 통해 수익화 전략의 효과를 평가할 수 있습니다.
결론
성과 지표는 게임의 건강 상태를 평가하고, 유저 행동과 매출 추이를 모니터링하는 데 필수적인 도구입니다. ARPU, Retention Rate, DAU/MAU, Churn Rate, Conversion Rate 같은 주요 지표를 파이썬으로 손쉽게 계산할 수 있으며, 이를 통해 게임의 전략적 방향을 설정하거나 게임 운영을 개선할 수 있는 인사이트를 제공합니다.
'게임 통계서버의 구성 및 설명' 카테고리의 다른 글
[게임 통계 서버의 구성 및 설명] 게임 통계 서버 구성 9 (8) | 2024.10.25 |
---|---|
[게임 통계 서버의 구성 및 설명] 게임 통계 서버 구성 8 (11) | 2024.10.23 |
[게임 통계 서버의 구성 및 설명] 게임 통계 서버 구성 6 (2) | 2024.10.23 |
[게임 통계 서버의 구성 및 설명] 게임 통계 서버 구성 5 (0) | 2024.10.23 |
[게임 통계 서버의 구성 및 설명] 게임 통계 서버 구성 4 (0) | 2024.10.23 |