In diesem Leitfaden wird erläutert, wie Sie mit der Google Play Developer API einen Produktkatalog für Ihre Play-App verwalten.
Wenn du Produkte in deiner App über das Abrechnungssystem von Google Play verkaufen möchtest, benötigst du einen Katalog mit allen Produkten einrichten, die Ihre Nutzer kaufen. Dazu können Sie die Play Console verwenden oder Katalogverwaltung mithilfe der Google Play Developer API zu automatisieren. Automatisierung kann sorgen Sie dafür, dass Ihr Katalog immer auf dem neuesten Stand ist, und skalieren Sie ihn auf große Kataloge, manuelle Koordination ist unpraktisch. In dieser Anleitung erfahren Sie, wie Sie mit der Play Developer API einen Produktkatalog für Ihre Play-App erstellen und verwalten. In unserem Leitfaden „Vorbereitungen“ finden Sie eine Anleitung dazu, wie Sie die Google Play Developer API für die Back-End-Integration einrichten.
Catalog Management APIs
Weitere Informationen zu den verschiedenen Arten von Produkten, die du über das Google Play-Angebot verkaufen kannst Abrechnungssystem, lesen Informationen zu In-App-Produkttypen und Katalogen Google bietet zwei Hauptgruppen von APIs für die Katalogverwaltung bei Google Play: die den beiden Hauptproduktkategorien entsprechen:
- Einmalkaufprodukte
- Aboprodukte
Einmalkaufprodukte
Mit dem Endpunkt inappproducts
können Sie einmalige
aus Ihrem Back-End. Dazu gehören das Erstellen, Aktualisieren und Löschen
sowie Preise und Verfügbarkeit verwalten.
Je nachdem, wie Sie mit einmaligen Produktkäufen umgehen,
Verbrauchsgüter (können beliebig oft gekauft werden) oder dauerhaft
Berechtigungen (können nicht zweimal vom selben Nutzer vorgenommen werden). Sie können entscheiden,
Einmalkaufprodukte sollten kurzfristig nutzbar sein oder nicht.
Aboprodukte
Mit dem Endpunkt monetization.subscriptions
können Sie Ihr Abo verwalten
aus Ihrem Entwickler-Back-End. Sie können Dinge erstellen, aktualisieren,
und Abos zu löschen oder ihre regionale Verfügbarkeit und Preise zu steuern.
Zusätzlich zum Endpunkt monetization.subscriptions
stellen wir auch
monetization.subscriptions.basePlans
und
monetization.subscriptions.basePlans.offers
zum Verwalten
Abos Basis-Abos und Angebote.
Batchmethoden
inappproducts
und monetization.subscriptions
Endpunkte bieten eine Reihe von Batchmethoden,
mit denen Daten abgerufen oder verwaltet werden können.
gleichzeitig mit bis zu 100 Elementen in derselben App.
Bei aktivierter Latenztoleranz unterstützen Batchmethoden eine höhere und sind besonders nützlich für Entwickelnde mit großem Katalog, für die Katalogerstellung oder den Katalogabgleich.
Aktualisierungslatenz im Vergleich zum Durchsatz
Nachdem eine Produkterstellungs- oder Änderungsanfrage abgeschlossen ist, können Änderungen
Aufgrund des Netzwerks oder Backends sofort für Endnutzer auf ihren Geräten sichtbar
Verzögerungen bei der Verarbeitung.
Standardmäßig sind alle Anfragen zu Produktänderungen latenzempfindlich. Das bedeutet,
Sie sind für eine schnelle Weitergabe durch Back-End-Systeme optimiert, in der Regel
innerhalb weniger Minuten über die Geräte
der Endanwendenden reflektieren. Es gibt jedoch ein stündliches Limit,
zur Anzahl solcher Änderungsanfragen.
Wenn Sie viele Produkte erstellen oder aktualisieren müssen (z. B. während
Erstellung eines großen Katalogs), können Sie Batchmethoden mit der
Feld latencyTolerance
festgelegt auf
PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT
Dadurch wird der Aktualisierungsdurchsatz deutlich erhöht. Latenztolerante Updates
kann es bis zu 24 Stunden dauern, bis die Änderungen auf den Geräten der Endnutzer wirksam werden.
Kontingentkonfiguration
Wenn Sie Google Play-Entwickler verwenden, sollten Sie einige Kontingentlimits beachten. API zur Verwaltung Ihres Produktkatalogs:
- Die Google Play Developer APIs haben ein Standardlimit von 200.000 Abfragen pro Tag. Dieses Kontingentlimit gilt für die Zusammenfassung der Nutzung in allen Endpunkten, einschließlich Katalogverwaltungs-APIs.
- Endpunkte für Produktänderungen erzwingen außerdem ein Limit von 7.200 Abfragen pro Stunde. Dies ist ein einheitliches Limit für Einmalkaufprodukte und Abos und für alle Änderungsanfragen, einschließlich Erstellung, Aktualisierung, Aktivierung, Löschen. Aufrufe von Batchänderungsmethoden zählen als eine Abfrage für dieses Kontingent. unabhängig von der Anzahl der enthaltenen Anfragen oder deren Latenz Empfindlichkeit.
- Latenzempfindliche Änderungen sind ebenfalls auf 7.200 Änderungen beschränkt. pro Stunde. Bei Batchmethoden zählt jede verschachtelte Änderungsanfrage für dieses Kontingent separat nutzen. Dieses Kontingent hat praktische Auswirkungen nur für Nutzer der Batch-API, die latenzempfindlich ist In anderen Fällen wird Kontingent 2 vor oder nach Zeit sparen.
Hier sind einige Beispiele, die die Kontingentnutzung unterschiedlichen Anfragen:
- Eine einzelne
get
-Anfrage zum Abrufen eines Elements verbraucht 1 Token des Kontingents 1 und keine Tokens für Kontingent 2 und 3, da diese nur Änderungsendpunkte betreffen. - Eine
get
-Batchanfrage zum Abrufen von bis zu 100 Elementen verbraucht ebenfalls 1 Token von Kontingent 1 und keine Tokens für Kontingent 2 und 3. - Eine einzelne
modification
-Anfrage für einen Artikel verbraucht 1 Token des Kontingents 1. , 1 Token des Kontingents 2. Ist die Anfrage latenzempfindlich, wird auch 1 Token des Kontingents 3 verbrauchen. Da Kontingent C das gleiche Limit hat wie Kontingent 2, hat keine praktischen Auswirkungen auf Nutzer, die nur eine einzige Änderung verwenden. . - Eine
modification
-Batchanfrage für 100 latenztolerante Elemente verbraucht 1 Token von Kontingent 1, 1 Token von Kontingent 2. Bei dieser Kontingenteinrichtung sollten um Ihren Katalog auf dem neuesten Stand zu halten. Wenn Ihr Algorithmus und diese Rate überschreitet, erhalten Sie möglicherweise bei jedem weiteren Aufruf einen Fehler. - Eine
modification
-Batchanfrage für 100 latenzempfindliche Elemente 1 Token von Kontingent 1, 1 Token von Kontingent 2 und 100 Tokens von Kontingent 3.
Nutzungsempfehlungen für die Catalog Management API
Durch die Einhaltung dieser Richtlinien optimieren Sie Ihre Interaktionen mit der API, und sorgen so für eine reibungslose und effiziente Katalogverwaltung.
Nutzung überwachen
Sie sollten über Prozesse mit intensiver Nutzung informiert sein. Am Anfang des Ihre Einbindung, die Ihre Endpunkte für die Katalogverwaltung eher nutzen, Kontingent erhöhen, um Ihren vollständigen, anfänglichen Katalog zu erstellen. Dies kann sich auf Verwendung anderer Endpunkte wie die Purchase Status API, fast am Limit für die Nutzung liegt. Sie müssen Ihre Kontingentnutzung überwachen, um sicherzustellen, die API-Kontingente überschreiten. Es gibt mehrere Möglichkeiten, die Nutzung zu überwachen. Beispiel: können Sie das Kontingent-Dashboard der Google Cloud APIs oder ein anderes internes oder ein Drittanbieter-API-Monitoringtool Ihrer Wahl.
API-Kontingentnutzung optimieren
Die Optimierung der Ratennutzung wird dringend empfohlen, um die Wahrscheinlichkeit API-Fehler. Für eine effektive Implementierung empfehlen wir Folgendes:
- Die richtige Strategie für die Katalogverwaltung auswählen Sobald Sie mit der API vertraut sind müssen Sie die richtige Strategie für Ihre Anwendung auswählen, Ihre Katalogverwaltungsziele effizienter gestalten.
- Führen Sie nur die Mindestanzahl von Aufrufen durch, die erforderlich ist, damit Ihre Änderungen übernommen werden.
- Senden Sie keine redundanten oder unnötigen Änderungsaufrufe an die APIs. Dieses müssen Sie möglicherweise ein Änderungsprotokoll in Ihrem Back-End-Katalog führen.
- Halten Sie das stündliche Limit von 7.200 Abfragen für Produktänderungen ein. Sie können Synchronisierungsprozesse einrichten möchten, bei denen eine große Anzahl von Produkten Änderungen innerhalb kurzer Zeit (z. B. ein anfänglicher Katalog) . Wenn Sie davon ausgehen, dass diese Prozesse das stündliche Limit überschreiten, implementieren Sie Wartezeiten, um die Nutzung auf ein sicheres Niveau zu verlangsamen. Erwägen Sie die Verwendung Batch-Methoden mit latenztoleranten Updates verwenden, um einen höheren Durchsatz zu erreichen.
- Bereiten Sie die Skalierung proaktiv vor. Wenn Ihre Anwendung wächst, müssen Sie möglicherweise die API und die verschiedenen Endpunkte zu skalieren. Lesen Sie den Dokumentation zu Play Developer API-Kontingenten (in englischer Sprache) Erhöhen Sie Ihr Kontingent, wenn Sie sich der maximalen Nutzung nähern.
- Planen Sie umfangreiche Prozesse strategisch ein. Versuche, deinen umfangreichen Katalog zu planen um kritische Nutzungsspitzen zu vermeiden. So können Sie vermeiden, während der Spitzenverkaufszeiten den gesamten Katalog synchronisieren.
Fehlerbehandlungslogik für Kontingent hinzufügen
Unabhängig davon, wie effizient Sie Ihre Katalogverwaltungslogik erstellen, sollten Sie
widerstandsfähig gegen unerwartete Kontingentlimits, da das Tageskontingent
von Endpunkten, die in unabhängigen Modulen deiner Integration verwendet werden. Achten Sie darauf,
Fehler bei der Kontingentdrosselung in die Fehlerbehandlung einbeziehen
angemessene Wartezeiten.
Jeder Aufruf an Google Play Developer APIs generiert eine Antwort. Im
Fehler beim Anruf auftritt, erhalten Sie eine Fehlerantwort mit einer
HTTP-Antwortstatuscode und ein errors
-Objekt mit weiteren Details
Fehlerdomäne und eine Debug-Meldung.
Wenn Sie beispielsweise Ihr Tageslimit überschreiten, erhalten Sie möglicherweise eine Fehlermeldung.
etwa so:
{
"code" : 403,
"errors" : [ {
"domain" : "usageLimits",
"message" : "Daily Limit Exceeded. The quota will be reset at midnight Pacific Time (PT). You may monitor your quota usage and adjust limits in the API
Console: https://console.developers.google.com/apis/api/androidpublisher.googleapis.com/quotas?project=xxxxxxx",
"reason" : "dailyLimitExceeded",
"extendedHelp" : "https://console.developers.google.com/apis/api/androidpublisher.googleapis.com/quotas?project=xxxxxx"
} ],
}
Implementierung der Katalogverwaltung
Entwickler nutzen die Veröffentlichungsendpunkte von Produkten der Google Play Developer API, ihren Katalog zwischen dem Backend und Google Play zu synchronisieren. Wird hergestellt dass Ihr Google Play-Katalog mit dem Katalog Ihres Backends immer auf dem neuesten Stand ist neuesten Informationen Vorteile hat, um eine bessere User Experience zu schaffen. Beispiel:
- Sie können die gesamte Liste der verfügbaren Angebote einsehen Angebots- und Basis-Abo-Tags, um die Verfügbarkeit und die Anzeige von Angeboten zu beeinflussen Logik.
- Sie können die verschiedenen Preispunkte und Produktdetails der Nutzer prüfen. und auf Einheitlichkeit achten.
- In Ihrem Backend stehen Ihnen bei der Verarbeitung neuer Käufe tätigen, ohne die Latenz erhöhen und das Ausfallrisiko erhöhen zu müssen, indem zusätzliche Aufrufe an die Google Play Developer API während nutzerkritischer Abläufe.
Es gibt bestimmte Einschränkungen und Überlegungen, die Sie berücksichtigen sollten. wenn Sie Ihren Produktkatalog bei Google Play erstellen. Sobald Sie verstanden haben, und wissen, wie Sie Ihren Katalog strukturieren möchten, über eine Synchronisierungsstrategie entscheiden.
Synchronisierungsstrategien für Kataloge
Über die Veröffentlichungsendpunkte der Google Play Developer API können Sie wenn Änderungen auftreten. Gelegentlich kann es vorkommen, Aktualisierungsansatz, bei der Sie im selben Prozess einen Akku mit Änderungen senden. Jedes erfordert andere Designentscheidungen. Jede Synchronisierungsstrategie für manche Anwendungsfälle besser geeignet als andere. Möglicherweise haben Sie eine Reihe von Anforderungen, erfordert je nach Situation beides. Manchmal möchten Sie vielleicht eine auf ein Produkt aktualisieren, sobald Sie eine Änderung bemerken, z. B. dringende Produktaktualisierung verarbeiten (d.h. ein falscher Preis muss korrigiert werden, so schnell wie möglich). Sie können auch eine regelmäßige Hintergrundsynchronisierung verwenden, um sicherzustellen, Backend- und Play-Kataloge immer einheitlich sind. Häufige Anwendungsfälle in denen Sie die verschiedenen Katalogverwaltungssysteme zu entwickeln.
Wann Sie Updates senden sollten, wenn sich Ihr lokaler Katalog ändert
Idealerweise sollten Aktualisierungen erfolgen, sobald Änderungen am Back-End Produktkatalogs, um Diskrepanzen zu minimieren.
Diese Art von Updates ist in folgenden Fällen sinnvoll:
- Ihre Produkte müssen immer auf dem neuesten Stand sein.
- Sie müssen jeden Tag einige Änderungen an Ihren Produkten vornehmen.
- Sie müssen Produkte aktualisieren, die sich bereits in der Produktion befinden und verkauft werden.
Dieser Ansatz ist einfacher zu implementieren und ermöglicht es Ihnen, Ihren Katalog synchron zu halten. mit dem kleinsten Diskrepanzfenster.
Anwendungsfälle für regelmäßige Updates
Regelmäßige Updates werden asynchron zur Produktversion auf Ihrem Back-End ausgeführt. Sie sind in folgenden Fällen eine gute Option:
- Sie müssen nicht dafür sorgen, dass Ihre Produkte kurzfristig aktualisiert werden.
- Sie müssen Bulk-Aktualisierungen oder Abgleichprozesse planen.
- Sie verfügen bereits über ein Content- oder Catalog-Management-System, digitale Produkte, die Ihren Katalog ständig aktualisieren,
Bei großen Katalogen sollten Sie latenztolerante Batchmethoden in Betracht ziehen um einen maximalen Durchsatz zu erreichen.
Produktkatalog erstellen
Wenn Sie einen umfangreichen Katalog auf Google Play hochladen möchten, anfänglich zu laden. Dieser aufwendige Prozess funktioniert am besten, in Kombination mit latenztoleranten Batch-Methoden verwendet wird.
Einmalkaufprodukte erstellen
Für die erstmalige Erstellung eines großen Katalogs mit einem einmaligen Produkt empfehlen wir die Verwendung des
Methode inappproducts.batchUpdate
mit dem Feld allowMissing
auf
true
und das Feld latencyTolerance
auf
PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT
Dadurch wird die Zeit für die Erstellung des Katalogs im Rahmen der Kontingentlimits minimiert.
Für kleinere Kataloge können Sie die Methode inapp_products.insert
verwenden.
Alternativ können Sie die Methode inappproducts.update
mit dem Parameter
allowMissing
, wie im Abschnitt zu Produktupdates beschrieben.
Dieser Ansatz hat den Vorteil, dass Ihr Skript nicht mehr
und können neu gestartet werden,
falls etwas schiefgehen sollte.
Aboprodukte erstellen
Für die erste Erstellung eines großen Katalogs mit Abos empfehlen wir die Verwendung des
Methode monetization.subscriptions.batchUpdate
wobei das Feld allowMissing
auf true
und das Feld latencyTolerance
festgelegt ist
an PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT
.
Dadurch wird die Zeit für die Erstellung des Katalogs im Rahmen der Kontingentlimits minimiert.
Für kleinere Abokataloge bietet die Play Developer API den
monetization.subscriptions.create
-Methode.
Alternativ können Sie Abos mit
monetization.subscriptions.update
-Methode mit dem
allowMissing
, wie im Abschnitt zu Produktupdates beschrieben.
Bei allen früheren Methoden werden Abos zusammen mit den zugehörigen Basis-Abos erstellt
(im Abo-Objekt angegeben). Diese Basis-Abos sind anfangs
inaktiv. So verwaltest du Basis-Abos: können Sie den
monetization.subscriptions.basePlans
-Endpunkt, einschließlich Aktivierung eines
um es zum Kauf anzubieten.
Außerdem hat der Endpunkt monetization.subscriptions.basePlans.offers
kannst du Angebote erstellen und verwalten.
Produktupdates
Mit den folgenden Methoden können Sie Ihre bestehenden Produkte effizient ändern: dass Ihr Angebot mit den letzten Anpassungen übereinstimmt.
Einmalkaufprodukte aktualisieren
Für die Aktualisierung bestehender Einmalkaufprodukte stehen drei Methoden zur Verfügung.
inappproducts.patch
Der Patch-Endpunkt wird verwendet, um eine Ressource teilweise zu aktualisieren. Das bedeutet, dass Sie bestimmte Felder aktualisieren, die Sie im Anfragetext angeben. Der Patch wird in der Regel verwendet, wenn Sie nur einige Felder eines .inappproducts.update
Der Aktualisierungsendpunkt wird verwendet, um eine Ressource vollständig zu aktualisieren. Das bedeutet, dass Sie das gesamte Ressourcenobjekt im Anfragetext senden müssen. Die Aktualisierungsendpunkt wird in der Regel verwendet, wenn Sie alle Felder in einem . Wenn der ParameterallowMissing
auftrue
gesetzt ist und das angegebene Produkt-ID nicht bereits vorhanden ist, fügt der Endpunkt das Produkt ein anstatt zu scheitern.inappproducts.batchUpdate
: Dies ist eine Batch-Version des Update-Endpunkts, mit der Sie Änderungen mehrere Produkte mit einer einzigen Abfrage. Verwenden Sie es zusammen mit dem Feld „latencyTolerance
“ festgelegt aufPRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT
um einen höheren Durchsatz zu erreichen.
Aboprodukte aktualisieren
Um bestehende Abos zu aktualisieren, können Sie das
monetization.subscriptions.patch
-Methode. Diese Methode
für die folgenden erforderlichen Parameter:
packageName
: Der Paketname der App, zu der das Abo gehört.productId
: Die eindeutige Produkt-ID des Abos.regionsVersion
: Die Konfigurationsversion der Region.
Sofern Sie nicht mithilfe des Parameters allowMissing
ein neues Abo erstellen
, müssen Sie den updateMask
-Parameter angeben. Dieser Parameter ist ein
eine durch Kommas getrennte Liste der Felder, die Sie aktualisieren möchten.
Wenn Sie beispielsweise nur den Eintrag eines Aboprodukts aktualisieren möchten,
würden Sie das Feld listings
für den Parameter updateMask
angeben.
Mit monetization.subscriptions.batchUpdate
kannst du mehrere Abos gleichzeitig aktualisieren.
Verwenden Sie es zusammen mit dem Feld latencyTolerance
, das auf
PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT
, um einen höheren
Durchsatz.
Zum Aktivieren, Deaktivieren oder Löschen von Basis-Abos oder zum Migrieren von Abonnenten in die
Für aktuelle Versionen des Basis-Abos wird der Endpunkt monetization.subscriptions.basePlans
verwendet.
Außerdem kannst du die Einstellungen deines Basis-Abos Angebote mit den
monetization.subscriptions.basePlans.offers.patch
.
Katalogabgleich
Ob Sie Ihren Google Play-Katalog jedes Mal aktualisieren möchten, wenn die oder in regelmäßigen Abständen ändern, wenn Sie ein Katalogverwaltungssystem nicht im Google Play-Katalog enthalten sind, kann es Situationen geben, in denen nicht mit dem Katalog in Ihrer App-Konfiguration bei Google Play synchron ist. Dies kann an manuellen Katalogänderungen in der Console, einem Ausfall in Ihrem Katalogverwaltungssystem oder wenn Sie Ihre neuesten Daten verloren haben.
Sie können einen Katalogabgleichsprozess erstellen, um eine längere Diskrepanz zu vermeiden. .
Berücksichtigung des Differenzsystems
Wir empfehlen den Aufbau eines Differenzsystems, um Inkonsistenzen zu erkennen und zwei Systeme. Hier sind einige Dinge, die Sie beim Erstellen eines Diff-Systems berücksichtigen sollten, damit Ihre synchrone Kataloge:
- Datenmodelle verstehen:Der erste Schritt besteht darin, die Daten zu verstehen. des Entwickler-CMS und der Google Play Developer API. Dazu gehören die verschiedenen Datentypen kennen, die in den einzelnen Systemen gespeichert werden, und wie die verschiedenen Datenelemente einander zugeordnet sind.
- Unterschiedsregeln definieren:Sobald Sie die Datenmodelle verstanden haben, die Differenzregeln definieren. Diese Regeln bestimmen, wie die Daten in den beiden die Systeme verglichen werden. Beispielsweise können Sie Produkt-IDs und die wichtigsten Attribute des Abos und die zugehörigen Basis-Abos vergleichen und Angebote.
- Differenz-Algorithmus implementieren:Nachdem Sie die Differenzregeln definiert haben,
den diff-Algorithmus implementieren. Dieser Algorithmus zieht die Daten
die beiden Systeme und vergleichen sie
gemäß den von Ihnen definierten Regeln. Um
der Katalogdaten von Google Play enthält, können Sie
inappproducts.list
,inappproducts.batchGet
,monetization.subscriptions.list
undmonetization.subscriptions.batchGet
-Methoden. - Unterschiedsberichte erstellen:Mit dem Diff-Algorithmus wird ein Diff-Bericht erstellt. In diesem Bericht werden die Unterschiede zwischen den beiden Systemen aufgezeigt.
- Unterschiede ausgleichen:Nachdem Sie den Differenzbericht erstellt haben, müssen Sie um die Unterschiede zu beheben. Dazu musst du möglicherweise die Daten in deinem CMS aktualisieren oder Es kann sein, dass die Daten auf Google Play-Seite über die Developer API aktualisiert werden müssen. Katalogverwaltungsendpunkte, abhängig davon, wie Sie Ihre Katalog. Zum Abgleichen nicht synchronisierter Produkte verwenden Sie die Updateendpunkte, wie in im Bereich „Produktupdates“.
Produkte werden eingestellt
Die Google Play Developer API bietet mehrere Methoden zur Unterstützung von Entwicklern bei
Einstellung ihrer Produkte:
inappproducts.delete
und
inappproducts.batchDelete
für Einmalkaufprodukte und
monetization.subscriptions.delete
für Abos. Die Einstellung eines Produkts kann in verschiedenen Szenarien notwendig sein
, zum Beispiel:
- Es wurde versehentlich erstellt.
- Einstellung einer Funktion oder eines Dienstes
Wir empfehlen, die Einstellung von Produkten in die Katalogverwaltung aufzunehmen. .
Einmalkaufprodukte einstellen
Zum Löschen von Einmalkaufprodukten mit der Google Play Developer API müssen Sie
die
inappproducts.delete
oder
inappproducts.batchDelete
.
Einstellung von Aboprodukten
Sie können Abos löschen, indem Sie die
monetization.subscriptions.delete
. Ein Abo kann nicht mehr entfernt werden, sobald mindestens ein Basis-Abo abgeschlossen wurde
aktiviert.