Implementação de ofertas promocionais no iOS. Como ganhar mais em assinaturas?


No iOS 12.2, a Apple adicionou um novo recurso interessante - ofertas promocionais. Agora, os aplicativos de assinatura renováveis ​​automaticamente podem oferecer descontos pessoais aos clientes atuais ou antigos ou um período gratuito adicional. As ofertas promocionais se aplicam ao pagamento, pagamento, participação na avaliação e cancelamento dos usuários da avaliação. Ao contrário de uma oferta introdutória, uma oferta promocional pode ser adquirida quantas vezes desejar, a critério do desenvolvedor. Mas a implementação requer que um servidor gere uma assinatura digital.


Configurar ofertas promocionais na App Store Connect


Para criar uma nova oferta promocional, acesse o App Store Connect e abra a página com sua assinatura. Clique em "+" na seção de preços da assinatura e selecione "Criar oferta promocional" :



Indique o nome original da promoção e seu identificador - Código do produto :



Indique o custo e o tipo de oferta promocional:


  • pagamento mediante uso;
  • pagamento antecipado;
  • período livre.

Salve as alterações.


Chave de assinatura


Para usar ofertas promocionais, você precisa gerar uma assinatura digital usando a chave de inscrição. Você precisa criá-lo na App Store Connect.


Vá para a seção "Usuários e acesso" e depois para a guia "Chaves" . Crie uma nova chave de assinatura especificando seu nome.



Após criar a chave, clique em "Baixar chave da API" e salve o arquivo em um local seguro.



A chave de inscrição baixada do App Store Connect tem o seguinte formato de nome: SubscriptionKey_ [KEY_ID] .p8, em que KEY_ID é o identificador da chave.

Geração de Assinaturas


Aqui começa o mais difícil e, na minha opinião, desnecessário. A Apple foi ressegurada adicionando geração de assinaturas para que o usuário não pudesse invadir o StoreKit e fazer uma oferta promocional sem o conhecimento do desenvolvedor. Lembre-me de que esses descontos estão disponíveis apenas para usuários pagantes. Os clientes atuais tentarão invadir o sistema para obter um desconto?


Do ponto de vista do cliente móvel, a geração de assinaturas é necessária para que, com a classe SKProductDiscount , crie a classe SKPaymentDiscount , que será adicionada ao SKMutablePayment para fazer uma compra. Vamos considerar em mais detalhes.


SKProductDiscount


Os objetos desta classe são armazenados na matriz de discounts do SKProduct . Todas as ofertas promocionais criadas são objetos da classe SKProductDiscount . Como no caso de ofertas introdutórias, você pode obter a duração, preço e número de períodos promocionais. Acontece que essa classe é necessária para exibir as condições de compra na interface do aplicativo.


SKPaymentDiscount


Essa classe é criada pelo desenvolvedor usando os dados recebidos do seu servidor. Dê uma olhada nos arquivos de origem e veja o único método de inicialização:


 public init(identifier: String, keyIdentifier: String, nonce: UUID, signature: String, timestamp: NSNumber) 

  • identifier - identificador da oferta promocional. É retirado do SKProductDiscount .
  • keyIdentifier - identificador da chave de assinatura.
  • nonce é uma sequência arbitrária gerada no servidor para maior proteção de assinatura ou salt . No iOS, você precisará criar uma classe UUID usando esse sal.
  • signature - uma assinatura digital recebida do seu servidor como uma string base64.
  • timestamp - data de criação da assinatura em milissegundos. É necessário comparar o horário de criação da assinatura e o horário da compra, porque a assinatura é válida apenas 24 horas.

O próprio código para gerar uma assinatura no servidor não é uma tarefa fácil, mas a Apple forneceu um exemplo de código no Node.js. A chave de assinatura deve ser carregada no seu servidor e você deve retornar todos os dados acima para o cliente móvel.


Leia mais sobre geração de assinaturas aqui .


Checkout


Uma oferta promocional é comprada da mesma maneira que uma compra regular. A única diferença é a adição de um objeto da classe SKPaymentDiscount .


 let payment = SKMutablePayment(product: product) payment.paymentDiscount = discount SKPaymentQueue.default().add(payment) 

O que vem a seguir?


Você conseguiu gerar uma assinatura com sucesso e fazer sua primeira compra na Sandbox. Isso é ótimo! Mas as próprias ofertas promocionais não resolverão o problema de aumentar os lucros e retornar os usuários. Sua tarefa é mostrá-los ao usuário no momento certo. Qual? Por exemplo, você pode tentar retornar usuários que cancelaram sua assinatura enviando uma notificação a eles.


Retorno de clientes com falha


Com a ajuda de ofertas promocionais, você pode tentar devolver os clientes que partiram. Para fazer isso, você precisa implementar uma gama completa de funções: ofertas promocionais, notificações do servidor sobre status da assinatura, notificações push, armazenando verificações de usuários no servidor e procurando um usuário pelo número da transação. Isto não é fácil.


Pesquisa de clientes caídos


Atrair um novo usuário é muitas vezes mais caro do que reter um cliente existente. Portanto, é especialmente importante entender os motivos que forçam os usuários a cancelar avaliações e assinaturas.


Muitos usuários cancelam a inscrição porque não precisam mais de um aplicativo e seu desconto pode não funcionar. Nesse caso, em vez de oferecer um desconto, você deve descobrir o que ele não gosta e o que pode influenciar sua decisão de retornar ao aplicativo.


Oferecer descontos em troca de ações


Na maioria das vezes, este é um convite para um amigo em troca de um desconto ou uso gratuito. Pode realmente funcionar, mas levará muito tempo para implementar o sistema de referência.


Como é implementado no Apphud


O Apphud rastreia os cancelamentos de inscrição, pesquisa usuários antigos e oferece descontos sem escrever código. As telas de desconto são criadas no designer da sua conta. Para o usuário, fica assim:



O Apphud exibe uma tela de pesquisa quando uma avaliação ou assinatura é cancelada e, se necessário, oferece imediatamente um desconto.


Nomeamos cada mecânica individual para retorno do usuário como regra . Leia mais sobre como configurar as regras aqui .


Conclusão


O modelo de negócios de assinatura já se tornou o padrão em aplicativos móveis que não são de jogos. A retenção do usuário e a compreensão dos motivos de sua saída é uma tarefa importante que já deve ser abordada na fase de lançamento de um projeto móvel.


O Apphud ajudará na integração de assinaturas:
  • 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.

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


All Articles