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