프로모션 구현

프로모션 또는 프로모션 코드를 사용하면 한정된 수의 사용자에게 일회성 제품이나 정기 결제 상품에 대한 체험권을 무료로 제공할 수 있습니다. 사용자는 상품 또는 정기 결제 상품의 체험권을 무료로 받기 위해 개발자의 앱 또는 Google Play 스토어 앱에서 프로모션 코드를 입력합니다. 다음과 같은 여러 가지 방법으로 프로모션 코드를 활용하여 창의적으로 사용자의 참여를 유도할 수 있습니다.

  • 이벤트에서 프로모션 코드가 있는 카드를 배포할 수 있으며, 사용자는 프로모션 코드를 입력하여 특별한 게임 내 상품을 잠금 해제할 수 있습니다.
  • 직원이 친구나 가족과 코드를 공유할 수 있도록 직원에게 코드를 제공할 수 있습니다.
  • 특정 기간에 앱을 구매하는 사용자에게 프로모션 코드를 보낼 수 있습니다.

구독의 경우 다음을 유의하세요.

  • 프로모션 코드는 무료 구독이 아닌 무료 구독 체험판을 제공합니다. 무료 구독 체험판이 종료되면 유료 구독으로 자동 갱신됩니다.
  • 프로모션은 다른 무료 체험판의 기간을 연장하지 않습니다. 정기 결제에 프로모션 코드가 필요 없는 무료 체험이 포함되는 경우 프로모션이 원래 무료 체험 기간을 재정의합니다.
  • 맞춤 코드는 신규 구독자만 사용할 수 있습니다. 이전에 구독을 구매한 적이 있는 사용자는 맞춤 코드를 사용할 수 없습니다.
  • 일회용 코드는 모든 구독자가 사용할 수 있습니다. 예를 들어 이전에 구독을 구매한 적이 있는 사용자도 일회용 프로모션 코드를 통해 무료 체험판을 이용할 수 있습니다.

Google Play Console을 사용하여 프로모션 코드를 할당하세요. 프로모션 코드를 만들려면 프로모션 만들기를 참고하세요.

프로모션 코드 사용하기

사용자는 다음 방법 중 하나로 프로모션 코드를 사용할 수 있습니다.

  • Google Play 스토어 앱에 직접 코드를 입력합니다.
  • Google Play 구매 화면에서 결제 방법 옆에 있는 아래쪽 화살표를 클릭하고 사용 링크를 클릭합니다.

그림 1은 아래쪽 화살표가 있는 구매 화면을 보여줍니다. 그림 2는 사용 링크 버튼을, 그림 3은 사용자가 프로모션 코드를 입력하는 화면을 보여줍니다.

그림 1. Google Play 제품 사용 대화상자
그림 2. 사용 버튼이 표시되는 결제 대화상자
그림 3. 프로모션 코드 화면

프로모션 URL 생성

프로모션 코드 사용 시 사용자는 Google Play 스토어에 프로모션 코드를 직접 입력할 수 있습니다. 또는 사용자를 Google Play 스토어로 보내고 코드 입력 필드를 자동으로 채우는 URL을 생성할 수 있습니다. 다음과 같은 프로모션 코드 URL 형식을 사용하세요.

https://play.google.com/redeem?code=promo_code

그림 4에서 Google Play 앱의 '코드 사용' 대화상자를 확인할 수 있습니다.

그림 4. Google Play 앱의 코드 사용 대화상자

앱의 최신 버전이 설치되어 있는 경우 사용자가 사용을 누르면 Google Play 스토어에서 사용자에게 앱을 열라는 메시지를 표시합니다. 그렇지 않은 경우 Google Play 스토어에서 사용자에게 앱을 업데이트하거나 다운로드하라는 메시지를 표시합니다.

앱에서 프로모션 코드 지원하기

앱에서 프로모션 코드를 식별하고 처리할 수 있도록 앱을 변경해야 합니다. 앱이 시작되거나 다시 시작될 때마다 앱에서 queryPurchases() 메서드를 호출해야 합니다. 이 메서드는 사용자가 프로모션 코드를 사용하여 구매한 내역을 포함하여 소비하지 않은 모든 유효한 구매 내역을 번들로 반환합니다. 가장 간단한 방법은 활동의 onResume() 메서드에서 queryPurchases()를 호출하는 것입니다. 활동이 생성될 때와 활동의 일시중지가 해제될 때 이 콜백이 실행되기 때문입니다. onStart()onResume()에서 queryPurchases()를 호출하면 앱이 실행되고 있지 않을 때 사용자가 진행했을 수 있는 모든 구매 및 사용 내역을 앱에서 정확하게 파악할 수 있습니다. 또한 앱이 실행 중일 때 사용자가 상품을 구매했는데 어떤 이유로든 앱에서 사용자의 구매 내역을 놓친 경우, 다음에 활동이 다시 시작되고 queryPurchases()를 호출하면 앱에서 구매 내역을 파악할 수 있습니다.

활동의 onPurchasesUpdated() 메서드는 구매가 완료된 시점을 파악하는 응답 인텐트를 수신합니다. 그러나 구매 및 소비 워크플로가 완료되지 않은 경우 앱에서 onStart()onResume()에서 계속 queryPurchases()를 호출해야 합니다. 예를 들어 사용자가 프로모션 코드 사용을 완료했는데 아이템을 소비하기 전에 앱이 다운되는 경우에도 다음 시작 시 앱에서 queryPurchases()를 호출하면 구매에 관한 정보를 수신하게 됩니다.

앱은 앱 실행 중에 사용자가 Google Play 스토어 앱에서 프로모션 코드를 사용하는 시나리오도 지원해야 합니다. 앱에서는 onPurchasesUpdated() 리스너를 통해 사용에 관한 정보를 확인할 수 있습니다.