カタログ情報を管理する

このページでは、小売業向け Vertex AI Search にカタログをインポートした後に商品情報を管理する方法について説明します。カタログ内の商品の読み取り、書き込み、削除を行うことができます。

商品情報が変更されたときにカタログを最新に保つには、初回と同じ方法でカタログをインポートします。カタログのインポートについては、カタログの情報のインポートをご覧ください。

商品の作成、取得、更新、削除のチュートリアル

このチュートリアルでは、API メソッドを使用して次の操作を行う方法を示します。

  • 商品を作成する
  • 商品を入手する
  • 商品を更新する
  • 商品を削除

このタスクを Cloud Shell エディタで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


商品作成のチュートリアル

このチュートリアルでは、単一の商品を作成する方法について説明します。


このタスクを Cloud Shell エディタで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


商品取得のチュートリアル

このチュートリアルでは、商品アイテムを取得する方法について説明します。


このタスクを Cloud Shell エディタで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


商品更新のチュートリアル

このチュートリアルでは、カタログ内の商品を更新する方法について説明します。


このタスクを Cloud Shell エディタで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


商品削除のチュートリアル

このチュートリアルでは、カタログから商品を削除する方法について説明します。


このタスクを Cloud Shell エディタで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


商品をアップロードする

curl

products.create REST メソッドを使用して、単一の商品アイテムを作成します。

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     --data '{
      "title": "PRODUCT_TITLE",
      "categories": "CATEGORY"
    }' \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products?productId=PRODUCT_ID"

リクエストが成功すると、以下の例のように商品オブジェクトが返されます。

{
  "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID",
  "id": "PRODUCT_ID",
  "primaryProductId": "PRODUCT_ID",
  "type": "PRIMARY",
  "categories": [
    "CATEGORY"
  ],
  "title": "PRODUCT_TITLE",
  "availability": "IN_STOCK"
}

Java

public static Product createProduct(Product productToCreate, String productId)
    throws IOException {
  return getProductServiceClient().createProduct(
      DEFAULT_BRANCH_NAME, productToCreate, productId
  );
}

商品情報を更新する

商品カタログの変更に合わせて、新しい商品、価格、在庫状況などの商品の変更をリアルタイムでアップロードすることでカタログを更新できます。追加または変更された商品だけをアップロードできます。カタログ全体を再読み込みする必要はありません。

curl

products.patch メソッドを使用して、商品情報を更新します。

次の例では、特定の商品のタイトルを更新します。

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
       "title": "new-title-value"
    }" \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID?updateMask=title"

リクエストが成功すると、以下の例のように商品オブジェクトが返されます。

{
  "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID",
  "id": "PRODUCT_ID",
  "primaryProductId": "PRODUCT_ID",
  "type": "PRIMARY",
  "categories": [
    "Parent category > Child category"
  ],
  "title": "new product title",
  "availability": "IN_STOCK"
}

Java

public static Product updateProduct(Product productToUpdate) throws IOException {
  return getProductServiceClient().updateProduct(productToUpdate, FieldMask.getDefaultInstance());
}

商品情報を削除する

API にはカタログから商品を削除する方法がありますが、削除された商品に関連するユーザー イベントを記録する場合、API ではユーザー イベントを適切に処理できず、削除される可能性があることに注意してください。さらに、履歴カタログ データを含めると、モデルの品質が向上します。これはレコメンデーションや検索結果の向上に不可欠です。

古い商品の availability は、削除するのではなく OUT_OF_STOCK に設定する必要があります。

curl

delete メソッドを使用して商品を削除し、PRODUCT_ID を、削除する商品の ID に置き換えます。

curl -X DELETE \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID"

Java

public static void deleteProduct(String productName) throws IOException {
  getProductServiceClient().deleteProduct(productName);
}

商品アイテムを取得する

curl

GET リクエストを products エンドポイントに送信して商品アイテムを取得し、PRODUCT_ID を、取得する商品の ID に置き換えます。

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"  \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID"

出力は次のようになります。

{
    "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID"
    "id": "PRODUCT_ID",
    "primaryProductId": "PRODUCT_ID",
    "type": "PRIMARY",
    "categories": [
      "Parent category > Child category"
    ],
    "title": "product title",
    "availability": "IN_STOCK"
}

Java

public static Product getProduct(String productName) throws IOException {
  return getProductServiceClient().getProduct(productName);
}

カタログの集計情報を表示する

Search for Retail コンソールの [データ] ページの [カタログ] タブで、カタログの集計情報を表示して、アップロードされた商品をプレビューできます。

カタログデータの品質の評価

カタログデータの品質を評価するには:

  1. Search for Retail コンソールの [データ品質] ページに移動します。

    [Data Quality] ページに移動

    [データ品質] ページでは、検索結果の品質を改善し、検索パフォーマンス階層をロック解除するために、カタログデータの更新が必要かどうかを評価します。

検索データの品質を確認して、検索パフォーマンス階層を表示する方法については、検索パフォーマンス階層をロック解除するをご覧ください。

使用可能なカタログ指標の概要については、カタログ品質指標をご覧ください。

商品カテゴリを変更する

商品をインポートする場合は、商品のタイプ(プライマリ、バリアント、コレクション)を指定できます。アイテムのタイプが変更された場合や、タイプが誤って指定された場合は、アイテムを削除し、作成して、指定したタイプで更新する必要があります。

商品のタイプは、TYPE_UNSPECIFIEDPRIMARYVARIANT、または COLLECTION に設定できます。詳細については、リファレンス ドキュメントの product.Type をご覧ください。

商品レベルの構成を変更する

Merchant Center でカタログをインポートするときは、商品がプライマリかバリアントかを指定する必要があります。商品レベルが変更された場合や、正しく指定されていなかった場合は、次の手順に沿って構成を修正します。この手順を完了するには、Retail 管理者 IAM ロールが必要です。

  1. 商品レベルを再構成している間にインポートが発生していないことを確認してください。これにより、間違ったレベルでデータがアップロードされることがなくなります。

  2. すべての商品アイテムを削除します。詳細については、products.delete をご覧ください。 次のステップに進む前に、カタログを完全に空にする必要があります。

  3. 商品を再インポートして、商品レベルの構成を変更します。

    この手順は、インポート方法によって異なります。カタログ情報のインポートの適切な手順に従って、商品レベルを新しい構成に設定します。

  4. カタログ情報のインポートで選択した手順を使用して、変更したレベル構成の新しいカタログのインポートを終了します。

  5. 既存のモデルをすべて調整します。

    モデルを調整するには、[Models] ページに移動し、モデル名をクリックして詳細ページを表示して、ボタンバーの [Manual Tune] をクリックします。

    [モデル] ページに移動

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