Erstellen Sie eine iOS-Abonnementgruppe
Kopieren Sie eine Einrichtungshinweis mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin.
Subscription-Gruppen sind für die Organisation und Verwaltung mehrerer Abonnementebenen in Ihrer iOS-Anwendung unerlässlich. Ein Verständnis ihrer Funktionsweise ist für die Implementierung von Upgrade-, Downgrade- und Crossgrade-Funktionen entscheidend.
Was ist eine Abonnementgruppe?
Abschnitt mit dem Titel “Was ist eine Abonnementgruppe?”Ein Abonnementgruppe ist eine Sammlung verwandter Abonnements, zwischen denen sich die Benutzer wählen können. Benutzer können sich nur auf ein Abonnement innerhalb einer Gruppe gleichzeitig abonnieren. Wenn sie das Abonnement wechseln, übernimmt Apple die automatische Übergabe.
Warum sind Abonnementgruppen wichtig?
Abschnitt mit dem Titel “Warum sind Abonnementgruppen wichtig?”Abonnementgruppen ermöglichen:
- Stufenweise PreisgestaltungAngebot von Grund-, Premium- und Ultimate-Plänen
- Verschiedene Laufzeiten: Monatliche, jährliche und lebenslange Optionen
- Upgrade/Downgradelogik: Automatische Verwaltung von Änderungen der Abonnement
- Einfache Verwaltung: Gruppieren Sie verwandte Abonnements zusammen
Abonnementebenen
Abschnitt mit dem Titel „Abonnementebenen“Innerhalb einer Gruppe sollten jedes Abonnement nach Wertigkeit von der höchsten (Ebene 1) bis zur niedrigsten bewertet werden. Diese Bewertung bestimmt, wie Änderungen der Abonnements klassifiziert werden:

Ebenebeispiele
Abschnitt mit dem Titel „Ebenebeispiele“Ebene 1 (Höchster Wert)
- Premium Jahresabonnement (99,99 €/Jahr)
- Ultimatives Monatsabonnement (19,99 €/Monat)
Level 2 (Mittlerer Wert)
- Standard-Jahresabonnement (49,99 €/Jahr)
- Premium Monatsabonnement (9,99 €/Monat)
Level 3 (Niedrigster Wert)
- Basic-Jahresabonnement (29,99 €/Jahr)
- Standard Monatsabonnement (4,99 €/Monat)
Abonnementänderungstypen
Abschnitt mit dem Titel „Abonnementänderungstypen”Apple verarbeitet automatisch drei Arten von Abonnementänderungen basierend auf der Rangfolge:
1. Upgrade
Abschnitt mit dem Titel „1. Upgrade”Zum höheren Abonnementstufe (z.B. level 2 → level 1). Verhalten:
Wirkt sofort
- Benutzer erhält pro-rata-Rückerstattung
- __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ für die verbleibende Zeit
- Die neue Abonnement beginnt sofort
Beispiel:
// User currently has: Standard Monthly (Level 2)// User upgrades to: Premium Annual (Level 1)// Result: Immediate access to Premium, refund for unused Standard time2. Downgrade
Abschnitt mit dem Titel „2. Downgrade“Wechsel zu einem unteren Tarif Abonnement (z.B. Level 1 → Level 2).
Verhalten:
- Wird am nächsten Rennovierungsdatum
- Der Benutzer hält die aktuelle Abonnement bis zum Ende der Laufzeit aufrecht.
- Das neue Abonnement beginnt automatisch nach Ablauf.
Beispiel:
// User currently has: Premium Annual (Level 1)// User downgrades to: Standard Monthly (Level 2)// Result: Premium access continues until annual renewal date, then switches3. Crossgrade
Abschnitt mit dem Titel „3. Crossgrade“Wechseln Sie zu einem anderen Abonnement auf derselben Ebene.
Das Verhalten hängt von der Laufzeit ab:
Andere Laufzeit → Verhält sich wie eine Herabstufung
- Wirksam bei der nächsten Erneuerungsdatum
- Beispiel: Monatlich Premium (Level 1) → Jahres Premium (Level 1)
Selbe Laufzeit → Verhält sich wie Upgrade
- Wirksam sofort
- Beispiel: Premium Monatlich (Level 1) → Ultimate Monatlich (Level 1)
Erstellung einer Abonnementgruppe
Abschnitt mit dem Titel “Erstellung einer Abonnementgruppe”-
Navigieren Sie zu Abonnements
In App Store Connect wählen Sie Ihr App und gehen Sie zu "Monetize > Abonnements" Erneuerungsdatum.
-
Gruppe erstellen
Klicken + Klicken Sie auf "Abonnementgruppen" , um eine neue Gruppe zu erstellen.
-
Gruppe benennen
Wählen Sie einen beschreibenden Namen, der die in der Gruppe enthaltenen Abonnements widerspiegelt:
- „Premium-Zugang“
- „Cloud-Speicherkonzepte“
- „Pro-Funktionen“
-
Abonnements hinzufügen
Nach der Erstellung der Gruppe fügen Sie einzelne Abonnements hinzu. Jedes Abonnement erhält eine Rangstufe.
-
Rangstufen festlegen
Ordnen Sie die Abonnements von höchster Wertigkeit (1) bis zur niedrigsten Wertigkeit an. Überlegen Sie sich:
- Jährliche Pläne rangieren typischerweise höher als monatliche
- Tiers mit höherem Preis rangieren über niedrigere
- Ultimate-/Premium-Tiers rangieren am höchsten
Verwendung in Ihrer App
Abschnitt mit dem Titel „Verwendung in Ihrer App“Der native-purchases-Plugin verarbeitet die Abonnement-Gruppen-Logik automatisch:
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch all subscriptions in a groupconst { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly', 'premium_annual', 'ultimate_monthly'], productType: PURCHASE_TYPE.SUBS,});
// Display current subscription using StoreKit transactionsconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const activeSubs = purchases.filter((purchase) => purchase.isActive);
// Detect pending downgrade/cancellation (StoreKit sets willCancel === true)const pendingChange = purchases.find((purchase) => purchase.willCancel === true);if (pendingChange) { console.log('Subscription will stop auto-renewing on', pendingChange.expirationDate);}
// Purchase (StoreKit handles upgrades/downgrades automatically)await NativePurchases.purchaseProduct({ productIdentifier: 'premium_annual', productType: PURCHASE_TYPE.SUBS,});
// Listen for StoreKit updates (fires on upgrades/downgrades/refunds)NativePurchases.addListener('transactionUpdated', (transaction) => { console.log('Subscription updated:', transaction);});Umgang mit Abonnement-Änderungen
Abschnitt mit dem Titel „Umgang mit Abonnement-Änderungen“Änderungstyp erkennen
Abschnitt mit dem Titel „Änderungstyp erkennen“import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Get current subscription infoconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const currentSubscription = purchases.find( (purchase) => purchase.subscriptionState === 'subscribed',);
if (currentSubscription) { // StoreKit reports if user cancelled auto-renew if (currentSubscription.willCancel) { console.log( `User cancelled. Access remains until ${currentSubscription.expirationDate}`, ); }
if (currentSubscription.isUpgraded) { console.log('User recently upgraded to this plan.'); }}
// Listen for automatic upgrades/downgradesNativePurchases.addListener('transactionUpdated', (transaction) => { console.log('Subscription changed!', transaction); if (transaction.subscriptionState === 'revoked') { revokeAccess(); } else if (transaction.isActive) { unlockPremiumFeatures(); }});Benutzerverkehr
Abschnitt mit dem Titel „Benutzerverkehr“Klare Kommunikation über das Änderungsverhalten immer anbieten:
Bei Upgrades:
„Sie erhalten sofort Zugriff auf Premium-Funktionen. Wir berechnen Ihre aktuelle Abonnementgebühr ab.“
Bei Downgrades:
„Sie behalten bis [Erneuerungsdatum] Premium-Zugriff, dann wechseln Sie auf Standard.“
Bei Crossgrades:
„Ihr Plan wird bei der nächsten Erneuerung auf jährliche Abrechnung umgestellt am [Datum].“
Serverüberwachung
Abschnitt mit dem Titel „Serverüberwachung“Verwenden Sie Apples App Store Server Notifications v2 oder Ihren eigenen Receipt-Validierungsserver, um Änderungen von StoreKit in Ihrer Datenbank zu spiegeln. Kombinieren Sie Serverbenachrichtigungen mit der transactionUpdated Hinweis: Der Listener sorgt dafür, dass sowohl Client als auch Backend synchron bleiben.
Best Practices
Abschnitt mit dem Titel „Best Practices”Gruppenorganisation
Abschnitt mit dem Titel „Gruppenorganisation”- Halten Sie verwandte Abonnements in derselben Gruppe
- Mischen Sie keine unabhängigen Funktionen (z.B. Speicher und Werbung entfernen)
- Erstellen Sie separate Gruppen für verschiedene Funktionssets
Rangfolge-Strategie
Abschnitt mit dem Titel „Rangfolge-Strategie”- Jahrespläne → Höherer Rang als monatliche (für gleiche Ebene)
- Höherpreisige Ebenen → Höherer Rang
- Betrachten Sie den Wert, nicht nur den Preis
Benutzererfahrung
Abschnitt mit dem Titel "Benutzererfahrung"- Zeigen Sie die aktuelle Abonnement klar an
- Zeigen Sie alle verfügbaren Optionen in der Gruppe an
- Deuten Sie an, welche Änderungen sofortig vs. bei der Verlängerung sind
- Ermöglichen Sie ein einfaches Wechseln zwischen Plänen
- Testen Sie alle Upgrade-Szenarien
- Testen Sie alle Downgrade-Szenarien
- Überprüfen Sie das Verhalten bei der Kreuzgradierung
- Überprüfen Sie, ob der Webhook abgefeuert wird
Übliche Szenarien
Szenario 1: Dreistufige monatliche PläneSzenario 2: Mischdauerpläne
Kopieren Sie in die ZwischenablageLevel 1: Ultimate Monthly ($19.99)Level 2: Premium Monthly ($9.99)Level 3: Basic Monthly ($4.99)- Premium → Ultimate: Upgrade (unverzüglich)
- Ultimate → Premium: Downgrade (bei Erneuerung)
- Basic → Ultimate: Upgrade (unverzüglich)
- Szenario 1: Dreistufige monatliche Pläne
Szenario 2: Mischdauerpläne
Kopieren Sie in die ZwischenablageLevel 1: Premium Annual ($99.99/year)Level 2: Premium Monthly ($9.99/month)- Monatlich → Jahres: Crossgrade (bei Erneuerung)
- Jährlich → Monatlich: Downgrade (bei Erneuerung)
Szenario 3: Multi-Tier Multi-Dauer
Szenario 3: Multi-Tier Multi-DauerLevel 1: Ultimate Annual ($199/year)Level 2: Ultimate Monthly ($19.99/month)Level 3: Premium Annual ($99/year)Level 4: Premium Monthly ($9.99/month)Level 5: Basic Annual ($49/year)Level 6: Basic Monthly ($4.99/month)Diese Konfiguration bietet maximale Flexibilität, während sie eine klare Upgrade-/Downgrade-Logik aufrechterhält.
Problemlösung
Szenario 3: Multi-Tier Multi-DauerAbonnement erscheint nicht in der Gruppe:
- Überprüfen Sie, ob es der richtigen Gruppe zugewiesen ist
- Stellen Sie sicher, dass es sich in mindestens dem Status „Bereit zum Einreichen“ befindet
- Stellen Sie sicher, dass das Produkt-ID korrekt ist
Falsches Upgrade/Downgrade-Verhalten:
- Überprüfen Sie die Rangliste der Ebenen (1 = höchste Ebene)
- Stellen Sie sicher, dass die Abonnementebenen Sinn ergeben
- Überprüfen Sie, ob die Ebenen korrekt eingestellt sind
Produkte aus verschiedenen Gruppen:
- Benutzer können gleichzeitig mehrere Gruppen abonnieren
- Dies ist absichtlich - Halten Sie verwandte Produkte in derselben Gruppe
getActiveProducts zeigt mehrere Abonnements an:
- Überprüfen Sie, ob die Abonnements in verschiedenen Gruppen sind
- Stellen Sie sicher, dass der Benutzer nicht über Family Sharing abonniert ist
- Überprüfen Sie den Abonnementstatus in App Store Connect
Zusätzliche Ressourcen
Abschnitt mit dem Titel „Zusätzliche Ressourcen”Für weitere Details, beziehen Sie sich auf die offizielle Apple-Dokumentation zu Abonnementgruppen.
Weitermachen von Erstellen Sie eine iOS-Abonnementgruppe
Abschnitt mit dem Titel „Weitermachen von Erstellen Sie eine iOS-Abonnementgruppe”Wenn Sie die Erstellen Sie eine iOS-Abonnementgruppe Verwenden, um die Genehmigung im App Store und die Verteilung zu planen, verbinden Sie es mit Mit @capgo/native-purchases für die native Fähigkeit in Mit @capgo/native-purchases, Mit @capgo/capacitor-In-App-Bewertung für die Implementierungsdetails in @capgo/capacitor-in-app-Bewertung, Mit @capgo/capacitor-in-app-Bewertung für die native Fähigkeit in Mit @capgo/capacitor-in-app-Bewertung, @capgo/capacitor-native-Markt für die Implementierungsdetails in @capgo/capacitor-native-Markt und Mit @capgo/capacitor-native-Markt für die native Fähigkeit in Mit @capgo/capacitor-native-Markt.