
Portanto, você tem um aplicativo com assinaturas renováveis automáticas. Funciona muito bem, os usuários emitem incontrolavelmente assinaturas premium e escrevem críticas elogiosas. Beleza!
Olá pessoal, meu nome é Denis, sou gerente de projetos do Apphud , um serviço de análise de assinaturas renováveis automaticamente para aplicativos iOS.
Como gerente de projeto, é vital que você fique a par das principais métricas do produto. Um dos mais importantes é o valor do tempo de vida útil (LTV) - a renda média de cada usuário durante todo o tempo usando o aplicativo. Mas como calculá-lo no caso de assinaturas renováveis automaticamente no iOS? Como rastrear o tempo de renovação, cancelamento, renovação de uma assinatura por um usuário?
Até recentemente (ou seja, até 2017), a única maneira de fazer isso era a chamada Pesquisa de status de assinaturas. A qualquer momento, você pode obter informações sobre o status da assinatura enviando o recibo necessário para o URL: https://buy.itunes.apple.com/verifyReceipt . Depois de recebê-lo, você pode visualizar informações básicas sobre a assinatura, incluindo a data de término. É verdade que você ainda não terá seu custo.
Para implementar a pesquisa de status, você deve:
- transferir e armazenar no servidor todas as verificações de todas as assinaturas de cada usuário,
- implementar lógica complexa do servidor, que verificará regularmente essas verificações.
Isso é complicado. Mas em 2017, a Apple parece resolver esse problema. Na WWDC, aplaudindo de pé, eles apresentam notificações de atualização de status das assinaturas da Apple.
O que são notificações de inscrições?
As Notificações de atualização de status das assinaturas Apple são um mecanismo para enviar webhooks ao servidor Apple quando ocorrem eventos de assinatura renováveis automaticamente. Para habilitá-los, você deve primeiro configurar seu servidor para aceitá-los: o servidor deve suportar o protocolo App Transport Security (geralmente tudo funciona por padrão). Depois disso, acesse a App Store Connect e, na seção "App Store" das configurações do seu aplicativo, insira um link para o qual a Apple enviará uma solicitação POST sempre que ocorrer um evento:

Observe que a Apple recomenda o uso de Notificações de assinaturas em conjunto com a Pesquisa de status. Mau sinal ...
Feito! Agora você deve receber notificações sempre que, por exemplo, uma assinatura for emitida, renovada ou cancelada.
Variedades de notificações
A Apple envia 6 tipos de notificações que ocorrem em vários eventos. Vamos analisar cada um deles.
INITIAL_BUY
A Apple envia esta notificação quando um usuário se inscreve pela primeira vez em um grupo de assinaturas.
Você pode ler mais sobre grupos de assinaturas em nosso artigo .

CANCELAR
Este evento é despachado quando o usuário cancela a assinatura através do suporte Apple Care e reembolsa a compra. Enfatizamos que não se trata do cancelamento usual da assinatura por meio das configurações do iOS.
CANCEL
evento CANCEL
não é despachado durante o cancelamento normal através das configurações do iOS.

DID_CHANGE_RENEWAL_STATUS
Este evento foi adicionado recentemente. É enviado quando o usuário desconecta ou (novamente) ativa a renovação da assinatura por meio das configurações do iOS, do aplicativo App Store ou do suporte da Apple:
Não confunda este evento com o evento CANCEL
que é acionado quando você cancela sua assinatura e reembolsa através do suporte Apple Care.

RENOVAÇÃO
A primeira coisa que vem à mente quando você vê o nome deste evento: a Apple envia quando a renovação é renovada automaticamente. Não importa como!
O evento RENEWAL
despachado quando:
a assinatura do usuário foi cancelada automaticamente devido a problemas com o cartão bancário do usuário ...
e depois disso, o usuário renovou a assinatura novamente. É nesse ponto que o evento RENEWAL
é RENEWAL
.

Um RENEWAL
RENOVAÇÃO não RENEWAL
enviado no caso de uma renovação regular de uma assinatura. Em vez disso, a Apple sugere verificar a verificação da assinatura através de /VerifyReceipt
antes e após a renovação esperada e analisar a expiration_date
resultante

INTERACTIVE_RENEWAL
Este evento é despachado se:
O usuário cancelou a assinatura e algum tempo depois disso ...
assinatura renovada pelo usuário. É neste momento que INTERACTIVE_RENEWAL
enviado.
A nova assinatura (indicada na cláusula 2) pode ser diferente da assinatura da cláusula 1, mas ambas devem pertencer ao mesmo grupo de compras. Por exemplo, um usuário pode cancelar a inscrição no plano tarifário Bronze e, após algum tempo, renovar sua assinatura escolhendo o plano Gold. Nesse caso, a Apple enviará o evento INTERACTIVE_RENEWAL
ao seu servidor (desde que as assinaturas Bronze e Gold pertençam ao mesmo grupo de compras). Você pode ler mais sobre grupos de assinaturas aqui .

DID_CHANGE_RENEWAL_PREF
DID_CHANGE_RENEWAL_PREF
enviado quando um usuário alterna de uma assinatura para outra dentro do mesmo grupo de compras:

Qual é o resultado?
A Apple oferece até 6 eventos, mas nenhum deles é enviado ao renovar automaticamente uma assinatura no modo normal. Por que eles fizeram isso? Claro. Além disso, os nomes desses eventos são enganosos.
A tabela abaixo resume os eventos.

Como usar as notificações de assinaturas da Apple?
Devido ao fato de que o evento mais importante que você precisa calcular para LTV - renovação da assinatura no modo normal - não foi enviado, você ainda precisa usar a Status Polling. Existe a possibilidade de a Apple adicionar este evento em um futuro próximo, mas mesmo que isso aconteça, você ainda não pode ficar sem o seu próprio servidor. Este servidor atuará como uma "camada" entre a Apple e outro sistema de análise (por exemplo, Amplitude, Flurry ou Mixpanel). Ao receber eventos e verificar cheques, você enviará informações sobre renovações, cancelamentos e reembolsos.
Uma vez que encontramos esse problema e decidimos desenvolver um serviço que resolveria esses problemas. Portanto, nasceu a idéia do serviço em que estamos trabalhando agora - o serviço de análise de assinaturas para iOS, que preenche a lacuna no envio de eventos da Apple.
Conclusão
As notificações de assinaturas da Apple não são tão boas quanto parecem, porque somente com elas você não consegue resolver o problema principal: descobrir quanto dinheiro um usuário traz para você. A Apple pode facilitar a vida dos desenvolvedores no futuro, mas uma coisa é certa: a implementação atual das Notificações de assinaturas é extremamente óbvia e parece muletas.
Deseja implementar assinaturas no seu aplicativo iOS em 10 minutos? Integre o Apphud e:
- Faça compras usando apenas um método;
- rastreia automaticamente o status da assinatura de cada usuário;
- Integre facilmente as ofertas de assinatura
- enviar eventos de assinatura para Amplitude, Mixpanel, Slack e Telegram, levando em consideração a moeda local do usuário;
- diminua a taxa de rotatividade de aplicativos e retorne usuários não inscritos.
O que ler?