Rastreamento de assinaturas do Google Play
Visão geral da integração
Anchor link toAs Notificações do desenvolvedor em tempo real (RTDN) são um serviço de servidor para servidor do Google Play que envia uma mensagem em tempo real sempre que o status de uma assinatura muda.
Ao conectar o Google Play RTDN ao Pushwoosh, você pode reagir a todo o ciclo de vida da assinatura, incluindo compras, renovações, cancelamentos, problemas de faturamento, expirações e reembolsos — sem construir sua própria infraestrutura de backend. Sempre que o status de uma assinatura muda na conta do Google Play de um usuário, o Google notifica o Pushwoosh, e o Pushwoosh dispara o evento PW_Subscription* correspondente no perfil do usuário.
Tipo de integração
Anchor link toFonte: As Notificações do desenvolvedor em tempo real são enviadas do Google Play para o Pushwoosh.
Eventos rastreados
Anchor link toO Pushwoosh mapeia cada notificação suportada do Google Play para um conjunto de eventos unificado PW_Subscription*, para que você possa acionar campanhas em qualquer estágio do ciclo de vida da assinatura.
| Evento | Dispara quando |
|---|---|
PW_SubscriptionStart | Um usuário compra a assinatura pela primeira vez. |
PW_SubscriptionRenew | A assinatura é renovada automaticamente para um novo período de faturamento. |
PW_SubscriptionCancel | Um usuário desativa a renovação automática. A assinatura permanece ativa até expirar. |
PW_SubscriptionResume | Um usuário reinicia a assinatura antes que ela expire. |
PW_SubscriptionBillingIssue | Um pagamento de renovação falha e a assinatura entra em seu período de carência. |
PW_SubscriptionRecovered | Uma renovação que falhou anteriormente é concluída e a assinatura volta a ficar ativa. |
PW_SubscriptionExpired | A assinatura expirou completamente e não está mais ativa. |
PW_SubscriptionRefund | O Google Play revoga a assinatura (por exemplo, após um reembolso). |
Cada evento carrega os mesmos atributos:
- productID: o identificador de produto do Google Play da assinatura.
- expiresAt: quando o período pago atual termina, como um timestamp Unix em segundos. Incluído quando o Google o fornece.
Como os eventos são mapeados para as Notificações do desenvolvedor em tempo real
Para desenvolvedores que verificam a integração, cada evento do Pushwoosh corresponde a estes valores de notificationType do RTDN:
| Evento do Pushwoosh | notificationType do RTDN |
|---|---|
PW_SubscriptionStart | SUBSCRIPTION_PURCHASED (4) |
PW_SubscriptionRenew | SUBSCRIPTION_RENEWED (2) |
PW_SubscriptionCancel | SUBSCRIPTION_CANCELED (3) |
PW_SubscriptionResume | SUBSCRIPTION_RESTARTED (7) |
PW_SubscriptionBillingIssue | SUBSCRIPTION_IN_GRACE_PERIOD (6) |
PW_SubscriptionRecovered | SUBSCRIPTION_RECOVERED (1) |
PW_SubscriptionExpired | SUBSCRIPTION_EXPIRED (13) |
PW_SubscriptionRefund | SUBSCRIPTION_REVOKED (12) |
Outros tipos de notificação, como em espera, alterações de preço, adiamentos e pausas, são reconhecidos, mas não publicam um evento.
Como funciona
Anchor link toUma notificação do Google Play não carrega um identificador do Pushwoosh. Ela inclui apenas um token de compra e o packageName do aplicativo. Portanto, seu aplicativo marca cada compra com o identificador que o Pushwoosh precisa, e o Pushwoosh o lê de volta da compra sempre que uma notificação chega.
- O status de uma assinatura muda na conta do Google Play de um usuário (uma compra, renovação, cancelamento, etc.).
- O Google Play publica uma mensagem RTDN no tópico compartilhado do Pushwoosh.
- O Pushwoosh lê o
obfuscatedAccountIdda compra, que seu aplicativo definiu como<AppCode>:<hwid>no momento da compra. - O Pushwoosh resolve o dispositivo cujo HWID corresponde, encontra o usuário vinculado a ele e publica o evento
PW_Subscription*correspondente para esse usuário.
Casos de uso
Anchor link toReconquistar assinantes em churn: Desativar a renovação automática não encerra o acesso imediatamente. A assinatura permanece ativa até o final do período pago, e essa é a sua janela para reconquistar o usuário. Em PW_SubscriptionCancel, inicie uma Customer Journey com um push de retenção, um e-mail sobre os recursos que eles perderiam ou uma mensagem in-app com um desconto de renovação antes que o acesso expire.
Integrar novos assinantes: Acione uma série de boas-vindas em PW_SubscriptionStart para ajudar os usuários a obter valor de seu plano desde o início e preparar o terreno para a renovação.
Resgatar pagamentos com falha: Quando PW_SubscriptionBillingIssue é acionado, um pagamento de renovação não foi concluído e a assinatura está em seu período de carência. Peça ao usuário para atualizar seu método de pagamento antes que perca o acesso e acompanhe com PW_SubscriptionRecovered para confirmar assim que for resolvido.
Reengajar usuários inativos: Inicie uma campanha de reativação em PW_SubscriptionExpired com uma oferta de retorno para assinantes que cancelaram completamente.
Configurando a integração
Anchor link toAntes de começar, certifique-se de que você tem um aplicativo Pushwoosh com FCM configurado (já necessário para push), um aplicativo do Google Play com uma assinatura e acesso de administrador ao Play Console.
Definir o identificador da conta na compra
Anchor link toO Pushwoosh identifica o usuário correto a partir do HWID do dispositivo, combinado com o seu Código do Aplicativo. O SDK do Pushwoosh para Android expõe um auxiliar, getSubscriptionAccountId(), que retorna esse valor já formatado como <AppCode>:<hwid>. Passe-o para BillingFlowParams.setObfuscatedAccountId() quando você iniciar o fluxo de faturamento do Google Play.
val billingParams = BillingFlowParams.newBuilder() .setProductDetailsParamsList(productDetailsParamsList) // Tag the purchase with the Pushwoosh account identifier "<AppCode>:<hwid>" .setObfuscatedAccountId(Pushwoosh.getInstance().subscriptionAccountId) .build()
billingClient.launchBillingFlow(activity, billingParams)BillingFlowParams billingParams = BillingFlowParams.newBuilder() .setProductDetailsParamsList(productDetailsParamsList) // Tag the purchase with the Pushwoosh account identifier "<AppCode>:<hwid>" .setObfuscatedAccountId(Pushwoosh.getInstance().getSubscriptionAccountId()) .build();
billingClient.launchBillingFlow(activity, billingParams);Apontar as Notificações do desenvolvedor em tempo real para o Pushwoosh
Anchor link to- No Google Play Console, vá para Monetizar → Configuração da monetização.
- Encontre Notificações do desenvolvedor em tempo real e defina o Nome do tópico para:
projects/pw-playstore-subscriptions/topics/play-rtdn- Clique em Salvar. A permissão de publicação já foi concedida ao serviço de notificação do Google, então não há mais nada a configurar aqui.
Conceder acesso à conta de serviço do Pushwoosh
Anchor link to- No Google Play Console, vá para Usuários e permissões → Convidar novo usuário.
- Insira o e-mail da conta de serviço do Pushwoosh:
play-api@pw-playstore-subscriptions.iam.gserviceaccount.com- Em Permissões do app, adicione seu aplicativo e conceda Visualizar dados financeiros, pedidos e respostas a pesquisas de cancelamento (além da permissão de informações do aplicativo somente leitura).
- Clique em Salvar. Uma conta de serviço não precisa aceitar o convite. O acesso fica ativo imediatamente.
Confirmar os eventos no Pushwoosh
Anchor link toO Pushwoosh registra cada evento PW_Subscription* em seu projeto na primeira vez que ele ocorre, com os atributos productID e expiresAt. Após um teste, abra Público → Eventos para verificar se os eventos aparecem. Eles estarão então prontos para segmentação, estatísticas e Customer Journeys.
Construir sua campanha
Anchor link toCrie uma Customer Journey com uma entrada baseada em gatilho em qualquer evento PW_Subscription*, por exemplo PW_SubscriptionCancel para reconquista ou PW_SubscriptionStart para integração, e adicione as mensagens que deseja enviar.
Testando
Anchor link toPara verificar a integração de ponta a ponta:
- No Google Play Console, abra a Configuração da monetização e clique em Enviar notificação de teste. Deve relatar sucesso, confirmando que o tópico está conectado corretamente.
- Faça uma compra de assinatura com o identificador da conta definido como descrito acima (isso dispara
PW_SubscriptionStart), depois cancele-a em Play Store → Assinaturas → Cancelar (isso disparaPW_SubscriptionCancel). - No Painel de Controle do Pushwoosh, abra o perfil do usuário и vá para o Histórico de eventos.
- Confirme que os eventos aparecem em alguns instantes.