Richtlinien für In-App-Einkäufe im Android Play Store
Ein Setup-Prompt mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
Um Ihre Android-App bei Google Play zu genehmigen, müssen Sie sich an Googles Richtlinien halten, insbesondere für Apps mit In-App-Käufen und Abonnements. Dieser Leitfaden deckt alles ab, was Sie zum erfolgreichen Review benötigen.
Funktionsfähiger Veröffentlichungsweg
Abschnitt mit dem Titel „Funktionsfähiger Veröffentlichungsweg“-
Erstellen eines signierten Android-App-Bundles
Neue Google Play-Apps sollten als Android-App-Bundle (
.aab) hochgeladen werden und nicht als sideloaded Debug-APK.Sparen Sie Ihre
versionCodewächst mit jeder Upload und speichern Sie Ihren Upload-Schlüssel sicher, wenn Sie Play App Signing verwenden.
-
Erstellen Sie das App-Record in Play Console
Wenn Sie noch keinen Entwicklerkonto haben, beginnen Sie mit Play Console Registrierung. Dann wählen Sie in Home > App erstellendie Sprache, den App/Game-Typ, den Status (kostenlos/paßabel), die Support-E-Mail und stimmen Sie den erforderlichen Erklärungen zu.
Wählen Sie den kostenlosen/paßablen Status sorgfältig. Google lässt Sie eine kostenpflichtige App in eine kostenlose umwandeln, aber sobald eine App kostenlos angeboten wird, kann sie nicht mehr in eine kostenpflichtige umgewandelt werden.

-
Fertigen Sie die App-Inhalte und das Store-Listing ab
Bevor die Produktion überprüft wird, fahren Sie die erforderlichen Play Console-Erklärungen ab:
- Datenschutz
- Anzeigen
- App-Zugriff
- Zielgruppe und Inhalte
- Inhaltsbewertung
- Datensicherheit
- Sensitive Permissions-Erklärungen, falls anwendbar
-
Laufen Sie einen Play-Installierten Test-Track ab
Mit internem Testing für schnelles QA. Wenn Ihr Entwicklerkonto ein persönliches Konto ist, das nach dem 13. November 2023 erstellt wurde, müssen Sie auch eine geschlossener Test mit mindestens 12 sich freiwillig anmeldenden Testern über 14 aufeinanderfolgende Tage vor der Produktion

-
Kostenabrechnung Ende-zu-Ende überprüfen
Installieren Sie die App aus Google Play, nicht aus einer lokal exportierten APK. Bestätigen Sie dann:
- Produkte laden sich aus Play richtig
- Der Kaufzettel zeigt eine Testkauf Banner für Lizenztestern
- Zugriffsberechtigungen werden nach Kauf freigeschaltet
- Wiederherstellung und Abonnement-Verwaltungsfunktionen funktionieren
Google Play-Billing-Anforderungen
Abschnitt mit dem Titel „Google Play-Billigungsanforderungen“Pflichtige Zahlungssystem
Abschnitt mit dem Titel „Pflichtige Zahlungssystem“Für digitale Güter und Dienstleistungen musst du den Google Play-Billigungs-System verwenden:
Digitale Güter (Muss Play-Billigung verwenden):
- Abonnements für Premium-Funktionen
- In-App-Währung oder Kredit
- Digitales Inhalte (E-Books, Musik, Videos)
- Spiel-Upgrades und Power-ups
- App-Entsperren und Premium-Ebenen
Physische Waren (Kann Play Billing nicht verwenden):
- Physische Waren
- Realweltliche Dienstleistungen
- Einzelförderungen an Non-Profit-Organisationen
:::note Abonnementseinstellung
In Play Console, konfigurieren Sie Android-Abonnements mit der aktuellen abonnement -> Basisplan -> Angebot Modell. In native-purchases, übergeben Sie die Basis-Plan-ID mit planIdentifier.
:::
Implementierung mit Native Purchases
Abschnitt 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
Abschnitt mit dem Titel „Transparenz- und Offenlegungserfordernisse“Kundenzahlungs-Offenlegung
Abschnitt mit dem Titel „Kundenzahlungs-Offenlegung“Google Play verlangt eine klare Offenlegung aller Kosten vor dem Kauf:
Erforderliche Elemente:
- Genauer Preis in der lokalen Währung des Benutzers
- Zahlungsintervall (monatlich, jährlich usw.)
- Was ist in der Abonnement-Beitrag enthalten
- Gesamtkosten für Einführungsangebote
- Wenn Gebühren anfallen

Beispiel für ein konformes 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> );}Erklärung zur automatischen Verlängerung
Abschnitt mit dem Titel „Erklärung zur automatischen Verlängerung“Bevor eine Abonnementverlängerung automatisch erfolgt, erfordert Google:
- Klare Benachrichtigung über die Verlängerung
- Erinnerung an den Preis
- Einfacher Zugriff auf die Kündigung
Klare Preisinformationen auf allen Plattformen
Abschnitt mit dem Titel „Klare Preisinformationen auf allen Plattformen“If Sie das gleiche Entgelt auf mehreren Plattformen verkaufen, sollten Sie die Produktbezeichnung, die Abrechnungsperiode, die eingeschlossenen Vorteile und die Wiederholungsanweisungen so synchronisieren, dass die Benutzer nicht überrascht werden.
Die Preise können sich aufgrund von Steuern, lokaler Währung oder Verkaufseconomie legitim unterschiedlich gestalten, aber die Kauf-UI darf diese Unterschiede niemals verbergen oder einen anderen Wiederholungspreis andeuten, als den, den Google Play berechnen wird.
Datenschutzrichtlinienanforderungen
Abschnitt mit dem Titel „Datenschutzrichtlinienanforderungen“Pflicht Datenschutzrichtlinie
Abschnitt mit dem Titel „Pflicht Datenschutzrichtlinie“Wenn Ihr App in-App-Käufe enthält, müssen Sie:
-
In Play Store Liste verlinken
- In Play Console Datenschutzrichtlinien-URL hinzufügen
- Muss öffentlich zugänglich sein
- Muss in der gleichen Sprache wie Ihre App sein
-
In App verlinken
- Datenschutzrichtlinie in den App-Einstellungen anzeigen
- Zeigen, bevor Benutzerdaten gesammelt werden
- Einfach entdeckbar machen
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> );}Sicherheitsabschnitt für Daten
Abschnitt mit dem Titel „Sicherheitsabschnitt für Daten“Google Play erfordert eine detaillierte Offenlegung im Sicherheitsabschnitt für Daten:
Für IAP-Apps deklarieren:
- Kaufhistorie-Sammlung
- E-Mail-Adressen (für Rechnungen)
- Geräte-IDs (für Betrugsverhinderung)
- Zahlungsdaten-Verwaltung
- Analyse-Datensammlung
Die Datenschutz-Sektion ist rechtlich bindend. Falsche Angaben können zu einer App-Entfernung führen.
App-Inhaltserklärungen
Abschnitt mit dem Titel „App-Inhaltserklärungen“Die Google Play-Bewertung ist nicht nur über das Binärdatei. Bevor eine Produktionsversion freigegeben wird, füllen Sie die Erklärungen auf Politik und Programme > App-Inhalt.
Das Mindeste, was sorgfältig geprüft werden sollte:
- Datenschutzrichtlinie: Öffentliche URL im Play Console, zuzüglich einer in-app-Einstiegspunkt, wenn erforderlich
- Anzeigen: Erklären Sie, ob die App Anzeigen enthält
- App-Zugriff: Geben Sie Reviewern Zugriff auf Arbeitskredentials oder einen klaren Testpfad, wenn jede Seite gesperrt ist
- Zielgruppe und Inhalte: Passen Sie die echte 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 Rejektionsgründe
Abschnitt mit dem Titel „Häufige Rejektionsgrü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 im Voraus offengelegt
- Vage 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:
- Voreingestellte Premiumoptionen
- Hinweise auf günstigere Alternativen werden verschleiert
- Kündigung erschweren
- Falsche Dringlichkeit („Nur noch 3 Plätze frei!“)


Verhütung:
- Alle Abonnementebenen gleichzeitig anzeigen
- Kündigung klar und zugänglich machen
- Zähler oder Falsche Knappheit vermeiden
- Kostenpflichtige Optionen nicht mit dunklen Mustern bewerben
4. Unvollständige Tests
Abschnitt mit dem Titel „4. Unvollständige Tests“Warum es scheitert:
- Die App stürzt beim Kauf zusammen
- Produkte laden nicht
- Die Kaufbestätigung wird nicht angezeigt
- Premium-Funktionen werden nicht nach dem Kauf freigeschaltet
- Die Tests fanden nur bei sideloadten Builds statt und nicht auf einem Play-Installations-Testtrack
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. Verletzungen der Datenschutzrichtlinie
Abschnitt mit dem Titel „5. Verletzungen der Datenschutzrichtlinie“Warum es scheitert:
- Kein Link zur Datenschutzrichtlinie in der App
- Die Datenschutzrichtlinie ist nicht zugänglich
- Datenverteilung nicht offengelegt
- Datensicherheitsspalte ungenau
Prävention:
- Datenschutzrichtlinie zur Play Store-Auflistung hinzufügen
- Link in Einstellungen der App einfügen
- Datensicherheitsspalte genau ausfüllen
- Datenerfassungspolitik aktualisieren, wenn neue Datenverteilung hinzugefügt wird
Alternative Bezahlprogramme
Abschnitt mit dem Titel „Alternative Bezahlprogramme“Google's alternative Bezahlprogramme sind regionsspezifisch und können sich ändern. Wenn Sie etwas anderes als das Standard-Bezahlprogramm von Google Play Billing möchten, bestätigen Sie die genaue Markttauglichkeit, die erforderlichen APIs und die Offenlegungssprache in Play Console sofort vor der Implementierung.
Abrechnungsverwaltung
Sektion mit dem Titel “Abrechnungsverwaltung”Leichtes Abbrechen
Sektion mit dem Titel “Leichtes Abbrechen”Benutzer müssen in der Lage sein:
- Aktive Abonnements leicht zu überblicken
- Ohne Unterstützung kontaktieren zu müssen
- Zu verstehen, 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ündigungsfrist
Abschnitt mit dem Titel „Kündigungsfrist“Zwingende Offenlegung:
- Wann tritt die Kündigung in Kraft?
- Behalten Benutzer Zugriff bis zum Ende der Frist?
- Stehen Teilrückerstattungen zur Verfügung?
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> );}Prüfliste vor der Einreichung
Abschnitt mit dem Titel „Prüfliste vor der Einreichung“
-
Zahlungsabrechnung überprüfen
- Mit Google Play Billing (über native-purchases) verwenden
- Alle Abonnementprodukte, die in Play Console erstellt wurden
- Basiseinstellungen und Angebote konfiguriert
- Produkte sind aktiviert und veröffentlicht
- Preise für alle Ziel-Länder gesetzt
-
Testkaufabläufe
- Lizenztestkonto erstellen
- Die Build aus einer Play-Test-Track installieren
- Jedes Abonnementstufe testen
- Produkte laden korrekt überprüfen
- Kaufabschluss testen
- Bestätige das Testkaufbanner erscheint Teste die Kaufabwicklung
- Prämienfunktionen freischalten
- Abonnement wiederherstellen
- Auf mehreren Geräten testen
-
Alle Kopien überprüfen
- Preise werden klar angezeigt, bevor der Kauf getätigt wird
- Alle Gebühren werden vorher 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
- Werbungserklärung abgeschlossen
- App-Zugriffsanweisungen wurden hinzugefügt, wenn die App gesperrt ist
- Daten-Sicherheitsabschnitt wurde genau abgeschlossen
- Zugriffsrechte wurden gerechtfertigt und dokumentiert
-
Inhaltseinstufung und Zielgruppe
- Vollständiges Inhaltseinstufungsfragebogen
- Zielgruppe und Inhalt abschließen
- Stellen Sie sicher, dass die Einstufung dem tatsächlichen Inhalt entspricht
- Erklären Sie in-App-Käufe im Fragebogen
-
Store-Liste vorbereiten
- App-Beschreibung ist genau
- Kurze Beschreibung ist innerhalb von 80 Zeichen
- Vollständige Beschreibung ist innerhalb von 4000 Zeichen
- Mindestens 2 Telefonbilder hochgeladen
- 1024x500-Feature-Bild hochgeladen
- Bilder zeigen die aktuelle Version
- Alle erforderlichen Assets hochgeladen
Überprüfung der Zeitreihe
Sektion mit dem Titel „Überprüfung der Zeitreihe“Produktionszugriff für neue persönliche Konten: In der Regel 7 Tage oder weniger nach der Antragstellung Erste Produktionsprüfung: Oft mehrere Tage, manchmal länger, wenn Fragen zu Rechnung oder Richtlinien aufgeworfen werden Updates: Oftmals schneller als eine erste Veröffentlichung, aber noch geprüft Aufmerksamkeit erregt: Planen Sie für mehrere Tage und geben Sie genaue Reparaturen und Anweisungen für die Rezension
:::tip Rolling Reviews Im Gegensatz zu Apple, Google überprüft Apps kontinuierlich. Ihre App kann zu jedem Zeitpunkt während der Überprüfungszeit live gehen, nicht zu einem festen Zeitpunkt. :::
Prüfung vor der Einreichung
Abschnitt mit dem Titel “Prüfung vor der Einreichung”Lizenzprüfung
Abschnitt mit dem Titel “Lizenzprüfung”-
Testkonto hinzufügen:
- Zum Play-Console gehen
- Einstellungen > Lizenzprüfung
- Gmail-Konto für die Testung 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:
- Beim Kauf mit Testkonto
- Sollte die Benachrichtigung „Testkauf“ sehen
- Keine echten Gebühren entstehen
Internes und geschlossenes Testverfolgungsverfahren
Abschnitt mit dem Titel „Internes und geschlossenes Testverfolgungsverfahren“Vor der Produktionsfreigabe:
- Erstelle ein internes Testverfahren für schnelle QA oder ein geschlossene Testphase Verfolgen Sie die Testphase für eine breitere Testgruppe
- Ein hochsigniertes
.aabund veröffentlichen Sie die Testversion - Fügen Sie E-Mail-Adressen von Testern hinzu und teilen Sie den Opt-in-Link
- Haben Sie die Tester die von Google Play heruntergeladene Version installieren
- Überprüfen Sie, ob die Kaufabläufe von Anfang bis Ende auf der von Google Play installierten Version funktionieren
- Wenn Ihr persönlicher Entwicklerkonto nach dem 13. November 2023 erstellt wurde, sollten Sie mindestens 12 Tester für 14 aufeinanderfolgende Tage einer geschlossenen Testphase angehören, bevor Sie eine Produktion beantragen
Ein mit dem Debugger heruntergeladener Build ist kein Ersatz für eine von Google Play installierte Testversion, wenn Google Play Billing validiert werden soll
Best Practices für native Kaufvorgänge
Abschnitt mit dem Titel „Best Practices für native Kaufvorgänge“Behandeln Sie alle Kaufzustände
Abschnitt mit dem Titel „Alle Kaufzustände verwalten“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 Kaufleistungen
Abschnitt mit dem Titel „Implementieren Sie die Wiederherstellung von Kaufleistungen“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> );}Überprüfen Sie den Abonnementstatus
Abschnitt mit dem Titel „Überprüfen Sie den Abonnementstatus“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“Häufige Verstöße gegen die Richtlinien
Abschnitt mit dem Titel „Häufige Verstöße gegen die Richtlinien“Zahlungsrichtlinie:
- Keine Verwendung von Google Play Billing
- Irreführende Abonnementbedingungen
- Versteckte Kosten
Benutzerdatenschutzrichtlinie:
- 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 zitierte Richtlinie
- Verstehe, was Google markiert hat
- Überprüfe die Beispiele, die sie bereitgestellt haben
-
Behebe das Problem
- Behebe die Ursache, nicht nur die Symptome
- Überprüfe gründlich nach der Reparatur
- Dokumentiere alle Änderungen, die vorgenommen wurden
-
Einreichen eines Widerspruchs (falls anwendbar)
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.
-
Neu einreichen oder Aktualisieren
- Festes Version hochladen
- Für eine erneute Überprüfung einreichen
- Status im Google Play Console überwachen
Zusätzliche Ressourcen
Abschnitt mit dem Titel „Zusätzliche Ressourcen”- Google Play-Entwickler-Richtlinien-Zentrum
- Dokumentation zu Google Play-Billing
- Best Practices für Abonnements
- Ihre App auf die Überprüfung vorbereiten
- Testanforderungen für neue persönliche Konten
- Hilfe im Google Play Console
Sind Sie ein Experte benötigt?
Abschnitt mit dem Titel „Sind Sie ein Experte benötigt?」Navigieren Sie die Bewertung von Google Play kann komplex sein, insbesondere wenn Sie die Kombination von Zahlungsverkehrskonformität, App-Inhaltserklärungen und Test-Track-Einrichtung benötigen. Wenn Sie persönliche Unterstützung benötigen:
Ein Beratungsgespräch mit unserem Team buchen zur Unterstützung bei:
- Vollständige Vorbereitung der Bewertung von Google Play
- Einstellung und Rekrutierung von Testern für den Test-Track
- Überprüfung der Implementierung von In-App-Käufen
- Überprüfung der Daten-Sicherheit und -Vertraulichkeit
- Rejection-Behebung und Beschwerden
- Vollständiger App-Submission-Prozess
Unsere Experten haben bereits Hunderte von Apps durch erfolgreiche Google-Play-Einsendungen geführt und können Ihnen helfen, die aktuellen Anforderungen zu navigieren.
Unterstützung
Abschnitt mit dem Titel ‘Unterstützung’Brauchen Sie Hilfe bei der Implementierung?
- Überprüfen Sie das Dokumentation zu Native Purchases
- Überprüfen Sie Leitfaden für Android-Sandbox-Testen
- Besuchen Sie Google Play-Entwickler-Unterstützung
Fortsetzen Sie von den Android Play Store Review Richtlinien für IAP
Abschnitt mit dem Titel “Fortsetzen Sie von den Android Play Store Review Richtlinien für IAP”Wenn Sie Android Play Store Review Richtlinien für IAP zur Planung von Sicherheit und Compliance verwenden, verbinden Sie es mit Mit @capgo/native-purchases für die native Fähigkeit in Mit @capgo/native-purchases Verschlüsselung für die Implementierungsdetails in Verschlüsselung Kongruenz für die Implementierungsdetails in Kongruenz Capgo Sicherheits-Scanner für den Produktworkflow in Capgo Sicherheits-Scanner, und Capgo Sicherheit für den Produktworkflow in Capgo Sicherheit.