Mendapatkan persetujuan aplikasi di App Store dan Google Play bisa jadi tantangan, terutama saat mengimplementasikan in-app purchases (IAP) dan langganan. Dengan pedoman yang lebih ketat di 2025, memahami apa yang dicari reviewer sangatlah krusial. Panduan komprehensif ini membahas semua yang Anda butuhkan agar lolos review pada pengajuan pertama.
Butuh panduan setup detail? Cek panduan lengkap kami: Review iOS App Store | Review Android Play Store
Kenapa App dengan IAP Ditolak
App dengan in-app purchases diawasi lebih ketat karena melibatkan transaksi uang asli. Berdasarkan App Store Review Guidelines Apple dan kebijakan monetisasi Google Play, alasan penolakan utama di 2025 adalah:
- Harga tidak jelas (42% dari penolakan)
- Ketentuan langganan tidak ada atau membingungkan (31%)
- Pola UI yang menipu (18%)
- Pelanggaran kebijakan privasi (9%)
Mari kita bahas cara menghindari setiap kendala ini.
Persyaratan iOS App Store
📖 Panduan iOS Lengkap: Untuk instruksi setup lengkap, lihat Panduan Review iOS App Store
1. Transparansi Harga yang Sangat Jelas
Apple mewajibkan pengungkapan harga secara tepat sebelum tombol pembelian. Ini tidak bisa ditawar.
Apa yang Dicari Apple:
- Harga tampil jelas: “$9.99/bulan”
- Frekuensi penagihan disebutkan di awal
- Benefit yang didapat pengguna
- Waktu terjadinya penagihan
- Instruksi pembatalan harus terlihat jelas

Kesalahan Umum: Menyembunyikan harga sampai pengguna klik “Subscribe” atau hanya menampilkan harga di teks kecil.
Solusi:
// Example: Compliant subscription display
<div className="subscription-card">
<h2>Premium Plan</h2>
<p className="price">$9.99/month</p>
<ul>
<li>✓ Ad-free experience</li>
<li>✓ Unlimited cloud storage</li>
<li>✓ Priority support</li>
</ul>
<p className="terms">
Renews automatically. Cancel anytime in Settings.
</p>
<button>Subscribe Now</button>
</div>
Aturan Konsistensi Harga: Semua harga harus sama di:
- Listing App Store
- Layar in-app purchase
- Manajemen langganan
- Materi pemasaran
Selisih $1 saja bisa memicu penolakan otomatis.
2. Presentasi Paket Langganan
Apple menandai aplikasi yang menggunakan “dark patterns” untuk memaksa tier mahal.
Wajib ada:
- Tampilkan semua tier langganan secara setara
- Jangan pilih opsi premium secara default
- Perbandingan fitur yang jelas
- Alternatif lebih murah yang mudah ditemukan
Dilarang:
- Otomatis mengarahkan ke paket tahunan
- Menyembunyikan opsi bulanan di balik klik tambahan
- Menggunakan timer hitung mundur untuk urgensi palsu
- Kelangkaan palsu (“Sisa 3 slot lagi!”)
3. Fungsi Restore Purchases
Setiap aplikasi dengan IAP wajib menyediakan tombol restore purchases yang berfungsi tanpa perlu menghubungi support. Pelajari lebih lanjut di Panduan Memulai.
Implementasi:
import { NativePurchases } from '@capgo/native-purchases';
async function restorePurchases() {
try {
const { customerInfo } = await NativePurchases.restorePurchases();
if (customerInfo.activeSubscriptions.length > 0) {
showSuccess('Purchases restored!');
unlockPremiumFeatures();
} else {
showInfo('No previous purchases found.');
}
} catch (error) {
showError('Restore failed. Please try again.');
}
}
4. Kepatuhan Privasi (Bagian 5.1.1)
2025 membawa penegakan privasi yang lebih ketat. Apple kini mewajibkan:
Untuk Setiap Izin:
- Penjelasan yang jelas sebelum pengajuan
- Kasus penggunaan spesifik (bukan umum)
- Cara data disimpan/dibagikan
- Apakah bersifat opsional
Contoh Info.plist entri:
<key>NSCameraUsageDescription</key>
<string>Camera access lets you scan product barcodes for quick upgrades. Photos are never uploaded.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Location shows relevant local content in your Premium subscription.</string>
Label privasi yang tidak akurat adalah alasan utama penolakan di 2025.
Persyaratan Google Play Android
📖 Panduan Android Lengkap: Untuk instruksi setup lengkap, lihat Panduan Review Android Play Store
1. Wajib Google Play Billing
Untuk produk digital (langganan, konten in-app), Anda harus harus pakai Google Play Billing. Metode pembayaran lain akan ditolak.
Produk digital (wajib pakai Play Billing):
- Langganan fitur-fitur
- Mata uang in-app
- Konten digital (ebook, musik)
- Fitur premium
Produk fisik (tidak boleh pakai Play Billing):
- Barang fisik
- Layanan fisik
- Donasi nonprofit
Implementasi dengan native-purchases:
Untuk setup Android lengkap, lihat Pengujian Android Sandbox dan Membuat Subscription.
import { NativePurchases } from '@capgo/native-purchases';
// Automatically uses Google Play Billing on Android
await NativePurchases.configure({
apiKey: 'your_api_key'
});
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['premium_monthly']
});
2. Auto-Renewal yang Transparan
Google mewajibkan pengungkapan jelas bahwa subscription akan auto-renew, termasuk:
- Notifikasi renewal sebelum penagihan
- Pengingat harga
- Akses pembatalan yang mudah
UI yang Patuh:
<div className="subscription-terms">
<p>Subscription renews automatically at $9.99/month</p>
<p>Cancel anytime in Google Play Subscriptions</p>
<p>Next billing date: February 15, 2025</p>
<button onClick={openManagement}>
Manage in Google Play
</button>
</div>
3. Persyaratan Kebijakan Privasi
Wajib untuk aplikasi IAP:
- URL kebijakan privasi di Play Console
- Link kebijakan privasi dapat diakses di dalam aplikasi
- Deklarasi bagian Data Safety yang akurat
Data Safety Harus Mendeklarasikan:
- Pengumpulan riwayat pembelian
- Alamat email (untuk tanda terima)
- Device IDs (pencegahan fraud)
- Data analitik

Alasan Umum Penolakan di Kedua Platform
1. Ketidaksesuaian Metadata
Mengapa Gagal:
- Screenshot menampilkan fitur yang tidak ada di versi saat ini
- Deskripsi menjanjikan fungsi yang tidak tersedia
- Harga berbeda dengan yang ada di dalam aplikasi

Pencegahan:
- Update screenshot untuk setiap submission
- Sesuaikan deskripsi dengan fitur aktual
- Pastikan semua klaim sudah akurat
- Hapus teks promosi yang sudah kedaluwarsa
2. Pemasaran yang Menyesatkan
Pemicu Penolakan Otomatis:
- “App #1” tanpa bukti
- “Unlimited” dengan limit tersembunyi
- Review atau rating palsu
- Menjelek-jelekkan kompetitor

Praktik Terbaik: Jadilah spesifik dan faktual:
- ✓ “Gabung dengan 50.000+ user”
- ✗ “App terbaik di dunia”
- ✓ “Hemat hingga 30% dengan paket tahunan”
- ✗ “Penawaran terbatas!”
3. Alur Pembelian Error
Tes Hal Ini Sebelum Submit:
- Produk dimuat dengan benar
- Pembelian berhasil diselesaikan
- Fitur Premium langsung terbuka
- Restore purchases berfungsi
- Pesan error mudah dipahami
- Kegagalan jaringan tertangani baik
// Comprehensive error handling
async function handlePurchase(productId: string) {
try {
const { customerInfo } = await NativePurchases.purchaseProduct({
productIdentifier: productId
});
if (customerInfo.entitlements.active['premium']) {
unlockPremiumFeatures();
}
} catch (error: any) {
switch (error.code) {
case 'USER_CANCELLED':
// Silent - user backed out
break;
case 'ITEM_ALREADY_OWNED':
await NativePurchases.restorePurchases();
break;
case 'NETWORK_ERROR':
showError('Check your connection and try again.');
break;
default:
showError('Purchase failed. Please try again.');
}
}
}
Checklist Pra-Submit

Gunakan checklist ini sebelum setiap submission. Untuk prosedur testing detail:
- Testing iOS: Panduan Testing iOS Sandbox
- Testing Android: Panduan Testing Android Sandbox
Pengujian
- Test semua tier langganan
- Verifikasi free trial berjalan lancar
- Uji penawaran perkenalan
- Pastikan restore purchases berfungsi
- Test di berbagai perangkat
- Verifikasi akun sandbox/test berfungsi
Harga & Ketentuan
- Harga sama di semua platform
- Ketentuan langganan harus dijelaskan dengan jelas
- Instruksi pembatalan harus terlihat jelas
- Frekuensi penagihan ditampilkan
- Durasi free trial akurat
Privasi & Izin
- Kebijakan privasi terhubung di store
- Kebijakan privasi dapat diakses di dalam aplikasi
- Semua izin memiliki alasan jelas
- Deskripsi Info.plist jelas (iOS)
- Data Safety sudah lengkap (Android)
Metadata
- Screenshot sesuai versi saat ini
- Deskripsi sesuai dengan fitur
- Tidak ada teks placeholder
- Rating usia sudah benar
- Semua klaim dapat diuji
Kualitas Code
- Tidak crash saat dibuka
- Semua fitur berfungsi normal
- Error handling sudah diterapkan
- Loading state sudah muncul
- Error jaringan sudah ditangani
Estimasi Waktu Review

iOS:
- Standar: 24-48 jam
- Periode sibuk: 3-5 hari
- Akhir pekan: Tidak ada review
- Expedited: Tersedia untuk bug kritis
Android:
- Awal: rata-rata 7 hari
- Update: Biasanya lebih cepat
- Rolling reviews: Bisa live kapan saja
- Pelanggaran kebijakan: Bisa langsung suspend
Tips Pro: Submit aplikasi iOS pada Senin-Rabu untuk menghindari delay akhir pekan.
Apa yang Harus Dilakukan Jika Ditolak

Langkah 1: Pahami Masalahnya
- Baca notifikasi rejection dengan teliti
- Catat guideline spesifik yang dikutip
- Cek contoh yang diberikan
- Cari pola dalam feedback
Langkah 2: Perbaiki Secara Menyeluruh
- Atasi root cause, bukan sekadar gejala
- Test perbaikan secara ekstensif
- Dokumentasikan semua perubahan
- Screenshot sebelum/sesudah
Langkah 3: Balas Secara Profesional

Pusat Resolusi iOS:
Thank you for the feedback. I have addressed the issue:
Issue: Subscription pricing not clear upfront
Fix: Added explicit pricing display on subscription screen
showing "$9.99/month" before purchase button. Also added
cancellation instructions on the same screen.
Screenshots showing changes are attached. Test account
provided in App Review Notes.
Banding Android:
Subject: Policy Violation Appeal - [App Name]
I have received notification regarding [Policy X.Y].
Changes made:
1. Updated subscription UI to show all pricing upfront
2. Added clear cancellation instructions
3. Implemented restore purchases functionality
Version [X.Y.Z] addresses all concerns. Test account
credentials provided below for verification.
Langkah 4: Ajukan Ulang dengan Cepat
- Pengajuan ulang ditinjau lebih cepat
- Biasanya dalam 24 jam
- Sertakan akun uji coba
- Sebutkan pengajuan sebelumnya
Update 2025 dan Persyaratan Baru
Perubahan iOS
Pengungkapan Fitur AI (Baru)
- Wajib beri label konten buatan AI
- Jelaskan penggunaan AI
- Dokumentasikan keamanan konten
Kejelasan Langganan Ditingkatkan
- Wajib ada perbandingan paket berdampingan
- Jangan sembunyikan opsi yang lebih murah
- Alur upgrade/downgrade yang jelas
Pengetatan Privasi
- Penegakan Section 5.1.1 ditingkatkan
- Pemeriksaan lebih ketat pada justifikasi data
- Aturan aplikasi anak yang lebih ketat
Perubahan Android
Sistem Billing Alternatif (Regional)
- Diizinkan di EEA dan Korea Selatan
- Tetap wajib menyediakan opsi Google Play
- Biaya layanan lebih rendah
Persyaratan API Langganan
- App baru wajib pakai API monetization.subscriptions
- API billing lama akan didepresiasi
- Tools manajemen langganan yang lebih baik
Best Practices agar Berhasil
1. Gunakan SDK yang Tepat
Panduan @capgo/native-purchases plugin menangani kedua platform dengan benar:
// Single API for iOS and Android
await NativePurchases.configure({
apiKey: 'your_api_key'
});
// Automatically uses correct billing system
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['premium_monthly']
});
// Platform-specific logic handled automatically
await NativePurchases.purchaseProduct({
productIdentifier: 'premium_monthly'
});
2. Implementasikan Error Handling yang Benar
Tangani semua status pembelian dengan baik:
- Pembatalan oleh user (silent)
- Error jaringan (opsi retry)
- Sudah dimiliki (restore)
- Produk tidak tersedia (infokan user)
- Pembayaran tertunda (cek kembali)
3. Komunikasi yang Jelas
User harus selalu tahu:
- Apa yang mereka beli
- Berapa harganya
- Kapan mereka akan ditagih
- Cara membatalkannya
- Apa yang terjadi setelah trial
4. Lakukan Testing Secara Ekstensif
iOS Sandbox:
- Buat akun test di App Store Connect
- Konfigurasi di perangkat (Settings > App Store > Sandbox)
- Perhatikan durasi langganan yang dipercepat
Pengujian Lisensi Android:
- Tambahkan akun tes di Play Console
- Lihat notifikasi “Test purchase”
- Tidak ada biaya asli yang dikenakan
Sumber Daya
Dokumentasi Platform
- Panduan Review App Store iOS
- Kebijakan Developer Google Play
- Panduan In-App Purchase iOS
- Dokumentasi Google Play Billing
Panduan Implementasi
- Panduan Setup iOS untuk native-purchases
- Panduan Setup Android untuk native-purchases
- Grup Langganan iOS
- Langganan Android
Panduan Review Detail
Butuh bantuan ahli?
Terhambat saat app review atau butuh bantuan langsung? Tim kami menyediakan dukungan khusus untuk implementasi in-app purchase dan persiapan review.
Jadwalkan sesi konsultasi dengan kami untuk mendapatkan bantuan personal terkait:
- review implementasi IAP
- persiapan review App Store
- panduan strategi submission
- Bantuan resolusi penolakan
- Dukungan setup dan testing lengkap
Kami telah membantu ratusan aplikasi lolos review!
Kesimpulan
Lolos review aplikasi dengan in-app purchases di 2025 butuh ketelitian, komunikasi jelas, dan implementasi yang tepat. Poin utamanya:
- Transparansi itu wajib - Tampilkan harga di awal, selalu
- Ikuti aturan platform - Gunakan sistem billing yang diwajibkan
- Uji secara menyeluruh - Temukan isu sebelum reviewer menemukannya
- Komunikasi dengan jelas - Pengguna tidak boleh merasa bingung
- Siapkan dokumentasi - Siapkan akun testing
Dengan mengikuti panduan ini dan menggunakan tools yang tepat seperti plugin native-purchases, peluang Anda untuk lolos review pertama kali akan meningkat drastis.
Ingat: Reviewer mencari aplikasi yang menghormati pengguna dan mengikuti panduan. Bangunlah dengan mindset tersebut, maka approval akan menyusul.
Butuh bantuan implementasi in-app purchases? Lihat juga dokumentasi lengkap kami atau hubungi komunitas untuk bantuan.
Lanjutkan dari Cara Lolos App Store Review untuk In-App Purchases di 2025
Jika Anda menggunakan Cara Lolos Review App Store untuk In-App Purchases di 2025 untuk merencanakan persetujuan store dan distribusi, hubungkan dengan @capgo/capacitor-in-app-review untuk detail implementasi di @capgo/capacitor-in-app-review, Menggunakan @capgo/capacitor-in-app-review untuk kapabilitas native di bagian Menggunakan @capgo/capacitor-in-app-review, @capgo/capacitor-native-market untuk detail implementasi di @capgo/capacitor-native-market, Menggunakan @capgo/capacitor-native-market untuk fitur native saat menggunakan @capgo/capacitor-native-market, dan Capacitor OTA Updates: Panduan Persetujuan App Store untuk konteks praktis dalam Capacitor OTA Updates: Panduan Persetujuan App Store.