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

どのように動作するか

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

ユーザーフロー

シームレスなウェブとゲームの統合を実装する際のユーザーシナリオは以下の通りです:

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

ユーザーがウェブサイトからランチャーインストーラーをダウンロードするためのリンクをクリックした場合:

  1. ユーザーがウェブサイトを開きます。
  2. ユーザーはランチャーインストーラーへのリンクをたどります。
  3. ユーザーは、ワンタイムパスワードを含むリンクを使用してランチャーインストーラーをダウンロードします。
  4. ユーザーはランチャーをインストールします。
  5. ランチャーはワンタイムパスワードを介してcommon_payloadパラメータの値を受け取ります。
  6. ユーザーがランチャー内で「プレイ」をクリックします。
  7. ランチャーはcommon_payloadパラメータの存在と有効期限をチェックします:
    • チェックが成功した場合、ランチャーはcommon_payloadパラメータから取得した引数でゲームを開始します。
    • チェックが失敗した場合:
      • パブリッシャーアカウントの実行ファイル名にウェブサイトのURLが構成されている場合、ランチャーはユーザーをそのアドレスにリダイレクトします。
      • ウェブサイトURLがパブリッシャーアカウントで実行ファイル名内に構成されていない場合、ランチャーはcommon_payload引数なしでゲームを開始します。

ユーザーがウェブサイトからランチャーへのリンクをクリックし、ランチャーが既にインストールされている場合、以下のフローが発生します:

  1. ユーザーがウェブサイトを開きます。
  2. ユーザーがランチャーへのリンクをクリックします。
  3. ランチャーはURLからpayloadcommon_payload、およびexpires_jnパラメータの値を保存します。
  4. ユーザーがランチャー内で「プレイ」をクリックします。
  5. ランチャーはpayloadおよびcommon_payloadパラメータの存在と有効期限をチェックします:
    • チェックが成功した場合、ランチャーはpayloadおよびcommon_payloadパラメータから取得した引数を使用してゲームを起動します。
    • チェックが失敗した場合:
      • ウェブサイトのURLが実行可能ファイル名内のパブリッシャーアカウントに構成されている場合、ランチャーはユーザーをそのアドレスにリダイレクトします。
      • ウェブサイトURLが実行可能ファイル名内のパブリッシャーアカウントに設定されていない場合、ランチャーはpayload及びcommon_payload引数なしでゲームを起動します。

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

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

入手方法

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

  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>&common_payload=<common_payload>&expires_in=<expires_in>フォーマットのURLを開くためのリンクまたはボタンを追加します:

  • <launcher-id>および<game-id> ― 以下のURLで見つけるパブリッシャーアカウントのURLにあるランチャーとゲームの識別子:https://publisher.xsolla.com/<merchant-id>/projects/<project-id>/new-launcher/<launcher-id>/game/<game-id>
  • <payload> ― ゲームに渡す必要のあるデータ。
  • <common_payload> ― すべてのゲームに共通する、ランチャーに渡す必要のあるユーザーデータ。
  • <expires_in>payloadおよびcommon_payloadパラメータで渡されるデータの有効期限(ミリ秒単位で表示されたUnixタイムフォーマット)。
お知らせ
URLパラメータとして安全に転送するために、Base64またはurlencoder.orgを使用してデータを暗号化することをお勧めします。
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);

ゲーム側での統合

ランチャーは、payloadパラメータで受け取ったデータを、以下の例に示すように–xsolla-payloadコマンドライン引数の値として渡します。また、common_payloadパラメータで渡されるデータの存在と寿命を確認し、–xsolla-common-payloadコマンドライン引数の値として渡すことも行います。以下の例を参照してください。

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

Copy
Full screen
Small screen
    game.exe ---xsolla-payload <payload> --xsolla-common-payload <common_payload> WU9VUiBEQVRBIEhFUkU=
    
    この記事は役に立ちましたか?
    ありがとうございます!
    改善できることはありますか? メッセージ
    申し訳ありません
    この記事が参考にならなかった理由を説明してください。 メッセージ
    ご意見ありがとうございました!
    あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
    最終更新日: 2024年1月22日

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

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