Tracking von App-Store-Abonnements
Integrationsübersicht
Anchor link toApp Store Server Notifications ist Apples Server-zu-Server-Dienst, der Ihrem Backend eine Echtzeitnachricht sendet, wann immer sich der Status eines Abonnements ändert.
Durch die Verbindung von App Store Server Notifications mit Pushwoosh können Sie auf den gesamten Abonnement-Lebenszyklus reagieren, einschließlich Käufen, Verlängerungen, Kündigungen, Abrechnungsproblemen, Ablaufdaten und Rückerstattungen – ohne eine eigene Backend-Infrastruktur aufbauen zu müssen. Wann immer sich der Status eines Abonnements im App-Store-Konto eines Benutzers ändert, benachrichtigt Apple Pushwoosh, und Pushwoosh löst das entsprechende PW_Subscription*-Ereignis im Benutzerprofil aus.
Integrationstyp
Anchor link toQuelle: App Store Server Notifications werden von Apple an Pushwoosh gesendet.
Verfolgte Ereignisse
Anchor link toPushwoosh ordnet jede unterstützte App-Store-Benachrichtigung einem einheitlichen PW_Subscription*-Ereignissatz zu, sodass Sie Kampagnen in jeder Phase des Abonnement-Lebenszyklus auslösen können.
| Ereignis | Wird ausgelöst, wenn |
|---|---|
PW_SubscriptionStart | Ein Benutzer kauft das Abonnement zum ersten Mal. |
PW_SubscriptionRenew | Das Abonnement verlängert sich automatisch für einen neuen Abrechnungszeitraum. |
PW_SubscriptionCancel | Ein Benutzer deaktiviert die automatische Verlängerung. Das Abonnement bleibt bis zum Ablauf aktiv. |
PW_SubscriptionResume | Ein Benutzer aktiviert die automatische Verlängerung erneut oder abonniert erneut, bevor das Abonnement abläuft. |
PW_SubscriptionBillingIssue | Eine Verlängerungszahlung schlägt fehl und das Abonnement tritt in Apples Abrechnungs-Wiederholungszeitraum ein. |
PW_SubscriptionRecovered | Eine zuvor fehlgeschlagene Verlängerung wird durchgeführt und das Abonnement ist wieder aktiv. |
PW_SubscriptionExpired | Das Abonnement ist vollständig abgelaufen und nicht mehr aktiv. |
PW_SubscriptionRefund | Apple erstattet den Kauf oder widerruft den Zugriff. |
Jedes Ereignis trägt die gleichen Attribute:
- productID: die App-Store-Produktkennung des Abonnements.
- expiresAt: wann der aktuelle bezahlte Zeitraum endet, als Unix-Zeitstempel in Sekunden. Enthalten, wenn Apple es bereitstellt.
Wie Ereignisse den App Store Server Notifications zugeordnet werden
Für Entwickler, die die Integration überprüfen: Jedes Pushwoosh-Ereignis entspricht diesen App-Store-notificationType- (und subtype-)Werten:
| Pushwoosh-Ereignis | notificationType / subtype |
|---|---|
PW_SubscriptionStart | SUBSCRIBED / INITIAL_BUY |
PW_SubscriptionRenew | DID_RENEW |
PW_SubscriptionCancel | DID_CHANGE_RENEWAL_STATUS / AUTO_RENEW_DISABLED |
PW_SubscriptionResume | DID_CHANGE_RENEWAL_STATUS / AUTO_RENEW_ENABLED, SUBSCRIBED / RESUBSCRIBE |
PW_SubscriptionBillingIssue | DID_FAIL_TO_RENEW |
PW_SubscriptionRecovered | DID_RENEW / BILLING_RECOVERY |
PW_SubscriptionExpired | EXPIRED |
PW_SubscriptionRefund | REFUND, REVOKE |
Andere Benachrichtigungstypen wie Preiserhöhungen, Planänderungen, „on-hold“-Status und Verbrauchs-Anfragen werden bestätigt, lösen aber kein Ereignis aus.
So funktioniert es
Anchor link to- Der Status eines Abonnements ändert sich im App-Store-Konto eines Benutzers (ein Kauf, eine Verlängerung, eine Kündigung usw.).
- Apple sendet eine App Store Server Notification (V2) an Ihre Pushwoosh-Benachrichtigungs-URL.
- Pushwoosh dekodiert die signierte Nutzlast und liest den
appAccountTokenaus der Transaktion. - Pushwoosh sucht das Gerät, dessen HWID mit diesem Token übereinstimmt, findet den damit verbundenen Benutzer und postet das entsprechende
PW_Subscription*-Ereignis für diesen Benutzer.
Anwendungsfälle
Anchor link toAbwandernde Abonnenten zurückgewinnen: Das Deaktivieren der automatischen Verlängerung beendet den Zugriff nicht sofort. Das Abonnement bleibt bis zum Ende des bezahlten Zeitraums aktiv, und das ist Ihre Chance, den Benutzer zurückzugewinnen. Starten Sie bei PW_SubscriptionCancel eine Customer Journey mit einem Retentions-Push, einer E-Mail über Funktionen, die sie verlieren würden, oder einer In-App-Nachricht mit einem Verlängerungsrabatt, bevor der Zugriff abläuft.
Neue Abonnenten onboarden: Lösen Sie bei PW_SubscriptionStart eine Willkommensserie aus, um Benutzern zu helfen, frühzeitig einen Mehrwert aus ihrem Plan zu ziehen und die Weichen für eine Verlängerung zu stellen.
Fehlgeschlagene Zahlungen retten: Wenn PW_SubscriptionBillingIssue ausgelöst wird, ist eine Verlängerungszahlung fehlgeschlagen und das Abonnement befindet sich im Wiederholungsfenster von Apple. Fordern Sie den Benutzer auf, seine Zahlungsmethode zu aktualisieren, bevor er den Zugriff verliert, und folgen Sie mit PW_SubscriptionRecovered, um zu bestätigen, sobald das Problem behoben ist.
Abgelaufene Benutzer reaktivieren: Starten Sie bei PW_SubscriptionExpired eine Reaktivierungskampagne mit einem Angebot für wiederkehrende Kunden für Abonnenten, die vollständig abgewandert sind.
Einrichtung der Integration
Anchor link toappAccountToken auf die Pushwoosh-HWID des Geräts setzen
Anchor link toPushwoosh identifiziert den richtigen Benutzer anhand der HWID des Geräts. Daher muss Ihre App die Pushwoosh-HWID des Geräts als appAccountToken anhängen, wenn das Abonnement über StoreKit gekauft wird.
Standardmäßig verwendet das Pushwoosh iOS SDK den identifierForVendor (IDFV) des Geräts als HWID. IDFV ist bereits eine UUID, genau das Format, das Apple für appAccountToken verlangt. Pushwoosh löst dann automatisch den Benutzer auf, der aktuell an dieses Gerät gebunden ist, sodass dies funktioniert, unabhängig davon, ob Sie Ihre eigenen Benutzer-IDs mit setUserId zuweisen oder nicht.
// Attach the device's Pushwoosh HWID (the default IDFV) as the appAccountTokenvar options: Set<Product.PurchaseOption> = []if let hwid = UIDevice.current.identifierForVendor { options.insert(.appAccountToken(hwid))}
let result = try await product.purchase(options: options)// applicationUsername must be a UUID string to populate appAccountTokenlet payment = SKMutablePayment(product: product)payment.applicationUsername = UIDevice.current.identifierForVendor?.uuidStringSKPaymentQueue.default().add(payment)Finden Sie Ihren Pushwoosh Application Code
Anchor link toÖffnen Sie Ihre Anwendung im Pushwoosh Control Panel. Ihr Application Code (Format XXXXX-XXXXX) wird unter dem Projektnamen in der Seitenleiste angezeigt.
Sie benötigen den Application Code, um die Benachrichtigungs-URL zu erstellen.
Fügen Sie die Benachrichtigungs-URL in App Store Connect hinzu
Anchor link to- Gehen Sie in App Store Connect zu Apps → Ihre App → App-Informationen (unter Allgemein) und scrollen Sie zu App Store Server Notifications.
- Wählen Sie Benachrichtigungen der Version 2 aus.
- Setzen Sie sowohl die Produktionsserver-URL als auch die Sandbox-Server-URL auf:
https://appstore-notifications.pushwoosh.com/appstore/YOUR_APPLICATION_CODE/- Ersetzen Sie
YOUR_APPLICATION_CODEdurch den Application Code aus dem vorherigen Schritt. Behalten Sie den abschließenden Schrägstrich bei.
Bestätigen Sie die Ereignisse in Pushwoosh
Anchor link toPushwoosh registriert jedes PW_Subscription*-Ereignis in Ihrem Projekt, wenn es zum ersten Mal auftritt, mit den Attributen productID und expiresAt. Öffnen Sie nach einem Sandbox-Test Audience → Events, um zu überprüfen, ob die Ereignisse angezeigt werden. Sie sind dann bereit für die Segmentierung, Statistiken und Customer Journeys.
Erstellen Sie Ihre Kampagne
Anchor link toErstellen Sie eine Customer Journey mit einem triggerbasierten Eintritt für ein beliebiges PW_Subscription*-Ereignis, z. B. PW_SubscriptionCancel zur Rückgewinnung oder PW_SubscriptionStart zum Onboarding, und fügen Sie die Nachrichten hinzu, die Sie senden möchten.
Testen
Anchor link toApp Store Server Notifications können in Apples Sandbox-Umgebung ausgelöst werden. Um die Integration zu überprüfen:
- Tätigen Sie einen Sandbox-Abonnementkauf, bei dem
appAccountTokenwie oben beschrieben gesetzt ist. Dies löstPW_SubscriptionStartaus. - Deaktivieren Sie die automatische Verlängerung auf dem Abonnementverwaltungsbildschirm des Geräts. Dies löst
PW_SubscriptionCancelaus. - Öffnen Sie im Pushwoosh Control Panel das Benutzerprofil und gehen Sie zum Ereignisverlauf.
- Bestätigen Sie, dass die Ereignisse innerhalb weniger Augenblicke erscheinen.