Guia de notificações de assinaturas da Apple para iOS. Eles são realmente bons?


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:


  1. transferir e armazenar no servidor todas as verificações de todas as assinaturas de cada usuário,
  2. 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:


Configurar notificações de atualização de status das assinaturas Apple


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 .

Evento INITIAL_BUY


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.

CANCELAR Evento


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.

Evento DID_CHANGE_RENEWAL_STATUS


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:


  1. a assinatura do usuário foi cancelada automaticamente devido a problemas com o cartão bancário do usuário ...


  2. 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

Evento RENOVAÇÃO


INTERACTIVE_RENEWAL


Este evento é despachado se:


  1. O usuário cancelou a assinatura e algum tempo depois disso ...


  2. 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 .


Evento INTERACTIVE_RENEWAL


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:


Evento DID_CHANGE_RENEWAL_PREF


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?


Source: https://habr.com/ru/post/pt453770/


All Articles