Erstellen Sie eine iOS-Abonnementgruppe
Eine Einrichtungshinweis mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin kopieren.
Abonnementsgruppen 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 Abonnementsgruppe?
Abschnitt mit dem Titel “Was ist eine Abonnementsgruppe?”Ein Abonnementsgruppe ist eine Sammlung von verwandten Abonnements, zwischen denen sich die Benutzer wählen können. Die Benutzer können nur ein Abonnement innerhalb einer Gruppe gleichzeitig abonnieren. Wenn sie das Abonnement wechseln, übernimmt Apple die Übergabe automatisch.
Werden Abonnementsgruppen genutzt?
Abschnitt mit dem Titel “Warum sind Abonnementsgruppen wichtig?”Abonnementsgruppen ermöglichen:
- Stufenweise PreisgestaltungAngebot von Grund-, Premium- und Ultimate-Plänen
- Verschiedene Laufzeiten: Monatlich, jährlich und lebenslang
- Upgrade/Downgradelogik: Automatische Verwaltung von Abonnementänderungen
- Einfache Verwaltung: Gruppieren Sie verwandte Abonnements zusammen
Abonnementebenen
Abschnitt mit dem Titel “Abonnementebenen”Innerhalb einer Gruppe sollten jedes Abonnement nach Wertigkeit von höchster (Ebene 1) bis niedrigster Wertigkeit rangiert werden. Diese Rangfolge bestimmt, wie Abonnementänderungen 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 handhabt automatisch drei Arten von Abonnementänderungen basierend auf der Rangfolge:
1. Upgrade
Abschnitt mit dem Titel “1. Upgrade”Auf ein höheres Abonnement (z. B. level 2 → level 1).
Verhalten:
- Wird sofort wirksam Der Benutzer erhält
- eine anteilige Rückerstattung Abschnitt mit dem Titel “Abonnementänderungstypen” für verbleibende Zeit
- 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 Titel „2. Downgrade“Wechsel zu einem unteren-Tarif Abonnement (z.B. Level 1 → Level 2).
Verhalten:
- Wird am nächsten Erneuerungsdatum
- 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“Zu einem anderen Abonnement wechseln auf derselben Ebene.
Das Verhalten hängt von der Laufzeit ab:
Eine andere Laufzeit → Verhält sich wie eine Downgrade
- 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" Wirksam bei der nächsten Erneuerungsdatum.
-
Gruppen erstellen
Klicken Sie + Klicken Sie auf "Abonnementgruppen" und erstellen Sie eine neue Gruppe.
-
Gruppenbezeichnung
Wählen Sie einen beschreibenden Namen, der die darin enthaltenen Abonnements widerspiegelt:
- „Premium-Zugang“
- „Cloud-Speicherkonzepte“
- „Pro-Funktionen“
-
Abonnements hinzufügen
Nachdem Sie die Gruppe erstellt haben, fügen Sie einzelne Abonnements hinzu. Jedes Abonnement erhält eine Rangstufe.
-
Rangstufen festlegen
Ordnen Sie die Abonnements von höchster (1) bis niedrigster Wertigkeit an. Überlegen Sie:
- Jährliche Pläne rangieren typischerweise höher als monatliche
- Höherpreisige Ebenen rangieren über niedrigerpreisige
- Ultimate/ Premium-Ebenen rangieren höchst
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(); }});Benutzerkommunikation
Sektion BenutzerkommunikationKommunizieren Sie das Änderungsverhalten immer klar:
Für Upgrades:
"Sie erhalten sofort Zugriff auf Premium-Funktionen. Wir berechnen Ihre aktuelle Abonnementgebühr."
Für Downgrades:
"Sie behalten Premium-Zugriff bis [Erneuerungsdatum], dann wechseln Sie auf Standard."
Für Crossgrades:
"Ihr Plan wird auf jährliche Abrechnung umgestellt, sobald die nächste Erneuerung auf [Datum] erfolgt."
Serverüberwachung
Sektion ServerüberwachungVerwenden Sie Apples App Store Server Notifications v2 oder Ihren eigenen Receipt-Validierungsserver, um Änderungen von StoreKit in Ihrer Datenbank zu spiegeln. Paaren Sie Serverbenachrichtigungen mit dem transactionUpdated listener, damit sowohl Client als auch Backend im Einklang bleiben.
Best Practices
Sektion "Best Practices"Gruppenorganisation
Sektion "Gruppenorganisation"- Halten Sie verwandte Abonnements in derselben Gruppe.
- Mischen Sie keine unabhängigen Funktionen (z.B. Speicher und Werbungserlöschung).
- Erstellen Sie separate Gruppen für verschiedene Funktionssets.
Niveaustufige Rangstrategie
Sektion "Niveaustufige Rangstrategie"- Jahrespläne → Höherer Level als monatliche (für gleiche Ebene)
- Höherpreisige Ebenen → Höherer Level
- 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 sofort vs. bei der Verlängerung erfolgen
- 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
- Wenn Webhook ausgelöst wird
Häufige Szenarien
Überblick über häufige SzenarienSzenario 1: Dreistufige monatliche Pläne
Überschrift: Szenario 1: Dreistufige monatliche PläneLevel 1: Ultimate Monthly ($19.99)Level 2: Premium Monthly ($9.99)Level 3: Basic Monthly ($4.99)- Basic → Premium: Sofortige Upgrade
- Premium → Ultimate: Sofortige Upgrade
- Ultimate → Premium: Abstufung bei Verlängerung
- Basic → Ultimate: Sofortige Upgrade
Szenario 2: Mischung aus Plänen unterschiedlicher Laufzeit
Überschrift: Szenario 2: Mischung aus Plänen unterschiedlicher LaufzeitLevel 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
Überschrift: 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 die Upgrade-/Downgrade-Logik klar bleibt.
Fehlersuche
Überschrift: FehlersucheAbonnement nicht in der Gruppe sichtbar:
- Überprüfen Sie, ob es der richtigen Gruppe zugewiesen ist
- Stellen Sie sicher, dass es sich in mindestens dem Status „Zur Übermittlung bereit“ befindet
- Stellen Sie sicher, dass die 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 bewusst - Halten Sie verwandte Produkte in derselben Gruppe
getActiveProducts zeigt mehrere Abonnements an:
- Überprüfen Sie, ob die Abonnements in verschiedenen Gruppen liegen
- 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”Weitere Informationen finden Sie in der offiziellen Apple-Dokumentation zu Abonnementgruppen.
Weitergehen von Create iOS Subscription Group
Abschnitt mit dem Titel “Weitergehen von Create iOS Subscription Group”Wenn Sie “Create iOS Subscription Group” verwenden Create iOS Subscription Group um den Store-Bewilligung und -Verteilung zu planen, verbinden Sie es mit Mit @capgo/native-purchases für die native Fähigkeit in Mit @capgo/native-purchases, @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