Richtlinien für In-App-Käufe im Android Play Store
Kopieren Sie eine Einrichtungshinweis mit den Installationsanweisungen und der vollständigen Markdown-Guide für diesen Plugin.
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.
Freigabewegung, die funktioniert
Abschnitt mit dem Titel ‘Freigabewegung, die funktioniert’-
Eine signierte Android-App-Bundle erstellen
Neue Google Play-Anwendungen sollten als Android-App-Bundle (
.aab) hochgeladen werden, nicht als sideloaded Debug-APK.Halten Sie Ihre
versionCodesteigend bei jeder Hochladung und speichern Sie Ihre Upload-Schlüssel sicher, wenn Sie Play App Signing verwenden.
-
Erstellen Sie das App-Record im Play Console
Wenn Sie noch keinen Entwicklerkonto haben, beginnen Sie mit Play Console Registrierung. Dann wählen Sie in Zuhause > App erstellen, die Sprache, den App/Game-Typ, die kostenlose/gebührenpflichtige Status, die Support-E-Mail und akzeptieren Sie die erforderlichen Erklärungen.
Wählen Sie den kostenlosen/gebührenpflichtigen Status sorgfältig. Google lässt Sie eine bezahlte App später kostenlos machen, aber sobald eine App kostenlos angeboten wird, kann sie nicht in eine bezahlte umgewandelt werden.

-
App-Inhalt und Store-Listing abschließen
Bevor die Produktionsprüfung, beenden Sie die erforderlichen Play Console-Erklärungen:
- Datenschutzrichtlinie
- Anzeigen
- App-Zugriff
- Zielgruppe und Inhalte
- Inhaltsbewertung
- Zugriffsstufe
- Daten-Sicherheit
-
Sensitive Berechtigungen, falls zutreffend
Play-Installierter Test-Track ausführen 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 ein geschlossenes Test

-
Internes Testing in Play Console ausführen. Rechnungsbegleichung Ende-zu-Ende überprüfen
Install die App von Google Play, nicht von einem lokal exportierten APK. Dann bestätigen Sie, dass:
- Produkte laden sich von Play richtig
- Der Kaufblatt zeigt ein Testkauf Banner für Lizenzprüfer
- Zugriffe freischalten nach Kauf
- 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 Müssen Google Play’s Zahlungssystem verwenden:
Digitale Güter (Muss Play Billing verwenden):
- Zahlungsabonnements für Premiumfunktionen
- In-App-Währung oder Kreditpunkte
- Digitale Inhalte (E-Books, Musik, Videos)
- Spielverbesserungen und Power-ups
- App-Entsperungen und Premium-Ebenen
Physische Güter (Kann Play Billing 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, übermitteln 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 Offenlegungsanforderungen
Sektion mit dem Titel “Transparenz- und Offenlegungsanforderungen”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 Benutzeroberfläche
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 mehreren Plattformen
Abschnitt mit dem Titel „Klarheit bei der Preisgestaltung auf mehreren 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 Verkaufseconomics unterschiedlich sein, aber die Kauf-UI darf diese Unterschiede niemals verbergen oder einen anderen Verlängerungskosten nahelegen, als die, die Google Play berechnet.
Anforderungen an die Datenschutzrichtlinie
Abschnitt mit dem Titel „Anforderungen an die Datenschutzrichtlinie“Mandatory Datenschutzrichtlinie
Abschnitt mit dem Titel “Mandatory Datenschutzrichtlinie”Wenn Ihre App In-App-Käufe enthält, müssen Sie:
-
Link in Play Store Liste
- Datenschutzrichtlinien-URL in Play Console hinzufügen
- Muss öffentlich zugänglich sein
- Muss in der gleichen Sprache wie Ihrer App sein
-
Link innerhalb der App
- Datenschutzrichtlinie in App-Einstellungen anzeigen
- Zeigen, bevor Sie Nutzerdaten sammeln
- Leicht 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> );}Sicherheitsbereich der Daten
Abschnitt mit dem Titel "Sicherheitsbereich der Daten"Google Play erfordert eine detaillierte Offenlegung im Sicherheitsbereich der Daten:
Für IAP-Apps deklarieren Sie:
- Kaufhistorie-Sammlung
- E-Mail-Adressen (für Rechnungen)
- Geräte-IDs (für Betrugsverhütung)
- Verarbeitung von Zahlungsdaten
- Sammlung von Analyse-Daten
Der Sicherheitsbereich der Daten ist rechtlich bindend. Falsche Deklarationen können zu einer App-Entfernung führen.
Deklarationen zum Inhalt der App
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-Inhaltsdeklarationen.
Die wichtigsten Punkte, die sorgfältig geprüft werden müssen:
- Datenschutzrichtlinie: Öffentliche URL im Play-Console, zuzüglich einer in-app-Einstiegspunkt, wenn erforderlich
- Werbung: Erklären Sie, ob die App Werbung enthält
- App-Zugriff: Geben Sie den Testern Zugriff auf Arbeitskredentials oder einen klaren Testpfad, wenn eine beliebige Schaltfläche gesperrt ist
- Zielgruppe und Inhalte: Passen Sie die tatsächliche Zielgruppe der App an
- Zahlungsdaten: Fülle das IARC-Fragebogen aus, damit das App nicht als unrated markiert wird
- Datenschutz: Erkläre die Sammlung, Weitergabe und 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 nach Klicken des Kaufs angezeigt
- 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“Weshalb es scheitert:
- Vorab ausgewählte Premiumoptionen
- Billigere Alternativen verstecken
- Kündigung erschweren
- Falsche Dringlichkeit („Nur noch 3 Plätze frei!“)


Vermeidung:
- Alle Abonnementebenen gleichzeitig anzeigen
- Kündigung klar und zugänglich machen
- Zähler oder Fehlinformationen über knappe Angebote vermeiden
- Kostenpflichtige Optionen nicht durch dunkle Verhaltensweisen drängen
4. Unvollständige Tests
Abschnitt mit dem Titel „4. Unvollständige Tests“Weshalb 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
- Erstes Testen geschah nur bei sideloaded Builds anstatt eines Testtracks ü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. Verletzung der Datenschutzrichtlinien
Abschnitt mit dem Titel „5. Verletzung der 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“Google's alternative Zahlungssysteme sind regionsspezifisch und können sich ändern. Wenn Sie etwas anderes als das Standard-Google-Play-Zahlungssystem verwenden möchten, bestätigen Sie die genaue Markt-Zulassung, 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 Schwierigkeiten”Benutzer müssen in der Lage sein:
- Aktive Abonnements leicht einsehen
- Ohne Unterstützung kündigen
- Wann wirkt sich die Kündigung aus?
Umsetzung:
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”Erforderliche Offenlegung:
- Wann wirkt sich die Kündigung aus?
- 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> );}Übersicht vor der Einreichung
Überschrift: „Übersicht vor der Einreichung“
-
Zahlungsdienstleister überprüfen
- Verwendung von Google Play Billing (über native-purchases)
- Alle Abonnementprodukte, die im Play Console erstellt wurden
- Basiseinstellungen und Angebote sind korrekt konfiguriert
- Produkte sind aktiviert und veröffentlicht
- Preise sind für alle Zielstaaten festgelegt
-
Testkäufe in den Kaufflüssen durchführen
- Lizenztestkonto erstellen
- Die Veröffentlichung aus einem Play-Test-Track installieren
- Jedes Abonnementstufe testen
- Überprüfen, ob Produkte korrekt geladen werden
- Kaufabschluss testen
- Die Testkauf Banner erscheint
- Prämienfunktionen freischalten
- Abonnement wiederherstellen
- Auf mehreren Geräten testen
-
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
- App-Zugriffsanweisungen werden hinzugefügt, wenn die App gesperrt ist
- Daten-Sicherheitsabschnitt wird genau abgeschlossen
- Berechtigungen gerechtfertigt und dokumentiert
-
Inhaltseinstufung und Zielgruppe
- Komplette Inhaltseinstufungsfragebogen ausfüllen
- Zielgruppe und Inhalt abschließen
- Stellen Sie sicher, dass die Einstufung dem tatsächlichen Inhalt entspricht
- In der Fragebogen in-app-Käufe deklarieren
-
Store-Liste vorbereiten
- App-Beschreibung ist genau
- Kurzbeschreibung ist innerhalb von 80 Zeichen
- Vollständige Beschreibung ist innerhalb von 4000 Zeichen
- Zumindest 2 Mobilfunk-Screenshots hochgeladen
- 1024x500-Feature-Graphic hochgeladen
- Screenshots zeigen die aktuelle Version
- All erforderliche Assets hochgeladen
Review-Zeitplan
Abschnitt mit dem Titel „Review-Zeitplan“Produktionszugriff für neue persönliche Konten: Häufig 7 Tage oder weniger nach der Antragstellung Erster Produktions-Review: Kontext: Seite/Bereich: Capgo Builder / native Cloud-Build-Produktseite. Rolle: Kurzer UI-Label oder Navigationselement. Nachrichten-Schlüssel `native_build_builder_credit_first` (Native Build Builder Credit First). Häufig mehrere Tage, manchmal länger, wenn Abrechnungs- oder Richtlinienfragen aufgeworfen werden Updates: Häufig schneller als ein erstes Release, aber immer noch geprüft Beschwerden:
Planen Sie mehrere Tage und bereitstellen Sie genaue Korrekturen und Anweisungen für den Rezensenten
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
- Echte Gebühren treten nicht auf
Intern und Closed Testing Tracks
Abschnitt mit dem Titel “Intern und Closed Testing Tracks”Bevor der Produktionsrelease:
- Erstelle ein internes Testen für schnelles QA oder ein geschlossenes Testen für breiteres Testen
- Hochladen eines signierten
.aabund veröffentlichen Sie die Testversion - Tester-E-Mail-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 Entwicklerkonto nach dem 13. November 2023 erstellt wurde, sollten Sie mindestens 12 Tester für 14 aufeinanderfolgende Tage in einer geschlossenen Testversion mitgeteilt haben, bevor Sie eine Produktion beantragen
Ein sideloaded Debug-Build ist kein Ersatz für einen von Play installierten Testbuild, wenn Google Play Billing validiert werden soll
Best Practices für Native Einkäufe
Abschnitt mit dem Titel “Best Practices für Native Einkä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 Einkäufen
Abschnitt mit dem Titel “Implementieren Sie die Wiederherstellung von Einkä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”Häufige Verstoß gegen Richtlinien
Abschnitt mit dem Titel “Häufige Verstoß gegen Richtlinien”Zahlungsrichtlinie:
- Keine Verwendung von Google Play Billing
- Irreführende Abonnementbedingungen
- Versteckte Kosten
Benutzungsdatenrichtlinie:
- Unterlassene Datenschutzrichtlinie
- Unzutreffende Angaben zur Daten-Sicherheit
- Übermäßige Berechtigungen
Schritte zur Lösung
Abschnitt mit dem Titel „Schritte zur Lösung“-
Überprüfen Sie die Verstoß-Benachrichtigung
- Lesen Sie die spezifische Zitierte Richtlinie
- Verstehen Sie, was Google beanstandet hat
- Überprüfen Sie die von ihnen bereitgestellten Beispiele
-
Lösen Sie das Problem
- Beheben Sie die Ursache, nicht nur die Symptome
- Sorgfältig testen nach der Korrektur
- 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
- Hilfe für das Play-Console
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 Einrichtung des Testtracks kombinieren müssen. Wenn Sie persönliche Unterstützung benötigen:
Ein Beratungsgespräch mit unserem Team buchen zur Unterstützung bei:
- Die vollständige Vorbereitung der App für die Überprüfung im Play Store
- Testsetup und Rekrutierung von Testern
- Überprüfung der IAP-Implementierung
- Datenschutz und Einhaltung der Datenschutzvorschriften
- Rejection-Fehlersuche 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.
Unterstützung
Klicken Sie hier, um Unterstützung zu erhaltenUnterstützung
- Benötigen Sie Hilfe bei der Implementierung? Überprüfen Sie die
- Dokumentation zu Native Purchases Android-Sandbox-Testleitfaden
- Besuchen Sie Google Play-Entwicklerunterstützung
Fortsetzung aus den Richtlinien für IAP im Google Play Store
Abschnitt mit dem Titel „Fortsetzung aus den Richtlinien für IAP im Google Play Store“Wenn Sie Richtlinien für IAP im Google Play Store zum Planen 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, Zuverlässigkeit zur Implementierungsdetail in Zuverlässigkeit Capgo Sicherheits-Scanner zur Produktworkflow in Capgo Sicherheits-Scanner, und Capgo Sicherheit zur Produktworkflow in Capgo Sicherheit.