준비하기

이 주제에서는 앱에서 제품을 판매하기 전에 실행해야 하는 설정 단계를 나열하고 설명합니다. 개략적으로 이 설정에는 개발자 계정 생성, 판매하려는 제품 생성 및 구성, 제품 판매 및 관리에 사용하는 API 사용 설정 및 구성이 포함됩니다. 또한 이 주제에서는 제품 상태가 변경될 때마다 알림을 받도록 실시간 개발자 알림을 구성하는 방법도 설명합니다.

Google Play 개발자 계정 설정

Google Play에 앱 및 게임을 게시하려면 Google Play Console을 사용합니다. 또한 Google Play Console을 사용하여 결제 관련 제품 및 설정을 관리합니다.

Google Play Console에 액세스하려면 Google Play 개발자 계정을 설정해야 합니다.

또한 Google Play에서 유료 앱 및 인앱 구매 상품을 판매하려면 Google 결제 센터에서 프로필을 설정한 후 이 프로필을 Google Play 개발자 계정에 연결해야 합니다. 프로필을 계정에 연결하는 방법 또는 이미 연결된 계정 및 프로필이 있는지 확인하는 방법을 알아보려면 Google Play 개발자 계정을 결제 프로필에 연결을 참고하세요.

Google Play Console에서 결제 관련 기능 사용 설정

개발자 계정을 설정한 후에는 Google Play 결제 라이브러리가 포함된 앱 버전을 게시해야 합니다. 이 단계는 판매하려는 제품을 구성하는 등 Google Play Console에서 결제 관련 기능을 사용 설정하는 데 필요합니다.

라이브러리 종속 항목 추가

Google Play 결제 시스템을 통합하려면 먼저 앱의 Google Play 결제 라이브러리에 종속 항목을 추가합니다. 이 라이브러리는 Google Play에 연결하는 Android API에 대한 액세스 권한을 제공합니다. 여기에서 구매 정보에 액세스하고 구매 관련 업데이트를 쿼리하며 사용자에게 새로 구매할지 묻는 메시지를 표시할 수 있습니다.

Google Play 결제 라이브러리는 Google Maven 저장소에서 확인할 수 있습니다. 다음과 같이 앱의 build.gradle 파일에 종속 항목을 추가합니다.

Groovy

dependencies {
    def billing_version = "7.0.0"

    implementation "com.android.billingclient:billing:$billing_version"
}

Kotlin

dependencies {
    val billing_version = "7.0.0"

    implementation("com.android.billingclient:billing:$billing_version")
}

Kotlin을 사용한다면 Play 결제 라이브러리 KTX 모듈에 Kotlin 확장과 코루틴 지원이 포함되어 있으므로 Google Play 결제 시스템을 사용할 때 직관적인 Kotlin을 작성할 수 있습니다. 프로젝트에서 이러한 확장을 포함하려면 다음과 같이 앱의 build.gradle 파일에 다음 종속 항목을 추가합니다.

Groovy

dependencies {
    def billing_version = "7.0.0"

    implementation "com.android.billingclient:billing-ktx:$billing_version"
}

Kotlin

dependencies {
    val billing_version = "7.0.0"

    implementation("com.android.billingclient:billing-ktx:$billing_version")
}

이 페이지에 있는 Kotlin 코드 예는 가능한 경우 KTX를 활용합니다.

앱 업로드

라이브러리를 앱에 추가한 후에는 앱을 빌드하고 게시합니다. 이 단계에서는 앱을 생성한 후 내부 테스트 트랙을 포함한 어떤 트랙에든 게시합니다.

제품 생성 및 구성

앱에 Google Play 결제 기능을 사용 설정한 후 판매할 제품을 구성해야 합니다.

일회성 제품 및 정기 결제를 생성하는 단계는 비슷합니다. 각각의 제품마다 고유한 제품 ID, 제목, 설명 및 가격 정보를 제공해야 합니다. 정기 결제의 경우 자동 갱신 여부 또는 기본 요금제의 선불 갱신 유형 선택과 같은 정보가 추가로 필요합니다.

Google Play Console은 제품을 관리하는 데 사용할 수 있는 웹 인터페이스를 제공합니다.

  • 일회성 제품을 생성하고 구성하려면 관리 제품 만들기를 참고하세요. Google Play Console에서는 일회성 제품을 관리 제품이라고 합니다.

  • 정기 결제를 생성하고 구성하려면 정기 결제 만들기를 참고하세요.

웹 인터페이스의 대안으로 Google Play Developer API에서 인앱 상품에 inappproducts REST 리소스를 사용하고, 정기 결제 제품에 monetization.subscriptions REST 리소스를 사용하여 제품을 관리할 수도 있습니다.

Google Play Developer API 구성

Google Play Developer API는 Android에서 Google Play 결제 라이브러리를 보완하는 서버 간 API입니다. 이 API는 구매를 안전하게 인증하고 사용자에게 환불을 처리해 주는 등 Google Play 결제 라이브러리에서는 사용할 수 없는 기능을 제공합니다.

Google Play 결제 시스템을 앱에 통합하는 과정의 일부로 Google Play Console을 통해 Google Play Developer API 액세스를 구성해야 합니다. 자세한 내용은 Google Play Developer API 시작하기를 참고하세요.

Google Play Developer API에 대한 액세스를 구성한 후에는 결제 관련 기능에 액세스하는 데 필요한 재무 데이터 보기 권한을 부여했는지 확인합니다. 권한 구성에 관한 자세한 내용과 권장사항에 관한 정보는 개발자 계정 사용자 추가 및 권한 관리를 참고하세요.

실시간 개발자 알림 구성

실시간 개발자 알림(RTDN)은 앱 내에서 사용자의 자격이 변경될 때마다 Google의 알림을 수신하는 메커니즘입니다. RTDN은 Google Cloud Pub/Sub를 활용합니다. 이를 통해 설정된 URL로 푸시되거나 클라이언트 라이브러리를 사용하여 폴링되는 데이터를 수신할 수 있습니다. 이러한 알림을 사용하면 Google Play Developer API를 폴링할 필요 없이 정기 결제 상태 변경에 즉시 대응할 수 있습니다. Google Play Developer API를 비효율적으로 사용하면 API 할당량 제한이 초래될 수 있습니다.

Cloud Pub/Sub는 독립적인 애플리케이션 간에 메시지를 주고받는 데 사용할 수 있는 완전 관리형 실시간 메시지 서비스입니다. Google Play에서는 Cloud Pub/Sub를 사용하여 정기 결제하는 주제에 대한 푸시 알림을 게시합니다.

알림을 받으려면 주제에 전송된 메시지를 소비할 수 있는 백엔드 서버를 만들어야 합니다. 그러면 서버는 등록된 엔드포인트에 대한 HTTPS 요청에 응답하거나 Cloud Pub/Sub 클라이언트 라이브러리를 사용하여 이러한 메시지를 소비할 수 있습니다. 이러한 라이브러리는 다양한 언어로 제공됩니다. 자세한 내용은 이 주제의 Pub/Sub 정기 결제 만들기 섹션에서도 확인할 수 있습니다.

가격 및 할당량 결정

가격 및 할당량에 관한 자세한 내용은 가격할당량을 참고하세요.

데이터 사용량 예측

정기 결제 알림의 데이터 사용량은 요청당 약 1KB입니다. 각 게시와 가져오기에는 별도의 요청 또는 알림당 약 2KB의 데이터가 필요합니다. 매월 알림 수는 결제 주기와 사용자의 동작에 따라 다릅니다. 결제 주기 동안 사용자당 알림이 최소 하나 이상일 것으로 예상해야 합니다.

Cloud Pub/Sub 설정

실시간 개발자 알림을 사용 설정하려면 먼저 자체 Google Cloud Platform(GCP) 프로젝트를 사용하여 Cloud Pub/Sub를 설정한 후 앱의 알림을 사용 설정해야 합니다.

Cloud Pub/Sub를 사용하려면 Cloud Pub/Sub API가 사용 설정된 GCP 프로젝트가 있어야 합니다. GCP와 Cloud Pub/Sub를 잘 알지 못한다면 빠른 시작 가이드를 참조하세요.

주제 만들기

알림 수신을 시작하려면 Google Play에서 알림을 게시할 주제를 만들어야 합니다. 주제를 만들려면 주제 만들기의 안내를 따르세요.

Pub/Sub 정기 결제 만들기

주제에 게시된 메시지를 받으려면 주제에 관한 Pub/Sub 정기 결제를 만들어야 합니다. Pub/Sub 정기 결제를 만들려면 다음 단계를 따르세요.

  1. Cloud Pub/Sub 구독자 가이드를 읽고 구독을 푸시 구독으로 구성할지 또는 풀 구독으로 구성할지 결정합니다.
    • 푸시 정기 결제를 사용하면 Cloud Pub/Sub가 HTTPS 요청을 발급하여 보안 백엔드에 알림을 보낼 수 있습니다.
    • 풀 정기 결제를 사용하려면 보안 백엔드 서버에서 Cloud Pub/Sub 서버에 메시지 가져오기 요청을 보내야 합니다.
  2. 정기 결제 추가의 안내에 따라 정기 결제를 만듭니다.

주제에 게시 권한 부여

Cloud Pub/Sub를 사용하려면 주제에 알림을 게시하는 권한을 Google Play에 부여해야 합니다.

  1. Google Cloud Console을 엽니다.
  2. 프로젝트를 선택한 후 왼쪽 탐색에서 게시/구독을 클릭합니다.
  3. 주제를 찾은 후 권한 세부정보를 엽니다.

    권한 주제의 설정에 액세스
    그림 1. 권한 주제의 설정에 액세스
  4. 서비스 계정 google-play-developer-notifications@system.gserviceaccount.com을 추가하여 Pub/Sub 게시자 역할을 부여합니다.

    Google Play 서비스 계정을 Pub/Sub 게시자로 추가
    그림 2. Google Play 서비스 계정을 Pub/Sub 게시자로 추가
  5. 저장을 클릭하여 주제 설정을 완료합니다.

    구성 완료된 주제
    그림 3. 구성 완료된 주제

앱에 실시간 개발자 알림 사용 설정

앱에 실시간 개발자 알림을 사용 설정하려면 다음 단계를 따르세요.

  1. Google Play Console을 엽니다.
  2. 앱을 선택합니다.
  3. 수익 창출 > 수익 창출 설정으로 이동합니다.
  4. 페이지 상단의 실시간 개발자 알림 섹션으로 스크롤합니다.

    실시간 개발자 알림 섹션
    그림 4. 실시간 개발자 알림 섹션
  5. 실시간 알림 사용을 선택합니다.

  6. 주제 이름 입력란에 이전에 구성한 전체 Cloud Pub/Sub 주제 이름을 입력합니다. 주제 이름의 형식은 projects/{project_id}/topics/{topic_name}이어야 합니다. 여기에서 project_id는 프로젝트의 고유 식별자이고 topic_name은 이전에 만든 주제의 이름입니다.

  7. 테스트 메시지 보내기를 클릭하여 테스트 메시지를 보냅니다. 테스트 게시를 실행하면 모두 제대로 설정되고 구성되었는지 확인할 수 있습니다. 테스트 게시에 성공하면 테스트 게시에 성공했다는 메시지가 표시됩니다. 이 주제의 정기 결제에 연결했다면 테스트 메시지를 받아야 합니다.

    풀 정기 결제의 경우 Cloud Console에서 정기 결제로 이동하고 메시지 보기를 클릭한 다음 메시지 가져오기를 진행합니다. Cloud Pub/Sub의 반복 전송을 방지하기 위해 가져온 모든 메시지를 확인해야 합니다. 푸시 정기 결제의 경우 테스트 메시지가 푸시 엔드포인트로 전달되었는지 확인합니다. 성공하는 경우 응답 코드가 메시지 확인 역할을 합니다.

    게시에 실패하면 오류가 표시됩니다. 주제 이름이 올바르고 google-play-developer-notifications@system.gserviceaccount.com 서비스 계정이 주제에 대한 Pub/Sub 게시자 액세스 권한을 보유하고 있는지 확인하세요.

  8. 수신할 알림 유형을 선택합니다.

    • 정기 결제 및 무효화된 모든 구매 알림 받기 - 정기 결제 및 무효화된 구매와 관련된 실시간 개발자 알림을 받습니다. 일회성 제품 구매에 대한 알림이 전송되지 않습니다.
    • 정기 결제 및 일회성 제품에 관한 모든 알림 받기 - 모든 정기 결제 및 무효화된 구매 이벤트에 관한 알림을 수신합니다. ONE_TIME_PRODUCT_PURCHASEDONE_TIME_PRODUCT_CANCELED와 같은 일회성 제품 구매 이벤트도 수신합니다. 이러한 구매 이벤트에 관한 자세한 내용은 일회성 구매 수명 주기를 참고하세요.
  9. 변경사항 저장을 클릭합니다.

구성 확인

실시간 개발자 알림을 받으려면 Cloud Pub/Sub 주제에 전송된 메시지를 소비할 수 있는 보안 백엔드 서버를 만들어야 합니다.

이전 섹션에서 설명한 대로 Google Play Console에서 테스트 메시지 보내기 버튼을 사용하여 구성을 테스트할 수 있습니다. 알림을 소비하도록 백엔드 서버를 구성하지 않았다면 gcloud 명령줄 도구를 사용하여 구성을 확인할 수 있습니다. gcloud를 사용하여 메시지를 처리하는 방법에 관한 안내는 정기 결제에서 메시지 가져오기를 참고하세요.

다음 단계