Lompat ke Konten

Membuat Langganan Auto-Renewable iOS

GitHub

Langganan berbayar otomatis memberikan akses berulang ke konten, layanan, atau fitur premium di aplikasi iOS Anda. Panduan ini akan membawa Anda melalui membuat langganan di App Store Connect.

Langganan berbayar otomatis secara otomatis diperbarui pada akhir setiap periode pembayaran hingga pengguna membatalkan. Mereka sangat cocok untuk:

  • Konten dan fitur premium
  • Pengalaman tanpa iklan
  • Penyimpanan dan sinkronisasi cloud
  • Layanan streaming
  • Alat dan utilitas profesional

Sebelum membuat langganan, Anda harus:

  1. Membuat kelompok langganan untuk mengorganisir langganan Anda
  2. Memiliki keanggotaan aktif Program Pengembang Apple
  3. Mengisi informasi keuangan dan pajak di App Store Connect
  1. Navigasikan ke Langganan

    Pilih aplikasi Anda di App Store Connect dan pergi ke Monetize > Langganan.

    Pilih kelompok langganan Anda atau buat yang baru jika diperlukan.

    Navigasikan ke langganan

  2. Membuat Langganan Baru

    Klik ikon + di samping kelompok langganan Anda untuk menambahkan langganan baru.

  3. Masukkan Informasi Dasar

    Nama ReferensiNama Deskriptif untuk Pengguna Internal (tidak ditampilkan kepada pelanggan)

    • Contoh: “Premium Bulanan”, “Ultimate Tahunan”, “Rencana Dasar”

    ID Produk: Identifikasi Unik untuk Langganan Ini (tidak dapat diubah kemudian)

    • Format: com.yourcompany.yourapp.premium_monthly
    • Pilih nama yang deskriptif dan kecil dengan menggunakan garis bawah
    • Diperlukan untuk mengonfigurasi plugin pembelian native

    Masukkan Detail Langganan

  4. Konfigurasi Durasi

    Pilih durasi langganan dari opsi yang tersedia:

    • 1 minggu
    • 1 bulan
    • 2 bulan
    • 3 bulan
    • 6 bulan
    • 1 tahun

    Durasi menentukan berapa sering pengguna dikenakan tagihan.

  5. Konfigurasi Harga

    Klik Tambahkan Harga Langganan untuk mengatur harga:

    Wilayah Dasar: Pilih pasar utama Anda (biasanya negara Anda)

    Harga: Tentukan harga langganan

    • Apple secara otomatis mengubah ke mata uang lain
    • Pilih dari tingkat harga Apple
    • Perhatikan nilai yang dipahami dan tarif pasar

    Konfigurasi harga

  6. Pengaturan Keluarga (Opsional)

    Putuskan apakah untuk mengaktifkan Pengaturan Keluarga, yang memungkinkan hingga 6 anggota keluarga untuk mengakses langganan.

    Aktifkan jika:

    • Konten sesuai untuk penggunaan keluarga
    • Anda ingin meningkatkan nilai proporsional
    • Model bisnis Anda mendukung hal ini

    Jangan aktifkan jika:

    • Langganan hanya untuk penggunaan individu
    • Konten disesuaikan untuk pengguna
    • Anda ingin memaksimumkan pendapatan per pengguna
  7. Tambahkan Lokalisasi

    Tambahkan informasi tampilan langganan dalam semua bahasa yang didukung aplikasi Anda:

    Nama Langganan: Nama yang ditampilkan kepada pelanggan (misalnya, "Premium Bulanan")

    : Deskripsi singkat tentang apa yang termasuk dalam langganan: Deskripsi singkat tentang apa yang termasuk dalam langganan

    • Tetapkan ringkas dan fokus pada manfaat
    • Sebutkan fitur utama
    • Tunjukkan proporsi nilai

    Tambahkan lokal

  8. Gambar Promosi App Store (Opsional)

    Unggah gambar promosi untuk langganan ini (312x390 piksel):

    • Tampil di halaman langganan App Store
    • Harus sesuai dengan desain aplikasi Anda
    • Termasuk nama langganan untuk kejelasan
  9. Simpan dan Kirimkan

    Klik Simpan untuk membuat langganan.

    Untuk Langganan Pertama:

    • Wajib dikirim bersama dengan versi aplikasi baru
    • Termasuk dalam pengajuan App Store berikutnya
    • Tidak dapat dikirimkan secara independen

    Untuk Langganan Selanjutnya:

    • Dapat dikirimkan langsung dari halaman Langganan
    • Tidak memerlukan versi aplikasi baru
    • tersedia setelah langganan pertama disetujui

Status keanggotaan Anda akan memiliki salah satu status berikut:

StatusDeskripsiBisa Uji?
Kurang MetadataPengaturan tidak lengkapYa (sandbox)
Siap DikirimSudah lengkap tapi belum dikirimYa (sandbox)
Menunggu UlasanDitayangkan ke AppleYa (sandbox)
Dalam UlasanSedang diulas oleh AppleYa (sandbox)
DisetujuiTersedia untuk dibeliYa
DitolakPerlu perubahanYa (sandbox)

Setelah dibuat, referensi langganan di aplikasi Anda menggunakan ID produk:

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch subscription products direct from StoreKit
const { products } = await NativePurchases.getProducts({
productIdentifiers: [
'com.yourcompany.yourapp.premium_monthly',
'com.yourcompany.yourapp.premium_annual',
],
productType: PURCHASE_TYPE.SUBS,
});
products.forEach((product) => {
console.log(`${product.title}: ${product.priceString}`);
console.log(`Duration: ${product.subscriptionPeriod}`);
console.log(`Description: ${product.description}`);
});
// Purchase a subscription (StoreKit 2 automatically handles intro pricing and offers)
try {
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'com.yourcompany.yourapp.premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Transaction ID:', transaction.transactionId);
// StoreKit receipts are included on iOS for server-side validation
await sendReceiptToBackend(transaction.receipt);
} catch (error) {
console.error('Purchase failed:', error);
}
// Check subscription status using the store's data
const { purchases } = await NativePurchases.getPurchases({
productType: PURCHASE_TYPE.SUBS,
});
const premium = purchases.find(
(purchase) => purchase.productIdentifier === 'com.yourcompany.yourapp.premium_monthly',
);
if (premium?.isActive) {
console.log('Expires:', premium.expirationDate);
console.log('Will renew:', premium.willCancel === false);
console.log('Store state:', premium.subscriptionState);
unlockPremiumFeatures();
} else {
showPaywall();
}

Langganan Bulanan dengan Komitmen 12-Bulan

Judul Bagian “Langganan Bulanan dengan Komitmen 12-Bulan”

Jika langganan App Store Connect Anda dikonfigurasi dengan rencana pembayaran bulanan dan komitmen 12 bulan, StoreKit dapat mengembalikan istilah harga tambahan untuk produk tersebut. Gunakan istilah-istilah tersebut untuk menampilkan biaya bulanan, harga komitmen total, dan periode komitmen penuh sebelum pembelian.

const yearlyProduct = products.find(
(product) => product.identifier === 'com.yourcompany.yourapp.premium_annual',
);
const monthlyCommitment = yearlyProduct?.pricingTerms?.find(
(term) => term.billingPlanType === 'monthly',
);
if (yearlyProduct && monthlyCommitment) {
console.log('Monthly charge:', monthlyCommitment.billingDisplayPrice);
console.log('Total commitment:', monthlyCommitment.commitmentInfo?.priceString);
await NativePurchases.purchaseProduct({
productIdentifier: yearlyProduct.identifier,
productType: PURCHASE_TYPE.SUBS,
billingPlanType: 'monthly',
});
}

Untuk alur pembayaran penuh dan hak akses, lihat Rencana Tagihan Bulanan iOS.

  • Rencana Bulanan: Penghalang masuk yang lebih rendah, membentuk kebiasaan
  • Rencana Tahunan: Nilai yang lebih baik, LTV yang lebih tinggi, churn yang lebih rendah
  • Tingkat Ganda: Dasar, Premium, Ultimate untuk segmen pengguna yang berbeda
  • Analisis KompetitifPenelitian aplikasi serupa harga
  • Gunakan penamaan konsisten: company.app.tier_duration
  • Termasuk tingkat dan durasi dalam ID: premium_monthly, ultimate_annual
  • Hindari mengubah ID produk (mereka permanen)
  • Dokumentasikan semua ID produk untuk tim Anda
  • Aktifkan untuk aplikasi keluarga (permainan, pendidikan, hiburan)
  • Perhatikan dampak pada pendapatan
  • Uji perilaku berbagi secara menyeluruh
  • Komunikasikan kemampuan berbagi di pemasaran
  • Terjemahkan semua nama dan deskripsi langganan
  • Perhatikan perbedaan harga regional
  • Uji tampilan di semua bahasa yang didukung
  • Gunakan bahasa pemasaran yang sesuai dengan budaya
  • Tetapkan gaya visual yang konsisten
  • Termasuk nama langganan dan keuntungan utama
  • Perbarui untuk promosi musiman
  • Match desain bahasa aplikasi secara keseluruhan
Free App + Premium Subscription
- Basic: Free (limited features)
- Premium Monthly: $4.99
- Premium Annual: $39.99 (save 33%)

Tingkat Multi (Baik, Lebih Baik, Terbaik)

Judul Bagian “Tingkat Multi (Baik, Lebih Baik, Terbaik)”
- Basic Monthly: $4.99
- Premium Monthly: $9.99
- Ultimate Monthly: $19.99
- Basic Annual: $49.99
- Premium Annual: $99.99
- Ultimate Annual: $199.99
- Credit packs (consumable)
- Monthly subscription (unlimited credits)
- Annual subscription (unlimited + bonus features)

Pengaturan Langganan Tidak Terisi di Aplikasi:

  • Pastikan ID Produk Sama Persis (sensitif terhadap huruf besar/kecil)
  • Periksa apakah langganan masuk dalam kelompok langganan
  • Pastikan identifikasi paket sama dengan App Store Connect
  • Tunggu 2-3 jam setelah membuat produk

Tidak Bisa Mengirimkan Langganan:

  • Selesaikan semua bidang yang wajib (nama, deskripsi, harga)
  • Tambahkan setidaknya satu lokal
  • Pastikan informasi perbankan/pajak disetujui
  • Periksa apakah langganan pertama (memerlukan versi aplikasi)

Toggle Berbagi Keluarga diblokir:

  • Sudah diaktifkan (tidak dapat dinonaktifkan)
  • Periksa detail langganan
  • Hubungi Dukungan Apple jika terjebak

Tingkat harga tidak tersedia:

  • Mungkin dibatasi di beberapa wilayah
  • Pilih tingkat alternatif
  • Hubungi Apple untuk pertanyaan harga

“ID Produk Tidak Valid” error:

  • Harus dalam format domain yang dibalik
  • Tidak dapat berisi spasi atau karakter khusus
  • Periksa penulisan yang salah
  • Pastikan unik secara keseluruhan di semua produk

Sumber Daya Tambahan

Sumber Daya Tambahan

Untuk informasi lebih lanjut, silakan lihat dokumentasi resmi Apple tentang langganan yang dapat diperbarui secara otomatis.

Lanjutkan dari Membuat Langganan Auto-Renewable iOS

Judul Bagian “Lanjutkan dari Membuat Langganan Auto-Renewable iOS”

Jika Anda menggunakan Membuat Langganan Auto-Renewable iOS untuk merencanakan persetujuan toko dan distribusi, hubungkan dengan Menggunakan @capgo/native-purchases untuk kemampuan native di Menggunakan @capgo/native-purchases, Menggunakan @capgo/capacitor-in-app-review untuk detail implementasi di Menggunakan @capgo/capacitor-in-app-review Menggunakan @capgo/capacitor-ulasan-dalam-aplikasi untuk kemampuan asli dalam Menggunakan @capgo/capacitor-ulasan-dalam-aplikasi, @capgo/capacitor-pasar-asli untuk detail implementasi dalam @capgo/capacitor-pasar-asli, dan Menggunakan @capgo/capacitor-pasar-asli untuk kemampuan asli dalam Menggunakan @capgo/capacitor-pasar-asli.