알림: 2023년 8월 2일부터 모든 신규 앱은 결제 라이브러리 버전 5 이상을 사용해야 합니다. 2023년 11월 1일부터는 기존 앱의 모든 업데이트에도 결제 라이브러리 버전 5 이상이 요구됩니다. 자세히 알아보기

실시간 개발자 알림 참조 가이드

이 주제에서는 Google Play에서 받을 수 있는 실시간 개발자 알림의 유형을 나열하고 설명합니다.

인코딩

Cloud Pub/Sub 주제에 관한 각 게시에는 하나의 base64로 인코딩된 데이터 필드가 포함되어 있습니다.

{
  "message": {
    "attributes": {
      "key": "value"
    },
    "data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
    "messageId": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

base64로 인코딩된 데이터 필드를 디코딩하면 DeveloperNotification에 다음 필드가 포함됩니다.

{
  "version": string,
  "packageName": string,
  "eventTimeMillis": long,
  "oneTimeProductNotification": OneTimeProductNotification,
  "subscriptionNotification": SubscriptionNotification,
  "testNotification": TestNotification
}

이러한 필드는 다음 표에 설명되어 있습니다.

속성 이름 설명
version 문자열 이 알림의 버전입니다. 초기 버전은 '1.0'입니다. 이 버전은 다른 버전 필드와 다릅니다.
packageName 문자열 이 알림과 관련된 애플리케이션의 패키지 이름(예: 'com.some.thing')입니다.
eventTimeMillis long 에포크 이후 이벤트가 발생한 타임스탬프(밀리초)입니다.
subscriptionNotification SubscriptionNotification 이 필드가 있다면 이 알림은 정기 결제와 관련이 있으며 이 필드에는 정기 결제와 관련된 추가 정보가 포함됩니다. 이 필드는 testNotification 및 oneTimeProductNotification과 상호 배타적입니다.
oneTimeProductNotification OneTimeProductNotification 이 필드가 있다면 이 알림은 일회성 구매와 관련이 있으며 이 필드에는 구매와 관련된 추가 정보가 포함됩니다. 이 필드는 testNotification 및 subscriptionProductNotification과 상호 배타적입니다.
testNotification TestNotification 이 필드가 있다면 이 알림은 테스트 게시와 관련이 있습니다. 그리고 Google Play Console을 통해서만 전송됩니다. 이 필드는 subscriptionNotification 및 oneTimeProductNotification과 상호 배타적입니다.

SubscriptionNotification

SubscriptionNotification에는 다음 필드가 포함됩니다.

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": string
}
속성 이름 설명
version 문자열 이 알림의 버전입니다. 초기 버전은 '1.0'입니다. 이 버전은 다른 버전 필드와 다릅니다.
notificationType int 정기 결제의 notificationType은 다음 값을 가질 수 있습니다.
  • (1) SUBSCRIPTION_RECOVERED: 정기 결제가 계정 보류에서 복구되었습니다.
  • (2) SUBSCRIPTION_RENEWED: 활성 정기 결제가 갱신되었습니다.
  • (3) SUBSCRIPTION_CANCELED - 정기 결제가 자발적으로 또는 비자발적으로 취소되었습니다. 자발적 취소의 경우 사용자가 취소할 때 전송됩니다.
  • (4) SUBSCRIPTION_PURCHASED: 새로운 정기 결제가 구매되었습니다.
  • (5) SUBSCRIPTION_ON_HOLD - 정기 결제가 계정 보류 상태가 되었습니다(사용 설정된 경우).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD: 정기 결제가 유예 기간 상태로 전환되었습니다(사용 설정된 경우).
  • (7) SUBSCRIPTION_RESTARTED: 사용자가 Play > 계정 > 정기 결제에서 정기 결제를 복원했습니다. 정기 결제가 취소되었지만 사용자가 복원할 때 아직 만료되지 않았습니다. 자세한 내용은 복원을 참고하세요.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED: 사용자가 정기 결제 가격 변경을 확인했습니다.
  • (9) SUBSCRIPTION_DEFERRED: 구독 갱신 기한이 연장되었습니다.
  • (10) SUBSCRIPTION_PAUSED - 구독이 일시중지되었습니다.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - 정기 결제 일시중지 일정이 변경되었습니다.
  • (12) SUBSCRIPTION_REVOKED - 정기 결제가 만료 시간 전에 사용자에 의해 취소되었습니다.
  • (13) SUBSCRIPTION_EXPIRED: 정기 결제가 만료되었습니다.
purchaseToken 문자열 정기 결제가 구매되었을 때 사용자 기기에 제공된 토큰입니다.
subscriptionId 문자열 구매한 정기 결제의 제품 ID(예: 'monthly001')입니다.

다음은 새 정기 결제 구매 알림의 예입니다.

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "subscriptionNotification":
  {
    "version":"1.0",
    "notificationType":4,
    "purchaseToken":"PURCHASE_TOKEN",
    "subscriptionId":"monthly001"
  }
}

OneTimeProductNotification

OneTimeProductNotification에는 다음 필드가 포함됩니다.

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
속성 이름 설명
version 문자열 이 알림의 버전입니다. 초기 버전은 '1.0'입니다. 이 버전은 다른 버전 필드와 다릅니다.
notificationType int 알림의 유형으로, 다음 값이 포함될 수 있습니다.
  • (1) ONE_TIME_PRODUCT_PURCHASED - 사용자가 일회성 제품을 성공적으로 구매했습니다.
  • (2) ONE_TIME_PRODUCT_CANCELED - 사용자가 대기 중인 일회성 제품 구매를 취소했습니다.
purchaseToken 문자열 구매가 이루어졌을 때 사용자 기기에 제공된 토큰입니다.
sku 문자열 구매된 일회성 제품 ID(예: 'sword_001')입니다.

다음은 새로운 일회성 구매 알림의 예입니다.

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "oneTimeProductNotification":
  {
    "version":"1.0",
    "notificationType":1,
    "purchaseToken":"PURCHASE_TOKEN",
    "sku":"my.sku"
  }
}

TestNotification

TestNotification에는 다음 필드가 포함됩니다.

{
  "version": string
}
속성 이름 설명
version 문자열 이 알림의 버전입니다. 초기 버전은 '1.0'입니다. 이 버전은 다른 버전 필드와 다릅니다.

다음은 테스트 알림의 예입니다.

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503350156918",
  "testNotification":
  {
    "version":"1.0"
  }
}