これは、Recommendations AI、Retail Search、新しい Retail コンソールに関するドキュメントです。制限付き一般提供フェーズで Retail Search を使用するには、Cloud 営業担当者にお問い合わせください

Recommendations AI のみを使用している場合は、Recommendations コンソールを引き続き使用し、Recommendations AI のドキュメントをご覧ください。

レコメンデーションの取得

このページでは、特定のユーザー イベントとユーザー イベントに関するレコメンデーションをリクエストする方法について説明します。

商品をアップロードし、ユーザー イベントを記録すると、記録されたユーザー イベントとそのユーザーの現在のアクティビティに基づいて、特定のユーザーに対する商品のレコメンデーションをリクエストできます。

始める前に

Retail API にアクセスする前に、始める前にの手順に従って Google Cloud プロジェクトを作成し、認証を設定する必要があります。

また、Recommendations AI による予測をリクエストするには、トレーニングおよび調整されたレコメンデーション(モデル)と 1 つ以上のアクティブなサービス提供構成が必要です。

レコメンデーションのプレビュー

レコメンデーションをリクエストするようにウェブサイト コードを更新する前に、構成が期待どおりに機能していることを確認するには、予測プレビューを使用できます。

最初に Recommendations AI のサービス提供構成を作成済みであることを確認します。

サービス提供構成で返されるレコメンデーションをプレビューするには:

  1. Google Cloud Console の [Retail Models] ページに移動します。

    [Evaluate] ページに移動

  2. プレビューするサービス提供構成を選択します。

  3. 訪問者 ID を入力して、そのユーザーのレコメンデーションをプレビューします。

  4. [予測プレビュー] をクリックして、予測結果を表示します。

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

料金の詳細については、料金をご覧ください。

curl

レコメンデーションを取得するには、予測predict REST メソッドに対して POST リクエストを行い、以下のように、適切なリクエスト本文を指定します。

  • 使用するサービス アカウントには、「Retail 閲覧者」以上のロールが必要です。

  • SERVING_CONFIG_ID を、予測を使用するサービス提供構成に置き換えます。詳細

  • 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/SERVING_CONFIG_ID:predict

次のような結果が表示されます。

{
  "results": [{"id": "sample-id-1"}, {"id": "sample-id-2"}],
  "attribution_token": "sample-atr-token"
}

この予測の結果として提供する URL に attribution_token 値を関連付ける必要があります。また、その URL をユーザー イベントとともに返す必要があります。詳細

Java

public static PredictResponse predictWithNextPageToken(UserEvent userEvent, int pageSize,
    String nextPageToken)
    throws IOException, InterruptedException {
  PredictionServiceClient predictionClient = getPredictionServiceClient();

  PredictRequest request = PredictRequest.newBuilder()
      .setPlacement(HOME_PAGE_PLACEMENT_NAME)
      .setUserEvent(userEvent)
      .setPageSize(pageSize)
      .setPageToken(nextPageToken)
      .setValidateOnly(true)
      .build();

  PredictResponse response = predictionClient.predict(request);

  predictionClient.shutdownNow();
  predictionClient.awaitTermination(2, TimeUnit.SECONDS);

  return response;
}

料金の再ランキング

料金の再ランキングでは、同様のおすすめの確率を持つおすすめの商品が料金の高い順に並べられます。関連性はアイテムの注文にも使用されるため、価格の再ランキングを有効にしても、価格順の並べ替えとは同じになりません。

料金の再ランキングは、サービス提供構成レベルで、または予測リクエストごとに設定できます。

Cloud Console でサービス構成を作成するときに料金の再ランキングの設定を選択すると、その構成によって配信されるすべてのレコメンデーションにその設定が適用されるため、それ以上の操作は必要ありません。

特定のレコメンデーションの価格の再ランキングを管理する必要がある場合は、Retail API の PredictRequest.params フィールドを使用して管理できます。これにより、この推奨事項に適用される構成レベルの再ランキング設定がオーバーライドされます。

レコメンデーションの多様性

多様化は、1 つの予測リクエストで、商品カタログの異なるカテゴリから結果が返されるかどうかに影響します。

多様化は、サービス構成レベルで、または予測リクエストごとに設定できます。

Cloud Console でサービス構成を作成するときに多様化設定を選択すると、その構成によって適用されるすべての推奨にデフォルトでその設定が適用されるため、これ以上のアクションは必要ありません。

特定のレコメンデーションの多様性を管理する必要がある場合は、Retail API の PredictRequest.params フィールドを使用して管理できます。これにより、この推奨事項に適用される構成レベルの多様化設定がすべてオーバーライドされます。使用できる値については、こちらをご覧ください。

レコメンデーション フィルタの使用

predict メソッドで filter フィールドを使用すると、Recommendations AI が返すレコメンデーションをフィルタリングできます。

filter フィールドには、次の 2 つのフィルタ指定形式を指定できます。

  • Tag 式

    商品をアップロードしたときに tag 値をカタログ アイテムに追加した場合は、フィルタを適用したすべてのタグと一致する商品のみがレコメンデーションとして返されるように指定できます。詳細

    Tag 式には、ブール演算子 OR または NOT を含めることができます。これらの演算子は、Tag 値から 1 つ以上のスペースで区切られている必要があります。Tag 値の直前にダッシュ(-)を付けることもできます。これは NOT 演算子と同等です。ブール演算子を使用する Tag 式は、かっこで囲む必要があります。

  • filterOutOfStockItems

    filterOutOfStockItems フラグは、stockStateOUT_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"