Nahtlose Web-to-Game-Integration

So funktioniert's

Die nahtlose Web-to-Game-Integration ermöglicht es Ihnen, zu konfigurieren, welche Daten von Ihrer Website an das Spiel in den URL-Parametern gesendet werden. Sie können den Autorisierungstoken eines Nutzers, Marketingkampagnendaten oder beliebige andere Informationen übermitteln.

Ablauf für den Nutzer

Bei der Implementierung einer nahtlosen Web-to-Game-Integration gibt es die folgenden Benutzerszenarien:

  • Klick auf einen Startprogramm-Link auf der Website
  • Start des Spiels aus dem Startprogramm heraus

Klickt ein Nutzer auf einen Startprogramm-Link auf der Website, geschieht Folgendes:

  1. Der Nutzer öffnet die Website.
  2. Der Nutzer klickt auf den Startprogramm-Link.
  3. Das Startprogramm speichert den Wert des Parameters payload aus der URL.
  4. Der Nutzer klickt im Startprogramm auf Spielen.
  5. Das Startprogramm prüft, ob der Parameter payload vorhanden und gültig ist:
    • Ist die Prüfung erfolgreich, startet das Startprogramm das Spiel mit den Argumenten aus dem payload-Parameter.
    • Bei einer erfolglosen Prüfung:
      • Wenn in den Einstellungen des Kundenportals eine URL angegeben ist, leitet das Startprogramm den Nutzer zu dieser URL weiter.
      • Ist keine URL in den Einstellungen des Kundenportals angegeben, startet das Startprogramm das Spiel.

Startet ein Nutzer ein Spiel aus dem Startprogramm heraus, geschieht Folgendes:

  1. Der Nutzer öffnet das Startprogramm.
  2. Der Nutzer klickt im Startprogramm auf Spielen.
  3. Das Startprogramm prüft, ob der Parameter payload vorhanden und gültig ist:
    • Ist die Prüfung erfolgreich, startet das Startprogramm das Spiel mit den Argumenten aus dem payload-Parameter, der beim letzten Start des Startprogramms über den Website-Link erhalten wurde.
    • Bei einer erfolglosen Prüfung:
      • Wenn in den Einstellungen des Kundenportals eine URL angegeben ist, leitet das Startprogramm den Nutzer zu dieser URL weiter.
      • Ist keine URL in den Einstellungen des Kundenportals angegeben, startet das Startprogramm das Spiel.

Wie komme ich dazu

So richten Sie die nahtlose Web-to-Game-Integration ein:

  1. Konfigurieren Sie die Einstellungen im Kundenportal.
  2. Fügen Sie der Website einen Link hinzu.
  3. Implementieren Sie die Verarbeitung der im Payload-Parameter empfangenen Daten aufseiten des Spiels.

Einstellungen im Kundenportal konfigurieren

  1. Öffnen Sie Ihr Projekt im Kundenportal.
  2. Klicken Sie in der Seitenleiste auf Startprogramm.
  3. Wählen Sie im Dashboard das gewünschte Startprogramm aus, und klicken Sie auf Startprogramm bearbeiten.
  4. Scrollen Sie zum Abschnitt Spiele, und klicken Sie rechts neben dem gewünschten Spiel auf Einrichten.
  5. Wählen Sie die Option Builds.
  6. Wechseln Sie zur Registerkarte Ausführbare Dateien.
  7. Geben Sie für jedes Betriebssystem im Feld Name der ausführbaren Datei das Argument --x_payload_url an. Übermitteln Sie als Argumentwert die URL der Website, auf der sich der Link bzw. die Schaltfläche befindet. Der Wert sollte mit Base64 kodiert sein.

Lautet beispielsweise der Name der ausführbaren Datei game.exe und die URL der Spiel-Website http://example.com/start_play, dann geben Sie game.exe --x_payload_url aHR0cDovL2V4YW1wbGUuY29tL3N0YXJ0X3BsYXk= im Feld Name der ausführbaren Datei ein.

Hinweis
Nachdem Sie die Einstellung vorgenommen haben, können die Nutzer das Spiel nicht mehr starten, ohne zuvor Daten von der Spiel-Website erhalten zu haben. Fehlen die Daten, wird der Nutzer zur Spiel-Website weitergeleitet, um die Daten abzurufen.

Ergänzen Sie Ihre Website um einen Link oder eine Schaltfläche, die die URL im Format xl-<launcher-id>://game/<game-id>?payload=<payload>&expires_in=<expires_in> öffnet, wobei:

  • <launcher-id> und <game-id> Kennungen des Startprogramms und des Spiels sind, die Sie in der URL im Kundenportal finden: https://publisher.xsolla.com/<merchant-id>/projects/<project-id>/new-launcher/<launcher-id>/game/<game-id>.
  • <payload> die an das Spiel zu übermittelten Daten sind.

Hinweis
Wir empfehlen, die Daten mit Base64 oder urlencoder.org zu verschlüsseln, um sie sicher als URL-Parameter übermitteln zu können.

  • <expires_in> die Verfallszeit der im Payload-Parameter übermittelten Daten im Unix-Zeitformat ist.

Copy
Full screen
Small screen

    function getAuthToken() {
        return 'YOUR DATA HERE';
    }
    
    function getDeeplink(launcherID, gameID) {
        const encodedPayload = btoa(getAuthToken());
        const expiresIn = new Date();
        expiresIn.setHours(expiresIn.getHours() + 1); // Payload data will be fresh for 1 hour
     return `xl-${launcherID}://game/${gameID}?payload=${encodedPayload}&expires_in=${expiresIn.getTime()}`;
    }
    
    // Put that `href` to button or link address
    const href = getDeeplink(123, 4567);
    

    Integration aufseiten des Spiels

    Das Spiel empfängt Daten im Argument --xsolla-payload. Implementieren Sie die Entschlüsselung der Daten durch das Spiel, je nach der von Ihnen gewählten Verschlüsselungsmethode.

    Beispiel für den Start eines Spiels, wenn die Daten mit Base64 verschlüsselt sind:

    Copy
    Full screen
    Small screen

      game.exe --xsolla-payload WU9VUiBEQVRBIEhFUkU=

      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: 5. April 2023

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

      Problem melden
      Wir überprüfen unsere Inhalte ständig. Ihr Feedback hilft uns, sie zu verbessern.
      Geben Sie eine E-Mail-Adresse an, damit wir Sie erreichen können
      Vielen Dank für Ihr Feedback!