ディープリンクを使用すると、ゲーム内の特定の場所にユーザーを送信でき、参加プロセスをよりスムーズにし、友達を見つける手助けをし、トラフィックの帰属を提供できます。これらのリンクに含まれるオプションの起動データにより、誰かが参加したときにユーザー体験をカスタマイズできます。
ディープリンクを構築する
ディープリンクのURLは、指定したパラメータとともにURL形式で構成されます。 以下のセクションでは、各形式を構築する方法について説明します。
URLパラメータ
ディープリンクは、以下のURLパラメータをサポートしています。特に記載がない限り、全てはオプションです。
| Parameter | Description |
|---|---|
| placeId | 参加する場所のID。userIdが指定されていない限り、必須です。 |
| userId | 参加するユーザーのID。ユーザーがゲームを離れたか、オフラインの場合、「フォローされたユーザーがゲームを離れました」というエラーが発生します。 |
| accessCode | プライベートサーバーのアクセスコード。 |
| linkCode | プライベートサーバーのリンクコード。 |
| gameInstanceId | 参加するゲームインスタンスの一意の識別子、別名DataModel.JobId。 |
| launchData | プロモーションコードや座標など、ディープリンクに含めたい追加情報。Player:GetJoinData()メソッドを使用して処理します。詳細は起動データを含めるを参照してください。 |
要件とガイドライン
- 特殊文字(スペースなど)はURLエンコードする必要があります。これらの文字は、ユーザーがゲームに参加したときに自動的にデコードされます。
- デコードされた起動データは200バイトを超えることはできません。
- より複雑なデータはJSON文字列として保存し、サーバー上でHttpService:JSONDecode()を使ってデコードできます。
- launchDataパラメータに機密情報を送信しないでください。URLに完全に表示されます。さらに、ユーザーはURLを変更できるため、データが本物でない可能性があります。
Webリストからアプリへ
この形式は、ユーザーをウェブ上のRobloxゲームページに送信し、その後Robloxアプリを起動します。提供された例では、場所のIDとURLエンコードされた起動データ文字列を提供します。
| 形式 | https://www.roblox.com/games/start?placeId=<id>&launchData=<string> |
| 例 | 例のリンク |
アプリに直接
この形式は、ユーザーを直接Robloxアプリに送信します。提供された例では、場所のIDとURLエンコードされた起動データ文字列を提供します。
| 形式 | roblox://placeId=<id>&launchData=<string> |
| 例 | 例のリンク |
遅延
モバイルデバイスにRobloxがインストールされていないユーザーのために、AppsFlyerバージョンのディープリンクを使用して、ユーザーがRobloxアプリをダウンロードし、その後ディープリンクに従うようにします。このタイプのディープリンクを構築するには、https://ro.blox.com/Ebh5?プレフィックスを指定します。「アプリに直接」ディープリンクはaf_dpパラメータで提供し、「ウェブリストからアプリ」ディープリンクはaf_web_dpパラメータで提供します。これらは前のセクションで説明されています。
| 形式 | ro.blox.com/Ebh5?af_dp=<direct_to_app_link>&af_web_dp=<web_listing_to_app_link> |
| 例 | ro.blox.com/Ebh5?af_dp=roblox%3A%2F%2FplaceId%3D6900305353%26launchData%3D%257B%2522roomId%2522%253A%25202%257D&af_web_dp=https%3A%2F%2Fwww.roblox.com%2Fgames%2Fstart%3FplaceId%3D6900305353%26launchData%3D%257B%2522roomId%2522%253A%25202%257D |
ディープリンクを処理する
あなたのゲーム内で、Player:GetJoinData()メソッドを使って起動データを取得します。これは、辞書を返します。その辞書内で、LaunchDataキーには、ディープリンクのlaunchDataパラメータに指定した文字列が含まれています。
起動データを処理する方法についてのコードサンプルは、Player:GetJoinData()のリファレンスドキュメントを参照してください。