Langsung ke konten utama

Cara Lolos Review App Store untuk In-App Purchases di 2025

Panduan lengkap agar aplikasi dengan in-app purchase Anda disetujui di iOS dan Android. Pelajari alasan penolakan umum, persyaratan, dan praktik terbaik untuk 2025.

Cara Lolos App Store Review untuk In-App Purchases di 2025 Capgo ilustrasi blog

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:

  1. Harga tidak jelas (42% dari penolakan)
  2. Ketentuan langganan tidak ada atau membingungkan (31%)
  3. Pola UI yang menipu (18%)
  4. 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

Best Practice Desain UI

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:

  1. URL kebijakan privasi di Play Console
  2. Link kebijakan privasi dapat diakses di dalam aplikasi
  3. Deklarasi bagian Data Safety yang akurat

Data Safety Harus Mendeklarasikan:

  • Pengumpulan riwayat pembelian
  • Alamat email (untuk tanda terima)
  • Device IDs (pencegahan fraud)
  • Data analitik

Panduan Deskripsi Aplikasi

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

Checklist Metadata

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

Panduan Pemasaran

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

Checklist Pra-Submit

Gunakan checklist ini sebelum setiap submission. Untuk prosedur testing detail:

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 &amp; 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 &amp; 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

Timeline 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

Proses Klarifikasi

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

Permintaan Dokumentasi

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 Implementasi

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:

  1. Transparansi itu wajib - Tampilkan harga di awal, selalu
  2. Ikuti aturan platform - Gunakan sistem billing yang diwajibkan
  3. Uji secara menyeluruh - Temukan isu sebelum reviewer menemukannya
  4. Komunikasi dengan jelas - Pengguna tidak boleh merasa bingung
  5. 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.

Live updates untuk aplikasi Capacitor

Saat bug web-layer sudah live, kirim perbaikannya lewat Capgo alih-alih menunggu berhari-hari untuk persetujuan app store. Pengguna mendapat update di background, sementara perubahan native tetap mengikuti jalur review normal.

Terbaru dari Blog kami

Capgo memberikan insight terbaik yang Anda butuhkan untuk membuat aplikasi mobile yang benar-benar profesional.