レコメンデーションシステム

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

ゲーム内にカスタムレコメンデーションシステムを構築し、2Dおよび3Dアセット、ミニゲーム、他のゲームなどのキュレーションされたコンテンツを提示します。Recommendation Service APIを使用すると、ユーザーのアクティビティを記録し、インプレッションをキャプチャし、ほぼすべての種類のエンゲージメントに対してパーソナライズされた結果を提供できます。

レコメンデーションシステムの一般的なユースケースには、ラウンド終了時の提案インターフェースの表示、パーソナライズされたアクションを提示するメニューオーバーレイ、またはユーザーにユニークな選択肢、アセット、ロケーション、またはゲームを提示するその他の実装があります。

次のユニバーサルな手順とベストプラクティスを使用して、レコメンデーションシステムをセットアップします:

コンテンツを登録する

レコメンデーションシステムがユーザーに提供できるコンテンツを充填するには、RegisterItemAsyncを使用します。アイテムを登録する場合は、アイテムを自分のデータベース内で一意に識別する開発者定義の文字列であるreferenceIdを提供します。このreferenceIdは通常、UIに表示するために、データストアから名前、説明、アセットIDなどのアイテムのメタデータを検索する際に使用されます。

ベストプラクティスとして、アイテムは作成されるとすぐに登録して、レコメンデーションプールが常に新鮮であることを確保します。

ユーザーのインプレッションを記録する

一度サービスがアイテムを認識し、推奨を開始したら、ユーザーが実際にレコメンデーションを表示したときにLogImpressionEventを使用してサービスに通知します。

ログを記録するタイミング

カルーセルタイプのUIは、ユーザーに複数のプレイ可能なオプションを表示するための一般的なインターフェースです。以下のベストプラクティスを使用して、ロギングがクリーンで実行可能なデータを提供するようにします:

  • シングルログ:特定のアイテムに対して、セッションごとにインプレッションを1回のみ記録します。
    • アイテムが表示されるたびにログを記録しないでください。これにより、ロギングを妨害するノイジーな情報が生成されます。
  • トリガー:アイテムがメニュー内で完全に表示されたとき、またはユーザーが詳細ページを開くなど、アイテムに対してインタラクションを行ったときにログを記録することを選択できます。

経過時間

経過時間はインプレッションの時間を追跡します。これは、ユーザーが画像またはレコメンデーションを見つめていた時間として考えることができます。

ビデオを使用していない場合は、Durationの値を1に設定できます。これにより、「ユーザーがこのアイテムを見た」というクリーンで一貫したデータを取得できます。これは通常、静的カード用に必要な唯一のロギングです。

質の高いアクションを記録する

ユーザーがレコメンデーションと対話することを決定した場合は、LogActionEventを使用します。この例では、レコメンデーションで「プレイ」をクリックするだけでは、高品質のレコメンデーションシステムに対する十分なシグナルではありません。偶然のクリックと真のセッションを区別することが重要です。

必須のアクションタイプ

LogActionEventを呼び出す際には、発生しているアクションのタイプを指定する必要があります。プレイセッションに至るアクションイベントを追跡するには、Enum.RecommendationActionType.Playを使用します。 特定のアクションの種類がアクティブであることをバックエンドに伝えるために正しい列挙型を使用することが重要です。プレイ時間に関連するレコメンデーションについては、Enum.RecommendationActionType.Playが次のステップでレコメンデーションを取得するために使用されるMaximizePlays構成テンプレートと一致するために厳密に必要です。別の列挙型を使用すると、プレイ関連のアクションに対してイベントが正しく登録されません。

「質の高いプレイ」戦略

ゲームによっては、「質の高いプレイ」を構成するものに異なる定義があるかもしれません。以下のステップを使用して、あなたの状況における質の高いプレイを区別する手助けをします。

  1. 内部追跡:ユーザーがミニゲームに入るとき、スクリプト内でセッション時間をローカルに追跡します。
  2. フィルタリング:満足度の閾値を定義します。例えば、60秒以上遊ぶことです。
  3. ロギング:ユーザーがこの閾値を超えた場合にのみ、LogActionEventを発火させます。

レコメンデーションを取得する

レコメンデーションを取得するには、GenerateItemListAsyncを使用します。GenerateItemListAsyncは、レコメンデーションリストのクエリに対するさまざまなオプションを含む辞書を受け入れます。これらの設定の多くは簡単ですが、成功するレコメンデーションを提供するためにサポートされているConfigNameパラメーターを理解することが重要です。

ConfigName

レコメンデーションを取得するために利用できる構成がいくつかあります。質の高いプレイの数に基づいてレコメンデーションを最大化するように設計された現在の例では、MaximizePlays構成を使用します。ユースケースによっては、MaximizePlays構成がMaximizeTimeSpentよりも優れており、単に費やした時間だけでなく、ユーザーの満足度にもインデックスを作成します。これにより、システムは質の高いプレイを生み出す可能性の高いアイテムを返すようになります。

各サポートされる構成についての詳細は、GenerateItemListAsyncを確認してください。

アナリティクスを監視する

サービスを統合したら、Creator Hubでそのパフォーマンスを直接監視できます。レコメンデーションアナリティクスにアクセスするには:

  1. Creator Hubで、ゲームページに移動します。
  2. サイドバーで、エンゲージメント > レコメンデーションサービスに移動します。
Creator Hub内のレコメンデーションサービスメトリクスへのリンク

注目すべき主要なメトリクス:

  • 経時的なアクションの合計:ユーザーは実際にレコメンデーションに関与していますか?
  • ユニークユーザーの合計:ディスカバリ機能を使用している人は何人いますか?
  • ユーザーごとの平均インプレッションアイテム数:ユーザーはカルーセルをスクロールしていますか?
  • ユーザーごとの平均経過時間:レコメンデーションの質は、彼らをゲーム内でより長く保っているのでしょうか?
    • 提供された例では、Duration1に設定されているため、この特定のメトリクスはそのユースケースでは特に価値がありません。ただし、ビデオなどの他のアプリケーションでは、これはインプレッションの強力な指標となる可能性があります。

質の高いプレイを最大化することを目的としたこのレコメンデーションシステムで使用される設定とプロセスを念頭に置いてください。特に、サムネイルのために1秒の持続時間を使用し、質の高いプレイのみを記録し、IDを厳密に管理します。ロギングとインプレッションデータをクリーンに保つことで、ユーザーのユニークな体験に最も適したコンテンツを推薦し、微調整することができます。

このフローはプレイ時間を最大化するレコメンデーションシステムのプロセスをカバーしていますが、ゲームのニーズに合ったレコメンデーションサービスを構築するために、類似の操作手順と基本的な概念を使用できます。

©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。