Android Play Store Review Richtlinien für IAP
Kopieren Sie einen Einrichtungsvorschlag mit den Installationsanweisungen und der vollständigen Markdown-Guideline 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 Abschluss der Überprüfung benötigen.
Veröffentlichungspfad, der funktioniert
Abschnitt mit dem Titel „Veröffentlichungspfad, der funktioniert“-
Erstellen Sie ein signiertes Android-App-Bundle
Neue Google Play-Anwendungen sollten als Android-App-Bundle (
.aab), nicht als sideloaded Debug-APK hochgeladen werden.Halten Sie Ihre
versionCodewird mit jeder Hochladung erhöht 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 in Startseite > App erstellenWählen Sie die Sprache, den App-Typ, die kostenlose/gebührenpflichtige Status, den Support-E-Mail-Adresse und akzeptieren Sie die erforderlichen Erklärungen.
Wählen Sie den kostenlosen/gebührenpflichtigen Status sorgfältig. Google ermöglicht es Ihnen, eine kostenpflichtige App später kostenlos zu machen, aber eine App, die kostenlos angeboten wurde, kann nicht in eine kostenpflichtige umgewandelt werden.

-
App-Inhalt und Store-Listing abschließen
Bevor die Produktion überprüft wird, beenden Sie die erforderlichen Erklärungen im Play Console:
- Datenschutzrichtlinie
- Anzeigen
- Zugriff auf die App
- Zielgruppe und Inhalt
- Inhaltseinstufung
- Datenschutzsicherheit
- Sensitive Berechtigungenserklärungen, falls zutreffend
-
Ein Testtrack über Play installieren
Mit internen Tests beginnen 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 mit mindestens 12 sich freiwillig einlegenden Testern für 14 aufeinanderfolgende Tage durchführen, bevor Zugriff auf die Produktion möglich ist.

-
Zahlungsabwicklung von Anfang bis Ende überprüfen
Die App von Google Play, nicht von einer lokal exportierten APK, installieren. Dann bestätigen Sie, dass:
- Produkte von Play korrekt geladen werden
- Die Kaufliste eine Testkauf Banner für Lizenztester
- Nach dem Kauf werden die Berechtigungen freigeschaltet
- Die Wiederherstellung und die Abonnements-Flüsse funktionieren
Google Play Billing Anforderungen
Abschnitt mit dem Titel „Google Play Billing Anforderungen“Pflichtige Bezahl-System
Abschnitt mit dem Titel „Pflichtige Bezahl-System“Bei digitalen Gütern und Dienstleistungen müssen Sie müssen Google Play’s Bezahl-System verwenden:
Digitale Güter (Muss Play Billing verwenden):
- Abonnements für Premium-Funktionen
- Währung oder Kredit im App-Angebot
- Digitale Inhalte (E-Books, Musik, Videos)
- Game-Upgrades und Power-ups
- App-Entsperungen und Premium-Ebenen
Physische Güter (Kann nicht mit Play Billing verwendet werden):
- Physische Merchandise
- Realwelt-Dienstleistungen
- Einzelförderungen an Non-Profit-Organisationen
:::note Abonnement-Setup
In Play Console, konfigurieren Sie Android-Abonnements unter Verwendung des aktuellen abonnement -> Basis-Plan -> Angebot Modells. In native-purchasesBitte geben Sie die Basis-Plan-ID ein planIdentifier.
:::
Implementierung mit Native-Käufen
Sektion „Implementierung mit Native-Käufen“import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Ensure billing is available on the deviceconst { isBillingSupported } = await NativePurchases.isBillingSupported();if (!isBillingSupported) throw new Error('Google Play Billing not available');
// Fetch subscription products (Store data is required—never hardcode pricing)const { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly', 'premium_yearly'], productType: PURCHASE_TYPE.SUBS,});
// Plan identifiers are the Base Plan IDs you create in Google Play Consoleconst transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', planIdentifier: 'monthly-plan', // REQUIRED on Android, ignored on iOS productType: PURCHASE_TYPE.SUBS,});
console.log('Purchase token for server validation:', transaction.purchaseToken);Transparenz- und Offenlegungserfordernisse
Sektion „Transparenz- und Offenlegungserfordernisse“Offenlegung der Vorabkosten
Sektion „Offenlegung der Vorabkosten“Google Play verlangt eine klare Offenlegung aller Kosten vor dem Kauf:
Zu den erforderlichen Elementen gehören:
- Genauere Preisangabe 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 anfallen

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> );}Automatische Erneuerungsankündigung
Abschnitt mit dem Titel "Automatische Erneuerungsankündigung"Bevor ein Abonnement automatisch erneuert wird, erfordert Google:
- Klare Benachrichtigung, dass die Erneuerung erfolgen wird
- Erinnerung an den Preis
- Einfacher 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 eingeschlossenen Vorteile und die Wiederholungsanweisungen so einrichten, dass die Benutzer nicht überrascht werden.
Die Preise können sich aufgrund von Steuern, lokaler Währung oder Verkaufseconomie legitim unterscheiden, 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“Pflicht Datenschutzrichtlinie
Abschnitt mit dem Titel „Pflicht Datenschutzrichtlinie“Wenn Ihre App In-App-Käufe enthält, müssen Sie:
-
Link in Play Store Liste
- Hinzufügen Sie die URL der Datenschutzrichtlinie in Play Console
- Muss öffentlich zugänglich sein
- Muss in der gleichen Sprache wie Ihrer App sein
-
Link Innerhalb der App
- Anzeige der Datenschutzrichtlinie in App-Einstellungen
- Zeigen Sie sie vor der Sammlung von Benutzerdaten an
- Machen Sie sie leicht entdeckbar
Beispiel-Implementierung:
function SettingsScreen() { const openPrivacyPolicy = () => { window.open('https://yourapp.com/privacy', '_blank'); };
const openTerms = () => { window.open('https://yourapp.com/terms', '_blank'); };
return ( <div> <h2>Settings</h2>
<button onClick={openPrivacyPolicy}> Privacy Policy </button>
<button onClick={openTerms}> Terms of Service </button>
<button onClick={() => NativePurchases.manageSubscriptions()}> Manage Subscriptions </button> </div> );}Sicherheitsabschnitt für Daten
Abschnitt mit dem Titel „Sicherheitsabschnitt für Daten“Google Play verlangt eine detaillierte Offenlegung in der Abschnitt "Datensicherheit":
Für IAP-Apps, deklarieren Sie:
- Die Sammlung von Kaufgeschichten
- E-Mail-Adressen (für Rechnungen)
- Geräte-IDs (für Betrugsverhütung)
- Die Verarbeitung von Zahlungsdaten
- Die Sammlung von Analyse-Daten
Der Abschnitt "Datensicherheit" ist rechtlich bindend. Falsche Deklarationen können zu einer App-Entfernung führen.
Angebotshinweise
Abschnitt mit dem Titel "Angebotshinweise"Die Google Play-Bewertung ist nicht nur über das Binärdatei. Bevor eine Produktionsveröffentlichung, vervollständigen Sie die Deklarationen auf Politik und Programme > Inhalt des Angebots.
Die wichtigsten Punkte, sorgfältig zu überprüfen:
- Datenschutzrichtlinie: Öffentliche URL in Play Console, zuzüglich einer in-app-Einstiegspunkt, wenn erforderlich
- Anzeigen: Bekunden Sie, ob die App Werbung enthält
- Zugriff auf die App: Geben Sie den Testern Zugriff auf die Arbeitskredentials oder einen klaren Testpfad, wenn ein Bildschirm 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
- Datenschutz: Richten Sie die Praktiken für die Sammlung, den Austausch und die Sicherheit genau aus
Gründe für die Ablehnung
Abschnitt mit dem Titel „Gründe für die Ablehnung“1. Fehlende oder falsche Abrechnungsdurchführung
Abschnitt mit dem Titel „1. Fehlende oder falsche Abrechnungsdurchführung“Weshalb es scheitert:
- Keine Verwendung von Google Play Billing für digitale Güter
- Veraltete Abrechnungs-APIs verwenden
- Implementierung von benutzerdefinierten Zahlungslösungen für Abonnements
Prävention:
// ✅ 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. Preisliche Ungewissheit oder versteckte Kosten
Abschnitt mit dem Titel „2. Preisliche Ungewissheit oder versteckte Kosten“Warum es scheitert:
- Preis wird nur angezeigt, nachdem der Kauf geklickt wurde
- Zusätzliche Gebühren werden nicht vorab 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. Irreführende Abonnementmuster
Abschnitt mit dem Titel „3. Irreführende Abonnementmuster“Warum es scheitert:
- Vorab ausgewählte Premiumoptionen
- Kostengünstigere Alternativen verstecken
- Kündigung erschweren
- Falsche Dringlichkeit („Nur noch 3 Plätze frei!“)


Prävention:
- Alle Abonnementstufen gleichzeitig anzeigen
- Kündigung klar und zugänglich machen
- Ablehnung von Zähler- oder Fehlschuss-Strategien
- Vermeide dunkle Muster, um teure Optionen zu 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
- Die Tests fanden nur auf sideloadten Builds statt und nicht auf einem Play-Installations-Testtrack
Verhütung:
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. Datenschutzrichtlinienverstöße
Abschnitt mit dem Titel „5. Datenschutzrichtlinienverstöße“Weshalb es scheitert:
- Kein Link zur Datenschutzrichtlinie im App
- Die Datenschutzrichtlinie ist nicht zugänglich
- Die Datenerfassung wurde nicht offengelegt
- Der Abschnitt für die Datensicherheit ist ungenau
Prävention:
- Ein Datenschutzrichtlinie in der Play Store Liste einfügen
- Ein Link in den App-Einstellungen einfügen
- Den Abschnitt für die Datensicherheit genau ausfüllen
- Die Richtlinie aktualisieren, wenn neue Datenerfassung hinzugefügt wird
Alternative Zahlungsprogramme
Abschnitt: Alternative ZahlungsprogrammeGoogle's alternative Zahlungsprogramme sind regionsspezifisch und können sich ändern. Wenn Sie etwas anderes als das Standard- Google Play Billing wollen, bestätigen Sie die genaue Markttauglichkeit, erforderliche APIs und Offenlegungssprache in Play Console sofort vor der Implementierung.
Abonnementverwaltung
Abschnitt: AbonnementverwaltungEinfache Kündigung
Abschnitt: Einfache KündigungBenutzer müssen in der Lage sein:
- Aktive Abonnements leicht einsehen
- Abbrechen ohne Unterstützung zu kontaktieren
- 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“Erforderliche Offenlegung:
- Wann wirkt die Kündigung?
- Behalten Benutzer 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> );}Vorabreihenliste
Abschnitt mit dem Titel “Überprüfungsliste vor der Einreichung”
-
Zahlungsabrechnung wird überprüft
- Verwendung von Google Play Billing (via native-purchases)
- Alle Abonnementprodukte, die in Play Console erstellt wurden
- Basiseinstellungen und Angebote sind korrekt konfiguriert
- Produkte sind aktiviert und veröffentlicht
- Preise sind für alle Zielstaaten gesetzt
-
Testen Sie die Kaufabläufe
- Erstellen Sie ein Lizenztestkonto
- Installieren Sie die Build aus einer Play-Test-Track
- Testen Sie jede Abonnementstufe
- Überprüfen Sie, ob Produkte korrekt geladen werden
- Testen Sie die Kaufabwicklung
- Bestätigen Sie, dass das Testkaufbanner erscheint Überprüfen Sie, ob Premium-Funktionen freigeschaltet werden
- Testen Sie die Wiederherstellung der Abonnement
- Testen Sie auf mehreren Geräten
- Überprüfen Sie alle Kopien
-
Preise werden klar vor dem Kauf angezeigt
- Alle Gebühren werden vorab offengelegt
- Die Abonnementbedingungen sind klar
- Testen Sie die Wiederherstellung der Abonnement
- Stornoprozess erläutert
- Keine täuschenden Behauptungen
-
App-Inhalt und Datenschutz
- Datenschutzrichtlinie in Play Console verlinkt
- Datenschutzrichtlinie in der App zugänglich
- Anzeigedeklaration abgeschlossen
- App-Zugriffsanweisungen hinzugefügt, wenn die App gesperrt ist
- Daten-Sicherheitsabschnitt wurde genau abgeschlossen
- Berechtigungen gerechtfertigt und dokumentiert
-
Inhaltserhebung und Zielgruppe
- Inhaltsbewertungsfragebogen abgeschlossen
- Zielgruppe und Inhalt abgeschlossen
- Sicherstellen, dass die Bewertung dem Inhalt entspricht
- Erklären Sie in der Fragebogen die In-App-Käufe
-
Store-Liste vorbereiten
- Beschreibung der App ist genau
- Kurzbeschreibung ist innerhalb von 80 Zeichen
- Vollständige Beschreibung ist innerhalb von 4000 Zeichen
- Zumindest 2 Telefonbilder hochgeladen
- 1024x500 Feature-Bild hochgeladen
- Bilder zeigen die aktuelle Version
- Alle erforderlichen Assets hochgeladen
Überprüfung-Zeitplan
Abschnitt mit dem Titel „Überprüfung-Zeitplan“Zugriff auf neue persönliche Konten: Häufig innerhalb von 7 Tagen oder weniger nach der Antragstellung Erste Produktionsprüfung: Oft mehrere Tage, manchmal länger, wenn Fragen zu Rechnung oder Richtlinien aufkommen 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 Rolling Reviews Im Gegensatz zu Apple prüfen 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
Lizenzprüfung-
Testkonto hinzufügen:
- Gehe zur Play-Konsole
- Einstellungen > Lizenzprüfung
- Hinzufügen eines Gmail-Kontos für die Testung
-
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:
- Bei Kauf mit Testkonto
- Sollte die Benachrichtigung "Testkauf" sehen
- Keine echten Gebühren entstehen
Interne und geschlossene Testspuren
Abschnitt mit dem Titel “Interne und geschlossene Testtracks”Vor der Produktionsfreigabe:
- Erstelle ein internes Test track für schnelle QA oder ein geschlossenes Test track für umfassendere Tests
- Hochladen eines signierten
.aabund veröffentlichen Sie das Testrelease - Fügen Sie E-Mail-Adressen von Testern hinzu und teilen Sie den Opt-in-Link
- Haben Sie die Tester das Build von Google Play installieren
- Überprüfen Sie, ob die Kaufabläufe end-to-end auf dem von Play installierten Build funktionieren
- Wenn Ihr persönlicher Entwicklerkonto nach dem 13. November 2023 erstellt wurde, sollten Sie mindestens 12 Tester für 14 aufeinanderfolgende Tage in einem geschlossenen Test aktiviert haben, bevor Sie sich für die Produktion anmelden
Ein sideloaded Debug-Build ist kein Ersatz für einen Play-Installations-Testbuild bei der Validierung von Google Play Billing.
Best Practices for Native Purchases
Abschnitt: 'Best Practices for Native Purchases'Alle Kaufzustände behandeln
Abschnitt: 'Alle Kaufzustände behandeln'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 Kaufs
Abschnitt: 'Implementieren Sie die Wiederherstellung von Kaufs'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 Status der Abonnement
Abschnitt: 'Überprüfen Sie den Status der Abonnement'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: Wenn Ihre App abgelehnt wirdGemeinsame Richtlinienverstöße
Abschnitt: Gemeinsame RichtlinienverstößeZahlungsrichtlinie:
- Nicht mit Google Play Billing verwendet
- 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 Zitierungsrichtlinie
- Verstehen Sie, was Google als Verstoß identifiziert hat
- Überprüfen Sie die von ihnen bereitgestellten Beispiele
-
Beheben Sie das Problem
- Beheben 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-Entwicklerpolitik-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 zum Google Play Console
Sind Sie ein Experte benötigt?
Abschnitt mit dem Titel „Sind Sie ein Experte benötigt?“Die Navigation durch die Überprüfung im Google Play Store kann komplex sein, insbesondere wenn Sie die Kombination aus Zahlungsverkehrskonformität, App-Inhaltserklärungen und der Einrichtung von Testtracks 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 App für die Überprüfung im Google Play Store
- Einrichtung von Testtracks und Rekrutierung von Testern
- Überprüfung der Implementierung von In-App-Käufen
- Daten-Sicherheit und Datenschutzkonformität
- Rejektionsbehebungs- und Einspruchsverfahren
- Vollständiger App-Veröffentlichungsprozess
Unsere Experten haben bereits hunderte von Apps durch erfolgreiche Play Store-Veröffentlichungen begleitet und können Ihnen dabei helfen, die aktuellen Anforderungen zu bewältigen.
Unterstützung
Abschnitt mit dem Titel „Unterstützung“Brauchen Sie Hilfe bei der Implementierung?
- Überprüfen Sie Dokumentation zu Native Purchases
- Überprüfen Sie Leitfaden für Android-Sandbox-Tests
- Besuchen Sie Google Play-Entwickler-Unterstützung
Weitermachen aus Android Play Store Review Guidelines für IAP
Abschnitt mit dem Titel „Weitermachen aus Android Play Store Review Guidelines für IAP“Wenn Sie " Android Play Store Review Guidelines für IAP 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, 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.