ウェブからゲームへのシームレスな統合
どのように動作するか
ウェブからゲームへのシームレスな統合により、URLパラメータでウェブサイトからゲームへのデータ送信を構成できます。ユーザーの認証トークン、マーケティングキャンペーンデータ、または他の情報を送信できます。
ユーザーフロー
シームレスなウェブとゲームの統合を実装する際のユーザーシナリオは以下の通りです:
- ウェブサイトからランチャーインストーラーをダウンロードするためのリンクをクリックします。
- ウェブサイトからランチャーへのリンクをクリックします。
- ランチャーからゲームを起動します。
ユーザーがウェブサイトからランチャーインストーラーをダウンロードするためのリンクをクリックした場合:
- ユーザーがウェブサイトを開きます。
- ユーザーはランチャーインストーラーへのリンクをたどります。
- ユーザーは、ワンタイムパスワードを含むリンクを使用してランチャーインストーラーをダウンロードします。
- ユーザーはランチャーをインストールします。
- ランチャーはワンタイムパスワードを介して
common_payload
パラメータの値を受け取ります。 - ユーザーがランチャー内で「プレイ」をクリックします。
- ランチャーは
common_payload
パラメータの存在と有効期限をチェックします:- チェックが成功した場合、ランチャーは
common_payload
パラメータから取得した引数でゲームを開始します。 - チェックが失敗した場合:
- パブリッシャーアカウントの実行ファイル名にウェブサイトのURLが構成されている場合、ランチャーはユーザーをそのアドレスにリダイレクトします。
- ウェブサイトURLがパブリッシャーアカウントで実行ファイル名内に構成されていない場合、ランチャーは
common_payload
引数なしでゲームを開始します。
- チェックが成功した場合、ランチャーは
ユーザーがウェブサイトからランチャーへのリンクをクリックし、ランチャーが既にインストールされている場合、以下のフローが発生します:
- ユーザーがウェブサイトを開きます。
- ユーザーがランチャーへのリンクをクリックします。
- ランチャーはURLから
payload
、common_payload
、およびexpires_jn
パラメータの値を保存します。 - ユーザーがランチャー内で「プレイ」をクリックします。
- ランチャーは
payload
およびcommon_payload
パラメータの存在と有効期限をチェックします:- チェックが成功した場合、ランチャーは
payload
およびcommon_payload
パラメータから取得した引数を使用してゲームを起動します。 - チェックが失敗した場合:
- ウェブサイトのURLが実行可能ファイル名内のパブリッシャーアカウントに構成されている場合、ランチャーはユーザーをそのアドレスにリダイレクトします。
- ウェブサイトURLが実行可能ファイル名内のパブリッシャーアカウントに設定されていない場合、ランチャーは
payload
及びcommon_payload
引数なしでゲームを起動します。
- チェックが成功した場合、ランチャーは
ユーザーがランチャーからゲームを起動する際、以下のフローが発生します:
- ユーザーはランチャーを開きます。
- ユーザーはランチャー内で「プレイ」をクリックします。
- ランチャーは
payload
およびcommon_payload
パラメータの存在と有効期限をチェックします:- チェックが成功した場合、ランチャーは
payload
およびcommon_payload
パラメータから取得した引数を使用してゲームを起動します。 - チェックが失敗した場合:
- パブリッシャーアカウントの設定でURLが指定されている場合、ランチャーはユーザーをそのURLにリダイレクトします。
- 実行可能ファイル名内のパブリッシャーアカウントでウェブサイトのURLが構成されていない場合、ランチャーはユーザーをそのアドレスにリダイレクトし、
payload
およびcommon_payload
引数なしでゲームを起動します。
- チェックが成功した場合、ランチャーは
入手方法
ウェブからゲームへのシームレスな統合を設定するには:
アドミンページでの設定構成
- アドミンページでプロジェクトを開きます。
- サイドメニューで「ランチャー」をクリックします。
- ダッシュボードでランチャーを見つけて、「ランチャーを編集する」をクリックします。
- 「ゲーム」セクションで、ゲームの右側にある「セットアップ」をクリックします。
- 「ビルド」セクションに移動します。
- 「実行可能ファイル」タブに移動します。
- 各オペレーティングシステムの「実行ファイル名」のフィールドに
--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タイムフォーマット)。
- javascript
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 を使用してデータが暗号化さした場合にゲームを開始する例:
game.exe ---xsolla-payload <payload> --xsolla-common-payload <common_payload> WU9VUiBEQVRBIEhFUkU=
誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。