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

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

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

準備

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

特にレコメンデーション リクエストの認証に API キーを使用する場合は、キーを登録する必要があります。

また、Recommendations AI による予測をリクエストするには、トレーニングおよび調整されたレコメンデーション(モデル)と、1 つ以上の有効なプレースメントが必要です。

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

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

モデルから返されたレコメンデーションをプレビューするには:

  1. Google Cloud Console の [Recommendations AI モデル] ページに移動します。
    Recommendations AI モデルページに移動

  2. モデル名をクリックして詳細ページを開きます。

  3. プレビューするプレースメントをクリックします。

  4. (省略可)ユーザー ID を入力して、該当ユーザーの結果をプレビューします。

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

返されたサンプル画像を含む予測プレビュー

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

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

curl

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

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

  • placement は、予測を使用するプレースメントに置き換えます。詳細

  • BigQuery を使用して Google アナリティクス 360 のユーザー イベントをインポートした場合は、visitor-id を Google アナリティクス クライアント ID に設定します。クライアント ID を取得する方法については、Google アナリティクスのドキュメントをご覧ください。

  • A/B テストを実行している場合は、experiment-group をこのテストグループの ID に置き換えます。詳細

  • レコメンデーション リクエストを開始したユーザーのアクションに対して、ユーザー イベントのオブジェクトを指定します。

    このユーザー イベントは記録されません。レコメンデーション リクエストに対してコンテキストを提供するためだけに使用されます。他のユーザー イベントを Recommendations AI に記録したのと同じ方法で、ユーザー イベントを記録する必要があります。

  • オプションで、フィルタを指定して返されるカタログ アイテムを絞り込めます。詳細

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",
          "dryRun": false,
          "userEvent": {
               "eventType": "detail-page-view",
               "userInfo": {
                    "visitorId": "visitor-id",
                    "userId": "user-id",
                    "ipAddress": "ip-address",
                    "userAgent": "user-agent"
               },
              "eventDetail": {
                  "experimentIds": "experiment-group"
               },
              "productEventDetail": {
                  "productDetails": [
                       {
                        "id": "product-id"
                       }
                  ]
              }
         }
     }'
https://retail.googleapis.com/v2/projects/[PROJECT_ID]/locations/global/catalogs/default_catalog/placements/placement:predict

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

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

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

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

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"