Passer au contenu

Suivi des abonnements de l'App Store

Aperçu de l’intégration

Anchor link to

Les notifications serveur de l’App Store sont le service de serveur à serveur d’Apple qui envoie à votre backend un message en temps réel chaque fois que le statut d’un abonnement change.

En connectant les notifications serveur de l’App Store à Pushwoosh, vous pouvez réagir à l’ensemble du cycle de vie de l’abonnement, y compris les achats, les renouvellements, les annulations, les problèmes de facturation, les expirations et les remboursements, sans avoir à construire votre propre infrastructure backend. Chaque fois que le statut d’un abonnement change dans le compte App Store d’un utilisateur, Apple en informe Pushwoosh, et Pushwoosh déclenche l’événement PW_Subscription* correspondant sur le profil de l’utilisateur.

Type d’intégration

Anchor link to

Source : les notifications serveur de l’App Store sont envoyées d’Apple à Pushwoosh.

Événements suivis

Anchor link to

Pushwoosh mappe chaque notification de l’App Store prise en charge à un ensemble d’événements unifié PW_Subscription*, afin que vous puissiez déclencher des campagnes à n’importe quelle étape du cycle de vie de l’abonnement.

ÉvénementSe déclenche lorsque
PW_SubscriptionStartUn utilisateur achète l’abonnement pour la première fois.
PW_SubscriptionRenewL’abonnement se renouvelle automatiquement pour une nouvelle période de facturation.
PW_SubscriptionCancelUn utilisateur désactive le renouvellement automatique. L’abonnement reste actif jusqu’à son expiration.
PW_SubscriptionResumeUn utilisateur réactive le renouvellement automatique ou se réabonne avant l’expiration de l’abonnement.
PW_SubscriptionBillingIssueUn paiement de renouvellement échoue et l’abonnement entre dans la période de nouvelle tentative de facturation d’Apple.
PW_SubscriptionRecoveredUn renouvellement qui avait précédemment échoué est accepté et l’abonnement est de nouveau actif.
PW_SubscriptionExpiredL’abonnement a complètement expiré et n’est plus actif.
PW_SubscriptionRefundApple rembourse l’achat ou révoque l’accès.

Chaque événement comporte les mêmes attributs :

  • productID : l’identifiant de produit de l’App Store de l’abonnement.
  • expiresAt : la date de fin de la période payée en cours, sous forme d’horodatage Unix en secondes. Inclus lorsque Apple le fournit.
Comment les événements sont mappés aux notifications serveur de l’App Store

Pour les développeurs qui vérifient l’intégration, chaque événement Pushwoosh correspond à ces valeurs notificationType (et subtype) de l’App Store :

Événement PushwooshnotificationType / subtype
PW_SubscriptionStartSUBSCRIBED / INITIAL_BUY
PW_SubscriptionRenewDID_RENEW
PW_SubscriptionCancelDID_CHANGE_RENEWAL_STATUS / AUTO_RENEW_DISABLED
PW_SubscriptionResumeDID_CHANGE_RENEWAL_STATUS / AUTO_RENEW_ENABLED, SUBSCRIBED / RESUBSCRIBE
PW_SubscriptionBillingIssueDID_FAIL_TO_RENEW
PW_SubscriptionRecoveredDID_RENEW / BILLING_RECOVERY
PW_SubscriptionExpiredEXPIRED
PW_SubscriptionRefundREFUND, REVOKE

Les autres types de notifications, tels que les augmentations de prix, les changements de forfait, les mises en attente et les demandes de consommation, sont reconnus mais ne publient pas d’événement.

Comment ça marche

Anchor link to
  1. Le statut d’un abonnement change dans le compte App Store d’un utilisateur (un achat, un renouvellement, une annulation, etc.).
  2. Apple envoie une notification serveur de l’App Store (V2) à votre URL de notification Pushwoosh.
  3. Pushwoosh décode la charge utile signée et lit le appAccountToken de la transaction.
  4. Pushwoosh recherche l’appareil dont le HWID correspond à ce jeton, trouve l’utilisateur qui y est lié et publie l’événement PW_Subscription* correspondant pour cet utilisateur.

Cas d’utilisation

Anchor link to

Reconquérir les abonnés qui se désengagent : la désactivation du renouvellement automatique ne met pas fin à l’accès immédiatement. L’abonnement reste actif jusqu’à la fin de la période payée, et c’est votre fenêtre d’opportunité pour reconquérir l’utilisateur. Sur PW_SubscriptionCancel, lancez un Customer Journey avec un push de rétention, un e-mail sur les fonctionnalités qu’ils perdraient, ou un message in-app avec une réduction sur le renouvellement avant que l’accès n’expire.

Intégrer les nouveaux abonnés : déclenchez une série de bienvenue sur PW_SubscriptionStart pour aider les utilisateurs à tirer profit de leur forfait dès le début et préparer le terrain pour le renouvellement.

Sauver les paiements échoués : lorsque PW_SubscriptionBillingIssue se déclenche, un paiement de renouvellement n’a pas abouti et l’abonnement est dans la fenêtre de nouvelle tentative d’Apple. Invitez l’utilisateur à mettre à jour son mode de paiement avant de perdre l’accès, et faites un suivi avec PW_SubscriptionRecovered pour confirmer une fois le problème résolu.

Réengager les utilisateurs inactifs : lancez une campagne de réactivation sur PW_SubscriptionExpired avec une offre de retour pour les abonnés qui se sont complètement désabonnés.

Configuration de l’intégration

Anchor link to

Définir appAccountToken sur le HWID Pushwoosh de l’appareil

Anchor link to

Pushwoosh identifie le bon utilisateur à partir du HWID de l’appareil, votre application doit donc joindre le HWID Pushwoosh de l’appareil en tant que appAccountToken lorsque l’abonnement est acheté via StoreKit.

Par défaut, le SDK iOS de Pushwoosh utilise l’identifierForVendor (IDFV) de l’appareil comme HWID. L’IDFV est déjà un UUID, exactement le format requis par Apple pour appAccountToken. Pushwoosh résout ensuite automatiquement l’utilisateur actuellement lié à cet appareil, cela fonctionne donc que vous attribuiez ou non vos propres ID utilisateur avec setUserId.

// Attach the device's Pushwoosh HWID (the default IDFV) as the appAccountToken
var options: Set<Product.PurchaseOption> = []
if let hwid = UIDevice.current.identifierForVendor {
options.insert(.appAccountToken(hwid))
}
let result = try await product.purchase(options: options)

Trouver votre code d’application Pushwoosh

Anchor link to

Ouvrez votre application dans le panneau de contrôle Pushwoosh. Votre code d’application (format XXXXX-XXXXX) est affiché sous le nom du projet dans la barre latérale.

Vous aurez besoin du code d’application pour construire l’URL de notification.

Ajouter l’URL de notification dans App Store Connect

Anchor link to
  1. Dans App Store Connect, allez dans Apps → votre app → App Information (sous General), et faites défiler jusqu’à App Store Server Notifications.
  2. Sélectionnez les notifications de la Version 2.
  3. Définissez à la fois l’URL du serveur de production et l’URL du serveur de bac à sable sur :
https://appstore-notifications.pushwoosh.com/appstore/YOUR_APPLICATION_CODE/
  1. Remplacez YOUR_APPLICATION_CODE par le code d’application de l’étape précédente. Conservez la barre oblique finale.

Confirmer les événements dans Pushwoosh

Anchor link to

Pushwoosh enregistre chaque événement PW_Subscription* dans votre projet la première fois qu’il se produit, avec les attributs productID et expiresAt. Après un test en bac à sable, ouvrez Audience → Events pour vérifier que les événements apparaissent. Ils sont alors prêts pour la segmentation, les statistiques et les Customer Journeys.

Construire votre campagne

Anchor link to

Créez un Customer Journey avec une entrée basée sur un déclencheur sur n’importe quel événement PW_Subscription*, par exemple PW_SubscriptionCancel pour la reconquête ou PW_SubscriptionStart pour l’intégration, et ajoutez les messages que vous souhaitez envoyer.

Les notifications serveur de l’App Store peuvent être déclenchées dans l’environnement Sandbox d’Apple. Pour vérifier l’intégration :

  1. Effectuez un achat d’abonnement en bac à sable avec appAccountToken défini comme décrit ci-dessus. Cela déclenche PW_SubscriptionStart.
  2. Désactivez le renouvellement automatique depuis l’écran de gestion des abonnements de l’appareil. Cela déclenche PW_SubscriptionCancel.
  3. Dans le panneau de contrôle de Pushwoosh, ouvrez le profil de l’utilisateur et allez dans l’historique des événements.
  4. Confirmez que les événements apparaissent en quelques instants.