Erstellen Sie eine iOS-Abonnementgruppe
Ein Setup-Vorschlag kopieren mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für diesen Plugin.
Abonnementgruppen sind für die Organisation und Verwaltung mehrerer Abonnementebenen in Ihrer iOS-Anwendung unerlässlich. Um die Funktionalität zur Implementierung von Upgrade, Downgrade und Crossgrade zu verstehen, ist es entscheidend, wie sie funktionieren.
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. Die Benutzer können nur ein Abonnement innerhalb einer Gruppe gleichzeitig abonnieren. Wenn sie das Abonnement wechseln, übernimmt Apple die Übergabe automatisch.
Warum Abonnementgruppen wichtig sind
Abschnitt mit dem Titel „Warum Abonnementgruppen wichtig sind“Abonnement-Gruppen ermöglichen:
- Stufengerechte Preise: Grundlegende, Premium- und Ultimate-Pläne anbieten
- Differente Laufzeiten: Monatliche, jährliche und lebenslange Optionen
- Upgrade-/Downgrade-Logik: Automatisches Handling von Abonnement-Änderungen
- Einfache Verwaltung: Gruppieren Sie verwandte Abonnements
Abonnementebenen
Abschnitt mit dem Titel “Abonnementebenen”Innerhalb einer Gruppe sollte jeder Abonnementrang von höchster Wert (Ebene 1) bis niedrigster Wert gerankt werden. Diese Rangfolge bestimmt, wie Abonnement-Änderungen klassifiziert werden:

Beispiel-Level
Abschnitt mit dem Titel "Beispiel-Level"Level 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)
- Grundlegende jährliche Abonnement (29,99 €/Jahr)
- Standardmonatliches Abonnement (4,99 €/Monat)
Abonnementänderungstypen
Abschnitt mit dem Titel „Abonnementänderungstypen“Apple handhabt drei Arten von Abonnementänderungen automatisch, basierend auf der Rangfolge der Abonnementebenen:
1. Aktualisieren
Abschnitt mit dem Titel „1. Upgrade“Auf ein höheres Abonnement (z.B. Ebene 2 → Ebene 1).
Verhalten:
- Wird wirksam sogleich
- Der Benutzer erhält eine anteilige Rückerstattung 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 einer unteren Ebene Abonnement (z.B. Level 1 → Level 2).
Verhalten:
- Wirksamkeit ab nächster Rennovierungsdatum
- Benutzer behält aktuelles Abonnement bis zum Ende der Laufzeit bei
- Neues Abonnement startet 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. Upgrade
Abschnitt mit dem Titel „3. Crossgrade“Umschalten auf ein anderes Abonnement auf derselben Ebene.
Verhalten hängt von der Dauer ab:
Verschiedene Dauer → Verhält sich wie heruntergradieren
- Wirkt sich am nächsten Erneuerungsdatum aus
- Beispiel: Monatliches Premium (Level 1) → Jährliches Premium (Level 1)
Selbe Dauer → Verhält sich wie aufbauen
- Wirkt sich sofort aus
- Beispiel: Premium Monatlich (Level 1) → Ultimate Monatlich (Level 1)
Erstellung einer Abonnementgruppe
Abschnitt mit dem Titel “Eine Abonnementgruppe erstellen”-
Navigieren Sie zu Abonnements
In App Store Connect wählen Sie Ihr App und gehen Sie zu Monetarisieren > Abonnements.
-
Gruppe erstellen
Klicken Sie + nächstes zu “Abonnementgruppen” um eine neue Gruppe zu erstellen.
-
Gruppenname
Wählen Sie einen beschreibenden Namen, der die darin enthaltenen Abonnements widerspiegelt:
- “Premium-Zugang”
- “Cloud-Speicherkonzepte”
- “Pro-Funktionen”
-
Zusätzliche Abonnements hinzufügen
Nachdem Sie die Gruppe erstellt haben, fügen Sie individuelle Abonnements hinzu. Jedes Abonnement wird eine Rangfolge haben.
-
Rangfolgen für Abonnements einstellen
Ordne Abonnements von höchster (1) bis niedrigster Wert an. Beachte:
- Jährliche Pläne rangieren höher als monatliche
- Höherpreisige Ebenen stehen über niedrigerpreisigen
- Ultimative/Premium-Ebenen rangieren am höchsten
Verwendung in Ihrer App
Abschnitt mit dem Titel „Verwendung in Ihrer App“Der native-purchases-Plugin verwaltet die Abonnementgruppenlogik 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);});Abonnementänderungen bearbeiten
Abschnitt mit dem Titel „Verwaltung von 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“Kommunizieren Sie die Änderung des Verhaltens immer klar:
Bei Upgrade:
„Sie erhalten sofortigen Zugriff auf Premium-Funktionen. Wir berechnen Ihre aktuelle Abonnementraten.“
Bei Downgrade:
„Sie behalten den Zugriff auf Premium-Funktionen bis [Renewal-Datum], dann wechseln Sie auf Standard.“
Bei Crossgrade:
“Ihre Abonnementpläne werden bei der nächsten Verlängerung auf jährliche Abrechnung umgestellt.”
Serverüberwachung
Abschnitt: ServerüberwachungVerwenden Sie Apples App Store Server Notifications v2 oder Ihren eigenen Receipt-Validierungsserver, um Änderungen in StoreKit in Ihrer Datenbank zu spiegeln. Paaren Sie Serverbenachrichtigungen mit dem transactionUpdated Hören Sie so, dass sowohl Client als auch Backend synchron bleiben.
Gute Praktiken
Abschnitt: Gute PraktikenGruppenorganisation
Abschnitt: Gruppenorganisation- Halten Sie verwandte Abonnements in derselben Gruppe
- Mischen Sie keine unabhängigen Funktionen (z.B. Speicher und Werbungserlösung)
- Erstellen Sie separate Gruppen für verschiedene Funktionssets
Ebenen-Ranking-Strategie
Abschnitt mit dem Titel „Ebenen-Ranking-Strategie“- Jahrespläne → Höherer Stufe als monatlich (für gleiche Ebene)
- Höherpreisige Ebenen → Höherer Stufe
- Betrachten Sie den Wert, nicht nur den Preis
Benutzererfahrung
Abschnitt mit dem Titel „Benutzererfahrung“- Zeige aktuelle Abonnement klar an
- Zeigen Sie alle verfügbaren Optionen in der Gruppe an
- Zeigen Sie an, welche Änderungen sofort vs. bei der Verlängerung erfolgen.
- Einfache Wechsel zwischen Tarifen ermöglichen
- Alle Upgrade-Szenarien testen
- Alle Downgrade-Szenarien testen
- Verifiziere das Verhalten bei Crossgrade
- Überprüfe das Auslösen von Webhooks
Gemeinsame Szenarien
Abschnitt mit dem Titel “Gemeinsame Szenarien”Szenario 1: Dreistufige monatliche Pläne
Abschnitt mit dem Titel “Szenario 1: Dreistufige monatliche Pläne”Level 1: Ultimate Monthly ($19.99)Level 2: Premium Monthly ($9.99)Level 3: Basic Monthly ($4.99)- Basic → Premium: Upgrade (unverzüglich)
- Premium → Ultimate: Upgrade (unverzüglich)
- Ultimativ → Premium: Downgraden (bei Erneuerung)
- Basic → Ultimativ: Upgrade (unverzüglich)
Szenario 2: Mischung von Dauertarifen
Abschnitt mit dem Titel „Szenario 2: Mischung von Dauertarifen“Level 1: Premium Annual ($99.99/year)Level 2: Premium Monthly ($9.99/month)- Monatlich → Jahres: Crossgrade (bei Erneuerung)
- Jährlich → Monatlich: Downgraden (bei Erneuerung)
Szenario 3: Mehrstufige Dauertarife
Abschnitt mit dem Titel „Szenario 3: Mehrstufige Dauertarife“Level 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- und Downgradelogik klar bleibt.
Fehlersuche
Abschnitt mit dem Titel ‘Fehlersuche’Abonnement erscheint nicht in der Gruppe:
- Überprüfen Sie, ob es der richtigen Gruppe zugewiesen ist
- Check that it’s in at least “Ready to Submit” status
- Stellen Sie sicher, dass die Produkt-ID korrekt ist
Falsches Upgrade-/Downgrade-Verhalten:
- Bewertungsstufen (1 = höchste)
- Überprüfen Sie, ob die Abonnementebenen Sinn ergeben
- Check that levels are set correctly
Produkte aus verschiedenen Gruppen:
- Benutzer können gleichzeitig mehrere Gruppen abonnieren
- Dies ist beabsichtigt – Halten Sie verwandte Produkte in derselben Gruppe
getActiveProducts zeigt mehrere Abonnements an:
- Überprüfen Sie, ob die Abonnements in verschiedenen Gruppen sind
- Überprüfen Sie, ob der Benutzer über Family Sharing abonniert ist
- Überprüfen Sie den Abonnementstatus in App Store Connect
Zusätzliche Ressourcen
Abschnitt mit dem Titel „Zusätzliche Ressourcen“Zur weiteren Information beziehen Sie sich auf die offizielle Apple-Dokumentation zu Abonnementgruppen.
Fahren Sie mit der Erstellung einer iOS-Abonnementgruppe fort
Abschnitt mit dem Titel „Fahren Sie mit der Erstellung einer iOS-Abonnementgruppe fort“Wenn Sie die Erstellung einer iOS-Abonnementgruppe verwenden um die Lagergenehmigung 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, Verwendung von @capgo/capacitor-In-App-Bewertung für die Implementierungsdetail in @capgo/capacitor-native-market, und Mit @capgo/capacitor-native-market für die native Fähigkeit in Mit @capgo/capacitor-native-market Verwendung von @capgo/capacitor-native-market für die native Fähigkeit in Verwendung von @capgo/capacitor-native-market.