Lembrete: a partir de 2 de agosto de 2023, todos os novos apps precisarão usar a versão 5 ou mais recente da Biblioteca Faturamento. A partir de 1º de novembro de 2023, isso também será válido para todas as atualizações dos apps atuais. Saiba mais.

Guia de referência de notificações do desenvolvedor em tempo real

Este tópico lista e descreve os tipos de Notificações do desenvolvedor em tempo real que podem ser recebidas do Google Play.

Codificação

Cada publicação feita em um tópico do Cloud Pub/Sub contém um único campo de dados codificado em base64.

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

Depois de que você decodifica o campo de dados codificado em base64, o DeveloperNotification contém os seguintes campos:

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

Esses campos são descritos na tabela a seguir.

Nome da propriedade Valor Descrição
version string A versão da notificação. Inicialmente, é "1.0". Essa versão é diferente dos outros campos de versão.
packageName string O nome do pacote do aplicativo a que a notificação se refere (por exemplo, "com.alguma.coisa").
eventTimeMillis long Carimbo de data/hora em que o evento ocorreu, em milissegundos desde a época.
subscriptionNotification SubscriptionNotification Se esse campo estiver presente, a notificação estará relacionada a uma assinatura. O campo conterá mais informações sobre a assinatura. Esse campo é mutuamente exclusivo com testNotification e oneTimeProductNotification.
oneTimeProductNotification OneTimeProductNotification Se esse campo estiver presente, a notificação será relacionada a uma compra única. O campo conterá mais informações sobre a compra. Esse campo é mutuamente exclusivo com testNotification e subscriptionProductNotification.
testNotification TestNotification Se esse campo estiver presente, a notificação estará relacionada a uma publicação de teste. Ele é enviado somente por meio do Google Play Console. Esse campo é mutuamente exclusivo com subscriptionNotification e oneTimeProductNotification.

SubscriptionNotification

Um SubscriptionNotification contém os seguintes campos:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": string
}
Nome da propriedade Valor Descrição
version string A versão da notificação. Inicialmente, é "1.0". Essa versão é diferente dos outros campos de versão.
notificationType int O notificationType de uma assinatura pode ter os seguintes valores:
  • (1) SUBSCRIPTION_RECOVERED: uma assinatura foi recuperada da suspensão de conta.
  • (2) SUBSCRIPTION_RENEWED: uma assinatura ativa foi renovada.
  • (3) SUBSCRIPTION_CANCELED: uma assinatura foi cancelada de forma voluntária ou involuntária. Em um cancelamento voluntário, esse valor é enviado quando o usuário faz o cancelamento.
  • (4) SUBSCRIPTION_PURCHASED: uma nova assinatura foi comprada.
  • (5) SUBSCRIPTION_ON_HOLD: uma assinatura entrou na suspensão de conta (se ativada).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD: uma assinatura entrou no período de carência (se ativado).
  • (7) SUBSCRIPTION_RESTARTED: o usuário reativou a assinatura em Play > Conta > Assinaturas. A assinatura foi cancelada, mas ainda não havia expirado quando o usuário a restaurou. Para mais informações, consulte Restaurações.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED: uma mudança no preço da assinatura foi confirmada pelo usuário.
  • (9) SUBSCRIPTION_DEFERRED: o tempo de renovação de uma assinatura foi estendido.
  • (10) SUBSCRIPTION_PAUSED: uma assinatura foi pausada.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED: a programação de uma pausa na assinatura foi alterada.
  • (12) SUBSCRIPTION_REVOKED: uma assinatura foi revogada pelo usuário antes do prazo de vencimento.
  • (13) SUBSCRIPTION_EXPIRED: a assinatura expirou.
purchaseToken string O token fornecido ao dispositivo do usuário quando a assinatura foi comprada.
subscriptionId string O ID do produto para assinatura comprada (por exemplo, "monthly001").

Exemplo

Veja um exemplo de notificação para uma nova compra de assinatura:

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

OneTimeProductNotification

Uma OneTimeProductNotification contém os seguintes campos:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
Nome da propriedade Valor Descrição
version string A versão da notificação. Inicialmente, será "1.0". Essa versão é diferente dos outros campos de versão.
notificationType int O tipo de notificação. Pode ter os seguintes valores:
  • (1) ONE_TIME_PRODUCT_PURCHASED: um produto de aquisição única foi comprado por um usuário.
  • (2) ONE_TIME_PRODUCT_CANCELED: uma compra pendente de um produto de aquisição única foi cancelada pelo usuário.
purchaseToken string O token fornecido ao dispositivo do usuário quando a compra foi feita.
sku string O ID do produto de aquisição única comprado (por exemplo, "sword_001")

Exemplo

Veja um exemplo de notificação para uma nova compra única:

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

TestNotification

Um TestNotification contém os seguintes campos:

{
  "version": string
}
Nome da propriedade Valor Descrição
version string A versão da notificação. Inicialmente, é "1.0". Essa versão é diferente dos outros campos de versão.

Exemplo

Veja um exemplo de notificação de teste:

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