Pedoman Ulasan Toko Android untuk IAP
Copy sebuah prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Mengapa aplikasi Android Anda disetujui di Google Play memerlukan konsistensi dengan kebijakan Google, terutama untuk aplikasi dengan pembelian dalam aplikasi dan langganan.
Jalur Rilis yang Berfungsi
Judul Bagian “Jalur Rilis yang Berfungsi”-
Buat Aplikasi Android yang Ditandatangani
Aplikasi baru Google Play harus diunggah sebagai Android App Bundle (
.aab), bukan APK debug yang disidai.Tetapkan
versionCodePeningkatan
-
Buat Rekaman Aplikasi di Play Console
Jika Anda belum memiliki akun pengembang, mulai dengan Pendaftaran Play ConsoleLalu, pilih bahasa, jenis aplikasi/game, status gratis/bayar, alamat email dukungan, dan setujui deklarasi yang diperlukan. Home > Buat aplikasiPilih pengaturan gratis/bayar dengan hati-hati. Google memungkinkan Anda mengubah aplikasi berbayar menjadi gratis kemudian, tetapi setelah aplikasi telah ditawarkan secara gratis, tidak dapat diubah menjadi berbayar.
Buat aplikasi di Play Console

-
Sebelum tinjauan produksi, selesaikan deklarasi yang diperlukan di Play Console:
Kebijakan privasi
- Iklan
- Akses aplikasi
- Audien sasaran dan konten
- Peringkat konten
- Pilih pengaturan gratis/bayar dengan hati-hati. Google memungkinkan Anda mengubah aplikasi berbayar menjadi gratis kemudian, tetapi setelah aplikasi telah ditawarkan secara gratis, tidak dapat diubah menjadi berbayar.
- Keamanan Data
- Penyataan izin sensitif, jika berlaku
-
Lakukan Test Track yang Dapat Diinstal di Play
Mulai dengan pengujian internal untuk QA yang cepat. Jika akun pengembang Anda adalah akun pribadi yang dibuat setelah 13 November 2023, Anda juga harus menyelesaikan test tertutup dengan setidaknya 12 tester yang dipilih untuk 14 hari berturut-turut sebelum akses produksi.

-
Verifikasi Billing End-to-End
Pasang aplikasi dari Google Play, bukan dari APK yang diekspor secara lokal. Kemudian konfirmasikan bahwa:
- Produk muatan dari Play dengan benar
- Bukti pembelian menampilkan sebuah pembelian uji banner untuk tes lisensi
- Entitlements dibuka setelah pembelian
- Restore dan manajemen langganan berfungsi
Persyaratan Billing Google Play
Bagian berjudul “Persyaratan Billing Google Play”Sistem Billing Wajib
Bagian berjudul “Sistem Billing Wajib”Untuk barang dan layanan digital, Anda harus menggunakan sistem billing Google Play:
Produk Digital (Wajib Menggunakan Billing Play):
- Langganan fitur premium
- Kurang dalam aplikasi atau kredit
- Konten digital (ebook, musik, video)
- Peningkatan permainan dan kekuatan
- Unlocks aplikasi dan tingkat premium
Produk Fisik (Tidak Bisa Menggunakan Billing Play):
- Barang fisik
- Jasa dunia nyata
- Donasi satu kali ke organisasi nirlaba
:::note Pengaturan Langganan
Di Console Play, atur langganan Android menggunakan opsi langganan -> rencana dasar -> penawaran model. Dalam native-purchases, masukkan ID Base Plan dengan planIdentifier.
:::
Implementasi dengan Pembelian Asli
Bagian berjudul “Implementasi dengan Pembelian Asli”import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Ensure billing is available on the deviceconst { isBillingSupported } = await NativePurchases.isBillingSupported();if (!isBillingSupported) throw new Error('Google Play Billing not available');
// Fetch subscription products (Store data is required—never hardcode pricing)const { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly', 'premium_yearly'], productType: PURCHASE_TYPE.SUBS,});
// Plan identifiers are the Base Plan IDs you create in Google Play Consoleconst transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', planIdentifier: 'monthly-plan', // REQUIRED on Android, ignored on iOS productType: PURCHASE_TYPE.SUBS,});
console.log('Purchase token for server validation:', transaction.purchaseToken);Kebijakan Transparansi dan Pengungkapan
Bagian berjudul “Kebijakan Transparansi dan Pengungkapan”Pengungkapan Harga yang Dapat Dilihat Terlebih Dahulu
Bagian berjudul “Pengungkapan Harga yang Dapat Dilihat Terlebih Dahulu”Google Play memerlukan pengungkapan jelas semua biaya sebelum pembelian:
Elemen yang Diperlukan:
- Harga yang tepat dalam mata uang lokal pengguna
- Frekuensi tagihan (bulanan, tahunan, dll.)
- Apa saja yang termasuk dalam langganan
- Biaya total untuk penawaran promosi
- Kapan akan terjadi tagihan

Contoh UI yang Kompatibel:
function SubscriptionCard({ product }) { return ( <div className="subscription-card"> <h3>{product.title}</h3>
{/* Show intro offer if available */} {product.introductoryPrice && ( <div className="intro-offer"> <p className="intro-price">{product.introductoryPriceString}</p> <p className="intro-period"> for {product.introductoryPricePeriod} </p> </div> )}
{/* Regular price */} <div className="regular-price"> <p className="price">{product.priceString}</p> <p className="period">per {product.subscriptionPeriod}</p> </div>
{/* Clear description */} <p>{product.description}</p>
{/* Renewal terms */} <p className="terms"> Renews automatically. Cancel anytime in Google Play. </p>
<button onClick={() => handlePurchase(product)}> Subscribe Now </button> </div> );}Pengungkapan Auto-Renewal
Bagian berjudul “Pengungkapan Auto-Renewal”Sebelum langganan auto-mulai diperbarui, Google memerlukan:
- Pemberitahuan yang jelas bahwa akan terjadi pembaruan
- Ingatan tentang harga
- Akses mudah ke pembatalan
Kemudahan Harga Berbasis Multi-Platform
Judul Bagian “Kemudahan Harga Berbasis Multi-Platform”Jika Anda menjual hak akses yang sama di beberapa platform, pastikan nama produk, periode pembayaran, manfaat yang termasuk, dan bahasa perpanjangan seimbang sehingga pengguna tidak terkejut.
Harga dapat berbeda-beda karena pajak, mata uang lokal, atau ekonomi toko, tetapi antarmuka pembelian tidak boleh menyembunyikan perbedaan tersebut atau menunjukkan biaya perpanjangan yang berbeda dari yang akan dikenakan oleh Google Play.
Persyaratan Kebijakan Privasi
Judul Bagian “Persyaratan Kebijakan Privasi”Kebijakan Privasi Wajib
Judul Bagian “Kebijakan Privasi Wajib”Jika aplikasi Anda termasuk pembelian dalam aplikasi, Anda harus:
-
Tautkan dalam Daftar Penjualan Play
- Tambahkan URL kebijakan privasi di Console Play
- Harus dapat diakses secara publik
- Harus dalam bahasa yang sama dengan aplikasi Anda
-
Tautkan Dalam Aplikasi
- Tampilkan kebijakan privasi di pengaturan aplikasi
- Tampilkan sebelum mengumpulkan data pengguna apa pun
- Buat mudah ditemukan
Contoh Implementasi:
function SettingsScreen() { const openPrivacyPolicy = () => { window.open('https://yourapp.com/privacy', '_blank'); };
const openTerms = () => { window.open('https://yourapp.com/terms', '_blank'); };
return ( <div> <h2>Settings</h2>
<button onClick={openPrivacyPolicy}> Privacy Policy </button>
<button onClick={openTerms}> Terms of Service </button>
<button onClick={() => NativePurchases.manageSubscriptions()}> Manage Subscriptions </button> </div> );}Bagian Keselamatan Data
Bagian Judul “Bagian Keselamatan Data”Google Play memerlukan pengungkapan rinci dalam Bagian Keselamatan Data:
Untuk Aplikasi IAP, Deklarasikan:
- Pengumpulan riwayat pembelian
- Alamat email (untuk faktur)
- ID Perangkat (untuk pencegahan penipuan)
- Pengelolaan informasi pembayaran
- Pengumpulan data analitik
Bagian Keselamatan Data adalah berlaku hukum. Deklarasi yang tidak akurat dapat menyebabkan penghapusan aplikasi.
Deklarasi Konten Aplikasi
Bagian Judul “Deklarasi Konten Aplikasi”Ulasan Google Play bukan hanya tentang binary. Sebelum rilis produksi, lengkapi deklarasi pada Kebijakan dan program > Konten aplikasi.
Set minimal untuk diperiksa dengan teliti:
- Kebijakan privasi: URL publik di Console Play, ditambahkan dengan pintu masuk aplikasi ketika diperlukan
- Iklan: Deklarasikan apakah aplikasi mengandung iklan
- Akses aplikasi: Berikan kredential kerja kepada reviewer atau jalur uji yang jelas jika ada layar yang terkunci
- Audien sasaran dan konten: Sesuaikan dengan audiens asli aplikasi
- Penilaian konten: Selesaikan kuesioner IARC untuk memastikan aplikasi tidak ditandai tidak dinilai
- Keamanan Data: Mengumumkan praktik pengumpulan, pemberian akses, dan keamanan secara akurat
Alasan Penolakan Umum
Bab berjudul “Alasan Penolakan Umum”1. Implementasi Billing yang Tidak Lengkap atau Salah
Bab berjudul “1. Implementasi Billing yang Tidak Lengkap atau Salah”Mengapa Gagal:
- Tidak menggunakan Google Play Billing untuk barang digital
- Menggunakan API pembayaran yang sudah tidak digunakan lagi
- Mengimplementasikan solusi pembayaran kustom untuk langganan
Pencegahan:
// ✅ Correct: Use native-purchases (uses Google Play Billing)await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', planIdentifier: 'monthly-plan', productType: PURCHASE_TYPE.SUBS,});
// ❌ Wrong: Custom payment processor for subscriptions// await CustomPayment.charge(user, 9.99);2. Harga yang Tidak Jelas atau Biaya yang Diturunkan
Judul Bagian “2. Harga yang Tidak Jelas atau Biaya yang Diturunkan”Mengapa Gagal:
- Harga hanya ditampilkan setelah mengklik pembelian
- Biaya tambahan tidak disampaikan secara langsung
- Klausul langganan yang kabur
Pencegahan:
function PurchaseScreen({ product }) { return ( <div> {/* Show ALL costs upfront */} <h2>Premium Subscription</h2>
<div className="pricing"> <p className="price">{product.priceString}/month</p> <p className="taxes">Taxes may apply based on location</p> </div>
<div className="features"> <h3>Includes:</h3> <ul> <li>Ad-free experience</li> <li>Unlimited cloud storage</li> <li>Priority support</li> </ul> </div>
<div className="terms"> <p> Subscription renews automatically unless cancelled at least 24 hours before the end of the current period. </p> <p> Manage or cancel in Google Play Subscriptions. </p> </div>
<button onClick={handlePurchase}> Start Subscription </button> </div> );}3. Pola Pembayaran Langganan yang Menipu
Judul Bagian “3. Pola Pembayaran Langganan yang Menipu”Mengapa Gagal:
- Mengatur pilihan premium secara otomatis
- Menyembunyikan alternatif yang lebih murah
- Membuat pembatalan sulit
- Kemarahan palsu (“Hanya tersisa 3 tempat!”)


Pencegahan:
- Tampilkan semua tingkat langganan secara sama
- Jadikan pembatalan jelas dan dapat diakses
- Hindari penggunaan timer mundur atau kekurangan palsu
- Jangan menggunakan pola gelap untuk mempromosikan opsi yang mahal
4. Pengujian Tidak Lengkap
Judul bagian "4. Pengujian Tidak Lengkap"Mengapa Gagal:
- Aplikasi mengalami crash saat membeli
- Produk tidak terbuka
- Konfirmasi pembelian tidak ditampilkan
- Fasilitas premium tidak terbuka setelah pembelian
- Pengujian hanya dilakukan pada build sideloaded bukan pada jalur pengujian Play yang diinstal
Pencegahan:
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Comprehensive testing before submissionasync function testPurchaseFlow() { try { // 1. Test product loading const { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly', 'premium_yearly'], productType: PURCHASE_TYPE.SUBS, }); console.log('✓ Products loaded:', products.length);
// 2. Test purchase flow const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', planIdentifier: 'monthly-plan', productType: PURCHASE_TYPE.SUBS, }); console.log('✓ Purchase completed', transaction.transactionId);
// 3. Verify entitlements const { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS, }); if ( purchases.some( (purchase) => purchase.productIdentifier === 'premium_monthly' && ['PURCHASED', '1'].includes(purchase.purchaseState ?? '') && purchase.isAcknowledged, ) ) { console.log('✓ Premium features unlocked'); }
// 4. Test restore await NativePurchases.restorePurchases(); console.log('✓ Restore works');
} catch (error) { console.error('✗ Test failed:', error); }}5. Pelanggaran Kebijakan Privasi
Judul bagian “5. Pelanggaran Kebijakan Privasi”Mengapa Gagal:
- Tidak ada tautan kebijakan privasi di aplikasi
- Kebijakan privasi tidak dapat diakses
- Pengumpulan data tidak disampaikan
- Bagian Keselamatan Data tidak akurat
Pencegahan:
- Tambahkan kebijakan privasi ke daftar aplikasi Play Store
- Termasuk tautan di pengaturan aplikasi
- Isi Bagian Keselamatan Data dengan akurat
- Ketentuan pembaruan ketika menambahkan pengumpulan data baru
Program Pembayaran Alternatif
Judul bagian “Program Pembayaran Alternatif”Program pembayaran alternatif Google adalah spesifik wilayah dan dapat berubah. Jika Anda ingin sesuatu selain billing standar Google Play, pastikan keabsahan pasar, API yang diperlukan, dan bahasa pengungkapan dalam Console Play segera sebelum implementasi.
Pengelolaan Langganan
Judul bagian “Pengelolaan Langganan”Pembatalan Mudah
Judul bagian “Pembatalan Mudah”Pengguna harus dapat:
- Lihat langganan aktif dengan mudah
- Batalkan tanpa menghubungi dukungan
- Pahami kapan batalkan berlaku
Implementasi:
import { NativePurchases } from '@capgo/native-purchases';
function ManageSubscriptionButton() { const openManagement = async () => { try { // Opens Google Play subscription management await NativePurchases.manageSubscriptions(); } catch (error) { // Fallback to direct URL const playStoreUrl = 'https://play.google.com/store/account/subscriptions'; window.open(playStoreUrl, '_blank'); } };
return ( <button onClick={openManagement}> Manage Subscription in Google Play </button> );}Masa Ijin Pembatalan
Bagian berjudul “Masa Ijin Pembatalan”Pemberitahuan Wajib:
- Kapan pembatalan berlaku?
- Apakah pengguna tetap memiliki akses hingga akhir periode?
- Apakah ada pengembalian sebagian?
function CancellationInfo() { return ( <div className="cancellation-info"> <h3>Cancellation Policy</h3> <ul> <li>Cancel anytime in Google Play</li> <li>Access continues until end of billing period</li> <li>No refunds for partial periods</li> <li>Resubscribe anytime to regain access</li> </ul>
<button onClick={() => NativePurchases.manageSubscriptions()}> Manage in Google Play </button> </div> );}Daftar Pemeriksaan Sebelum Pengiriman
Judul Bagian “Daftar Pemeriksaan Sebelum Pengiriman”
-
Verifikasi Implementasi Billing
- Menggunakan Billing Google Play (via native-purchases)
- Tentu semua produk langganan yang dibuat di Play Console
- Rencana dasar dan penawaran yang dikonfigurasi dengan benar
- Produk yang diaktifkan dan dipublikasikan
- Harga yang ditetapkan untuk semua negara target
-
Menguji Alur Pembelian
- Membuat akun uji lisensi
- Instal aplikasi dari jalur pengujian Play
- Menguji setiap tingkat langganan
- Mengonfirmasi bahwa produk muatan dengan benar
- Menguji pengiriman pembelian
- Mengonfirmasi bahwa pembelian uji coba banner muncul
- Mengonfirmasi bahwa fitur premium terbuka
- Menguji restorasi langganan
- Menguji pada perangkat yang berbeda-beda
-
Mengulas Semua Salinan
- Harga ditampilkan dengan jelas sebelum pembelian
- Semua biaya disampaikan secara langsung
- Klausul-klausul langganan jelas
- Proses pembatalan dijelaskan
- Tidak ada klaim yang menipu
-
Konten Aplikasi dan Privasi
- Kebijakan privasi terhubung di Play Console
- Kebijakan privasi dapat diakses di aplikasi
- Pernyataan iklan selesai
- Instruksi akses aplikasi ditambahkan jika aplikasi terkunci
- Bagian Keselamatan Data selesai dengan akurasi
- Izin yang dibutuhkan dan dokumentasi
-
Penilaian Konten dan Audiens
- Kuesioner penilaian konten selesai secara lengkap
- Selesaikan target audiens dan bagian konten
- Pastikan peringkat sesuai dengan konten yang sebenarnya
- Klarifikasi dalam pembelian aplikasi di kuesioner
-
Siapkan Daftar Toko
- Deskripsi aplikasi akurat
- Deskripsi singkat dalam 80 karakter
- Deskripsi lengkap dalam 4000 karakter
- Setidaknya 2 layar ponsel yang diunggah
- Gambar fitur 1024x500 yang diunggah
- Layar ponsel menampilkan versi saat ini
- Semua aset yang diperlukan diunggah
Jadwal Tinjauan
Timeline UlasanAkses Produksi untuk Akun Pribadi Baru: Biasanya 7 hari atau kurang setelah Anda mengajukan Ulasan Produksi Pertama: Sering beberapa hari, kadang lebih lama jika ada pertanyaan tentang tagihan atau kebijakan Perbaruan: Biasanya lebih cepat daripada rilis pertama, tetapi masih diperiksa Banding: Rencanakan beberapa hari dan berikan perbaikan yang tepat dan instruksi reviewer
:::tip Ulasan Berputar Berbeda dengan Apple, Google melakukan ulasan aplikasi secara terus-menerus. Aplikasi Anda mungkin dapat diaktifkan kapan saja selama periode ulasan, bukan pada waktu tertentu yang tetap. :::
Pengujian Sebelum Pengajuan
Judul Bagian “Pengujian Sebelum Pengajuan”Lisensi Pengujian
Judul Bagian “Lisensi Pengujian”-
Tambahkan Akun Uji:
- Lihat Konsol Bermain
- Pengaturan > Pengujian Lisensi
- Tambahkan Akun Gmail untuk Pengujian
-
Uji di Sandbox:
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Test purchases with license test accountasync function testInSandbox() { const { isBillingSupported } = await NativePurchases.isBillingSupported(); if (!isBillingSupported) { console.error('Billing not supported in this environment'); return; }
// Fetch products (returns test pricing when using a license tester) const { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly'], productType: PURCHASE_TYPE.SUBS, });
console.log('Test products:', products);
// Make test purchase (no charge) const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', planIdentifier: 'monthly-plan', productType: PURCHASE_TYPE.SUBS, });
console.log('Test purchase complete:', transaction.transactionId);}- Verifikasi Banner Uji:
- Ketika membeli dengan akun uji
- Harus melihat notifikasi pembelian uji
- Tidak ada biaya nyata yang terjadi
Uji Coba Internal dan Terkunci
Judul Bagian “Uji Coba Internal dan Terkunci”Sebelum rilis produksi:
- Buatlah uji coba internal untuk QA yang cepat atau uji coba terkunci untuk uji coba yang lebih luas
- Unggah rilis uji coba yang ditandatangani dan publikasikan
.aabTambahkan alamat email tester dan bagikan tautan opt-in - Biarkan tester menginstal build dari Google Play Store
- Buatlah uji coba internal untuk QA yang cepat atau buatlah uji coba terkunci untuk uji coba yang lebih luas dan lebih akurat
- Alur pembelian yang diverifikasi bekerja secara end-to-end pada build yang diinstal Play
- Jika akun pengembang pribadi Anda dibuat setelah 13 November 2023, pastikan setidaknya 12 pengujian yang dipilih untuk menutup tes tertutup selama 14 hari berturut-turut sebelum mengajukan permohonan produksi
Build debug yang disengaja tidak dapat digunakan sebagai pengganti build pengujian yang diinstal Play ketika memvalidasi Billing Google Play
Praktik Terbaik untuk Pembelian Asli
Bagian berjudul “Praktik Terbaik untuk Pembelian Asli”Tangani Semua Status Pembelian
Bagian berjudul “Tangani Semua Status Pembelian”import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
async function handlePurchase(productId: string, planIdentifier?: string) { try { setLoading(true);
const transaction = await NativePurchases.purchaseProduct({ productIdentifier: productId, planIdentifier, productType: planIdentifier ? PURCHASE_TYPE.SUBS : PURCHASE_TYPE.INAPP, });
console.log('Purchase token:', transaction.purchaseToken ?? transaction.receipt);
// Success - check entitlements from the store const { purchases } = await NativePurchases.getPurchases({ productType: planIdentifier ? PURCHASE_TYPE.SUBS : PURCHASE_TYPE.INAPP, });
const isOwned = purchases.some( (purchase) => purchase.productIdentifier === productId && (purchase.purchaseState === 'PURCHASED' || purchase.purchaseState === '1') && purchase.isAcknowledged, );
if (isOwned) { unlockPremiumFeatures(); showSuccess('Premium activated!'); }
} catch (error: any) { // Handle specific error cases switch (error.code) { case 'USER_CANCELLED': // User backed out - no error needed console.log('Purchase cancelled'); break;
case 'ITEM_ALREADY_OWNED': // They already own it - restore instead showInfo('You already own this! Restoring...'); await NativePurchases.restorePurchases(); break;
case 'ITEM_UNAVAILABLE': showError('This subscription is currently unavailable. Please try again later.'); break;
case 'NETWORK_ERROR': showError('Network error. Please check your connection and try again.'); break;
default: showError('Purchase failed. Please try again.'); console.error('Purchase error:', error); } } finally { setLoading(false); }}Implementasikan Pembelian yang Dikembalikan
Bagian berjudul “Implementasikan Pembelian yang Dikembalikan”import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
function RestorePurchasesButton() { const [loading, setLoading] = useState(false);
const handleRestore = async () => { setLoading(true);
try { await NativePurchases.restorePurchases();
const { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS, });
const hasSubscription = purchases.some( (purchase) => purchase.productType === 'subs' && purchase.isAcknowledged, );
if (hasSubscription) { unlockPremiumFeatures(); showSuccess('Subscriptions restored!'); return; }
// Check one-time unlocks if needed const { purchases: iaps } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.INAPP, }); const hasInApp = iaps.some((purchase) => purchase.productIdentifier === 'premium_unlock');
if (hasInApp) { unlockPremiumFeatures(); showSuccess('Previous purchases restored!'); return; }
showInfo('No previous purchases found.'); } catch (error) { showError('Failed to restore purchases. Please try again.'); } finally { setLoading(false); } };
return ( <button onClick={handleRestore} disabled={loading}> {loading ? 'Restoring...' : 'Restore Purchases'} </button> );}Periksa Status Langganan
Bagian berjudul “Periksa Status Langganan”import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
async function checkSubscriptionStatus() { try { const { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS, });
const subscription = purchases.find( (purchase) => purchase.productIdentifier === 'premium_monthly' && (purchase.purchaseState === 'PURCHASED' || purchase.purchaseState === '1') && purchase.isAcknowledged, );
if (!subscription) { showPaywall(); return; }
console.log('Subscription active:', { productId: subscription.productIdentifier, expiresAt: subscription.expirationDate, willRenew: subscription.willCancel === false, purchaseToken: subscription.purchaseToken, });
unlockPremiumFeatures(); } catch (error) { console.error('Failed to check subscription:', error); }}Jika Aplikasi Anda Ditolak
Bagian berjudul “Jika Aplikasi Anda Ditolak”Pelanggaran Kebijakan Umum
Bagian berjudul “Pelanggaran Kebijakan Umum”Kebijakan Pembayaran:
- Tidak menggunakan Billing Google Play
- Klausul langganan yang menipu
- Biaya tersembunyi
Kebijakan Data Pengguna:
- Kebijakan Privasi yang Hilang
- Pernyataan Keselamatan Data yang Tidak Akurat
- Izin yang Berlebihan
Langkah-Langkah Penyelesaian
Bagian yang Berjudul “Langkah-Langkah Penyelesaian”-
Tinjau Peringatan Pelanggaran
- Baca kebijakan yang disebutkan secara spesifik
- Pahami apa yang ditandai oleh Google
- Periksa contoh yang mereka berikan
-
Perbaiki Masalah
- Alami penyebab akar, bukan hanya gejala
- Test secara menyeluruh setelah perbaikan
- Dokumentasikan semua perubahan yang dibuat
-
Kirim Permohonan Banding (jika berlaku)
Subject: Policy Violation Appeal - [App Name]Dear Google Play Review Team,I have received notification that my app violates [Policy X.Y].I have made the following changes to comply:1. [Specific change made]2. [Specific change made]3. [Specific change made]The updated version [version number] addresses all concerns raised.Test account for verification:Email: test@example.comPassword: TestPass123Thank you for your consideration.
-
Resubmit atau Perbarui
- Unggah versi yang diperbaiki
- Resubmit untuk tinjauan
- Monitor status di Console Play
Sumber Daya Tambahan
Bab berjudul “Sumber Daya Tambahan”- Pusat Kebijakan Pengembang Google Play
- Dokumentasi Billing Google Play
- Praktik Subskripsi Terbaik
- Persiapkan Aplikasi Anda untuk Ulasan
- Persyaratan Uji Coba untuk Akun Pribadi Baru
- Bantuan Console Play
Membutuhkan Bantuan Ahli?
Judul Bagian “Membutuhkan Bantuan Ahli?”Mengemudi Ulasan Toko Play dapat kompleks, terutama ketika Anda membutuhkan kombinasi kinerja pembayaran, deklarasi konten aplikasi, dan pengaturan uji coba. Jika Anda membutuhkan bantuan yang disesuaikan:
Jadwalkan panggilan konsultasi dengan tim kami untuk bantuan dengan:
- Persiapan lengkap ulasan Toko Play
- Pengaturan uji coba dan rekrutmen tester
- Pengujian implementasi IAP
- Keamanan Data dan kelayakan privasi
- Penggunaan dan penanganan penolakan
- Proses pengajuan aplikasi lengkap
Para ahli kami telah membantu ratusan aplikasi melewati pengajuan Play Store yang sukses dan dapat membantu Anda menavigasi persyaratan saat ini.
Bantuan
Judul bagian “Bantuan”Membutuhkan bantuan dengan implementasi?
- Lihat Dokumentasi Pembelian Nativ
- Periksa Petunjuk pengujian sandbox Android
- Kunjungi Dukungan Pengembang Google Play
Teruskan dari Pedoman Ulasan Toko Android Play untuk IAP
Judul Bagian “Teruskan dari Pedoman Ulasan Toko Android Play untuk IAP”Jika Anda menggunakan Pedoman Ulasan Toko Android Play untuk IAP untuk merencanakan keamanan dan kinerja, hubungkannya dengan Menggunakan @capgo/native-purchases untuk kemampuan asli dalam Menggunakan @capgo/native-purchases, Enkripsi untuk detail implementasi dalam Enkripsi, Kinerja untuk detail implementasi dalam Kinerja, Capgo Security Scanner for the product workflow in Capgo Security Scanner, and Capgo Security for the product workflow in Capgo Security.