Pindah ke konten

Pedoman Ulasan Toko Play Store Android untuk IAP

GitHub

Mengapa Anda perlu memastikan aplikasi Android Anda disetujui di Google Play, terutama untuk aplikasi dengan pembelian dalam aplikasi dan langganan. Panduan ini mencakup segala sesuatu yang Anda butuhkan untuk melewati ulasan dengan sukses.

  1. Buat Paket Aplikasi Android yang Dijamin

    Aplikasi Google Play baru harus diunggah sebagai Android App Bundle (".aabHindari meninggalkan

    Tetapkan versionCode Meningkatkan setiap kali unggahan dan simpan kunci unggahan Anda dengan aman jika Anda menggunakan Play App Signing.

    Aliran Paket Aplikasi Android

  2. Buat Rekaman Aplikasi di Console Play

    Jika Anda belum memiliki akun pengembang, mulai dengan Pendaftaran 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.

    Buat Aplikasi di Console Play

  3. Selesaikan Konten Aplikasi dan Daftar Toko

    Sebelum tinjauan produksi, selesaikan deklarasi yang diperlukan di Console Play:

    • Kebijakan Privasi
    • Iklan
    • Akses Aplikasi
    • Audien target dan konten
    • Penilaian Konten
    • Keamanan Data
    • Penjelasan Ijin Akses yang Sensitif, jika Diperlukan
  4. Lakukan Uji Coba Track Instalasi 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 uji coba tertutup dengan setidaknya 12 pengujung yang memilih untuk berpartisipasi selama 14 hari berturut-turut sebelum akses produksi.

    Tes Internal di Console Play

  5. Verifikasi Billing End-to-End

    Pasang aplikasi dari Google Play, bukan dari APK yang diekspor secara lokal. Kemudian pastikan bahwa:

    • Produk muat dari Play dengan benar
    • Sheet pembelian menampilkan beli uji coba banner untuk pengujian lisensi
    • Entitlements terbuka setelah pembelian
    • Flu restore dan manajemen langganan berfungsi

Untuk barang digital dan layanan, Anda harus menggunakan sistem billing Google Play:

Barang Digital (Harus Menggunakan Billing Play):

  • Subscriptions to premium features
  • Uang dalam aplikasi atau kredit
  • Konten digital (ebook, musik, video)
  • Peningkatan permainan dan power-up
  • Unjuk aplikasi dan tingkat premium

Barang Fisik (Tidak Bisa Menggunakan Billing Play):

  • Barang dagangan fisik
  • Real-world services
  • Sumbangan satu kali ke lembaga nirlaba

:::note Pengaturan Langganan Di Console Play, atur langganan Android menggunakan model saat ini langganan -> rencana dasar -> tawaran model. native-purchasesPasang ID Rencana Dasar dengan planIdentifier. :::

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Ensure billing is available on the device
const { 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 Console
const 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

Persyaratan Transparansi dan Pengungkapan

Kebijakan Transparansi dan Pengungkapan yang Diperlukan

Judul Bagian berjudul “Pengungkapan Harga Sebelumnya”

Google Play memerlukan pengungkapan jelas semua biaya sebelum pembelian:

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 Introductif
  • Kapan Biaya akan Terjadi

Prinsip-Prinsip Desain UI yang Baik

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 Perpanjangan Otomatis

Judul Bagian: “Pengungkapan Auto-Renewal”

Sebelum langganan secara otomatis diperbarui, Google memerlukan:

  • Peringatan jelas bahwa perpanjangan akan terjadi
  • Pengingat harga
  • Akses mudah untuk pembatalan

Jika Anda menjual hak akses yang sama di berbagai platform, pastikan nama produk, periode pembayaran, manfaat yang termasuk, dan bahasa perpanjangan tetap 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.

Jika aplikasi Anda termasuk pembelian dalam aplikasi, Anda harus:

  1. Tautkan di Daftar Pustaka Play Store

    • Tambahkan URL kebijakan privasi di Console Play
    • Wajib dapat diakses publik
    • Wajib dalam bahasa yang sama dengan aplikasi Anda
  2. 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>
);
}

Google Play memerlukan pengungkapan rinci dalam bagian Keselamatan Data:

Judul Bagian Keamanan Data

  • Google Play memerlukan pengungkapan rinci dalam bagian Keamanan Data:
  • Untuk Aplikasi IAP, Deklarasikan:
  • Pengumpulan riwayat pembelian
  • Alamat email (untuk faktur)
  • ID perangkat (untuk pencegahan penipuan)

Bagian Keselamatan Data adalah sah secara hukum. Pengakuan yang tidak akurat dapat menyebabkan penghapusan aplikasi.

Ulasan Google Play tidak hanya tentang file biner. Sebelum rilis produksi, lengkapi pengakuan pada Kebijakan dan Program > Konten Aplikasi.

Set minimal untuk diperiksa dengan hati-hati:

  • Sikap 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 uji yang jelas jika ada layar yang terkunci
  • Audien target dan konten: Sesuaikan dengan audiens asli aplikasi
  • Klasifikasi Konten: Selesaikan kuesioner IARC untuk memastikan aplikasi tidak ditandai tidak terklasifikasi
  • Keselamatan Data: Deklarasikan praktik pengumpulan, pengiriman, dan keamanan data dengan akurat

1. Implementasi Billing yang Tidak Tepat atau Kosong

Judul Bagian: 1. Implementasi Billing yang Tidak Tepat atau Kosong

Mengapa Gagal:

  • Tidak menggunakan Google Play Billing untuk barang digital
  • Menggunakan API Billing yang Depreciated
  • 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 Dibungkus

Judul Bagian: 2. Harga yang Tidak Jelas atau Biaya yang Dibungkus

Mengapa Gagal:

  • Hanya ditampilkan harga setelah mengklik pembelian
  • Biaya tambahan tidak disampaikan secara langsung
  • Klausul langganan yang tidak jelas

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>
);
}

Mengapa Gagal:

  • Mengatur pilihan premium secara otomatis
  • Menyembunyikan alternatif yang lebih murah
  • Membuat pembatalan sulit
  • Keterlaluan kebutuhan ("Hanya 3 tempat tersisa!")

Praktik Penulisan Deskripsi

Pedoman Pemasaran

Pencegahan:

  • Tampilkan semua tingkat langganan secara sama
  • Jelaskan pembatalan dengan jelas dan mudah diakses
  • Hindari penggunaan timer mundur atau kekurangan palsu
  • Jangan menggunakan pola gelap untuk mempromosikan opsi yang mahal

Mengapa Gagal:

  • Aplikasi mengalami crash saat membeli
  • Produk tidak dapat dimuat
  • Konfirmasi pembelian tidak ditampilkan
  • Fasilitas premium tidak terbuka setelah pembelian
  • Pengujian hanya dilakukan pada build sideloaded bukan pada jalur pengujian Play yang terpasang

Pencegahan:

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Comprehensive testing before submission
async 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

5. Pelanggaran Kebijakan Privasi

Judul bagian ‘5. Pelanggaran Kebijakan Privasi’

  • Tidak ada tautan kebijakan privasi di aplikasi
  • Kebijakan Privasi tidak dapat diakses
  • Kebijakan privasi tidak dapat diakses
  • Pengumpulan data tidak disampaikan secara jelas

Pencegahan:

  • Tambahkan kebijakan privasi ke daftar penjualan Play Store
  • Termasuk tautan di pengaturan aplikasi
  • Isi Data Keselamatan dengan akurat
  • Perbarui kebijakan ketika menambahkan pengumpulan data baru

Program pembayaran alternatif Google adalah spesifik wilayah dan dapat berubah. Jika Anda ingin sesuatu yang tidak standar Google Play Billing, pastikan kebijakan pasar yang tepat, API yang diperlukan, dan bahasa pengungkapan dalam Console Play segera sebelum implementasi.

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>
);
}

Jangka Waktu Pembatalan

Pengaturan Jangka Waktu Pembatalan

Pembatasan yang Diperlukan:

  • When cancellation berlaku?
  • Apakah pengguna masih 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 Periksa Sebelum Pengiriman

  1. Verifikasi Implementasi Billing

    • Menggunakan Billing Google Play (via native-purchases)
    • Semua produk langganan yang dibuat di Play Console
    • Rencana dasar dan penawaran yang dikonfigurasi dengan benar
    • Produk diaktifkan dan dipublikasikan
    • Harga yang ditetapkan untuk semua negara target
  2. Alur Pembelian Uji

    • Buat Akun Lisensi Uji
    • Pasang Bangun dari Jalur Uji Play
    • Uji Setiap Tingkat Langganan
    • Pastikan Produk Muat dengan Benar
    • Uji Pembelian Selesai
    • Konfirmasikan Banner Uji Tampil Pastikan Fitur Premium Terbuka
    • Uji Restorasi Langganan
    • Pengembalian Langganan Uji
    • Test pada berbagai perangkat
  3. Tinjau Semua Salinan

    • Harga ditampilkan dengan jelas sebelum pembelian
    • Semua biaya disampaikan secara langsung
    • Syarat-syarat langganan jelas
    • Proses pembatalan dijelaskan
    • Tidak ada klaim yang menipu
  4. Konten Aplikasi dan Privasi

    • Kebijakan Privasi terhubung ke Console Play
    • Kebijakan Privasi dapat diakses di aplikasi
    • Pernyataan iklan telah diselesaikan
    • Instruksi akses aplikasi ditambahkan jika aplikasi dikunci
    • Bagian Keamanan Data selesai dengan akurat
    • Otorisasi yang dibenarkan dan didokumentasikan
  5. Penilaian Konten dan Audiens

    • Selesaikan kuesioner penilaian konten
    • Selesaikan bagian audiens dan konten
    • Ensure rating matches actual content
    • Klarifikasi pembelian dalam aplikasi di kuesioner
  6. Siapkan Daftar Toko

    • Deskripsi aplikasi akurat
    • Deskripsi singkat dalam 80 karakter
    • Deskripsi lengkap dalam 4000 karakter
    • Setidaknya 2 screenshot ponsel diunggah
    • Gambar fitur 1024x500 diunggah
    • Tampilan screenshot menampilkan versi saat ini
    • Semua aset yang diperlukan diunggah

Akses Produksi untuk Akun Pribadi Baru: Biasanya 7 hari atau kurang setelah Anda mengajukan Ulasan Produksi Pertama: Banyak hari, terkadang lebih lama jika ada pertanyaan tentang tagihan atau kebijakan. Updates: Cepat lebih dari rilis pertama, tetapi masih diperiksa Appeals: Rencanakan beberapa hari dan berikan instruksi perbaikan yang tepat dan 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. :::

  1. Tambahkan Akun Uji:

    • Pergi ke Console Play
    • Pengaturan > Pengujian Lisensi
    • Tambahkan akun Gmail untuk pengujian
  2. Uji di Sandbox:

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Test purchases with license test account
async 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);
}
  1. Verifikasi Banner Uji Coba:
    • Ketika melakukan pembelian dengan akun uji coba
    • Harus melihat notifikasi pembelian “Uji Coba”
    • Tidak ada biaya nyata yang terjadi

Sebelum rilis produksi:

  1. Buat sebuah lacak internal untuk QA yang lebih cepat atau sebuah lacak uji coba tertutup untuk pengujian yang lebih luas
  2. Unggah tanda tangan .aab dan publikasikan rilis pengujian
  3. Tambahkan alamat email tester dan bagikan tautan opt-in
  4. Tester instal aplikasi dari Google Play
  5. Verifikasi aliran pembelian berfungsi secara keseluruhan pada aplikasi Play yang diinstal
  6. Jika akun pengembang pribadimu dibuat setelah 13 November 2023, pastikan setidaknya 12 tester yang terdaftar dalam tes tertutup selama 14 hari berturut-turut sebelum mengajukan aplikasi produksi

Aplikasi debug yang disidangkan bukanlah pengganti aplikasi pengujian yang diinstal Play saat memvalidasi Billing Google Play

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);
}
}
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>
);
}
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);
}
}

Kesalahan Kebijakan Umum

  • Judul Bagian “Kesalahan Kebijakan Umum”
  • Klausul Subskripsi yang Menipu
  • Biaya-Biaya yang Tersembunyi

Kebijakan Data Pengguna:

  • Kebijakan Privasi yang Hilang
  • Penyataan Keselamatan Data yang Tidak Akurat
  • Otorisasi yang Berlebihan
  1. Periksa Notifikasi Pelanggaran

    • Baca Kebijakan yang Dikutip secara Spesifik
    • Pahami Apa yang Dihapus oleh Google
    • Periksa Contoh yang Diberikan
  2. Perbaiki Masalah

    • Alami Sumber Masalah, Bukan Hanya Gejala
    • Test Secara Mendalam Setelah Perbaikan
    • Dokumentasikan Semua Perubahan
  3. Kirimi Rayuan (Jika Berlaku)

    Proses Penjelasan dan Rayuan

    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.com
    Password: TestPass123
    Thank you for your consideration.

    Contoh Dokumentasi Permintaan

  4. Kirim Ulang atau Perbarui

    • Unggah Versi Diperbaiki
    • Kirim Ulang untuk Tinjauan
    • Pantau Status di Console Play

Mengatur Tinjauan Toko Play dapat kompleks, terutama ketika Anda perlu menggabungkan kinerja pembayaran, deklarasi konten aplikasi, dan pengaturan track uji. Jika Anda membutuhkan bantuan pribadi:

Bookingan panggilan konsultasi dengan tim kami Bantuan untuk:

  • Persiapan lengkap ulasan Play Store
  • Pengaturan dan rekrutmen tester track
  • Ulasan implementasi IAP
  • Kepatuhan keamanan dan privasi data
  • Penyelesaian masalah penolakan dan banding
  • Proses pengajuan aplikasi lengkap

Para ahli kami telah membantu ratusan aplikasi melalui pengajuan Play Store yang sukses dan dapat membantu Anda menavigasi persyaratan saat ini.

Apakah Anda membutuhkan bantuan dengan implementasi?

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 natif di Menggunakan @capgo/native-purchases, Kriptografi untuk detail implementasi di Kriptografi, Compliance untuk detail implementasi di Kemampuan Kompatibilitas, Scanner Keamanan Capgo untuk alur kerja produk di Scanner Keamanan Capgo dan Keamanan Capgo untuk alur kerja produk di Keamanan Capgo.