Anleitung zur Backend-Integration für die Monetarisierung außerhalb von Google Play Billing

Die Google Play Developer API enthält jetzt zusätzliche Funktionen zum Melden von Transaktionen aus einer alternativen Abrechnung oder System für externe Angebote. In diesem Leitfaden wird beschrieben, wie Sie Abrechnung oder Transaktionen für externe Angebote.

Es gibt einige Komponenten, die für die Verarbeitung Ihrer In-App- Käufe aus deinem Backend. Um sie zu erstellen, müssen Sie Ihr Backend einrichten wie unter Google Play Developer API konfigurieren angegeben. Für alle Entwickler-Backend-Funktionen, die nicht speziell für die alternative Abrechnung gelten oder APIs für externe Angebote finden Sie in der Anleitung Es gilt die Dokumentation zum Google Play-Abrechnungssystem.

Neue externe Transaktionen an Google Play melden

In Externaltransactions APIs einbinden um Transaktionen zu melden, die außerhalb des Abrechnungssystems von Google Play erfolgen, unterstützten Ländern, einschließlich Transaktionen im Wert von 0 $ aus dem kostenlosen Testzeitraum Käufe. Transaktionen über alternative Abrechnungssysteme oder Systeme für externe Angebote sollten nur für zulässige Nutzerländer gestartet und gemeldet werden. gemäß der alternativen Abrechnung oder externe Angebote. Andernfalls erfolgt der API-Aufruf abgelehnt. Dies gilt für alle Transaktionen, einschließlich neuer Käufe, Verlängerungen wie Upgrades, Downgrades usw.

Externe Transaktionsberichte

Sie sollten Externaltransactions API aufrufen, um eine externe Transaktion zu melden nachdem die Zahlung durch die alternative Abrechnung autorisiert wurde oder System für externe Angebote. Dies gilt für alle Transaktionen, einschließlich der Gebühren, Verlängerungen, Erstattungen und mehr. Alle Transaktionen müssen innerhalb von 24 Stunden nach erfolgter Transaktion gemeldet.

Jede externe Transaktion wird mit einer externen Transaktions-ID gemeldet. Für für wiederkehrende Käufe (z. B. Abos mit automatischer Verlängerung) müssen Sie den Externe Transaktions-ID, die der ersten Transaktion in der wiederkehrenden Transaktion zugeordnet ist „purchase“ als Parameter für alle nachfolgenden Transaktionen, einschließlich Erstattungen. Dieses die Reihe der Transaktionen für diesen Kauf erfasst. Sie senden eine neue externe Transaktions-ID für Käufe, bei denen sich das Produkt ändert, z. B. bei einem Upgrade oder einer oder ein Downgrade ausgeführt wird, oder wenn die wiederkehrende Transaktion storniert oder abgelaufen ist und die gleiche Produkt später noch einmal gekauft wird. Sie dürfen keine personenidentifizierbaren Informationen Informationen, proprietäre oder vertrauliche Informationen im Rahmen Transaktions-ID.

Neuen Kauf melden

Jedes Mal, wenn ein neuer Kauf in der alternativen Abrechnung erfolgreich ist oder das System eines externen Angebots ist, ist ein Aufruf der Externaltransactions API erforderlich erforderlich. Für diese neuen Käufe müssen Sie eine eindeutige externalTransactionId, die mit dem Kauf in Ihrem Backend als Abfrage verknüpft sind . Dieses Feld (externalTransactionId) kann nicht im selben App-Element wiederverwendet werden Paket-ID.

externalTransactionToken, die die App über das UserChoiceBillingListener, AlternativeBillingOnlyReportingDetailsListener, oder ExternalOfferReportingDetailsListener-Callbacks ist ebenfalls im Rahmen von für einmalige Käufe und Ersttransaktionen in einem wiederkehrender Kauf (z. B. ein Abonnement). In beiden Fällen wird dies als eine erste Transaktion. Nach der ersten Transaktion externalTransactionToken ist nicht mehr erforderlich. Sie melden dies später. (z. B. Aboverlängerungen), indem Sie eine neue eindeutige externalTransactionId. Weitere Informationen finden Sie unter Folgetransaktionen für einen Kauf melden. finden Sie weitere Informationen dazu, wie Sie nachfolgende Transaktionen melden können.

Beispiel:

  1. Ein Entwickler konfiguriert und aktiviert eine alternative Abrechnung in seiner App.
  2. Nutzer 1 befindet sich in Südkorea, einem unterstützten Land, und möchte das Produkt kaufen product1 für 12.634,10 KRW/Monat mit einem einmonatigen kostenlosen Testzeitraum.
  3. Die App startet den Kaufvorgang mit der ProductDetails für product1 und das vom Nutzer ausgewählte Angebot.
  4. Nutzer 1 wählt das alternative Abrechnungssystem des Entwicklers aus.
  5. UserChoiceBillingListener empfängt den Wert my_token als externalTransactionToken
  6. Der Entwickler sendet dann die entsprechenden Informationen an sein Backend. (Wert: externalTransactionToken und Produkte werden gekauft). Dann haben sie Kaufvorgang für product1 im alternativen Abrechnungssystem starten Dieser Transaktion wird auf Entwicklerseite eine eindeutige Transaktions-ID zugewiesen das für die Meldung an Google Play verwendet wird: 123-456-789. Die Transaktions-ID ist erforderlich, auch wenn der Nutzer eine kostenlose Testversion erhält.
  7. Nachdem die Kauftransaktion in der alternativen Abrechnung erfolgt ist meldet der Entwickler die Transaktion Google Play mit dem Zuerst wird eine Transaktion in Höhe von 0 $ angezeigt. weil der Nutzer einen Monat kostenlos erhält.
POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },
"transactionTime" : "2022-02-22T12:45:00Z",
 "recurringTransaction" : {
   "externalTransactionToken": "my_token",
   "externalSubscription" {
     "subscriptionType": "RECURRING"
   }
 },
 "userTaxAddress" : {
   "regionCode": "KR"
 }
}

Wenn bei Transaktionen mit einem Nutzer mit Wohnsitz in Indien die Steuern je nach Verwaltungsgebiet (z. B. Bundesland/Kanton) angeben, muss auch Bereich unter userTaxAddress. Eine Liste der vordefinierten Strings finden Sie in der API-Referenzhandbuch für die entsprechenden Verwaltungsgebiete

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "INR"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "INR"
 },
"transactionTime" : "2023-11-01T12:45:00Z",
 "recurringTransaction" : {
   "externalTransactionToken": "my_token",
   "externalSubscription" {
     "subscriptionType": "RECURRING"
   }
 },
 "userTaxAddress" : {
   # Tax varies in India based on state, so include that information in
   # administrativeArea
   "regionCode": "IN"
   "administrativeArea": "KERALA"
 }
}

Nachfolgende Transaktionen für einen Kauf melden

In einigen Fällen sind derselben Zahlung mehrere Nutzerzahlungen zugeordnet. externe Käufe (z. B. Aboverlängerungen oder Prepaid-Tarife). Sie können diese nachfolgenden Transaktionen melden, indem Sie dieselbe API in Externaltransactions Wie unter Neuen Kauf melden beschrieben, externalTransactionToken ist für nachfolgende Transaktionen nicht erforderlich. Stattdessen wird eine neue eindeutige externalTransactionId als Suchparameter für jedes Verlängerungs- oder Aufladetransaktion unter Angabe der ID der ersten Transaktion im Feld initialExternalTransactionId ein.

In Bezug auf das vorherige Beispiel:

  1. Die erste Verlängerung für Nutzer 1 erfolgt im alternativen Abrechnungssystem. Die Initiale Die Transaktions-ID lautete 123-456-789.
  2. Der Entwickler meldet das Wiederholungsintervall der Transaktion im URL-Suchparameter. als externe Transaktions-ID für diese neue Transaktion fest. Verweisen Sie dabei die externe Transaktions-ID der ersten Transaktion im initialExternalTransactionId.

Beispielanfrage:

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=abc-def-ghi

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "12634000000",
   "currency": "KRW"
 },
 "originalTaxAmount" : {
   "priceMicros": "1263000000",
   "currency": "KRW"
 },
"transactionTime" : "2022-02-22T12:45:00Z",
 "recurringTransaction" : {
   "initialExternalTransactionId": "123-456-789",

   "externalSubscription" {
     "subscriptionType": "RECURRING"
   }
 },
 "userTaxAddress" : {
   "regionCode": "KR"
 }
}

Upgrade oder Downgrade melden

Um ein Upgrade oder Downgrade zu melden, wenn der Nutzer ein Abo in der alternatives Abrechnungssystem verwenden Sie denselben Endpunkt und dieselbe Funktion im Externaltransactions API, die den externalTransactionToken sendet, der der App für die Upgrade- oder Downgrade-Transaktion zur Verfügung gestellt werden. Das funktioniert ähnlich wie die Meldung eines neuen Kaufs.

Von manuellen Berichten zu Transaktionen im Rahmen der alternativen Abrechnung migrieren

So migrieren Sie aktive Abos, die gestartet wurden, während Sie eine Alternative angeboten haben: Abrechnung ohne automatische Berichterstellung nutzen, erstellen Sie eine neue das Feld migratedTransactionProgram ein, anstatt ein initialExternalTransactionId oder externalTransactionToken. Legen Sie die transactionTime bis zu dem Zeitpunkt, an dem sich der Nutzer für jeden aktiven Nutzer angemeldet hat Abo. Melden Sie anschließend jede weitere Transaktion für diese wie gewohnt über die APIs. initialExternalTransactionId, die oben zum Erstellen der Verlängerungstransaktionen verwendet wurden. Nach der Migration des Abos müssen Sie keine manuellen Berichte mehr erstellen die nachfolgenden Transaktionen für das Abo, vorausgesetzt, sie werden mithilfe der auf dieser Seite beschriebenen automatisierten Methoden gemeldet werden.

Beachten Sie bei der Migration von Abos die Kontingentlimits für sicherstellen, dass die Migration keinen Kontingentausfall verursacht. Wenn viele Abos migriert werden sollen, verteilen Sie sie auf mehrere Tage oder fordern Sie eine Erhöhung an. im Kontingent .

Das Feld migratedTransactionProgram kann nur bei der Migration aus manuelle Berichterstellung. Sie wird eingestellt, sobald die manuelle Berichterstellung eingestellt ist unterstützt.

Beispielanfrage:

# Note that the externalTransactionId specified here will used to report subsequent
# transactions.

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=abc-def-ghi

Body
 {
 # Be sure to set the price to 0 for this transaction since it does not reflect
 # an actual subscription renewal.
 "originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },

 # The transaction time should be set to when the user signed up for this
 # subscription.
 "transactionTime" : "2022-02-22T12:45:00Z",
  "recurringTransaction" : {
    "migratedTransactionProgram": "USER_CHOICE_BILLING",

    "externalSubscription" {
      "subscriptionType": "RECURRING"
    }
  },
 "userTaxAddress" : {
   "regionCode": "KR"
 }
}

Google Play-Partnerprogramme melden

Entwickler, die an Partnerprogrammen wie der Das Play Media Experience Program muss transaction_program_code beim Melden externer Transaktionen. Wenn Sie ein berechtigter Entwickler ist, wenden Sie sich an Ihren Business Development Manager, wie dieses Feld festgelegt wird.

Kauferstattungen an Google Play melden

In die Externaltransactions API einbinden, um Erstattungen zu melden für Nutzer außerhalb des Abrechnungssystems von Google Play. Damit Play korrekt erkennt, Transaktion zurückerstattet wurde, müssen Sie den entsprechenden externalTransactionId für die zuvor gemeldete Transaktion im Rahmen des URL-Parameter.

Berücksichtige bei der Meldung von Erstattungen für Abokäufe die externalTransactionId der spezifischen Wiederholung des Abos, das rückerstattet werden.

Beispiel: Angenommen, ein Abo umfasst die folgenden Transaktionen:

  • Eine erste Transaktion mit einer externen Transaktions-ID ABC.1234-5678-9012-34567
  • Die erste wiederkehrende Transaktion mit einer externen Transaktions-ID ABC.1234-5678-9012-34567..0
  • Die zweite wiederkehrende Transaktion mit einer externen Transaktions-ID ABC.1234-5678-9012-34567..1

Wenn du eine Erstattung für alle Transaktionen für das Abo melden möchtest, musst du drei separate Erstattungsanträge: einen für die erste Transaktion und zwei für die nachfolgende Transaktionen.

Diese Methode akzeptiert vollständige Erstattungen (wobei der Betrag dem Betrag entspricht, den der Nutzer in der ursprünglichen externen Transaktion) und teilweise Erstattungen (d. h. der Betrag ist geringer als der Betrag, den der Nutzer in der ursprünglichen externen Transaktion). Bei teilweisen Erstattungen müssen Sie den Betrag vor Steuern angeben, wurde erstattet.

API-Kontingente

Für die Externaltransactions API gelten tägliche API-Kontingente. wie bei jedem anderen Endpunkt in der Google Play Developer API.

Darüber hinaus hat die Externaltransactions API 1.200 Abfragen pro Minute. (QPM) für Aufrufe an Externaltransactions.createexternaltransaction oder Externaltransactions.refundexternaltransaction Anrufe an Externaltransactions.getexternaltransaction werden nicht auf diese 1.200 Abfragen pro Minute angerechnet. Limit