このページでは、特定のユーザー イベントとユーザー イベントに関するレコメンデーションをリクエストする方法について説明します。
商品をアップロードし、ユーザー イベントを記録すると、記録されたユーザー イベントとそのユーザーの現在のアクティビティに基づいて、特定のユーザーに対する商品のレコメンデーションをリクエストできます。
Recommendations AI はランク付けされた商品 ID のリストを返します。画像やテキストを使用して、ウェブサイトに結果をレンダリングするのはお客様の責任です。
パーソナライズされた結果をエンドユーザーからキャッシュに保存したり、パーソナライズされた結果を別のエンドユーザーに戻したりすることはありません。
始める前に
Retail API にアクセスする前に、始める前にの手順に従って Google Cloud プロジェクトを作成し、認証を設定する必要があります。
また、Recommendations AI による予測をリクエストするには、トレーニングおよび調整されたレコメンデーション(モデル)と、1 つ以上の有効なプレースメントが必要です。
レコメンデーションのプレビュー
レコメンデーションをリクエストするようにウェブサイト コードを更新する前に、モデルが期待どおりに機能していることを確認するには、予測プレビューを使用できます。
モデルから返されたレコメンデーションをプレビューするには:
Google Cloud Console の [Recommendations AI モデル] ページに移動します。
Recommendations AI モデルページに移動モデル名をクリックして詳細ページを開きます。
プレビューするプレースメントをクリックします。
(省略可)ユーザー ID を入力して、該当ユーザーの結果をプレビューします。
[予測プレビュー] をクリックして、予測結果を表示します。
レコメンデーションを取得する
料金の詳細については、料金をご覧ください。
curl
レコメンデーションを取得するには、予測predict
REST メソッドに対して POST
リクエストを行い、以下のように、適切なリクエスト本文を指定します。
使用するサービス アカウントには、「Retail 閲覧者」以上のロールが必要です。
PLACEMENT_ID は、予測を使用するプレースメントに置き換えます。 プレースメント ID の詳細については、リファレンス ドキュメントの placement.predict をご覧ください。
BigQuery を使用して Google アナリティクス 360 のユーザー イベントをインポートした場合は、
visitorId
を Google アナリティクス クライアント ID に設定します。クライアント ID を取得する方法については、Google アナリティクスのドキュメントをご覧ください。A/B テストを実行している場合は、
experimentIds
をこのテストグループの ID に設定します。詳細レコメンデーション リクエストを開始したユーザーのアクションに対して、ユーザー イベントのオブジェクトを指定します。
このユーザー イベントは記録されません。レコメンデーション リクエストに対してコンテキストを提供するためのみに使用されます。また、他のユーザー イベントを Retail API に記録したのと同じ方法で、ユーザー イベントを記録する必要があります。
必要に応じて、返される可能性がある商品を絞り込むためのフィルタを指定します。 詳細
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "filter": "FILTER_STRING", "validateOnly": false, "userEvent": { "eventType": "detail-page-view", "visitorId": "VISITOR_ID", "userInfo": { "userId": "USER_ID", "ipAddress": "IP_ADDRESS", "userAgent": "USER_AGENT" }, "experimentIds": "EXPERIMENT_GROUP", "productDetails": [{ "product": { "id": "PRODUCT_ID" } }] } }' \ https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/placements/PLACEMENT_ID:predict
次のような結果が表示されます。
{ "results": [{"id": "sample-id-1"}, {"id": "sample-id-2"}], "attribution_token": "sample-atr-token" }
この予測の結果として提供する URL に attribution_token
値を関連付ける必要があります。また、その URL をユーザー イベントとともに返す必要があります。詳細
料金の再ランキング
料金の再ランキングでは、同様のおすすめの確率を持つおすすめの商品が料金の高い順に並べられます。関連性はアイテムの注文にも使用されるため、価格の再ランキングを有効にしても、価格順の並べ替えとは同じになりません。
料金の再ランキングは、サービス提供構成レベルで、または予測リクエストごとに設定できます。
Google Cloud コンソールでモデルを作成するときに料金の再ランキングの設定を選択すると、その構成によって配信されるすべてのレコメンデーションにその設定が適用されるため、それ以上の操作は必要ありません。
特定のレコメンデーションの価格の再ランキングを管理する必要がある場合は、Retail API の PredictRequest.params
フィールドを使用して管理できます。これにより、この推奨事項に適用されるモデルレベルの再ランキング設定がオーバーライドされます。
レコメンデーションの多様性
多様化は、1 つの予測リクエストで、商品カタログの異なるカテゴリから結果が返されるかどうかに影響します。
多様化は、サービス構成レベルで、または予測リクエストごとに設定できます。
Google Cloud コンソールでモデルを作成するときに多様化設定を選択すると、そのモデルによって適用されるすべての推奨にデフォルトでその設定が適用されるため、これ以上のアクションは必要ありません。
特定のレコメンデーションの多様性を管理する必要がある場合は、Retail API の PredictRequest.params
フィールドを使用して管理できます。これにより、この推奨事項に適用されるモデルレベルの多様化設定がオーバーライドされます。許容値については、PredictRequest.params
の API ドキュメントをご覧ください。
レコメンデーション フィルタの使用
predict
メソッドで filter
フィールドを使用すると、Recommendations AI が返すレコメンデーションをフィルタリングできます。
filter
フィールドには、次の 2 つのフィルタ指定形式を指定できます。
Tag 式
商品をアップロードしたときに
tag
値をカタログ アイテムに追加した場合は、フィルタを適用したすべてのタグと一致する商品のみがレコメンデーションとして返されるように指定できます。Product.tags[]
フィールドの API リファレンス ドキュメントをご覧ください。Tag 式には、ブール演算子
OR
またはNOT
を含めることができます。これらの演算子は、Tag 値から 1 つ以上のスペースで区切られている必要があります。Tag 値の直前にダッシュ(-
)を付けることもできます。これはNOT
演算子と同等です。ブール演算子を使用する Tag 式は、かっこで囲む必要があります。filterOutOfStockItems
filterOutOfStockItems
フラグは、stockState
がOUT_OF_STOCK
の商品をすべて除外します。
これら 2 種類のフィルタを組み合わせることができ、指定したすべてのフィルタ条件を満たすアイテムのみが返されます。
フィルタ文字列の例:
"filter": "tag=\"spring-sale\""
"filter": "filterOutOfStockItems"
"filter": "tag=\"spring-sale\" tag=\"exclusive\" filterOutOfStockItems"
次の例では、「spring-sale」タグと「exclusive」タグのいずれか(または両方)が指定されており「items-to-exclude」タグが指定されていない在庫のあるアイテムのみが返されます。
"filter": "tag=(\"spring-sale" OR \"exclusive\") tag=(-\"items-to-exclude\") filterOutOfStockItems"
レコメンデーションのアラートの設定
レコメンデーションの最終タスクは、予測エラーのアラートを設定することです。予測メソッドがエラーを返したときにアラートを受け取れるようにし、必要に応じて対処できるようにします。詳細については、アラートの設定をご覧ください。