인앱 결제(IAP) 상품 구성과 Battle Pass 과금 모델 설계 가이드

게임 인앱 결제 상품을 통화·스타터 팩·번들로 구성하고 무료·프리미엄 Battle Pass의 가격·보상·경제 밸런스를 설계하는 실무 기준을 정리합니다.

✓ 복사 완료!
챕터클라우드 저장 & 결제 시스템
난이도중급
상태● 검토 완료
대상 엔진
Engine Agnostic
최종 업데이트
인앱 결제(IAP) 상품 구성과 Battle Pass 과금 모델 설계 가이드

핵심 요약

IAP 상품은 플레이어가 원하는 진행 속도와 꾸미기 욕구를 해결하되 핵심 플레이를 결제로 우회하게 만들지 않는 방향이 안전하다. Battle Pass는 무료 보상으로 참여를 유지하고 프리미엄 보상으로 업그레이드 이유를 제공하며 시즌 완료 가능 시간과 재화 환급량을 수치로 검증해야 한다.

인앱 결제 상품 구성은 무엇부터 정해야 할까?

상품부터 나열하지 말고 게임의 경제 구조와 플레이어 세그먼트를 먼저 정의한다. 특히 PvP나 경쟁 요소가 강한 게임은 성능 우위 판매가 장기 리텐션과 신뢰를 훼손할 수 있으므로 외형·편의·시간 절약의 비중을 높이는 편이 일반적으로 안정적이다.

설계 항목먼저 답할 질문권장 기준
핵심 재화어떤 행동으로 획득하고 어디에 소비되는가?무료 획득처와 유료 구매처를 모두 문서화한다.
결제 가치플레이어가 돈으로 해결하려는 불편은 무엇인가?외형, 선택권, 반복 작업 단축을 우선 검토한다.
경쟁 공정성결제자가 전투력에서 얼마나 유리해지는가?랭킹·매칭에 영향을 주는 영구 우위는 최소화한다.
가격 사다리첫 결제부터 고액 결제까지 자연스러운가?저가 진입 상품, 중간 번들, 고가 효율 상품을 분리한다.
시즌성언제 새 상품과 보상을 교체하는가?시즌 시작·중간 이벤트·종료 직전에 목적을 나눈다.

IAP 상품군을 4개 역할로 나누기

  1. 재화 패키지: 범용 재화를 판매하는 기본 상품이다. 가격이 높아질수록 단위당 재화 효율을 높여 가격 사다리를 만든다.
  2. 스타터 팩: 첫 결제 장벽을 낮추는 한정 상품이다. 소량의 유료 재화와 즉시 유용한 외형 또는 편의 아이템을 묶는다.
  3. 테마 번들: 캐릭터, 스킨, 감정 표현, 탈것처럼 명확한 취향 수요를 묶는다. 개별 구매 대비 할인율과 구성품을 투명하게 표시한다.
  4. 시즌 상품: Battle Pass, 시즌 한정 꾸미기, 시즌 레벨 구매다. 시즌 참여 동기와 연결하되 시즌 레벨 구매가 정상 플레이를 무의미하게 만들지 않도록 제한한다.

게임 내 상점에서 재화 패키지와 스타터 팩, 시즌 번들을 역할별로 구분한 예시

IAP 가격 사다리는 어떻게 설계할까?

가격 사다리는 단순히 비싼 상품에 보너스를 많이 붙이는 일이 아니다. 소액 결제자는 부담 없이 첫 가치를 확인하고 반복 결제자는 원하는 목표를 위해 중간 구간을 선택하며 고액 결제자는 큰 목표를 빠르게 달성할 수 있어야 한다.

상품 i의 유료 재화 수량을 CiC_i, 판매가를 PiP_i, 기준 상품의 재화 단가를 U0U_0라고 하면 상대 효율은 다음처럼 관리할 수 있다.

Ei=Ci/PiU0E_i = \frac{C_i / P_i}{U_0}

예를 들어 기준 상품의 효율을 1.00으로 두고 중간 상품은 1.10~1.20, 고가 상품은 1.25~1.40처럼 점진적으로 설계할 수 있다. 다만 너무 큰 효율 차이는 고가 상품을 사지 않는 플레이어에게 손해감을 주므로 주의한다.

상품 역할구매 목적설계 시 주의점
첫 결제 상품결제 경험과 신뢰 형성과도한 기간 제한이나 복잡한 조건을 피한다.
소액 재화부족한 재화 보충가격 대비 사용처가 분명해야 한다.
중간 재화스킨·패스 구매가장 자주 선택할 목표 가격대를 고려한다.
고액 재화컬렉션·대형 목표효율은 주되 필수 구매처럼 보이지 않게 한다.
직접 구매 번들특정 아이템 획득확률형 상품과 혼동되지 않게 구성과 가격을 명시한다.

통화와 가격을 분리할 때 생기는 문제

유료 재화로 가격을 표시하면 여러 상품에서 재화를 재사용하게 할 수 있다. 반면 남는 재화가 의도적으로 느껴지면 플레이어는 추가 결제를 유도받는다고 느낄 수 있다. 다음 세 가지를 확인한다.

  • 주요 상품 가격이 판매 재화 묶음과 지나치게 어긋나지 않는가
  • 무료 보상과 이벤트로도 소량의 유료 재화를 얻을 수 있는가
  • 유료 재화의 환불, 소멸, 사용 우선순위 정책이 상점과 약관에 명확한가

Battle Pass는 왜 무료 트랙과 프리미엄 트랙을 함께 써야 할까?

Battle Pass의 무료 트랙은 시즌 콘텐츠를 플레이할 이유를 만들고 프리미엄 트랙은 이미 참여한 플레이어에게 더 높은 보상 밀도와 꾸미기 가치를 제공한다. 둘 중 하나만 강하면 문제가 생긴다. 무료 보상이 너무 약하면 무과금 플레이어가 시즌에서 이탈하고 프리미엄 보상이 전투력에 직접 연결되면 공정성 논란이 커진다.

구분무료 트랙프리미엄 트랙
핵심 목적시즌 참여와 복귀 유도결제 전환과 꾸미기 수요 충족
보상 구성기본 재화, 체험 보상, 일부 외형시즌 핵심 스킨, 프리미엄 재화, 감정 표현
전투력 보상기본 진행에 필요한 수준가급적 외형·선택권 중심으로 제한
노출 방식모든 이용자가 즉시 확인잠긴 보상을 미리보기로 제시
flowchart TD
    A[시즌 목표와 플레이 시간 정의] --> B[무료 트랙 보상 배치]
    B --> C[프리미엄 핵심 보상 선정]
    C --> D[미션 XP와 레벨 곡선 설정]
    D --> E[완료율·구매율·경제 지표 검증]
    E --> F[시즌 출시 및 운영]
    F --> G[보상 수령·이탈 구간 분석]
    G --> A

Battle Pass 가격과 보상은 어떻게 계산할까?

1. 시즌 완료에 필요한 플레이 시간을 정한다

시즌 길이를 DD일, 목표 완료 시간을 HH시간, 필요 경험치를 XPtotalXP_{total}, 시간당 평균 경험치를 XPhXP_h라고 하면 기본 관계는 다음과 같다.

H=XPtotalXPhH = \frac{XP_{total}}{XP_h}

예를 들어 56일 시즌에서 핵심 이용자가 주당 5~7시간 플레이한다면 평균적인 미션 수행으로 시즌 막바지 전에 완료 가능한지 확인해야 한다. 결석 보정, 주간 미션 누적, 시즌 후반 추격 미션을 함께 설계하면 일시 이탈자의 복귀 가능성이 높아진다.

2. 프리미엄 패스의 가치를 한 문장으로 설명한다

좋은 상품 설명은 ‘보상이 많다’보다 ‘이번 시즌의 핵심 외형과 재화를 한 번에 얻는다’처럼 구매 이유가 선명하다. 프리미엄 보상은 다음 우선순위로 배치한다.

  1. 초반: 구매 직후 만족할 수 있는 즉시 지급 보상
  2. 중반: 계속 플레이하게 만드는 테마 보상과 선택 보상
  3. 후반: 시즌 완주를 상징하는 고유 스킨, 칭호, 장식 보상

3. 재화 환급 정책을 명시적으로 결정한다

프리미엄 패스 구매 가격을 PpassP_{pass}, 완주 시 지급하는 유료 재화 환급량을 RpassR_{pass}라고 할 때 환급률은 다음과 같다.

Rrate=RpassPpass×100R_{rate} = \frac{R_{pass}}{P_{pass}} \times 100

완주 시 다음 시즌 패스를 구매할 만큼 전액 환급할지, 일부만 돌려줄지는 사업 모델의 선택이다. 전액 환급은 장기 참여를 유도할 수 있지만 신규 시즌의 직접 매출 구조가 약해질 수 있다. 일부 환급은 신규 결제를 만들 수 있지만 완료 피로도가 높은 게임에서는 가치가 낮게 느껴질 수 있다. 어느 쪽이든 ‘완주하면 무엇을 얼마나 받는지’를 구매 전에 분명하게 보여줘야 한다.

Battle Pass 미션과 레벨 구매는 어떻게 구현할까?

미션은 일일·주간·시즌 도전 과제로 나누되 특정 플레이 스타일만 강요하지 않도록 복수의 달성 경로를 제공한다. 예를 들어 승리 횟수만 요구하기보다 플레이 횟수, 팀 기여, 특정 모드 참여 중 하나를 선택하게 할 수 있다.

아래는 서버 권한 기준의 단순한 패스 레벨 계산 예시다. 결제 영수증 검증과 보상 지급은 클라이언트가 아닌 서버에서 최종 처리해야 한다.

type PassProgress = {
  xp: number;
  claimedRewards: string[];
  premiumUnlocked: boolean;
};

const XP_PER_LEVEL = 1_000;

function getPassLevel(xp: number, maxLevel: number) {
  return Math.min(Math.floor(xp / XP_PER_LEVEL), maxLevel);
}

function claimReward(progress: PassProgress, level: number, isPremiumReward: boolean) {
  const rewardId = `${isPremiumReward ? 'premium' : 'free'}:${level}`;
  if (progress.claimedRewards.includes(rewardId)) throw new Error('ALREADY_CLAIMED');
  if (getPassLevel(progress.xp, 100) < level) throw new Error('LEVEL_LOCKED');
  if (isPremiumReward && !progress.premiumUnlocked) throw new Error('PREMIUM_LOCKED');

  progress.claimedRewards.push(rewardId);
  return progress;
}

레벨 구매를 제공한다면 다음 제한을 둔다.

  • 시즌 초반에는 구매 가능한 최대 레벨을 제한하거나 일정 시점 뒤에 연다.
  • 최종 보상만 즉시 구매하는 구조보다 플레이로 획득한 XP를 보조하는 용도로 둔다.
  • 레벨당 가격, 구매 가능 수량, 남은 기간을 구매 화면에 명확히 표시한다.

출시 전에 어떤 지표를 검증해야 할까?

출시 전에는 스프레드시트나 분석 도구에서 보상 원장과 경제 시뮬레이션을 분리해 관리한다. 보상 원장에는 모든 레벨의 무료·프리미엄 보상과 재화 총량을 시뮬레이션에는 예상 XP 획득량과 완료 시간을 기록한다.

지표의미확인할 신호
패스 구매 전환율활성 이용자 중 프리미엄 패스 구매 비율가격·보상·노출 방식의 적합성
패스 완료율구매자 중 목표 레벨 도달 비율미션 난이도와 XP 곡선의 적절성
레벨별 이탈률특정 레벨 전후 활동 감소보상 공백 또는 과도한 요구량
보상 수령률해금한 보상을 실제 수령한 비율UI 동선과 자동 수령 필요성
시즌 재구매율다음 시즌에도 패스를 구매한 비율시즌 만족도와 장기 신뢰
재화 순환량지급 재화와 소비 재화의 차이인플레이션과 가격 조정 필요성

특히 구매 전환율만 보고 성공 여부를 판단하면 안 된다. 구매자는 많지만 완료율이 낮다면 다음 시즌 재구매율이 떨어질 수 있고 환급 재화가 과도하면 장기적인 상점 소비가 줄어들 수 있다.

자주 묻는 질문 (FAQ)

Battle Pass는 완주 시 전액 환급해야 할까?

반드시 그럴 필요는 없다. 전액 환급은 꾸준한 시즌 참여를 장려하는 데 유리하고 일부 환급은 신규 시즌의 추가 결제를 만들 수 있다. 게임의 시즌 완주 난이도와 상점 소비 구조를 함께 보고 결정한다.

프리미엄 Battle Pass에 전투력 보상을 넣어도 될까?

경쟁 콘텐츠가 있다면 가급적 피하는 편이 좋다. 넣어야 한다면 무료 이용자도 합리적인 시간 안에 획득할 수 있게 하거나 PvP 효율에 영향을 주지 않는 범위로 제한한다.

레벨 구매는 언제 열어야 할까?

시즌 시작 직후보다 중후반에 열거나 구매 상한을 두는 방식이 안전하다. 초기부터 완주 보상을 즉시 살 수 있으면 미션과 시즌 참여의 의미가 약해질 수 있다.

정리

IAP와 Battle Pass의 목표는 단기 매출만 높이는 것이 아니라 플레이어가 지불한 가치와 시즌 플레이 경험이 연결되게 만드는 데 있다. 상품 역할을 분리하고 무료·프리미엄 보상 차이를 명확히 하며 완료 시간과 재화 환급을 수식과 실제 플레이 데이터로 검증하자. 출시 후에는 구매율뿐 아니라 완료율, 레벨별 이탈률, 다음 시즌 재구매율을 함께 관찰해야 지속 가능한 과금 모델을 만들 수 있다.