Android Play Store-Richtlinien für In-App-Käufe
Kopieren Sie einen Einrichtungsbefehl mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin.
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. Diese Anleitung deckt alles ab, was Sie zum erfolgreichen Review benötigen.
Funktionierender Veröffentlichungsweg
Abschnitt mit dem Titel „Funktionierender Veröffentlichungsweg“-
Ein signiertes Android-App-Bundle erstellen
Neue Google Play-Anwendungen sollten als Android App Bundle (
.aab), nicht als sideloaded Debug-APK hochgeladen werden.Halten Sie Ihre __CAPGO_KEEP_0__ sicher, wenn sie sich erhöhen, nach jedem Upload und speichern Sie Ihren Upload-Schlüssel sicher, wenn Sie Play App Signing verwenden.
versionCodeAndroid App Bundle-Flow
-
Wenn Sie noch keinen Entwicklerkonto haben, beginnen Sie mit
Play Console Registrierung . Dann wählen Sie inHome > App erstellen die Sprache, den App/Game-Typ, den Status (kostenlos/paßabel), die Support-E-Mail und akzeptieren Sie die erforderlichen Erklärungen.Wenn Sie noch keinen Entwicklerkonto haben, beginnen Sie mit
Wählen Sie die kostenlose/zahlungspflichtige Einstellung sorgfältig.

-
App in Play Console erstellen
App-Inhalt und Store-Listing abschließen
- Bevor die Produktion überprüft wird, beenden Sie die erforderlichen Play Console-Erklärungen:
- Datenschutzrichtlinie
- Anzeigen
- Zugriff auf die App
- Zielgruppe und Inhalt
- Inhaltseinstufung
- Datensicherheit
-
Empfindliche Berechtigungen-Erklärungen, falls anwendbar
Mit für schnelles Q&A. 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 Zugriff auf die Produktion möglich ist. Internes Testen in Play Console

-
Installieren Sie die App von Google Play, nicht von einem lokal exportierten APK. Bestätigen Sie dann, dass:
Produkte laden sich von Play korrekt
- Der Kaufblatt zeigt ein
- Testkauf Lizenztestbanner für Lizenztester
- Nach Kauf werden die Berechtigungen freigeschaltet
- Die Wiederherstellung und die Abonnements-Verwaltungsfunktionen funktionieren
Google Play-Billing-Anforderungen
Abschnitt mit dem Titel „Google Play-Billing-Anforderungen“Pflichtige Bezahl-System
Abschnitt mit dem Titel „Pflichtige Bezahl-System“Für digitale Güter und Dienstleistungen musst du musst Google Play’s Bezahl-System verwenden:
Digitale Güter (Verwendung von Play-Billing erforderlich):
- Abonnements für Premium-Funktionen
- In-app-Währung oder Kreditpunkte
- Digitale Inhalte (E-Books, Musik, Videos)
- Spiel-Upgrade und Power-ups
- App-Entschlüsselungen und Premium-Tier
Physische Güter (Kann Play Billing nicht verwenden):
- Physische Merchandise
- Realwelt-Dienstleistungen
- Einmalige Spenden an Non-Profit-Organisationen
:::note Abonnement-Setup
In Play Console, konfigurieren Sie Android-Abonnements mit der aktuellen abonnement -> Basis-Plan -> Angebot Modell. In native-purchases, übergeben Sie die Basis-Plan-ID mit planIdentifier.
:::
Implementierung mit Native Purchases
Implementierung mit Native Kaufsimport { 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: Transparenz- und OffenlegungserfordernisseOffene Preisoffenlegung
Sektion: Offene PreisoffenlegungGoogle Play verlangt eine klare Offenlegung aller Kosten vor dem Kauf:
Zu verpflichtende Elemente:
- Genauer Preis in der lokalen Währung des Benutzers
- Zahlungszeitraum (monatlich, jährlich usw.)
- Was ist in der Abonnement enthalten
- Gesamtkosten für Einführungsangebote
- Wenn Gebühren auftreten werden

Beispiel für eine einvernehmliche 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 Abonnement-Verlängerung automatisch erfolgt, verlangt Google:
- Klare Benachrichtigung, dass eine Verlängerung erfolgen wird
- Erinnerung an den Preis
- Einfacher Zugriff auf die Kündigung
Kostenlose Plattformen-Klarheit
Abschnitt mit dem Titel „Kostenlose Plattformen-Klarheit“Wenn 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 aufgrund von Steuern, lokaler Währung oder Verkaufseconomie legitim unterschiedlich sein, aber die Kauf-UI darf diese Unterschiede niemals verbergen oder eine andere Wiederholungsgebühr andeuten, als die, die Google Play berechnen wird.
Anforderungen an die Datenschutzrichtlinie
Abschnitt mit dem Titel „Anforderungen an die Datenschutzrichtlinie“Wenn Ihre App in-App-Käufe enthält, müssen Sie:
Link in Play Store ListeHinzufügen der Datenschutzrichtlinien-URL in Play Console
-
__CAPGO_KEEP_0__
- __CAPGO_KEEP_1__
- Muss öffentlich zugänglich sein
- Muss in der gleichen Sprache wie Ihre App sein
-
Link Innerhalb der App
- Datenschutzrichtlinie in den App-Einstellungen anzeigen
- Zeigen, bevor Sie Nutzerdaten sammeln
- Einfach zu finden 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-Verarbeitung
- Analyse-Datensammlung
Die Datenschutz-Sektion ist rechtlich bindend. Falsche Erklärungen können zu einer App-Entfernung führen.
App-Inhalts-Erklärungen
Abschnitt mit dem Titel „App-Inhalts-Erklärungen“Ein Google Play-Bewertung ist nicht nur über das Binärdatei. Bevor eine Produktionsfreigabe, füllen Sie die Erklärungen auf Politik und Programme > App-Inhalt.
Das Mindeste, was sorgfältig geprüft werden sollte:
- Datenschutzrichtlinie: Öffentliche URL in Play Console, plus eine in-app-Einstiegspunkt wenn erforderlich
- Anzeigen: Erklären Sie, ob die App Anzeigen enthält
- Anwendungs-Zugriff: Geben Sie den Testern Zugriff auf die Anwendung oder einen klaren Testpfad, wenn jede Seite gesperrt ist
- Zielgruppe und Inhalte: Passen Sie die tatsächliche Zielgruppe der App an
- Inhaltsbewertungen: Füllen Sie das IARC-Fragebogen aus, damit die App nicht als unrated markiert wird
- Daten-Sicherheit: 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 benutzerdefinierten 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 Preisgestaltung oder versteckte Kosten
Abschnitt mit dem Titel „2. Unklare Preisgestaltung 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
Verhütung:
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. Irreführende Abonnementmuster
Abschnitt mit dem Titel „3. Irreführende Abonnementmuster“Warum es scheitert:
- Vorab ausgewählte Premiumoptionen
- Billigere Alternativen verbergen
- Die Kündigung erschweren
- Falsche Dringlichkeit (“Nur noch 3 Plätze frei!”)


Prävention:
- Alle Abonnementebenen gleichzeitig anzeigen
- Kündigung klar und zugänglich machen
- Vermeide Countdown-Timer oder fiktive Knappheit
- Verwende keine dunklen Muster, um teure Optionen zu bewerben
4. Unvollständige Tests
Abschnitt: 4. Unvollständige TestsWarum es scheitert:
- Die App stürzt beim Kauf ab
- Produkte laden nicht
- Die Kaufbestätigung erscheint nicht
- Premium-Funktionen werden nicht nach Kauf freigeschaltet
- Die Tests wurden nur auf sideloadeten Builds durchgeführt und nicht auf einem Play-Installationspfad
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. Verstöße gegen die Datenschutzrichtlinie
Abschnitt: 5. Verstöße gegen die DatenschutzrichtlinieWarum es scheitert:
- Keine Datenschutzrichtlinien-Link im App
- Datenschutzrichtlinien nicht zugänglich
- Nicht offengelegte Datenerfassung
- Datensicherheitsspalte ungenau
Prävention:
- Fügen Sie Datenschutzrichtlinien zur Play Store-Anzeige hinzu
- Inkludieren Sie einen Link in den App-Einstellungen
- Füllen Sie die Datensicherheitsspalte genau aus
- Aktualisieren Sie die Richtlinie, wenn Sie neue Datenerfassung hinzufügen
Alternative Bezahlprogramme
Abschnitt mit dem Titel „Alternative Bezahlprogramme“Google’s alternative Zahlungssysteme sind regionsspezifisch und können sich ändern. Wenn Sie etwas anderes als das Standard- Google Play Billing wollen, bestätigen Sie die genaue Markt-Zulassung, die erforderlichen APIs und die Offenlegungssprache in Play Console sofort vor der Implementierung.
Abonnementverwaltung
Abschnitt mit dem Titel „Abonnementverwaltung“Einfache Kündigung
Abschnitt mit dem Titel „Einfache Kündigung“Die Benutzer müssen in der Lage sein:
- Aktive Abonnements leicht zu sehen
- 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> );}Stornierungsfrist
Abschnitt mit dem Titel „Stornierungsfrist“Erforderliche Offenlegung:
- Wann wird die Stornierung wirksam?
- Behält der Benutzer bis zum Ende der Frist Zugriff?
- Sind teilweise Rü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> );}Vorab-Überprüfungsliste
Abschnitt mit dem Titel „Vorab-Überprüfungsliste“
-
Zahlungsabrechnung implementieren
- Mit Google Play Billing (über native-purchases) verwenden
- Alle Abonnementprodukte, die in Play Console erstellt wurden
- Basiseinstellungen und Angebote konfiguriert
- Produkte aktiviert und veröffentlicht
- Preise für alle Ziel-Länder gesetzt
-
Kaufabläufe testen
- Lizenztestkonto erstellen
- Die Build aus einer Play-Test-Track installieren
- Jedes Abonnement-Tier testen
- Produkte laden, ob sie korrekt funktionieren
- Kaufabschluss testen
- Bestätigen Sie die Kaufbestätigung erscheint Prüfen Sie, ob die Premiumfunktionen freigeschaltet sind
- Testen Sie die Wiederherstellung der Abonnement
- Testen Sie auf mehreren Geräten
- Überprüfen Sie alle Kopien
-
Preise werden klar angezeigt, bevor der Kauf getätigt wird
- Alle Gebühren werden vor dem Kauf offengelegt
- Die Abonnementbedingungen sind klar
- Der Stornierungsprozess wird erklärt
- Keine irreführenden Behauptungen
- Bestätigen Sie die Kaufbestätigung
-
App-Inhalt und Datenschutz
- Datenschutzrichtlinie im Google Play Console verlinkt
- Datenschutzrichtlinie in der App zugänglich
- Anzeigeerklärung abgeschlossen
- App-Zugriffsanweisungen hinzugefügt, wenn die App gesperrt ist
- Daten-Sicherheitsabschnitt wurde genau abgeschlossen
- Berechtigungen gerechtfertigt und dokumentiert
-
Inhaltsermittlung und Zielgruppe
- Inhaltsbewertungsfragebogen abgeschlossen
- Zielgruppe und Inhalt abgeschlossen
- Stellen Sie sicher, dass die Bewertung dem tatsächlichen Inhalt entspricht
- In-App-Käufe in der Fragebogen deklarieren
-
Store-Listung vorbereiten
- Die App-Beschreibung ist genau
- Die Kurzbeschreibung ist innerhalb von 80 Zeichen
- Die vollständige Beschreibung ist innerhalb von 4000 Zeichen
- Mindestens 2 Telefonbilder hochgeladen
- 1024x500-Feature-Bild hochgeladen
- Die Screenshots zeigen die aktuelle Version
- Alle erforderlichen Assets hochgeladen
Bewertungs-Zeitplan
Abschnitt mit dem Titel „Bewertungs-Zeitplan“Produktionszugriff für neue persönliche Konten: In der Regel 7 Tage oder weniger nach der Antragstellung Erste Produktprüfung: Oft mehrere Tage, manchmal länger, wenn Rechnungs- oder Richtlinienfragen aufgeworfen werden Updates: Oft schneller als eine erste Veröffentlichung, aber immer noch geprüft Beschwerden: Planen Sie mehrere Tage und bereitstellen Sie genaue Korrekturen und Anweisungen für den Rezensenten
:::tip Rollende Prüfungen Im Gegensatz zu Apple prüft Google Apps kontinuierlich. Ihr App kann jederzeit während der Prüfungszeit live gehen, nicht zu einem festen Zeitpunkt. :::
Testen vor der Einreichung
Abschnitt mit dem Titel “Testen vor der Einreichung”Lizenzprüfung
Abschnitt mit dem Titel “Lizenzprüfung”-
Testkonto hinzufügen:
- Zum Google Play-Konsolen-Portal gehen
- Einstellungen > Lizenztesten
- Gmail-Konto für den Test hinzufügen
-
Im Sandbox-Modus testen:
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:
- Bei Kauf mit Testkonto
- Sollte die Benachrichtigung “Testkauf” sehen
- Keine echten Gebühren entstehen
Interner und geschlossener Testbetrieb
Abschnitt mit dem Titel “Interner und geschlossener Testbetrieb”Bevor die Produktion freigegeben wird:
- Erstellen Sie ein ein internes Testverfahren für schnelle QA oder ein geschlossenes Testverfahren für umfassendere Tests Ein Upload eines signierten und die Veröffentlichung der Testversion
- Fügen Sie E-Mail-Adressen von Testern hinzu und teilen Sie den Opt-in-Link
.aabHaben Sie die Tester das Build von Google Play installieren - Überprüfen Sie, ob die Kaufabläufe end-to-end auf der mit 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 in einem geschlossenen Test aktiviert halten, bevor Sie eine Produktion beantragen
- Ein sideloaded Debug-Build ist kein Ersatz für ein mit Play installiertes Test-Build, wenn Google Play Billing validiert werden soll
- __CAPGO_KEEP_0__
__CAPGO_KEEP_0__
Empfehlungen für native Kaufvorgänge
Abschnitt mit dem Titel „Empfehlungen für native Kaufvorgänge“Alle Kaufzustände verarbeiten
Abschnitt mit dem Titel „Alle Kaufzustände verarbeiten“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); }}Kaufvorgänge wiederherstellen implementieren
Abschnitt mit dem Titel „Kaufvorgänge wiederherstellen implementieren“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
Wenn Ihre App abgelehnt wirdGemeinsame Richtlinienverstöße
Gemeinsame RichtlinienverstößeZahlungsrichtlinie:
- Nicht die Google Play Billing verwenden
- Irreführende Abonnementbedingungen
- Versteckte Kosten
Benutzungsdatenrichtlinie:
- Fehlende Datenschutzrichtlinie
- Unzutreffende Angaben zur Daten-Sicherheit
- Übermäßige Berechtigungen
Schritte zur Behebung
Schrittfolge zur Lösung-
Betrachten Sie die Verstoß-Benachrichtigung
- Lesen Sie die spezifische Zitierungsrichtlinie
- Verstehen Sie, was Google markiert hat
- Überprüfen Sie die von ihnen bereitgestellten Beispiele
-
Beheben Sie das Problem
- Bekämpfen Sie die Ursache, nicht nur die Symptome
- Überprüfen Sie gründlich nach der Behebung
- Dokumentieren Sie alle vorgenommenen Änderungen
-
Einreichen Sie einen Einspruch (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.
-
Wieder einreichen oder Aktualisieren
- Festgestellte Version hochladen
- Für die Überprüfung erneut einreichen
- Status im Google Play Console überwachen
Zusätzliche Ressourcen
Abschnitt mit dem Titel „Zusätzliche Ressourcen“- Google Play-Entwickler-Zentrum für Richtlinien
- Dokumentation zu Google Play-Billing
- Best Practices für Abonnements
- Ihre App auf die Überprüfung vorbereiten
- Anforderungen für die Testung neuer persönlicher Konten
- Play Console Hilfe
Sind Sie auf fachkundige Hilfe angewiesen?
Abschnitt mit dem Titel „Sind Sie auf fachkundige Hilfe angewiesen?“Die Navigation durch die Bewertung im Play Store kann komplex sein, insbesondere wenn Sie die Kombination aus Zahlungsverkehrskonformität, App-Inhaltsdeklarationen und Test-Track-Einrichtung benötigen. Wenn Sie persönliche Unterstützung benötigen:
Buchen Sie einen Beratungstermin mit unserem Team für Hilfe bei:
- Vollständige Vorbereitung der Bewertung im Play Store
- Einrichtung und Test-Track-Einrichtung
- Überprüfung der Implementierung von In-App-Käufen
- Daten-Sicherheit und Datenschutzkonformität
- Rejekt-Troubleshooting und Beschwerdeverfahren
- Vollständiger App-Submission-Prozess
Unsere Experten haben bereits hunderte von Apps durch erfolgreiche Play Store-Veröffentlichungen begleitet und können Ihnen dabei helfen, die aktuellen Anforderungen zu meistern.
Brauchen Sie Hilfe bei der Implementierung?
- Betrachten Sie die Dokumentation zu Native Purchases
- Überprüfen Sie Anleitung zum Android-Sandbox-Testen
- Besuchen Sie Google Play Developer Support