Digital Distribution Hub

Überblick

Digital Distribution Hub ist eine Lösung, die Spieleentwickler mit Vertriebspartnern vernetzt, die ihre eigenen Plattformen oder Ökosysteme für die Distribution von Spielen, virtuellen Gegenständen und virtueller Währung nutzen.

Vertriebspartner sind digitale Plattformen oder Ökosysteme, die Spiele und Ingame-Items vertreiben und eigene Shops haben sowie eigene Rechnungen ausstellen. Beispiele für Xsolla-Vertriebspartner:

  • Super-Apps, die mehrere Dienste bündeln
  • Banking-Apps
  • Telekommunikations- und Internetdienstanbieter
  • Automaten
  • Anbieter von Cashback- und Prämienprogrammen
  • digitale Marktplätze

Vorteile für Spieleentwickler:

  • Vergrößert die Zielgruppe der Spiele durch die direkte Anbindung an schnell wachsende Vertriebspartner.
  • Steigende Umsätze durch die Aufnahme des Spiels in neue Vertriebskanäle mit einzigartigem Nutzerkreis.
  • Bessere organische Auffindbarkeit auf Plattformen Dritter durch Werbeanzeigen und Banner.

Vorteile für Vertriebspartner:

  • Gesteigerte Nutzertreue durch Zugang zu noch mehr Spielinhalten. Nutzer können Spielschlüssel, virtuelle Gegenstände, virtuelle Währung und Bundles direkt über die App oder den Dienst erwerben.
  • Bindung bestehender und Gewinnung neuer Nutzer durch die wachsende Beliebtheit der Gaming-Branche.
  • Steigende Umsätze durch die Provision aus dem Verkauf von Spielschlüsseln, virtuellen Gegenständen und virtueller Währung der größten Akteure auf dem Gaming-Markt.

So funktioniert's

Spielschlüsselkauf: Ablauf für Benutzer

Kauf von virtuellen Gegenständen und virtueller Währung: Ablauf für Benutzer

Interaktionsablauf

  1. Der Spieleentwickler erstellt ein Projekt im Kundenportal, und lädt die Spielschlüssel, virtuellen Gegenstände, virtuelle Währung und Bundles hoch.
  2. Ein Vertriebspartner fragt Benutzerdaten ab:
    • die E-Mail-Adresse des Benutzers, an die die Schlüssel gesendet werden sollen;
    • die Ingame-ID des Benutzers, dem die Gegenstände gewährt werden sollen.
  3. Der Benutzer gibt in der Benutzeroberfläche des Vertriebspartners die E-Mail-Adresse ein, um die Schlüssel zu erhalten, bzw. die Benutzer-ID, um die Artikel zu erhalten.
  4. Der Vertriebspartner ruft die Methode Benutzertoken erstellen auf, und übermittelt die E-Mail-Adresse bzw. die Benutzer-ID als Parameter.
  5. Sofern der Spieleentwickler Webhooks aktiviert hat, prüft Xsolla, ob der Benutzer im Spiel existiert. Für den Verkauf von Spielschlüsseln müssen Webhooks nicht zwingend eingebunden sein. Für den Verkauf von virtuellen Gegenständen und virtueller Währung hingegen ist die Einbindung erforderlich.
  6. Xsolla erstellt einen Token mit Benutzerdaten und sendet diesen an einen Vertriebspartner.
  7. Der Vertriebspartner fordert einen Spiele- oder einen Ingame-Items-Katalog an.
  8. Xsolla gibt den angeforderten Katalog als Antwort zurück.
  9. Der Vertriebspartner erhält den Katalog und zeigt ihn dem Benutzer an.
  10. Der Benutzer kauft etwas. Der Vertriebspartner legt einen Warenkorb an.
  11. Der Vertriebspartner sendet den Warenkorb des Benutzers, um eine Bestellung anzulegen.
  12. Xsolla gibt die Bestell-ID und die Warenkorbsumme inklusive Rabatten und Steuern zurück.
  13. Der Vertriebspartner zeigt dem Benutzer die Gesamtsumme des Warenkorbs an.
  14. Bezahlt der Benutzer, bucht der Vertriebspartner das Geld vom Zahlungsmittel des Benutzers ab und leitet ihn zur Zahlungsstatusseite weiter.
  15. Der Vertriebspartner benachrichtigt Xsolla, dass die Bestellung bezahlt wurde, und sendet die zugehörigen Zahlungsdaten.
  16. Xsolla benachrichtigt den Spieleentwickler über den Kauf.
  17. Der Benutzer, der das Spiel gekauft hat, erhält eine E-Mail mit den Kaufdetails und kann die Spielschlüssel aktivieren. Wenn der Benutzer virtuelle Gegenstände oder virtuelle Währung gekauft hat, werden diese seinem Inventar hinzugefügt.

Integration aufseiten des Spieleentwicklers

So verknüpfen Sie den Digital Distribution Hub

So bewerben Sie Ihr Spiel auf Vertriebskanälen:

  1. Verknüpfen Sie Online-Shop im Kundenportal, und laden Sie Folgendes herunter:
  2. Richten Sie Webhooks ein.
  3. Wenden Sie sich an Ihren Account Manager oder senden Sie eine E-Mail an am@xsolla.com, um Digital Distribution Hub für Ihr Projekt zu aktivieren.

Hinweis
Falls Sie noch kein Xsolla-Partner sind, aber an einer Zusammenarbeit interessiert sind und Digital Distribution Hub integrieren möchten, senden Sie eine E-Mail an business@xsolla.com.

So richten Sie Webhooks ein

Webhooks müssen eingerichtet sein:

So aktivieren Sie Webhooks:

  1. Öffnen Sie Ihr Projekt im Kundenportal.
  2. Klicken Sie in der Seitenleiste auf Projekteinstellungen, und wechseln Sie zur Registerkarte Webhooks.
  3. Stellen Sie den Umschalter Webhooks auf Ein.
  4. Geben Sie die Webhook-URL an.
  5. Daraufhin wird standardmäßig ein geheimer Schlüssel zum Signieren der Projekt-Webhooks generiert. Wenn Sie einen neuen geheimen Schlüssel generieren möchten, klicken Sie auf das Aktualisieren-Symbol.
  6. Klicken Sie auf Einstellungen speichern.

Hinweis
Um virtuelle Gegenstände und virtuelle Währung zu vertreiben, müssen Sie Webhooks verknüpfen. Ohne Webhooks können Ingame-Items dem Inventar eines Benutzers nicht hinzugefügt werden.

Benutzervalidierung

Xsolla sendet einen Webhook für die Benutzervalidierung, um zu prüfen, ob ein Benutzer im Spiel existiert. Die Benutzervalidierung ermöglicht es Ihnen:

  • dem Benutzer einen personalisierten Katalog anzuzeigen, sofern Sie Benutzerattribute in der Antwort übermitteln;
  • gekaufte Gegenstände dem Inventar des Benutzers hinzuzufügen.

Um den Empfang eines Webhooks zu bestätigen, muss Ihr Server wie folgt antworten:

  • HTTP-Statuscode 204 ohne Nachrichtenrumpf, wenn der Benutzer im Spiel existiert;
  • HTTP-Statuscode 400 samt Problembeschreibung, sofern der angegebene Benutzer nicht gefunden oder eine ungültige Signatur übermittelt wurde.

Die vollständige Liste und der Mechanismus der Webhooks, einschließlich Beispielen, sind in der API-Referenz ausführlich beschrieben.

Anfragerumpf-Schema:

Copy
Full screen
Small screen
    {
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "user_attributes": {
        "type": "object",
        "required": false,
        "minProperties": 1,
        "maxProperties": 100,
        "patternProperties": {
          "^[\\w-_.]{1,255}$": {
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 255
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 255
                },
                "minItems": 1,
                "maxItems": 1000
              }
            ]
          }
        },
        "additionalProperties": false
      }
    }
    }

    Antwortbeispiel:

    Copy
    Full screen
    Small screen
    {
      "user_attributes": {
        "age": 18,
        "level": 1,
        "game": "WoW",
        "is_baned": false,
        "registration_date": "2022-01-01"
      }
    }

    Verknüpfung der Transaktions-ID

    Wenn Sie eine externe ID (Transaktions-ID in Ihrem System) verwenden und diese mit einer Transaktions-ID aufseiten von Xsolla verknüpfen möchten, implementieren Sie die folgende Webhook-Verarbeitung:

    Copy
    Full screen
    Small screen
      {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "notification_type": {
            "type": "string"
          },
          "order_id": {
            "type": "integer"
          },
          "project_id": {
            "type": "integer"
          },
          "user": {
            "type": "object",
            "properties": {
              "external_id": {
                "type": "string"
              },
              "email": {
                "type": ["string", "null"]
              }
            }
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "item_id": {
                  "type": "integer"
                },
                "sku":  {
                  "type": "string"
                },
                "quantity": {
                  "type": "integer"
                },
                "type": {
                  "type": "string"
                }
              }
            }
          }
        }
      }

      Anfragebeispiel:

      Copy
      Full screen
      Small screen
      {
        "notification_type": "create_external_transaction",
        "order_id": 1,
        "project_id": 51336,
        "user": {
          "external_id": "user_id",
          "email": null
        },
        "items": [
          {
            "item_id": 101,
            "sku": "mithril_dagger",
            "quantity": 2,
            "type": "virtual_good"
          }
        ]
      }

      Erwartete Antwort:

      Copy
      Full screen
      Small screen
        {
          "id": "validation_transaction_info_response.json",
          "$schema": "http://json-schema.org/draft-07/schema#",
          "description": "DDH Project Transaction Info Response",
          "type": "object",
          "additionalProperties": true,
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1
            }
          },
          "required": [
            "id"
          ]
        }

        Antwortbeispiel:

        Copy
        Full screen
        Small screen
        {
            "id":"123"
        }

        Liste der Webhook-Parameter für die Verknüpfung von Transaktions-IDs:

        ParameterTypBeschreibung
        notification_type
        stringArt der Benachrichtigung.
        order_id
        integerBestell-ID.
        project_id
        integerID des Projekts, in das Spielschlüssel oder Bundles mit Spielschlüsseln, Ingame-Items oder Bundles mit Ingame-Items geladen werden.
        user.external_id
        stringBenutzer-ID aufseiten des Spieleentwicklers.
        items
        stringListe der vom Benutzer gekauften Artikel.
        items.sku
        arrayEindeutige ID des Gegenstands. Gegenstände vom Typ game_key nutzen den Wert im sku_drm-Format.
        items.type
        arrayGegenstandstyp. Kann folgende Werte aufweisen: virtual_good, virtual_currency, game_key, physical_good.
        items.quantity
        integerMenge der Gegenstände.

        Kaufbestätigung

        Nachdem der Benutzer bezahlt hat, erhalten Sie:

        Integration aufseiten des Vertriebspartners

        Wenn Sie an einer Integration von Digital Distribution Hub interessiert sind, senden Sie dem Integrationsmanager eine E-Mail (psbusiness@xsolla.com), und bitten Sie um die für die Nutzung der Digital Distribution Hub API erforderlichen Parameter:

        Hinweis
        Vertriebspartner müssen kein Konto im Kundenportal erstellen, um die Digital Distribution Hub API zu nutzen. Spieleentwickler müssen hingegen ein Konto im Kundenportal erstellen, um die API-Methoden für den Verkauf von Spielschlüsseln und Ingame-Items nutzen zu können.

        Um Spiele oder Ingame-Items in Ihrer App oder Ihrem Dienst zu vertreiben, implementieren Sie die folgende Spielkauflogik:

        1. Zeigen Sie dem Benutzer eine Eingabemaske an, in der er seine E-Mail-Adresse bzw. seine Ingame-Benutzer-ID eingeben kann.
          Die E-Mail-Adresse ist beim Kauf von Spielschlüsseln und Spielschlüsselpaketen abzufragen. In diesem Fall muss der Benutzer außerdem die Möglichkeit haben, in der Benutzeroberfläche DRMs auszuwählen.
          Die Benutzer-ID ist beim Kauf von virtuellen Gegenständen, virtueller Währung und Bundles, die Gegenstände und Währung enthalten, abzufragen. In diesem Fall muss der Benutzer darauf hingewiesen werden, die bei der Registrierung erhaltene ID einzugeben. Zum Beispiel:

        1. Übermitteln Sie die erhaltene E-Mail-Adresse bzw. Benutzer-ID, um zu prüfen, ob der Benutzer im Spiel existiert. Rufen Sie dazu mithilfe der Methode Benutzertoken erstellen einen Autorisierungstoken ab, und übermitteln Sie die Parameter in der Anfrage:

        ParameterTypBeschreibung
        project_id
        integerID des Projekts, in das Spielschlüssel oder Bundles mit Spielschlüsseln, Ingame-Items oder Bundles mit Ingame-Items geladen werden.
        user.email
        stringE-Mail-Adresse des Benutzers.
        user.id
        String oder nullIndividuelle Benutzerkennung im Spiel.

        1. In der Antwort wird ein Autorisierungstoken mit Benutzerdaten zurückgegeben.

        1. Import:

        1. Übermitteln Sie in der Anfrage den in Schritt 2 erhaltenen Token und den folgenden Parameter:

        ParameterTypBeschreibung
        project_id
        integerID des Projekts, in das Spielschlüssel oder Bundles mit Spielschlüsseln, Ingame-Items oder Bundles mit Ingame-Items geladen werden.

        1. Zeigen Sie den Spiele- und Ingame-Items-Katalog auf Ihrer Shopstartseite an. Implementieren Sie auf der Benutzeroberfläche folgende Auswahlmöglichkeiten:
          • Anzahl der Spielschlüssel;
          • Anzahl der Ingame-Items;
          • Anzahl der virtuellen Währung bzw. virtuellen Währungspakete für einen festen Währungsbetrag;
          • Anzahl der Bundles.

        1. Wenn Sie einen Warenkorb verwenden, kann die Artikelmenge darin festgelegt werden. Wenn Sie keinen Warenkorb verwenden, kann die Auswahl der Artikelmenge im Katalog implementiert werden.

        1. Beispiel für die Auswahl der Artikelmenge im Warenkorb:

        1. Beispiel für die Auswahl der Artikelmenge im Katalog:

        1. Wenn Sie keinen Einkaufswagen verwenden, wechseln Sie zu Schritt 6, und verwenden Sie die Methode Bestellung mit dem angegebenen Artikel erstellen.

        1. Nutzen Sie die Methode Artikel in den Warenkorb legen, um den Warenkorb zusammenzustellen.

        1. Der Benutzer kann in einer Bestellung Artikel hinzufügen, entfernen oder deren Menge ändern. So lässt sich der Warenkorb aktualisieren:

        1. Nutzen Sie in diesem Fall nach dem Aktualisieren des Warenkorbs die Methode Warenkorb des aktuellen Benutzers abrufen.

        1. Übermitteln Sie die folgenden Parameter in den Anfragen für das Zusammenstellen und Aktualisieren des Warenkorbs:

        ParameterTypBeschreibung
        project_id
        integerID des Projekts, in das Spielschlüssel oder Bundles mit Spielschlüsseln, Ingame-Items oder Bundles mit Ingame-Items geladen werden.
        items.sku
        stringEindeutige ID des Gegenstands. Gegenstände vom Typ game_key nutzen den Wert im sku_drm-Format.
        items.quantity
        integerMenge der Gegenstände.

        1. Nach dem Aufruf der Methode Artikel in den Warenkorb legen oder Warenkorb des aktuellen Benutzers abrufen liefert die Antwort aktualisierte Informationen über die ausgewählten Produkte: Preise mit und ohne Rabatt, Bonusprodukte.

        1. Verwenden Sie die Methode Bestellung mit allen Artikeln aus dem aktuellen Warenkorb erstellen, um eine Bestellung anzulegen und die im Warenkorb befindlichen Artikel zu bezahlen. Übermitteln Sie die folgenden Parameter in der Anfrage:

        ParameterTypBeschreibung
        project_id
        integerID des Projekts, in das Spielschlüssel oder Bundles mit Spielschlüsseln, Ingame-Items oder Bundles mit Ingame-Items geladen werden.
        geotype
        numberVertriebspartner-ID aufseiten von Xsolla.
        currency
        stringWährung der Bestellung. Bei virtuellen Währungen wird die SKU und bei echten Währungen der aus drei Buchstaben bestehende Code gemäß ISO 4217 genutzt.

        1. In der Antwort werden die Bestell-ID und der Warenkorbpreis inklusive Steuern zurückgegeben.

        Hinweis
        Mit der Methode Bestellung mit dem angegebenen Artikel erstellen können Sie eine Bestellung anlegen, ohne einen Warenkorb zu erstellen. In diesem Fall können Benutzer nur einen Artikeltyp kaufen.

        1. Zeigen Sie dem Benutzer den Gesamtpreis des Warenkorbs an.
        2. Buchen Sie das Geld vom Zahlungsmittel des Benutzers auf Ihrer Plattform ab. Leiten Sie den Benutzer zur Zahlungsstatusseite weiter.
        3. Senden Sie eine Zahlungsbenachrichtigung, und übermitteln Sie die folgenden Parameter in der Anfrage:

        ParameterTypBeschreibung
        project_id
        integerID des Projekts, in das Spielschlüssel oder Bundles mit Spielschlüsseln, Ingame-Items oder Bundles mit Ingame-Items geladen werden.
        payment.amount
        integerZahlungsbetrag.
        order_id
        integerBestell-ID.
        ps_transaction_id
        stringTransaktions-ID aufseiten des Vertriebspartners.
        Hinweis
        Falls die Zahlung erstattet oder nicht abgeschlossen wurde, senden Sie eine Benachrichtigung über die Stornierung der Zahlung.
        War dieser Artikel hilfreich?
        Vielen Dank!
        Gibt es etwas, das wir verbessern können? Nachricht
        Das tut uns leid
        Bitte erläutern Sie, weshalb dieser Artikel nicht hilfreich ist. Nachricht
        Vielen Dank für Ihr Feedback!
        Wir werden Ihr Feedback aufgreifen und dazu nutzen, Ihr Erlebnis verbessern.
        Diese Seite bewerten
        Diese Seite bewerten
        Gibt es etwas, das wir verbessern können?

        Jetzt nicht

        Vielen Dank für Ihr Feedback!
        Letztmalig aktualisiert: 9. November 2022

        Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.