Richtlinien für IAP im Android Play Store
Kopieren Sie eine Einrichtungshinweis mit den Installationsanweisungen und der vollständigen Markdown-Anleitung 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-Apps sollten als Android-App-Bundle (
.aab) hochgeladen werden, nicht als sideloaded Debug-APK.Behalten Sie Ihre
versionCodeerhöhen sich mit jeder Hochladen 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 besitzen, beginnen Sie mit Play Console Registrierung. Dann wählen Sie in Zuhause > App erstellen, die Sprache, den App/Spieltyp, 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
- Datenschutz
- Sensitive Permissions-Erklärungen, falls zutreffend
-
Einen Testtrack für Play-Installierte ausführen
Mit internem Testing für schnelles QA beginnen. Wenn Ihr Entwicklerkonto ein persönliches Konto ist, das nach dem 13. November 2023 erstellt wurde, 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.

-
Zahlungsbetrag ab Werk
Install die App von Google Play, nicht von einer 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”Pflichtabrechnungssystem
Abschnitt mit dem Titel “Pflichtabrechnungssystem”Für digitale Güter und Dienstleistungen muss Google Play’s Zahlungssystem verwenden:
Digitale Güter (Muss Play Billing verwenden):
- Zahlungsabonnements für Premiumfunktionen
- In-App-Währung oder Kredit
- Digitale Inhalte (E-Books, Musik, Videos)
- Spielverbesserungen und Power-ups
- App-Entsperungen und Premiumebenen
Physische Güter (Kann Play Billing nicht verwenden):
- Physische Waren
- Echtzeitdienstleistungen
- Einmalige Spenden an Non-Profit-Organisationen
:::note Abonnementseinstellungen
In der Play Console, konfigurieren Sie Android-Abonnements mit dem aktuellen Abonnement -> Grundtarif -> Angebot Modell. In native-purchases, übergeben Sie die ID des Grundtarifs 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 Offenlegungsanforderungen
Abschnitt mit dem Titel “Transparenz- und Offenlegungsanforderungen”Vorabkostenoffenlegung
Abschnitt mit dem Titel “Vorabkostenoffenlegung”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 Abonnementvereinbarung enthalten
- Gesamtkosten für Einführungsangebote
- Wann werden Gebühren erhoben

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 Abonnementverlängerung
- Preis-Erinnerung
- Zugriff auf die Kündigung
Klarheit bei der Cross-Platform-Preisgestaltung
Abschnitt mit dem Titel “Klarheit bei der Cross-Platform-Preisgestaltung”Wenn Sie das gleiche Entgelt auf mehreren Plattformen verkaufen, sollten Sie die Produktbezeichnung, die Abrechnungsperiode, die eingeschlossenen Vorteile und die Wiederholungsanweisungen so einrichten, dass die Benutzer nicht überrascht werden.
Preise können aus Steuern, lokalen Währungen oder Ladenökonomien 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”Mandatory Privacy Policy
Abschnitt mit dem Titel „Zwingende Datenschutzbestimmungen“Wenn Ihre App In-App-Käufe enthält, müssen Sie:
-
Link in Play Store Liste
- Datenschutzbestimmungen-URL in Play Console hinzufügen
- Muss öffentlich zugänglich sein
- Muss in der gleichen Sprache wie Ihrer App sein
-
Link innerhalb der App
- Datenschutzbestimmungen in App-Einstellungen anzeigen
- Zeigen Sie sie vor der Sammlung von Nutzerdaten
- Stellen Sie sicher, dass sie leicht zu finden sind
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-Sicherheitsabschnitt
Abschnitt mit dem Titel „Daten-Sicherheitsabschnitt“Google Play erfordert eine detaillierte Offenlegung im Abschnitt Daten-Sicherheit:
Für IAP-Apps deklarieren Sie:
- Kaufhistorie-Sammlung
- E-Mail-Adressen (für Rechnungen)
- Geräte-IDs (für Betrugsverhütung)
- Zahlungsdaten-Verarbeitung
- Analyse-Datensammlung
Der Abschnitt Daten-Sicherheit 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: Erklären Sie, ob die App Anzeigen enthält
- App-Zugriff: Geben Sie den Bewertern Zugriff auf Arbeitskredentials oder einen klaren Testpfad, wenn eine beliebige Schaltfläche gesperrt ist
- Zielgruppe und Inhalt: Passen Sie die tatsächliche Zielgruppe der App an
- Inhaltsbewertungen: Fülle das IARC-Fragebogen aus, damit die App nicht als unbewertet markiert wird
- Datenschutz: Erkläre 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 nach Klicken auf den Kauf angezeigt
- Zusätzliche Gebühren werden nicht im Voraus 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ünstige Alternativen verbergen
- Kündigung erschweren
- Falsche Dringlichkeit („Nur noch 3 Plätze frei!“)


Vermeidung:
- Zeige alle Abonnementebenen gleich an
- Stelle die Kündigung klar und zugänglich
- Vermeide Countdown-Zähler oder Falsche Knappheit
- Benutze keine dunklen Muster, um teure Optionen zu drängen
4. Unvollständige Tests
Überschrift: 4. Unvollständige TestsWeshalb 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. 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
- Datensicherheit-Abschnitt ist ungenau
Prävention:
- Fügen Sie eine Datenschutzrichtlinie zur Play Store-Anzeige hinzu
- Link in App-Einstellungen einfügen
- Datenschutzabschnitt 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 Markttauglichkeit, erforderliche APIs und 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
- Kündigungswirkung verständlich verstehen
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ückgabeperiode
Abschnitt mit dem Titel “Kündigungsrückgabeperiode”Erforderliche Offenlegung:
- Wann wirkt die Kündigung?
- Benutzer behalten den Zugriff bis zum Ende der Periode?
- 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 für alle Produkte korrekt konfiguriert
- Alle Produkte aktiviert und veröffentlicht
- Preise für alle Zielstaaten gesetzt
- Testkäufe in den Kaufflüssen durchführen
-
__CAPGO_KEEP_0__
- Lizenztestkonto erstellen
- Installieren Sie die Veröffentlichung aus einem Test-Track von Play
- Jedes Abonnementstufe testen
- Überprüfen Sie, ob die Produkte korrekt geladen werden
- Kaufabschluss testen
- Bestätigen Sie das Testkauf Die Anzeige erscheint
- Überprüfen Sie, ob die Premiumfunktionen freigeschaltet sind
- Abonnementwiederherstellung testen
- Testen Sie auf mehreren Geräten
-
Alle Kopien überprüfen
- Pricing wird offenbart, 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 der Play Console verlinkt
- Datenschutzrichtlinie in der App zugänglich
- Anzeigenerklärung abgeschlossen
- App-Zugriffsanweisungen hinzugefügt, wenn die App gesperrt ist
- Datensicherheitsabschnitt wurde genau abgeschlossen
- Zugriffsberechtigungen gerechtfertigt und dokumentiert
-
Inhaltseinstufung und Zielgruppe
- Kommplettieren Sie die Fragebögen zur Inhaltseinstufung
- Kommplettieren Sie die Zielgruppe und den Inhalt
- Stellen Sie sicher, dass die Einstufung dem tatsächlichen Inhalt entspricht
- Erklären Sie in der Fragebögen die In-app-Käufe
-
Vorbereiten Sie die Store-Liste
- Die App-Beschreibung ist genau
- Die Kurzbeschreibung ist innerhalb von 80 Zeichen
- Die vollständige Beschreibung ist innerhalb von 4000 Zeichen
- Zumindest zwei Telefonbilder hochgeladen
- 1024x500 Feature-Bild hochgeladen
- Die 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: Kurze UI-Bezeichnung 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 eine erste Veröffentlichung, aber immer noch geprüft Beschwerden:
Planen Sie mehrere Tage und liefern genaue Reparaturen 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
- Keine echten Gebühren auftreten
Internes und geschlossenes Testverfolgungsverfahren
Abschnitt mit dem Titel "Internes und geschlossenes Testverfolgungsverfahren"Bevor die Produktion freigegeben wird:
- Erstelle ein internes Testverfahren für schnelle QA oder ein geschlossenes Testverfahren für umfassendere Tests
- Hochladen eines signierten
.aabund Veröffentlichen des Testfreigabeverfahrens - Test-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 auf dem von Google Play installierten Build end-to-end 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 mitgeteilt haben, bevor Sie eine Produktion beantragen
Eine mit dem Debugger geladene Version ist kein Ersatz für eine von Google 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ß gegen Richtlinien
Abschnitt mit dem Titel „Gemeinsame Verstoß gegen Richtlinien“Zahlungsrichtlinie:
- Nicht die Google Play Billing verwenden
- Irreführende Abonnementbedingungen
- Versteckte Kosten
Benutzungsdatenrichtlinie:
- Fehlende 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 Zitier-Richtlinie
- 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 nach der Korrektur
- Alle Änderungen dokumentieren
-
Beschwerde einreichen (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
- Fixierte Version hochladen
- Wieder für die Ü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 Zahlungsabrechnungs-Dokumentation
- Best Practices für Abonnements
- Vorbereiten Sie Ihre App auf die Überprüfung
- Anforderungen für die Testung neuer persönlicher Konten
- Hilfe für das Play-Console
Brauchen Sie Experten-Hilfe?
Abschnitt mit dem Titel “Brauchen Sie Experten-Hilfe?”Die Navigation durch die Überprüfung im Play Store kann komplex sein, insbesondere wenn Sie die Zahlungsabrechnungskonformität, die App-Inhaltsdeklarationen und die Einstellungen für die Testspur kombinieren müssen. Wenn Sie persönliche Unterstützung benötigen:
Einen Beratungstermin 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 Einspruchsverfahren
- 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 bewältigen.
Unterstützung
KontaktAbschnitt mit dem Titel ‘Unterstützung’
- Brauchen Sie Hilfe bei der Implementierung? Überprüfen Sie
- Dokumentation zu Native Purchases Android-Sandbox-Testguide
- Besuchen Google Play Developer Support
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 um die Sicherheit und Compliance zu planen, verbinden Sie es mit Verwendung von @capgo/native-purchases Verwendung von @capgo/native-purchases für die native Fähigkeit in Verwendung von @capgo/native-purchases Verschlüsselung 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.