Richtlinien für die Bewertung im Android Play Store für IAP
Eine Einrichtungshinweis mit den Installations-Schritten und der vollständigen Markdown-Dokumentation für diesen Plugin kopieren.
Um Ihr Android-App auf Google Play zu genehmigen, müssen Sie sich an Googles Richtlinien halten, insbesondere für Apps mit In-App-Käufen und Abonnements. Diese Anleitung deckt alles ab, was Sie zum erfolgreichen Abschluss der Überprüfung benötigen.
Freigegebener Weg, der funktioniert
Abschnitt mit dem Titel "Freigegebener Weg, der funktioniert"-
Erstellen Sie ein signiertes Android-App-Bundle
Neue Google Play-Anwendungen sollten als Android-App-Bundle (
.aab)nicht als sideloaded Debug-APK hochgeladen werden.
versionCodeHalten Sie Ihre
-
Android-App-Bundle-Fluss
Wenn Sie noch keinen Entwicklerkonto haben, beginnen Sie mit Play Console Registrierung. Dann wählen Sie in Zuhause > App erstellen, die Sprache, den App/Spieltyp, die kostenlose/zahlungspflichtige Status, die Support-E-Mail und akzeptieren Sie die erforderlichen Erklärungen.
Wählen Sie den kostenlosen/zahlungspflichtigen Status sorgfältig. Google lässt Sie eine bezahlte App später kostenlos machen, aber sobald eine App kostenlos angeboten wird, kann sie nicht mehr in eine bezahlte umgewandelt werden.

-
App-Inhalt und Store-Listing abschließen
Bevor die Produktion überprüft wird, beenden Sie die erforderlichen Play Console-Erklärungen:
- Datenschutzrichtlinie
- Anzeigen
- App-Zugriff
- Zielgruppe und Inhalte
- Inhaltsbewertung
- Daten-Sicherheit
- Sensitive Berechtigungen, falls zutreffend
-
Play-Installierter Test-Track ausführen
Mit internem Testing für schnelles QA. Wenn Ihr Entwicklerkonto ein nach dem 13. November 2023 erstelltes persönliches Konto ist, müssen Sie auch ein geschlossenes Test mit mindestens 12 sich freiwillig anmeldenden Testern für 14 aufeinanderfolgende Tage durchführen, bevor Sie Zugriff auf die Produktion erhalten.

-
Zahlungsabwicklung End-to-End überprüfen
Install die App von Google Play, nicht von einer lokal exportierten APK. Dann bestätigen Sie, dass:
- Produkte laden sich von Play richtig
- Das Kaufblatt zeigt ein Testkauf Ein Werbebanner für Lizenzprüfer
- Zugriffsrechte werden nach Kauf freigeschaltet
- Wiederherstellung und Abonnement-Verwaltungsfunktionen funktionieren
Google Play Billing Anforderungen
Abschnitt mit dem Titel “Google Play Billing Anforderungen”Pflichtverkaufs-System
Abschnitt mit dem Titel “Pflichtverkaufs-System”Für digitale Güter und Dienstleistungen müssen Sie Muss verwenden Sie das Bezahl-System von Google Play:
Digitale Güter (Muss Bezahlung über Play verwenden):
- Abonnements für Premium-Funktionen
- In-App-Währung oder Guthaben
- Digitale Inhalte (E-Books, Musik, Videos)
- Game-Upgrades und Power-ups
- App-Entsperungen und Premium-Ebenen
Physische Güter (Kann Bezahlung über Play nicht verwenden):
- Physische Merchandise
- Echtzeit-Dienstleistungen
- Einzelförderungen an Non-Profit-Organisationen
:::note Abonnementseinstellungen
In der Play Console, konfigurieren Sie Android-Abonnements mit dem aktuellen abonnement -> Basisplan -> Angebot Modell. In native-purchases, übergeben Sie die Basis-Plan-ID mit planIdentifier.
:::
Implementierung mit Native Purchases
Sektion mit dem Titel “Implementierung mit Native Purchases”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);Transparenz- und Offenlegungserfordernisse
Sektion mit dem Titel “Transparenz- und Offenlegungserfordernisse”Offene Preisoffenlegung
Sektion mit dem Titel “Offene Preisoffenlegung”Google Play verlangt eine klare Offenlegung aller Kosten vor dem Kauf:
Erforderliche Elemente:
- Genauer Preis in der lokalen Währung des Benutzers
- Zahlungszeitraum (monatlich, jährlich usw.)
- Was ist in der Abonnementvereinbarung enthalten
- Gesamtkosten für Einführungsangebote
- Wenn Gebühren anfallen

Beispiel für eine konforme UI:
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> );}Automatische Erneuerungsankündigung
Abschnitt mit dem Titel "Automatische Erneuerungsankündigung"Bevor ein Abonnement automatisch erneuert wird, erfordert Google:
- Benachrichtigung über die Wiederholung der Abonnementzahlung
- Preis-Erinnerung
- Zugriff auf die Kündigung
Klarheit bei der Preisgestaltung auf verschiedenen Plattformen
Abschnitt mit dem Titel „Klarheit bei der Preisgestaltung auf verschiedenen Plattformen“Wenn Sie das gleiche Entgelt auf mehreren Plattformen verkaufen, sollten Sie die Produktbezeichnung, die Abrechnungsperiode, die inbegriffenen Vorteile und die Verlängerungsanweisungen so einrichten, dass die Benutzer nicht überrascht werden.
Die Preise können aufgrund von Steuern, lokaler Währung oder Verkaufseconomie unterschiedlich sein, aber die Kauf-UI darf diese Unterschiede niemals verbergen oder eine andere Verlängerungskosten andeuten, als die, die Google Play berechnet.
Anforderungen an die Datenschutzrichtlinie
Abschnitt mit dem Titel „Anforderungen an die Datenschutzrichtlinie“Pflichtige Datenschutzrichtlinie
Abschnitt mit dem Titel „Pflichtige Datenschutzrichtlinie“Wenn Ihre App In-App-Käufe enthält, müssen Sie:
-
Link in der Play Store Liste
- Fügen Sie die Datenschutzrichtlinien-URL in der Play Console hinzu
- Muss öffentlich zugänglich sein
- Muss in der gleichen Sprache wie Ihre App sein
-
Link innerhalb der App
- Zeigen Sie die Datenschutzrichtlinie in den App-Einstellungen an
- Zeigen Sie sie vor der Sammlung von Nutzerdaten an
- Machen Sie sie leicht entdeckbar
Beispiel-Implementierung:
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> );}Daten-Sicherheitsbereich
Bereich mit dem Titel „Daten-Sicherheitsbereich“Google Play erfordert eine detaillierte Offenlegung im Daten-Sicherheitsbereich:
Für IAP-Apps muss folgendes deklariert werden:
- Kaufhistorie-Sammlung
- E-Mail-Adressen (für Rechnungen)
- Geräte-IDs (für Betrugsvorbeugung)
- Zahlungsdaten-Verarbeitung
- Analyse-Datensammlung
Der Daten-Sicherheitsbereich ist gesetzlich bindend. Falsche Deklarationen können zu einer App-Entfernung führen.
Angebotsinhaltsdeklarationen
Abschnitt mit dem Titel “App-Inhaltsdeklarationen”Die Google Play-Bewertung geht nicht nur auf das Binärdatei. Bevor eine Produktionsversion freigegeben wird, füllen Sie die Deklarationen auf Policy und Programme > App-Inhalt.
Die Mindestmenge, die sorgfältig geprüft werden sollte:
- Datenschutzrichtlinie: Öffentliche URL im Play-Console, zuzüglich einer in-app-Einstiegspunkt, wenn erforderlich
- Anzeigen: Deklarieren Sie, ob die App Anzeigen enthält
- App-Zugriff: Geben Sie den Testern Zugriff oder einen klaren Testpfad, wenn eine beliebige Seite gesperrt ist
- Zielgruppe und Inhalt: Passen Sie die tatsächliche Zielgruppe der App an
- Inhaltsbewertungen: Füllen Sie das IARC-Fragebogen aus, damit die App nicht als unbewertet markiert wird
- Datenschutz: Erklären Sie die Sammlung, den Austausch und die Sicherheitspraktiken genau
Häufige Ablehnungsgründe
Abschnitt mit dem Titel "Häufige Ablehnungsgründe"1. Fehlende oder falsche Abrechnungsdurchführung
Abschnitt mit dem Titel “1. Fehlende oder falsche Abrechnungsdurchführung”Warum es scheitert:
- Nicht die Verwendung von Google Play Billing für digitale Güter
- Verwendung veralteter Abrechnungs-APIs
- Implementierung von eigenen Zahlungslösungen für Abonnements
Verhütung:
// ✅ 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. Unklare Preise oder versteckte Kosten
Abschnitt mit dem Titel “2. Unklare Preise oder versteckte Kosten”Warum es scheitert:
- Preis wird nur angezeigt, nachdem der Kauf geklickt wurde
- Zusätzliche Gebühren werden nicht vorher offengelegt
- Unklare Abonnementbedingungen
Prävention:
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. Täuschende Abonnementmuster
Abschnitt mit dem Titel „3. Täuschende Abonnementmuster“Warum es scheitert:
- Vorab ausgewählte Premiumoptionen
- Kostengünstigere Alternativen verbergen
- Kündigung erschweren
- Falsche Dringlichkeit („Nur noch 3 Plätze frei!“)


Verhinderung:
- Alle Abonnementebenen gleichzeitig anzeigen
- Stornierung klar und zugänglich machen
- Vermeide Countdown-Zähler oder Falsche Knappheit
- Verwende keine dunklen Muster, um teure Optionen zu drängen
4. Unvollständige Tests
Überschrift "4. Unvollständige Tests"Warum es scheitert:
- Die App stürzt beim Kauf ab
- Produkte laden nicht
- Die Kaufbestätigung wird nicht angezeigt
- Premium-Funktionen werden nicht nach dem Kauf freigeschaltet
- Ersttesten fand nur auf sideloadten Builds statt und nicht auf einem Testtrack über Play
Prävention:
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. Verstoß gegen die Datenschutzrichtlinien
Abschnitt mit dem Titel „5. Verstoß gegen die Datenschutzrichtlinien“Warum es scheitert:
- Kein Link zur Datenschutzrichtlinie im App
- Datenschutzrichtlinie nicht zugänglich
- Nicht offengelegte Datenerfassung
- Datenschutzabschnitt ist ungenau
Prävention:
- Fügen Sie eine Datenschutzrichtlinie zur Play Store-Anzeige hinzu
- Link in App-Einstellungen einfügen
- Daten-Sicherheitsbereich genau ausfüllen
- Datenerfassungspolitik aktualisieren, wenn neue Daten gesammelt werden
Alternative Zahlungssysteme
Abschnitt mit dem Titel „Alternative Zahlungssysteme“Googles alternative Zahlungssysteme sind regionsspezifisch und können sich ändern. Wenn Sie etwas anderes als das Standard-Googles-Play-Billing verwenden möchten, bestätigen Sie die genaue Markt-Eligibilität, die erforderlichen APIs und die Offenlegungssprache im Play-Console sofort vor der Implementierung.
Abonnement-Verwaltung
Abschnitt mit dem Titel „Abonnement-Verwaltung“Einfache Stornierung
Abschnitt mit dem Titel “Kündigung ohne Probleme”Benutzer müssen in der Lage sein:
- Aktive Abonnements leicht einsehen
- Kündigung ohne Kontakt zum Support
- Kennen, wann die Kündigung wirksam wird
Implementierung:
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> );}Kündigungsrückgängigkeitsfrist
Abschnitt mit dem Titel “Kündigungsrückgängigkeitsfrist”Erforderliche Offenlegung:
- Wann wirkt die Kündigung?
- Behalten Benutzer den Zugriff bis zum Ende der Frist?
- Sind Teilrückerstattungen verfügbar?
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> );}Überprüfungsliste vor der Einreichung
Überschrift: Überprüfungsliste vor der Einreichung
-
Zahlungsdienstleistungsimplementierung überprüfen
- Alle Abonnementprodukte im Play Console erstellt
- Basiseinstellungen und Angebote korrekt konfiguriert
- Produkte aktiviert und veröffentlicht
- Preise für alle Zielgebiete gesetzt
- Testkäuferflüsse überprüfen
-
__CAPGO_KEEP_0__
- Lizenztestkonto erstellen
- Installieren Sie die Veröffentlichung aus einem Play-Test-Track
- Jedes Abonnementstufe testen
- Überprüfen Sie, ob die Produkte korrekt geladen werden
- Kaufabschluss testen
- Bestätigen Sie das Testkauf Bildschirmbanner erscheint
- Überprüfen Sie, ob Premium-Funktionen freigeschaltet sind
- Abonnementwiederherstellung testen
- Testen Sie auf mehreren Geräten
-
Alle Kopien überprüfen
- Preisgestaltung wird klar angezeigt, bevor der Kauf getätigt wird
- Alle Gebühren werden vorab offengelegt
- Die Abonnementbedingungen sind klar
- Der Stornierungsprozess wird erklärt
- Keine irreführenden Behauptungen
-
App-Inhalt und Datenschutz
- Datenschutzrichtlinie in Play Console verlinkt
- Datenschutzrichtlinie in der App zugänglich
- Anzeigenerklärung abgeschlossen
- Anweisungen zum App-Zugriff werden hinzugefügt, wenn die App gesperrt ist
- Datensicherheitsabschnitt wird genau abgeschlossen
- Zugriffsberechtigungen gerechtfertigt und dokumentiert
-
Inhaltseinstufung und Zielgruppe
- Kommplettieren Sie das Inhaltseinstufungsfragebogen
- Kommplettieren Sie die Zielgruppe und Inhaltseinstufung
- Stellen Sie sicher, dass die Einstufung dem tatsächlichen Inhalt entspricht
- Erklären Sie in-app-Käufe im Fragebogen
-
Vorbereiten Sie die Store-Liste
- Die App-Beschreibung ist genau
- Die Kurzbeschreibung liegt innerhalb von 80 Zeichen
- Die vollständige Beschreibung liegt innerhalb von 4000 Zeichen
- Mindestens 2 Telefonbilder hochgeladen
- 1024x500-Feature-Graphic hochgeladen
- Die Bilder zeigen die aktuelle Version
- All erforderliche Assets hochgeladen
Review-Zeitplan
Abschnitt mit dem Titel „Review-Zeitplan“Produktionszugriff für neue persönliche Konten: Normalerweise 7 Tage oder weniger nach der Antragstellung Erster Produktions-Review: context: Capgo-Bauwerk / native Cloud-Build-Produktseite. Rolle: Kurze UI-Bezeichnung oder Navigationsitem. Nachrichtenschlüssel `native_build_builder_credit_first` (Native Build Builder Credit First) Oft mehrere Tage, manchmal länger, wenn Abrechnungs- oder Richtlinienfragen aufgeworfen werden Updates: Oft schneller als eine erste Veröffentlichung, aber immer noch geprüft Widersprüche:
Planen Sie mehrere Tage und geben Sie genaue Korrekturen und Anweisungen für den Rezensenten bereit
Testen vor der Einreichung
Abschnitt mit dem Titel „Testen vor der Einreichung“Lizenztesten
Abschnitt mit dem Titel „Lizenztesten“-
Testkonto hinzufügen:
- Zum Play-Console gehen
- Einstellungen > Lizenztesten
- Gmail-Konto für das Testen hinzufügen
-
Testen in 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);}- Testbanner überprüfen:
- Wenn Sie mit einem Testkonto kaufen
- Sollte die Benachrichtigung “Testkauf” sehen
- Keine echten Gebühren auftreten
Intern und geschlossene Testspuren
Abschnitt mit dem Titel “Intern und geschlossene Testspuren”Bevor der Produktionsrelease:
- Erstelle ein internes Test für schnelle QA oder ein geschlossenes Test für breitere Tests
- Hochladen eines signierten
.aabund veröffentlichen Sie die Testversion - Tester-Email-Adressen hinzufügen und den Opt-in-Link teilen
- Hat die Tester den Build von Google Play installiert?
- Überprüfen Sie, ob die Kaufabläufe von Anfang bis Ende auf dem von Play installierten Build funktionieren
- Wenn Ihr persönlicher Entwicklerkonto nach dem 13. November 2023 erstellt wurde, sollten Sie mindestens 12 Tester für 14 aufeinanderfolgende Tage in einer geschlossenen Testversion angemeldet haben, bevor Sie eine Produktion beantragen
Eine sideloadte Debug-Version ist kein Ersatz für eine von Play installierte Testversion, wenn Sie Google Play Billing validieren möchten
Empfehlungen für Native-Käufe
Abschnitt mit dem Titel „Empfehlungen für Native-Käufe“Alle Kaufzustände bearbeiten
Abschnitt mit dem Titel „Alle Kaufzustände bearbeiten“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); }}Implementieren Sie die Wiederherstellung von Käufen
Abschnitt mit dem Titel „Implementieren Sie die Wiederherstellung von Käufen“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> );}Abonnementstatus überprüfen
Abschnitt mit dem Titel „Abonnementstatus überprüfen“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); }}Wenn Ihre App abgelehnt wird
Abschnitt mit dem Titel „Wenn Ihre App abgelehnt wird“Gemeinsame Verstoßgründe
Abschnitt mit dem Titel „Gemeinsame Verstoßgründe“Zahlungsrichtlinie:
- Nicht die Google Play-Billing verwenden
- Irreführende Abonnementbedingungen
- Versteckte Kosten
Benutzerdatenrichtlinie:
- Fehlende Datenschutzrichtlinie
- Unzutreffende Angaben zur Daten-Sicherheit
- Übermäßige Berechtigungen
Schritte zur Behebung
Abschnitt mit dem Titel "Schritte zur Behebung"-
Überprüfen Sie die Verstoß-Benachrichtigung
- Lesen Sie die spezifische Richtlinie, die zitiert wurde
- Verstehen Sie, was Google beanstandet hat
- Überprüfen Sie die von ihnen bereitgestellten Beispiele
-
Beheben Sie das Problem
- Beheben Sie die Ursache, nicht nur die Symptome
- Sorgfältig testen, nachdem der Fehler behoben wurde
- Alle vorgenommenen Änderungen dokumentieren
-
Bittstellung (falls zutreffend)
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.
-
Erneut einreichen oder Aktualisieren
- Festgestellte Version hochladen
- Erneut zur Überprüfung einreichen
- Status im Play-Console überwachen
Zusätzliche Ressourcen
Abschnitt mit dem Titel „Zusätzliche Ressourcen“- Google Play Entwickler Richtlinien Zentrum
- Google Play Billing Dokumentation
- Best Practices für Abonnements
- Vorbereiten Sie Ihre App auf die Überprüfung
- Testanforderungen für neue persönliche Konten
- Play Console-Hilfe
Brauchen Sie Expertenhilfe?
Abschnitt mit dem Titel „Brauchen Sie Expertenhilfe?“Die Navigation durch die Überprüfung im Play Store kann komplex sein, insbesondere wenn Sie die Zahlungsabrechnung, die App-Inhaltsdeklaration und die Einstellung des Testtracks kombinieren müssen. Wenn Sie persönliche Unterstützung benötigen:
Buchen Sie einen Beratungstermin mit unserem Team für Hilfe bei:
- Vollständige Vorbereitung der App für die Überprüfung im Play Store
- Test-Setup und Tester-Rekrutierung
- Überprüfung der IAP-Implementierung
- Datenschutz und Einhaltung der Datenschutzvorschriften
- Abweisungshilfe und Beschwerdeverfahren
- Abschluss des App-Submission-Prozesses
Unsere Experten haben bereits hunderte von Apps durch erfolgreiche Play Store-Submissionen geführt und können Ihnen dabei helfen, die aktuellen Anforderungen zu meistern.
Hilfe
UnterstützungBrauchen Sie Hilfe bei der Implementierung?
- Überprüfen Sie Dokumentation zu Native Purchases
- Überprüfen Sie Android-Sandbox-Test-Leitfaden
- Besuchen Sie Google Play-Entwickler-Support
Weitergehen Sie von den Richtlinien für die Bewertung des Android Play Store für IAP
Abschnitt mit dem Titel “Weitergehen Sie von den Richtlinien für die Bewertung des Android Play Store für IAP”Wenn Sie Richtlinien für die Bewertung des Android Play Store für IAP zum Planen von Sicherheit und Compliance verwenden, verbinden Sie es mit Verwendung von @capgo/native-purchases für die native Fähigkeit in Verwendung von @capgo/native-purchases, Verschlüsselung für die Implementierungsdetails in Verschlüsselung, Konzessionsverletzung zur Detailbeschreibung in Konzessionsverletzung, Capgo Sicherheits-Scanner zur Produktworkflow in Capgo Sicherheits-Scanner, und Capgo Sicherheit zur Produktworkflow in Capgo Sicherheit.