ウェブからゲームへのシームレスな統合

どのように動作するか

ウェブからゲームへのシームレスな統合により、URLパラメータでウェブサイトからゲームへのデータ送信を構成できます。ユーザーの認証トークン、マーケティングキャンペーン データ、またはその他の情報を送信できます。

ユーザーフロー

ウェブからゲームへのシームレスな統合を実装する場合、次のユーザーシナリオがあります:

  • ウェブサイトからランチャーへのリンクをクリックします。
  • ランチャーからゲームを起動します。

ユーザーがウェブサイトからランチャーへのリンクをクリックすると、次のフローが発生します:

  1. ユーザーはウェブサイトを開きます。
  2. ユーザーはランチャーへのリンクをクリックします。
  3. ランチャーはURLからpayloadパラメータの値を保存します。
  4. ユーザーはランチャーで「プレイ」をクリックします。
  5. ランチャーは、payloadパラメータの存在と有効期限をチェックします:
    • チェックが成功した場合、ランチャーはpayloadパラメータから取得した引数でゲームを開始します。
    • チェックが失敗した場合:
      • パブリッシャーアカウントの設定でURLが指定されている場合、ランチャーはそのURLにユーザーをリダイレクトします。
      • パブリッシャーアカウントの設定でURLが指定されていない場合、ランチャーがゲームを起動します。

ユーザーがランチャーからゲームを起動すると、次のフローが発生します:

  1. ユーザーはランチャーを開きます。
  2. ユーザーはランチャーで「プレイ」をクリックします。
  3. ランチャーは、payloadパラメータの存在と有効期限をチェックします:
    • チェックが成功した場合、ランチャーは、ウェブサイトのリンクから最後のランチャー起動時に取得したpayloadパラメータから取得した引数を使用してゲームを起動します。
    • チェックが失敗した場合:
      • パブリッシャーアカウントの設定でURLが指定されている場合、ランチャーはそのURLにユーザーをリダイレクトします。
      • パブリッシャーアカウントの設定でURLが指定されていない場合、ランチャーがゲームを起動します。

入手方法

ウェブからゲームへのシームレスな統合を設定するには:

  1. アドミンページで設定を構成します
  2. ウェブサイトへのリンクを追加します
  3. payloadパラメータで受信したデータの処理をゲーム側で実装します

アドミンページでの設定構成

  1. アドミンページでプロジェクトを開きます。
  2. サイドメニューで「ランチャー」をクリックします。
  3. ダッシュボードでランチャーを見つけて、「ランチャーを編集する」をクリックします。
  4. ゲーム」セクションで、ゲームの右側にある「セットアップ」をクリックします。
  5. ビルド」セクションに移動します。
  6. 実行可能ファイル」タブに移動します。
  7. 各オペレーティングシステムで、「実行ファイル名」のフィールドに--x_payload_urlという引数を追加します。引数の値には、リンクまたはボタンが配置されるウェブサイトのURLを渡します。値はBase64でエンコードしてください。

例えば、実行ファイル名がgame.exeで、ゲームサイトのURLがhttp://example.com/start_playの場合、「実行ファイル」名のフィールドにgame.exe --x_payload_url aHR0cDovL2V4YW1wbGUuY29tL3N0YXJ0X3BsYXk=を入力します。

お知らせ
この設定を完了すると、ユーザーはゲームウェブサイトからデータを受信しないとゲームを起動できなくなります。データがない場合は、ゲームサイトにリダイレクトされ、データを取得することができます。

xl-<launcher-id>://game/<game-id>?payload=<payload>&expires_in=<expires_in>形式のURLを開くリンクまたはボタンをウェブサイトに追加します。そこで:

  • <launcher-id><game-id> — アドミンページのURLにあるランチャーとゲームの識別子:https://publisher.xsolla.com/<merchant-id>/projects/<project-id>/new-launcher/<launcher-id>/game/<game-id>
  • <payload> — ゲームに渡す必要があるデータ。

お知らせ
URLパラメータとして安全に転送するために、Base64またはurlencoder.orgを使用してデータを暗号化することをお勧めします。

  • <expires_in> — payloadパラメータで渡されたデータの有効期限(Unix時間形式)。

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);
    

    ゲーム側での統合

    ゲームは--xsolla-payload引数でデータを受け取ります。 選択した暗号化方法に応じて、ゲームによるデータの復号化を実装します。

    Base64 を使用してデータが暗号化さした場合にゲームを開始する例:

    Copy
    Full screen
    Small screen

      game.exe --xsolla-payload WU9VUiBEQVRBIEhFUkU=

      この記事は役に立ちましたか?
      ありがとうございます!
      改善できることはありますか? メッセージ
      申し訳ありません
      この記事が参考にならなかった理由を説明してください。 メッセージ
      ご意見ありがとうございました!
      あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
      このページを評価する
      このページを評価する
      改善できることはありますか?

      答えたくない

      ご意見ありがとうございました!
      最終更新日: 2023年4月5日

      誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。

      問題を報告する
      当社は常にコンテンツを見直しています。お客様のご意見は改善に役立ちます。
      フォローアップ用のメールをご提供してください
      ご意見ありがとうございました!