Pedoman Ulasan Toko Play Store Android untuk IAP
Copikan prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Mendapatkan aplikasi Android Anda disetujui di Google Play memerlukan konsistensi dengan kebijakan Google, terutama untuk aplikasi dengan pembelian dalam aplikasi dan langganan. Panduan ini mencakup segala sesuatu yang Anda butuhkan untuk melewati ulasan dengan sukses.
Jalan Rilis Yang Berhasil
Bab berjudul “Jalan Rilis Yang Berhasil”-
Bangun Aplikasi Android yang Ditandatangani
Aplikasi Google Play baru harus diunggah sebagai Aplikasi Android Bundle (“
.aab)bukan APK debug yang disidangkan.
versionCodeHindari meningkatkan
-
Alur Aplikasi Android Bundle
Jika Anda belum memiliki akun pengembang, mulai dengan Daftar ke Console Play. Kemudian, di Rumah > Buat aplikasi, pilih bahasa, jenis aplikasi/game, status gratis/bayar, alamat email dukungan, dan setujui deklarasi yang diperlukan.
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.

-
Selesaikan Konten Aplikasi dan Daftar Toko
Sebelum tinjauan produksi, selesaikan deklarasi Console Play yang diperlukan:
- Kebijakan Privasi
- Iklan
- Akses Aplikasi
- Audien target dan konten
- Penilaian konten
- context: Halaman/area: Halaman solusi bagian contoh aplikasi. Peran: Label UI pendek atau item navigasi. Dilihat di: komponen solusi/SolutionAppExample.astro. Pesan kunci `solution_app_examples_rating` (Penilaian Contoh Aplikasi Solusi).
- Keamanan data
-
Penyataan izin sensitif, jika berlaku
Jalankan 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 pengujian tertutup

-
Pengujian internal di Play Console
Instal aplikasi dari Google Play, bukan dari APK yang diekspor secara lokal. Kemudian pastikan:
- Produk muatan dari Play bekerja dengan benar
- Form pembelian menampilkan pembelian uji coba banner untuk pengujian lisensi
- Entitlements terbuka setelah pembelian
- Flu restore dan manajemen langganan berfungsi
Syarat Billing Google Play
Bab berjudul “Syarat Billing Google Play”Sistem Billing Wajib
Bab berjudul “Sistem Billing Wajib”Untuk barang-barang digital dan layanan, kamu Wajib Menggunakan sistem pembayaran Google Play:
Barang Digital (Wajib Menggunakan Billing Play):
- Langganan fitur premium
- Uang dalam aplikasi atau kredit
- Konten digital (ebook, musik, video)
- Peningkatan permainan dan power-up
- Unlocks aplikasi dan tingkat premium
Barang Fisik (Tidak Bisa Menggunakan Billing Play):
- Barang promosi fisik
- Jasa dunia nyata
- Sumbangan satu kali ke lembaga nirlaba
Pengaturan Langganan
Di Console Play, konfigurasi langganan Android menggunakan model saat ini langganan -> rencana dasar -> tawaran Di native-purchases, berikan ID Rencana Dasar dengan planIdentifier.
:::
Penggunaan dengan Pembelian Asli
Bab berjudul “Penggunaan 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);Persyaratan Transparansi dan Pengungkapan
Bab berjudul “Persyaratan Transparansi dan Pengungkapan”Pengungkapan Harga Muka
Bab berjudul “Pengungkapan Harga Muka”Google Play memerlukan pengungkapan jelas semua biaya sebelum pembelian:
Elemen-Elemen yang Diperlukan:
- Harga yang Tepat dalam Mata Uang Lokal Pengguna
- Frekuensi Pembayaran (bulanan, tahunan, dll.)
- Apa yang Termasuk dalam Langganan
- Biaya Total untuk Penawaran Awal
- Kapan Biaya akan Terjadi

Contoh UI yang Sesuai:
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
Bab yang Berjudul “Pengungkapan Auto-Renewal”Sebelum langganan auto-mulai berulang, Google memerlukan:
- Peringatan yang jelas bahwa perpanjangan akan terjadi
- Pengingat harga
- Akses mudah untuk pembatalan
Klarifikasi Harga Multi-Platform
Bab berjudul “Klarifikasi Harga Multi-Platform”Jika Anda menjual hak istimewa yang sama di beberapa platform, pastikan nama produk, periode pembayaran, manfaat yang termasuk, dan bahasa perpanjangan sejalan 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.
Kebutuhan Kebijakan Privasi
Bab berjudul “Kebutuhan Kebijakan Privasi”Mengenai Kebijakan Privasi Wajib
Judul Bagian “Mengenai Kebijakan Privasi Wajib”Jika aplikasi Anda termasuk pembelian dalam aplikasi, Anda harus:
-
Tautkan dalam Daftar Aplikasi Play Store
- 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
- Jadikan 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> );}Bab Keselamatan Data
Bab yang berjudul “Bab Keselamatan Data”Google Play memerlukan pengungkapan rinci dalam Bab Keselamatan Data:
Untuk Aplikasi IAP, Deklarasikan:
- Kumpulan riwayat pembelian
- Alamat email (untuk faktur)
- ID Perangkat (untuk pencegahan penipuan)
- Pengelolaan informasi pembayaran
- Pengumpulan data analitik
Bab Keselamatan Data ini berlaku secara hukum. Deklarasi yang tidak akurat dapat menyebabkan penghapusan aplikasi.
Deklarasi Konten Aplikasi
Judul Bagian: Pengumuman Konten AplikasiUlasan Google Play tidak hanya tentang file biner. Sebelum rilis produksi, lengkapi pengumuman pada Pengaturan dan program > Konten aplikasi.
Set minimal untuk diperiksa dengan hati-hati:
- Kebijakan privasi: URL publik di Console Play, ditambahkan dengan pintu masuk dalam aplikasi jika diperlukan
- Iklan: Beri tahu ulasan apakah aplikasi mengandung iklan
- Akses aplikasi: Berikan kredit kerja atau jalur tes yang jelas jika ada layar yang terkunci
- Audien sasaran dan konten: Sesuaikan dengan audiens asli aplikasi
- Penilaian Konten: Lengkapi kuesioner IARC agar aplikasi tidak ditandai tidak dinilai
- Keamanan Data: Deklarasikan praktik pengumpulan, pengiriman, dan keamanan dengan akurat
Alasan Penolakan Umum
Judul bagian “Alasan Penolakan Umum”1. Implementasi Billing yang Tidak Lengkap atau Salah
Judul Bagian: “1. Implementasi Tagihan yang Tidak Tepat atau Salah”Mengapa Gagal:
- Tidak menggunakan Google Play Billing untuk barang digital
- Menggunakan API tagihan yang sudah tidak digunakan
- 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 Dihitung
Judul Bagian: “2. Harga yang Tidak Jelas atau Biaya yang Dihitung”Mengapa Gagal:
- Harga hanya ditampilkan setelah mengklik pembelian
- Biaya tambahan tidak disampaikan secara terbuka dari awal
- Klausul-klausul langgar langganan yang tidak jelas
Preventif:
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 Langganan yang Menipu
Bab berjudul “3. Pola Langganan yang Menipu”Mengapa Gagal:
- Mengatur opsi premium secara otomatis
- Menghilangkan alternatif yang lebih murah
- Memulihkan pembatalan yang sulit
- Membuat kebutuhan darurat palsu (“Hanya 3 tempat yang tersedia!”)


Preventif:
- Tampilkan semua tingkat langganan secara sama
- Jadikan pembatalan jelas dan mudah diakses
- Hindari penggunaan timer atau kekurangan palsu
- Jangan menggunakan pola gelap untuk mempromosikan opsi yang mahal
4. Pengujian Tidak Komplit
Judul bagian “4. Pengujian Tidak Komplit”Mengapa Gagal:
- Aplikasi bermasalah saat membeli
- Produk tidak terbuka
- Konfirmasi pembelian tidak ditampilkan
- Fitur premium tidak terbuka setelah pembelian
- Hanya tes dilakukan pada build sideloaded bukan pada jalur tes yang diinstal Play
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 link 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
- Termasukkan tautan di pengaturan aplikasi
- Isi Data Keselamatan dengan akurat
- Perbarui kebijakan 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 yang tidak standar Billing Google Play, pastikan kebijakan pasar yang tepat, API yang diperlukan, dan bahasa pengungkapan di Console Play segera sebelum implementasi.
Pengelolaan Langganan
Judul bagian “Pengelolaan Langganan”Penghapusan Langganan yang Mudah
Judul Bagian: “Pembatalan Mudah”Pengguna harus dapat:
- Mengakses langganan aktif dengan mudah
- Membatalkan tanpa menghubungi dukungan
- Mengerti kapan pembatalan 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 Pembatalan
Judul Bagian: “Masa Pembatalan”Pemberitahuan Wajib:
- Kapan pembatalan berlaku?
- Apakah pengguna tetap memiliki akses hingga akhir masa?
- Apakah ada pengembalian sebagian uang?
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 Periksa Sebelum Pengiriman
Judul Bagian “Daftar Periksa Sebelum Pengiriman”
-
Verifikasi Implementasi Billing
- Menggunakan Billing Google Play (via native-purchases)
- Semua produk langganan yang dibuat di Console Play
- Rencana dasar dan penawaran yang dikonfigurasi dengan benar
- Produk diaktifkan dan dipublikasikan
- Harga yang ditetapkan untuk semua negara target
-
Aliran Pembelian Uji
- Membuat akun uji coba lisensi
- Instal aplikasi dari jalur pengujian Play
- Uji setiap tingkat langganan
- Pastikan produk muatan dengan benar
- Uji proses pembelian
- Konfirmasi pembelian uji coba banner muncul Pastikan fitur premium terbuka
- Uji pemulihan langganan
- Uji di berbagai perangkat
- Uji Semua Salinan
-
Uji di berbagai perangkat
- Harga ditampilkan dengan jelas sebelum pembelian
- Tunjuk biaya yang disampaikan secara langsung
- Syarat-syarat langganan jelas
- Proses pembatalan dijelaskan
- Tidak ada klaim yang menipu
-
Konten Aplikasi dan Privasi
- Kebijakan privasi terkait dengan Console Play
- Kebijakan privasi dapat diakses dalam aplikasi
- Penjelasan iklan telah diselesaikan
- Instruksi akses aplikasi ditambahkan jika aplikasi terkunci
- Bab Keselamatan Data diselesaikan dengan akurat
- Izin yang diberikan dan dokumentasi telah dibuktikan
-
Penilaian Konten dan Audiens
- Selesaikan kuesioner penilaian konten
- Selesaikan bagian audiens dan konten
- Pastikan penilaian sesuai dengan konten yang sebenarnya
- Klarifikasi pembelian dalam aplikasi di kuesioner
-
Siapkan Daftar Toko
- Deskripsi aplikasi akurat
- Deskripsi singkat dalam 80 karakter
- Deskripsi lengkap dalam 4000 karakter
- Setidaknya 2 layar ponsel diunggah
- Gambar fitur 1024x500 diunggah
- Layar ponsel menampilkan versi saat ini
- Semua aset yang dibutuhkan telah diunggah
Grafik Waktu Ulasan
Bab yang berjudul “Grafik Waktu Ulasan”Akses Produksi untuk Akun Pribadi Baru: Seringnya 7 hari atau kurang setelah Anda menerapkan Pertama Ulasan Produksi: context: Halaman/area: Capgo Builder / produk halaman native cloud build. Peran: Label UI singkat atau item navigasi. Pesan kunci `native_build_builder_credit_first` (Kredit Pembangun Native Build Pertama) Seringnya beberapa hari, kadang-kadang lebih lama jika ada pertanyaan tentang tagihan atau kebijakan Pembaruan: Sering lebih cepat daripada rilis pertama, tetapi masih diulas Banding Keputusan:
Rencanakan beberapa hari dan berikan perbaikan yang tepat dan instruksi reviewer
Menguji Sebelum Pengiriman
Judul Bagian “Menguji Sebelum Pengiriman”Pengujian Lisensi
Judul Bagian “Pengujian Lisensi”-
Tambahkan Akun Uji Coba:
- Pergi ke Console Play
- Pengaturan > Pengujian Lisensi
- Tambahkan Akun Gmail untuk Pengujian
-
Menguji 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 Coba:
- Membeli dengan Akun Uji Coba
- Harus melihat notifikasi pembelian uji coba “Test purchase”
- Tidak ada biaya nyata yang terjadi
Jalur Pengujian Internal dan Tertutup
Bab berjudul “Jalur Pengujian Internal dan Tertutup”Sebelum rilis produksi:
- Buatlah jalur pengujian internal untuk tes QA yang cepat atau jalur pengujian tertutup untuk pengujian yang lebih luas Unggah rilis pengujian yang telah ditandatangani dan publikasikan Buatlah internal testing untuk tes QA yang cepat atau buatlah closed testing untuk pengujian yang lebih luas
- Unggah rilis pengujian yang telah ditandatangani dan publikasikan
.aabTidak ada biaya nyata yang terjadi - Menambahkan alamat email tester dan berbagi tautan opt-in
- Minta tester menginstal build dari Google Play
- Verifikasi alur pembelian bekerja secara keseluruhan pada build yang diinstal Play
- Jika akun pengembang pribadi Anda dibuat setelah 13 November 2023, pastikan setidaknya 12 tester yang terdaftar dalam tes tertutup selama 14 hari berturut-turut sebelum mengajukan permohonan produksi
Build debug yang disidangkan bukanlah pengganti build testing yang diinstal Play ketika memvalidasi Billing Google Play
Praktik Terbaik untuk Pembelian Asli
Bab berjudul “Praktik Terbaik untuk Pembelian Asli”Menangani Semua Status Pembelian
Bab berjudul “Menangani 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); }}Mengimplementasikan Pembelian yang Dikembalikan
Bab berjudul “Mengimplementasikan 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
Judul Bagian “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
Judul Bagian “Jika Aplikasi Anda Ditolak”Pelanggaran Kebijakan Umum
Judul Bagian “Pelanggaran Kebijakan Umum”Kebijakan Pembayaran:
- Tidak Menggunakan Billing Google Play
- Klausul Langganan yang Menipu
- Biaya yang Tersembunyi
Kebijakan Data Pengguna:
- Kebijakan Privasi Hilang
- Penyataan Keselamatan Data yang Tidak Akurat
- Otorisasi yang Berlebihan
Langkah-Langkah Penyelesaian
Judul Bagian “Langkah-Langkah Penyelesaian”-
Periksa Notifikasi Pelanggaran
- Baca Kebijakan yang Dikutip secara Spesifik
- Pahami Apa yang Dihapuskan oleh Google
- Periksa Contoh yang Diberikan
-
Perbaiki Masalah
- Alami Penyebab Utama, Bukan Gejala Hanya
- Periksa secara menyeluruh setelah diperbaiki
- Dokumentasikan semua perubahan yang dibuat
-
Ajukan 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 Play Console
Sumber Daya Tambahan
Bagian berjudul “Sumber Daya Tambahan”- Pusat Kebijakan Pengembang Google Play
- Dokumentasi Billing Google Play
- Praktik Terbaik Subskripsi
- Persiapkan Aplikasi Anda untuk Tinjauan
- Persyaratan Pengujian untuk Akun Pribadi Baru
- Bantuan Konsol Play
Memerlukan Bantuan Ahli?
Judul Bagian “Memerlukan Bantuan Ahli?”Mengemudi tinjauan toko Play dapat kompleks, terutama ketika Anda perlu menggabungkan kinerja pembayaran, deklarasi konten aplikasi, dan pengaturan track pengujian. Jika Anda memerlukan bantuan pribadi:
Buat janji panggilan dengan tim kami untuk membantu dengan:
- Persiapan lengkap tinjauan toko Play
- Konfigurasi dan rekrutmen tester untuk pengujian track
- Pengimplementasian IAP
- Ketentuan keamanan dan privasi data
- Pengaturan dan banding untuk penolakan
- Proses pengiriman aplikasi lengkap
Para ahli kami telah membantu ratusan aplikasi melalui pengiriman Play Store yang sukses dan dapat membantu Anda menavigasi persyaratan saat ini.
Bantuan
Bagian berjudul “Bantuan”Perlu bantuan dengan implementasi?
- Review dokumen Pengujian Pembelian Nativ
- Periksa Petunjuk Panduan Uji Coba Android Sandbox
- Kunjungi Dukungan Pengembang Google Play
Lanjutkan dari Pedoman Ulasan Toko Play Android untuk IAP
Judul Bagian “Lanjutkan dari Pedoman Ulasan Toko Play Android untuk IAP”Jika Anda menggunakan Pedoman Ulasan Toko Play Android untuk IAP untuk merencanakan keamanan dan kinerja, hubungkannya dengan Menggunakan @capgo/native-purchases untuk kemampuan native di Menggunakan @capgo/native-purchases, Enkripsi untuk detail implementasi di Enkripsi, Ketepatan untuk detail implementasi di Ketepatan Capgo Scanner Keamanan untuk alur produk di Capgo Scanner Keamanan, dan Capgo Keamanan untuk alur produk di Capgo Keamanan.