이 글을 시작으로, 앞으로 개발 관련된 글을 마구잡이 잡탕으로 적어가려고 한다. 기술 관련이라 틀린 내용이 있으면 안 된다는 부담감 때문에 글을 자주 적지 못했는데, 일단 적고 틀린걸 발견하면 나중에 고치면 된다는 마인드로 시작 예정.
오늘의 글은 안드로이드 개발시 인앱상품으로 구독이 존재하고, 해당 구독상품에 프로모션 코드를 통해 무료 사용을 제공하려고 할 때 고려해야할 내용을 공식 가이드에서 뽑아내 정리한 내용이다. 이 글에선 간략한 개념만 다루고 실제 코드 레벨에서의 구현 방식은 다음 글에서 다룰예정.
//TODO: 다음 글 작성하고 이 글 수정하기.
영어로 된 공식 가이드가 궁금하신 분은
https://developer.android.com/google/play/billing/promo
이곳을 참조하시면 됩니다.
프로모션 코드에는 두 종류가 있다. 이것을 알고가야함.
- One-time use codes: 사용자가 한 번만 사용가능한, 자동 생성되는 Redeem code. Play Store 에서 적용할 수도 있고 인앱으로도 가능
- Custom Code: 사전 정의된 제한값까지 반복적으로 redeem 가능한 코드. 구독에만 사용가능하며 이전에 구독한 경험이 없는 사용자에게만 적용가능.
구독에 적용시 참고할점
- 구독에 무료 이용기간을 할당할 수 있을뿐, 무료 구독상품을 제공하는것이 아님
- 기존의 무료 이용기간을 연장할 수 없음. 프로모션 코드를 적용하지 않고 무료 이용기간이 포함된 구독 상품을 이미 사용중일때, 프로모션 코드를 적용하면 원래의 무료 이용기간을 덮어쓰면서 중복해서 적용됨.
- 하나의 구독 상품에 하나의 프로모션 코드만 적용가능. (single base plan or offer)
- 프로모션은 생성후 최대 1년까지만 유효하고, 그 사이에 유저가 코드입력해야함.
제한 사항
- 구독상품에 대해서는 하나의 구독마다 분기당 1만개까지 코드 사용가능. 단 Custom code가 아니라 One-time use code 로만 가능.
- 구독상품을 Custom code로 만들면 2000번에서 99999번 까지만 반복 제한 설정가능. (🤔 Custom code에 대해선 개수 제한이 적혀있지 않음. 추후 작업하며 확인되면 업데이트 예정)
- 한 번 프로모션을 생성하면, 프로모션 코드개수 수정 불가. 다른 타입으로도 변경 불가.
- 분기에 프로모션 코드를 모두 소진하지 못하면, 접근권한을 잃어버림. 남은 개수가 다음 분기로 넘어가지 않음.
구현방식 - 구독
- Custome code: 인앱으로만 구현 가능
- One-time use code: 인앱/Play store 모두 가능
- 사용자가 코드를 사용한 뒤, 해당 코드가 적용된 구독 상품을 결제 진행까지 해야함. 코드적용된 무료 기간이 끝나면 자동으로 다음 결제 진행.
모지또는 현재 단일 구독상품인 GOLD 라는 BM이 있고 월결제/연결제를 지원함. 즉, 안드로이드 구독상품의 단어 정의를 적용하면 아래와 같음.
- base plan = GOLD
- offer = monthly / annual
이 상황에서 과거 앱 버전(아예 package name이 다른, 별도 앱)의 인앱 단일상품을 구매했던 사용자들에게 현 버전의 GOLD 구독을 1년 무료로 제공할 예정. 아마 annual offer를 기준으로 프로모션을 생성하면 될 듯 한데, 다 적용하고 실제 구현방식을 정리할 때 재정리 예정!