このページでは、カタログ情報の作成とカタログ データの入力に関するベスト プラクティスについて説明します。
概要
カタログは、商品オブジェクトのコレクションです。
Vertex AI Search for Commerce にインポートするカタログデータは、結果として得られるモデルの品質に直接影響するため、検索とレコメンデーション結果の品質に影響します。一般に、提供できる正確で特定のカタログ情報が多いほど、モデルの品質が高くなります。
カタログを最新の状態に保つ必要があります。カタログの変更は必要に応じて何度でもアップロードできます。変更頻度が高いカタログの場合は、毎日アップロードするのが理想的です。既存の商品アイテムをアップロード(パッチ適用)できます。この場合、変更されたフィールドのみが更新されます。カタログ情報のアップロードは無料です。詳細については、カタログを最新の状態に保つをご覧ください。
カタログのブランチ
検索可能なカタログのブランチ
検索を使用する場合、カタログ ブランチを使用して、サイトでライブにする前にオフラインでアップロードした新しいデータをテストできます。
0
、1
、2
として識別される最大 3 つのブランチを使用できます。ライブサイトは、カタログデータの default_branch
を参照します。setDefaultBranch
またはコマース向け検索コンソールの [データ] タブを使用して、公開中の default_branch
のブランチを指定します(デフォルトではブランチ 0
に設定されます)。次に、default_branch
が指すブランチによって提供されるカタログデータを使用します。
たとえば、default_branch
にブランチ ID 0
が設定されていると、サイトではそのブランチにアップロードしたカタログデータを使用します。新しいカタログデータをブランチ 1
にアップロードしてプレビューできます。カタログが正しくアップロードされていることを確認したら、ブランチ 1
をライブ default_branch
として切り替えることができます。
カタログ キャッシュは、ブランチの切り替え後、更新されるまでに最大 30 分を要する場合があります。
レコメンデーションを使用する場合は、ブランチ切り替え時の更新の遅延のために、デフォルトのブランチのみを使用することをおすすめします。ブランチ間のデータ差が大きい場合、更新の遅延が予測結果に悪影響を及ぼす可能性があります。
必須の商品情報
次のフィールドは必須です。カタログに商品アイテムを作成するときに、値を指定する必要があります。また、内部商品データベースで使用されている値に対応している必要があります。これらの値はモデルのトレーニングで使用されるため、表される商品を正確に反映する必要があります。
他のフィールドも必要になることがあります。Product
リファレンス ページで、すべての商品フィールドの完全なリストをご覧ください。
提供するすべての商品情報は、最適化案と検索結果の品質向上に使用できます。できるだけ多くの項目を入力してください。
項目 | 注 |
---|---|
name
|
商品の完全で一意のリソース名。import を除くすべての Product メソッドに必須です。インポート時に、名前は自動的に生成されます。手動で指定する必要はありません。
|
id
|
商品データベースで使用される商品 ID。ID フィールドはカタログ全体で一意である必要があります。ユーザー イベントを記録する場合に同じ値が使用されます。また、predict メソッドと search メソッドによって同じ値が返されます。 |
title
|
商品データベースの商品タイトル。UTF-8 でエンコードされた文字列。1250 文字以内で指定します。 |
categories
|
商品カテゴリすべての商品に少なくとも 1 つのカテゴリを割り当てる必要があります。商品が複数のカテゴリに属している場合は、カテゴリごとにフィールドを繰り返します。値は、長さの上限が 5,000 文字の空でない UTF-8 でエンコードされた文字列にする必要があります。完全なカテゴリパスを常に指定します(例: ["Sports & Fitness > Athletic Clothing > Shoes"] )。 |
カタログのカテゴリ
このセクションでは、カタログの構造と、分類とフィルタリングで使用するように指定する方法について説明します。
カタログの構造
カタログの categories
フィールドには、各商品の最も詳細なカテゴリパスを含める必要があります。親カテゴリは必須ではなく、含めるべきではありません。
カタログの構造の例を次に示します。
- 正しい例:
categories: ["Flowers, Cards, Occasion > Seasonal Items > Christmas"]
- 正しくない例:
categories: ["Flowers, Cards, Occasion", "Flowers, Cards, Occasion > Seasonal Items", "Flowers, Cards, Occasion > Seasonal Items > Christmas"]
親カテゴリ
特定の商品の上位カテゴリは、categories
フィールドに含めないでください。ブラウジングのフィルタリングは、他のカスタム属性を使用して処理する必要があります。
カテゴリの命名
カテゴリ名は、誤ったキーワードが導入されるのを防ぎ、パフォーマンスを向上させるために慎重に選択する必要があります。より具体的で正確な用語を使用すると、関連性が高まり、問題が減少します。
- 推奨: 冷凍食品 > 冷凍フルーツ
- 非推奨: [冷凍フルーツ、野菜] > [冷凍フルーツ]
プロジェクト固有のカタログレベルの構造
言語ごとに 1 つのカタログを作成します。複数の国で事業を運営している場合は、同じカタログを使用して、さまざまな国で検索結果を表示できます。
国をまたいで同じ通貨で、ローカル在庫に基づいて決定された価格を指定します。国によって価格が異なる場合は、国ごとにローカル在庫を作成します。そこで価格を指定します。
検索結果を最適化するには、各国の名前を SearchRequest.entity
と UserEvent.entity
として指定します。国エンティティはランキング目的でのみ使用します。
商品階層の概要
Vertex AI Search for Commerce で商品カタログを管理する際は、プライマリ商品とバリエーション商品で属性がどのように処理されるかを理解することが、効果的な検索とレコメンデーションに不可欠です。商品 SKU の指定によってカタログの階層が決まります。
プロダクトの指定タイプ
プロダクトの指定タイプは次の 3 つです。
プライマリ アイテムまたは親アイテムは、レコメンデーションまたは検索結果で返され、類似アイテムの論理コンテナまたはグループとして機能します。プライマリは、個別(SKU レベル)のアイテムと類似アイテムのグループ(SKU グループ)にすることができます。
バリエーション アイテムまたは子アイテムは、SKU グループのプライマリ商品の特定の個別バージョンです。たとえば、プライマリ商品が「V ネックシャツ」の場合、バリエーションは「ブラウンの V ネックシャツ、サイズ XL」と「ホワイトの V ネックシャツ、サイズ S」になることがあります。
コレクション アイテムは、ネックレス、イヤリング、指輪からなるジュエリー セットなど、メイン商品またはバリエーション商品をまとめたものです。商品やバリエーションと同様の階層構造で、コレクションは関連するメイン商品をグループ化します。顧客が直接購入することはできず、広く使用されておらず、検索でのみ使用できます。
商品の例
たとえば、これらの商品の指定タイプでは、食料品はプライマリ商品としてカタログに登録することをおすすめします。各プライマリ商品は、"bananas, fresh"
などの単一 SKU の商品で構成されます。
一方、T シャツは、プライマリと対応するバリエーションのセットとして階層的に構造化したほうがよいでしょう。各バリエーションは個々の SKU(サイズごとに 1 つ)を表し、各プライマリ アイテムは SKU のグループを表します。各 SKU は、1 つの全体的な T シャツ スタイルの異なるサイズです。SKU 構造によるこの編成により、検索結果とレコメンデーションのパネルにさまざまな T シャツのスタイルを表示できます。これにより、購入者は特定のプライマリ(スタイル)をドリルダウンして、購入するバリエーション(サイズ)を選択できます。
コレクションは、顧客が購入する可能性のある関連商品をグループ化します。再ランキング モデルでこれらを正確に表すために、Vertex AI Search for commerce には購入をクレジットするロジックがあります。例: 寝具セットの商品をクリックし、そのコレクションのメイン商品をカートに追加するか購入する。コレクションがその購入に貢献したとみなされ、モデルはコレクションの人気度と価値を正確に表します。
また、バリアントのみのカタログタイプも存在しますが、非推奨化されました。このカタログタイプはレコメンデーションでのみ使用できます。バリアントのみのカタログの場合、インポート時に ingestionProductType
が variant
に設定されます。プライマリは、各バリエーションに指定されたプライマリ プロダクト ID に基づいて、各バリエーションに対して推定されます。
商品カタログの設定
商品カタログを計画する際は、プライマリのみ、プライマリとバリエーション、またはその両方の組み合わせとして指定する商品を決定する必要があります。商品の SKU 構造の観点から考えてみましょう。商品はプライマリ アイテムにすることができます。プライマリ アイテムには、バリエーションがある場合とない場合があります。
商品の SKU の指定方法に応じて、商品カタログの設定オプションを検討してください。
- SKU を個別の検索結果またはレコメンデーションとして表示する: SKU = プライマリ
- SKU は類似 SKU のグループに属している必要がある: SKU = バリエーション、SKU のグループ = プライマリ
- 両方を組み合わせる: SKU = プライマリ、SKU = バリエーション、SKU のグループ = プライマリ
商品詳細ページにオプション、サイズ、色の選択ツールが表示されている場合、通常、これらのオプションはバリエーションとして商品カタログにアップロードされます。サイズや色などの属性が異なる同じ種類の商品を、1 つの検索結果として表示するか、別々の検索結果として表示するかを検討します。たとえば、書籍の場合、同じ書籍のハードカバー SKU とソフトカバー SKU を個別の検索結果として表示するか(SKU = プライマリ)、1 つとして表示するか(SKU = バリエーション、SKU のグループ = プライマリ)を決定します。
商品カタログを設定する際は、レコメンデーションと検索結果ではプライマリ アイテムのみが返されることに注意してください。
最小限のプライマリ商品
カタログにプライマリとバリアント(SKU グループと SKU)の両方が必要であるものの、現時点で SKU しかない場合は、SKU グループ用のプライマリを作成する必要があります。これらのプライマリは仮想プライマリまたは偽プライマリと呼ばれることもあります。
これらのプライマリには、最小限の情報(id
、title
、categories
)のみを含める必要があります。
type
が指定されていない場合、商品タイプはデフォルトでプライマリになります。インポートする場合は、name
を指定する必要はありません。詳細については、前のセクションの必須の商品情報をご覧ください。
カタログのインポート
カタログが Cloud Storage、BigQuery、またはその他のストレージにある場合は、一括データ インポートを行います。
カタログをアップロードする方法について詳しくは、カタログ情報をインポートするをご覧ください。
商品在庫
商品在庫には以下が含まれます。
価格(現在の価格と元の価格の両方)
在庫状況(在庫あり、在庫なし、入荷待ち、予約済みなど)
利用可能な数量
フルフィルメント情報(店舗受け取り、店舗宛て出荷、翌日配送など)
在庫には、商品レベルとローカル レベルの 2 つのレベルがあります。
商品レベルの在庫
オンラインでのみ販売する小売業者の場合、在庫は商品レベルで指定されます。 価格、在庫状況、その他の在庫データは、カタログ内の各商品に設定されます。
在庫データの保守方法など、商品レベルの在庫の詳細については、Vertex AI Search for Commerce の在庫を更新するをご覧ください。
ローカル在庫
実店舗とオンライン ショップの両方を運営する小売業者は、店舗ごとに在庫情報を保持する必要があります。そのために使用するのがローカル在庫です。
ローカル在庫の保存に使用できる商品フィールドは 2 つあります。どちらのフィールドにも、関連する在庫情報を含むロケーション(場所 ID)のリストが含まれます。
Product.fulfillmentInfo。店舗の場所ごとの受け取りと配送方法
Product.localInventories。 店舗の場所ごとの価格情報、商品属性、受け取り方法、配送方法
店舗レベルの情報には、これらのいずれかまたは両方のフィールドを使用します。
ローカル在庫の詳細については、コマース向け Vertex AI Search のローカル在庫を更新するをご覧ください。
プライマリ / バリアント / インベントリ構造
primary-variant-inventory データ構造は、メイン商品、バリエーション商品、ローカル在庫商品で構成されます。
メインの商品: メインの商品データは価格なしで保存されます。
バリエーション商品(全国で最低価格): たとえば、メインのバリエーション(色、サイズ)は全国で最低価格である必要があります。バリエーションの価格データはメインの商品データにロールアップされ、メインの価格はランキングの目的で使用されます。地域固有の価格は無視されます。
ローカル在庫(地域または店舗固有の価格): 配信時の再ランキングでローカル在庫の価格情報を使用する
メイン商品の属性: メイン商品には、関連付けられているすべてのバリエーションに共通の属性のみを含める必要があります。
カタログのデータ品質指標
コマース向け検索コンソールの [データ品質] ページでは、検索結果の品質を向上させ、検索パフォーマンス層のロックを解除するために、カタログデータを更新する必要があるかどうかを評価します。
次の表は、Vertex AI Search for Commerce が商品データの評価に使用するための品質指標を示しています。コマース向け検索コンソールでデータ品質の指標と検索パフォーマンス階層を表示する方法については、検索パフォーマンス階層をロック解除するをご覧ください。
カタログの品質指標 | 品質ルール | 説明 |
---|---|---|
URI が存在し、アクセス可能である | 商品に有効な Product.uri がある。URI はアクセス可能で、ドメインに一致している必要があります。 |
検索では、この URI でクロールされたウェブシグナルを使用して、検索品質を向上させています。 |
時間の適合性を満たしている | Product.availableTime は現在の時刻より前であり、Product.expireTime は現在の時刻より後です。 |
検索できるのは、時間の適合性を満たす商品のみです。 |
検索可能な属性が存在する | 商品で少なくとも 1 つの attribute が検索可能に設定されています。 |
検索可能とマークされたカスタム属性は、テキストクエリで検索できます。 |
説明がある | 商品の Product.description が空ではありません。 |
包括的な説明は検索品質の向上に役立ちます。 |
タイトルは 2 単語以上で構成されている | Product.title が 2 単語以上で構成されています。 |
包括的なタイトルは検索品質の向上に役立ちます。 |
画像のあるバリアントがある | variant 商品には少なくとも 1 つの Product.image があります。すべての商品が primary レベルであれば、この指標は無視してかまいません。 |
この指標は参考情報であり、検索品質には影響しません。 |
価格情報ありのバリアントがある | variant 商品で Product.priceInfo が設定されています。すべての商品が primary レベルであれば、この指標は無視してかまいません。 |
この指標は参考情報であり、検索品質には影響しません。 |
商品スキーマ
BigQuery からカタログをインポートするときは、次のコマース向け Vertex AI Search 商品スキーマを使用して、正しい形式の BigQuery テーブルを作成し、カタログデータとともに読み込みます。それから、カタログをインポートします。