Buat Kelompok Langganan iOS
Copas prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Kelompok langganan sangat penting untuk mengorganisir dan mengelola tingkat langganan berbeda dalam aplikasi iOS Anda. Memahami cara kerjanya sangat penting untuk menerapkan fungsi upgrade, downgrade, dan crossgrade.
Apa itu Kelompok Langganan?
Judul bagian “Apa itu Kelompok Langganan?”Kelompok langganan adalah kumpulan langganan terkait yang pengguna dapat memilih di antara mereka. Pengguna hanya dapat berlangganan satu langganan dalam satu kelompok pada satu waktu. Ketika mereka berganti langganan, Apple akan mengelola transisi secara otomatis.
Mengapa Kelompok Langganan Penting
Judul bagian “Mengapa Kelompok Langganan Penting”Kelompok langganan memungkinkan:
- Harga berjenjang: Tawarkan rencana dasar, premium, dan ultimate
- : Pilihan opsi bulanan, tahunan, dan seumur hidup: Pengelolaan otomatis perubahan langganan
- : Pengelolaan yang lebih sederhana: Kumpulkan langganan terkait bersama
- Kelompok langganan memungkinkan pengguna untuk menawarkan berbagai opsi langganan yang sesuai dengan kebutuhan mereka.Pengguna dapat memilih langganan yang sesuai dengan kebutuhan mereka dan mengelola langganan mereka dengan lebih mudah.
Tingkat Langganan
Judul Bagian “Tingkat Langganan”Dalam sebuah kelompok, setiap langganan harus dinilai dari nilai tertinggi (tingkat 1) hingga nilai terendah. Peringkat ini menentukan bagaimana perubahan langganan diklasifikasikan:

Contoh Tingkat
Judul Bagian “Contoh Tingkat”Tingkat 1 (Nilai Tertinggi)
- Premium Tahunan ($99,99/tahun)
- Ultimate Bulanan ($19,99/bulan)
Tingkat 2 (Nilai Menengah)
- Tahunan Standar ($49,99/tahun)
- Bulanan Premium ($9,99/bulan)
Level 3 (Nilai Terendah)
- Tahunan Dasar ($29,99/tahun)
- Bulanan Standar ($4,99/bulan)
Jenis Perubahan Langganan
Judul Bagian “Jenis Perubahan Langganan”Apple secara otomatis mengelola tiga jenis perubahan langganan berdasarkan peringkat level:
1. Upgrade
Mengalihkan keMengalihkan ke tingkat lebih tinggi langganan (misalnya, level 2 → level 1).
Tindakan:
- Berlaku langsung
- Pengguna menerima pengembalian sebagian uang untuk waktu yang tersisa
- Langganan baru dimulai segera
Contoh:
// User currently has: Standard Monthly (Level 2)// User upgrades to: Premium Annual (Level 1)// Result: Immediate access to Premium, refund for unused Standard time2. Menurun
Bagian berjudul “2. Menurunkan Level”Mengalihkan ke langganan kelas lebih rendah (misalnya, level 1 → level 2). Sifat:
Mulai berlaku pada
- tanggal ulang berikutnya Pengguna tetap mempertahankan langganan saat ini hingga periode berakhir
- Langganan baru akan dimulai secara otomatis setelah berakhirnya periode
- Contoh:
Salin ke clipboard
// User currently has: Premium Annual (Level 1)// User downgrades to: Standard Monthly (Level 2)// Result: Premium access continues until annual renewal date, then switches__CAPGO_KEEP_0__
Bagian berjudul “3. Crossgrade”Mengganti ke langganan lainnya di tingkat yang sama.
Sikap tergantung pada durasi:
Durasi Berbeda → Berperilaku seperti downgrade
- Berlaku pada tanggal jatuh tempo berikutnya
- Contoh: Premium Bulanan (Tingkat 1) → Premium Tahunan (Tingkat 1)
Durasi Sama → Berperilaku seperti upgrade
- Berlaku segera
- Contoh: Premium Bulanan (Level 1) → Ultimate Bulanan (Level 1)
Membuat Kelompok Langganan
Judul bagian “Membuat Kelompok Langganan”-
Navigasikan ke Langganan
Di App Store Connect, pilih aplikasi Anda dan pergi ke Monetize > Langganan.
-
Buat Kelompok
Klik + di samping “Kelompok Langganan” untuk membuat kelompok baru.
-
Berikan Nama Kelompok
Pilih nama yang deskriptif yang merefleksikan langganan yang terkandung:
- Akses Premium
- Rencana Penyimpanan Cloud
- Fitur Pro
-
Tambahkan Langganan
Setelah membuat kelompok, tambahkan langganan individu ke dalamnya. Setiap langganan akan memiliki peringkat tingkat.
-
Atur Peringkat Tingkat
Susun langganan dari nilai tertinggi (1) ke nilai terendah. Pertimbangkan:
- Rencana tahunan biasanya memiliki peringkat lebih tinggi daripada rencana bulanan
- Tingkat harga yang lebih tinggi berada di atas tingkat harga yang lebih rendah
- Tingkat ultimate/premium memiliki peringkat tertinggi
Menggunakan di Aplikasi Anda
Bagian berjudul “Menggunakan di Aplikasi Anda”Plugin native-purchases secara otomatis mengelola logika kelompok langganan:
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);});Mengatasi Perubahan Langganan
Judul Bagian “Mengatasi Perubahan Langganan”Mendeteksi Tipe Perubahan
Judul Bagian “Mendeteksi Tipe Perubahan”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(); }});Komunikasi Pengguna
Judul Bagian “Komunikasi Pengguna”Selalu komunikasikan perilaku perubahan dengan jelas:
Untuk Pengupgrade:
“Anda akan mendapatkan akses langsung ke fitur Premium. Kami akan menghitung ulang langganan Anda saat ini.”
Untuk Penurunan Versi:
“Anda akan tetap memiliki akses Premium hingga [tanggal perpanjangan], kemudian beralih ke Standar.”
Untuk Perubahan Jenis Paket:
“Rencana Anda akan berubah ke pembayaran Tahunan pada perpanjangan berikutnya pada [tanggal].”
Pengawasan Server
Judul bagian “Pengawasan Server”Gunakan Apple’s App Store Server Notifications v2 atau backend validasi bukti pembelian Anda sendiri untuk menggambarkan perubahan StoreKit di database Anda. Pasang notifikasi server dengan transactionUpdated listener sehingga klien dan backend tetap sinkron.
Praktik Terbaik
Judul bagian “Praktik Terbaik”Organisasi Grup
Judul bagian “Organisasi Grup”- Tetapkan langganan terkait di dalam kelompok yang sama
- Jangan campurkan fitur yang tidak terkait (misalnya penyimpanan dan penghapusan iklan)
- Buat kelompok terpisah untuk setiap set fitur
Strategi Peringkat Level
Judul Bagian “Strategi Peringkat Level”- Rencana tahunan → Lebih tinggi daripada rencana bulanan (untuk tingkat yang sama)
- Tingkat harga yang lebih tinggi → Lebih tinggi
- Perhatikan nilai, bukan hanya harga
Pengalaman Pengguna
Judul Bagian “Pengalaman Pengguna”- Tampilkan langganan saat ini secara jelas
- Tampilkan semua pilihan yang tersedia di kelompok
- Tunjukkan perubahan mana yang langsung vs. pada masa perbaharuan
- Biarkan pengguna dapat berganti dengan mudah antar paket
Pengujian
Bagian berjudul “Pengujian”- Uji semua skenario peningkatan
- Uji semua skenario penurunan
- Verifikasi perilaku crossgrade
- Periksa kejadian webhook
Skenario Umum
Bagian berjudul “Skenario Umum”Skenario 1: Tiga-Tingkat Paket Bulanan
Bagian berjudul “Skenario 1: Tiga-Tingkat Paket Bulanan”Level 1: Ultimate Monthly ($19.99)Level 2: Premium Monthly ($9.99)Level 3: Basic Monthly ($4.99)- Basic → Premium: Naikkan (langsung)
- Premium → Ultimate: Naikkan (langsung)
- Ultimate → Premium: Turunkan (pada perpanjangan)
- Basic → Ultimate: Naikkan (langsung)
Skenario 2: Paket Durasi Campuran
Bagian berjudul “Skenario 2: Paket Durasi Campuran”Level 1: Premium Annual ($99.99/year)Level 2: Premium Monthly ($9.99/month)- Bulanan → Tahunan: Crossgrade (pada perpanjangan)
- Tahunan → Bulanan: Turunkan (pada perpanjangan)
Skenario 3: Multi-Tier Multi-Durasi
Bagian berjudul “Skenario 3: Multi-Tier Multi-Durasi”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)Konfigurasi ini menyediakan fleksibilitas maksimum sambil tetap menjaga logika upgrade/turun yang jelas.
Pengaturan Masalah
Bagian berjudul “Pengaturan Masalah”Langganan tidak muncul di grup:
- Pastikan sudah diassign ke grup yang benar
- Periksa statusnya minimal “Siap Kirim”
- Pastikan ID produknya benar
Pengaturan upgrade/turun yang salah:
- Periksa ranking level (1 = tertinggi)
- Pastikan tingkatan langganan masuk akal
- Periksa apakah level sudah diatur dengan benar
Produk dari berbagai kelompok:
- Pengguna dapat berlangganan ke berbagai kelompok secara bersamaan
- Hal ini sengaja - jaga produk terkait di kelompok yang sama
getActiveProducts menampilkan berlangganan beberapa:
- Periksa apakah berlangganan ada di kelompok yang berbeda
- Verifikasi pengguna tidak berlangganan melalui Family Sharing
- Tinjau status berlangganan di App Store Connect
Sumber Daya Tambahan
Bagian berjudul “Sumber Daya Tambahan”Untuk informasi lebih lanjut, lihat dokumentasi resmi Apple tentang kelompok berlangganan.