
Dans iOS 12.2, Apple a ajouté une nouvelle fonctionnalité intéressante - des offres promotionnelles. Les applications d'abonnement auto-renouvelables peuvent désormais offrir aux clients actuels ou anciens des remises personnelles ou une période gratuite supplémentaire. Les offres promotionnelles s'appliquent au paiement, au paiement, à l'essai et à l'annulation des utilisateurs de l'essai. Contrairement à une offre de lancement, une offre promotionnelle peut être achetée autant de fois que souhaité à la discrétion du développeur. Mais l'implémentation nécessite un serveur pour générer une signature numérique.
Pour créer une nouvelle offre promotionnelle, accédez à l' App Store Connect et ouvrez la page avec votre abonnement. Cliquez sur "+" dans la section des prix d'abonnement et sélectionnez "Créer une offre promotionnelle" :

Indiquez le nom d'origine de la promotion et son identifiant - Code produit :

Indiquez le coût et le type d'offre promotionnelle:
- paiement à l'utilisation;
- prépaiement;
- période libre.
Enregistrez les modifications.
Clé d'abonnement
Pour utiliser les offres promotionnelles, vous devez générer une signature numérique à l'aide de la clé d'abonnement. Vous devez le créer dans l'App Store Connect.
Accédez à la section "Utilisateurs et accès" , puis à l'onglet "Clés" . Créez une nouvelle clé d'abonnement en spécifiant son nom.

Après avoir créé la clé, cliquez sur "Télécharger la clé API" et enregistrez le fichier dans un endroit sûr.

La clé d'abonnement téléchargée depuis App Store Connect a le format de nom suivant: SubscriptionKey_ [KEY_ID] .p8, où KEY_ID est l'identifiant de clé.
Génération de signature
Ici commence le plus difficile et, à mon avis, inutile. Apple a été réassuré en ajoutant une génération de signature afin que l'utilisateur ne puisse pas pirater StoreKit et placer une offre promotionnelle à l'insu du développeur. Permettez-moi de vous rappeler que ces remises ne sont disponibles que pour les utilisateurs payants. Les clients actuels tenteront-ils de pirater le système pour obtenir une remise?
Du point de vue du client mobile, la génération de signature est nécessaire pour que, ayant la classe SKProductDiscount
, crée la classe SKPaymentDiscount
, qui sera ajoutée à SKMutablePayment
pour effectuer un achat. Examinons plus en détail.
SKProductDiscount
Les objets de cette classe sont stockés dans le tableau de SKProduct
de SKProduct
. Toutes les offres promotionnelles créées sont des objets de la classe SKProductDiscount
. Comme dans le cas des offres de lancement, vous pouvez obtenir la durée, le prix et le nombre de périodes promotionnelles. Il s'avère que cette classe est nécessaire pour afficher les conditions d'achat dans l'interface d'application.
SKPaymentDiscount
Cette classe est créée par le développeur à partir des données reçues de votre serveur. Jetez un œil aux fichiers source et voyez la seule méthode d'initialisation:
public init(identifier: String, keyIdentifier: String, nonce: UUID, signature: String, timestamp: NSNumber)
identifier
- identifiant de l'offre promotionnelle. Il est extrait de SKProductDiscount
.keyIdentifier
- identifiant de clé d'abonnement.nonce
est une chaîne arbitraire générée sur le serveur pour une meilleure protection des signatures, ou salt . Sur iOS, vous devrez créer une classe UUID à l'aide de ce sel.signature
- une signature numérique reçue de votre serveur sous forme de chaîne base64.timestamp
- date de création de la signature en millisecondes. Il est nécessaire de comparer l'heure de création de la signature et l'heure de l'achat lui-même, car la signature n'est valable que 24 heures.
Le code lui-même pour générer une signature sur le serveur n'est pas une tâche facile, mais Apple a fourni un exemple de code sur Node.js. La clé de signature doit être téléchargée sur votre serveur et vous devez renvoyer toutes les données ci-dessus au client mobile.
En savoir plus sur la génération de signatures ici .
Une offre promotionnelle s'achète de la même manière qu'un achat régulier. La seule différence est l'ajout d'un objet de la classe SKPaymentDiscount
.
let payment = SKMutablePayment(product: product) payment.paymentDiscount = discount SKPaymentQueue.default().add(payment)
Et ensuite?
Vous avez réussi à générer une signature et à effectuer votre premier achat chez Sandbox. C'est super! Mais les offres promotionnelles elles-mêmes ne résoudront pas le problème de l'augmentation des bénéfices et du retour des utilisateurs. Votre tâche consiste à les montrer à l'utilisateur au bon moment. Lequel? Par exemple, vous pouvez essayer de renvoyer les utilisateurs qui ont annulé leur abonnement en leur envoyant une notification.
Retour des clients défaillants
À l'aide d'offres promotionnelles, vous pouvez essayer de retourner les clients décédés. Pour ce faire, vous devez implémenter toute une gamme de fonctions: offres promotionnelles, notifications du serveur sur les statuts d'abonnement, notifications push, stockage des chèques utilisateur sur le serveur et recherche d'un utilisateur par numéro de transaction. Ce n'est pas facile.
Enquête auprès des clients décédés
Attirer un nouvel utilisateur coûte beaucoup plus cher que de conserver un client existant. Par conséquent, il est particulièrement important de comprendre les motifs qui obligent les utilisateurs à annuler les essais et les abonnements.
De nombreux utilisateurs se désabonnent car ils n'ont plus besoin d'une application et votre remise peut ne pas fonctionner. Dans ce cas, au lieu d'offrir une remise, vous devriez découvrir ce qu'il n'aime pas et ce qui pourrait influencer sa décision de revenir à l'application.
Offrez des remises en échange d'actions
Le plus souvent, il s'agit d'une invitation à un ami en échange d'une remise ou d'une utilisation gratuite. Cela peut vraiment fonctionner, mais il faudra beaucoup de temps pour mettre en œuvre le système de référence.
Comment il est implémenté dans Apphud
Apphud suit les désabonnements, interroge les anciens utilisateurs et offre des remises sans écrire de code. Les écrans de réduction sont créés dans le concepteur de votre compte. Pour l'utilisateur, cela ressemble à ceci:

Apphud affiche un écran d'enquête lorsqu'un essai ou un abonnement est annulé et, si nécessaire, offre immédiatement une remise.
Nous avons nommé chaque mécanicien individuel pour le retour de l'utilisateur en règle générale . En savoir plus sur la configuration des règles ici .
Conclusion
Le modèle commercial d'abonnement est déjà devenu la norme dans les applications mobiles autres que les jeux. La rétention des utilisateurs et la compréhension des raisons de leur départ est une tâche importante qui doit être traitée déjà au stade du lancement d'un projet mobile.
Apphud aidera à l'intégration des abonnements:
- Faites des achats en utilisant une seule méthode;
- suivre automatiquement l'état de l'abonnement de chaque utilisateur;
- Intégrez facilement les offres d'abonnement
- envoyer des événements d'abonnement à Amplitude, Mixpanel, Slack et Telegram en tenant compte de la devise locale de l'utilisateur;
- diminuer le taux de désabonnement dans les applications et renvoyer les utilisateurs non abonnés.