ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

商品検索 - 小売カタログとユーザー イベントデータの取り込み

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

概要

Cloud Retail サービスと Retail API を使用すると、ML、レコメンデーション システム、Google Cloud に関する高度な専門知識がなくても、エンドツーエンドのパーソナライズされたレコメンデーション システムを構築できます。Retail API の商品レコメンデーションと商品検索サービスを使用するには、商品カタログデータと、そのカタログに関連するユーザー イベントデータを作成またはインポートする必要があります。

このラボでは、さまざまな手法を使用して商品カタログとユーザー イベントデータをアップロードし、Retail Recommendations AI サービスと商品検索サービスのための環境を準備します。一般的なデータの取り込みエラーについて説明し、Cloud コンソールと Retail API を使用して、小売りカタログとイベントデータを調べます。

このラボでは、商品カタログに Google Merchant Center データセットのサブセットを使用します。Google Merchant Center から直接エクスポートされたデータは、小売データの取り込み API と互換性のないスキーマを使用するため、ラボで使用するデータセットは小売りスキーマに準拠するように変更されています。

目標

このラボでは、次のタスクの実行方法について学びます。

  • Retail API を有効にする。
  • BigQuery と Cloud Storage から商品カタログとユーザー イベントデータをインポートする。
  • データ インポートのイベントとエラーを調べる。
  • 商品カタログとユーザー イベントデータを調べる。
  • Retail API を使用してユーザー イベントデータをアップロードする。

設定と要件

ラボの設定

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. Qwiklabs にシークレット ウィンドウでログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
    一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。

  5. [Google Console を開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
    他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

Cloud Shell の起動

Google Cloud では、自分のマシンから Google Cloud をリモートで操作できます。このラボでは、Google Cloud コンソールと Cloud Shell(Google Cloud で実行されるコマンドライン環境)の両方を使用します。

  1. Cloud コンソールで、[Cloud Shell をアクティブにする] をクリックします。

    Cloud Shell をアクティブにするアイコンがハイライト表示されている

    注: Cloud Shell を初めて起動した場合は、その内容を説明する画面が表示されます。その場合は、[続行] をクリックしてください(以後表示されなくなります)。

    この中間画面は次のようになります。

    Cloud Shell のダイアログ ボックス

    すぐにプロビジョニングが実行され、Cloud Shell に接続にします。

    Cloud Shell では、ターミナルからクラウド上の仮想マシンにアクセスできます。仮想マシンには、開発に必要なツールがすべて含まれています。仮想マシンは Google Cloud で稼働し、永続的なホーム ディレクトリが 5 GB 用意されているため、ネットワークのパフォーマンスと認証が大幅に向上しています。このラボで行う作業のほとんどは、ブラウザのみを使用して Cloud コンソールと Cloud Shell から実行できます。

    Cloud Shell に接続すると、すでに認証は完了しており、プロジェクトに各自のプロジェクト ID が設定されていることがわかります。

  2. Cloud Shell で次のコマンドを実行して、認証されたことを確認します。

    gcloud auth list

    出力:

    Credentialed Accounts ACTIVE: * ACCOUNT: {{{user_0.username| Lab User Name}}}
  3. アクティブなアカウントを設定するには、以下を実行します

    gcloud config set account {{{user_0.username| Lab User Name}}} 注: gcloud コマンドライン ツールは、Google Cloud の強力な統合型コマンドライン ツールです。このツールは Cloud Shell にあらかじめインストールされています。その機能の一つとして、gcloud はシェルでのタブ補完を提供します。詳細については、gcloud CLI の概要ガイドをご覧ください。
  4. 次のコマンドを実行し、このラボで使用するべきプロジェクトが使用されていることを確認します。

    gcloud config list project

    出力:

    [core] project = {{{project_0.project_id | Project ID}}}
  5. 正しいプロジェクトが表示されない場合は、次のコマンドを使用してプロジェクトを設定することができます。

    gcloud config set project {{{project_0.project_id| Project ID}}}

    出力:

    Updated property [core/project].

タスク 1. Retail API を有効にする

Retail Recommendations AI または Retail Search API を使用する前に、Retail API を有効にする必要があります。

  1. ナビゲーション メニューナビゲーション メニュー)で、[すべてのプロダクトを表示] をクリックし、[AI] セクションで [商取引向け検索] を選択します。

  2. [API を有効化] をクリックします。

  3. [続行] をクリックし、[同意する] をクリックしてデータに関する規約に同意します。

  4. [利用開始] をクリックします。

タスク 2. 商品カタログとユーザー イベントデータをインポートする

このタスクでは、商品カタログデータを BigQuery から、ユーザー イベントデータを Cloud Storage からインポートします。

BigQuery から Merchant Center の商品テーブル スキーマ データをインポートする

merchant_center.products テーブルには、Google Merchant Center の商品テーブル スキーマを使用して Google Merchant Center のテスト アカウントからエクスポートされたカタログデータが含まれています。このデータセットは、以前の Recommendations AI コンソールまたは API を使用してカタログデータとしてインポートできます。Recommendations AI API に代わる Retail API は、Merchant Center の商品テーブル スキーマを使用するデータのインポートを現在サポートしていません。すべてのデータ インポートで Retail スキーマを使用する必要があります。ただし、データ インポート エラーを検査する方法を確認するために、Retail API を使用してこのデータをインポートしてみます。

  1. GCP コンソールで、[商取引向け検索] > [データ] をクリックして、小売データ マネジメント ページを開きます。

  2. [カタログ] タブが選択されていることを確認し、[インポート] をクリックします。

  3. 商品カタログをインポートするには、インポート パラメータを次のように構成します。

    • [インポート タイプ] で [商品カタログ] を選択します。
    • [データのソース] で [BigQuery] を選択します。
    • [インポート ブランチ] で [Branch 0] を選択します。
  4. [BigQuery テーブル] で、[参照] をクリックします。

  5. 検索ボックスに「products」と入力し、[検索] をクリックします。

  6. [products - Dataset: merchant_center] テーブルのラジオボタンを選択します。

  7. [選択] をクリックします。

  8. [インポート] をクリックします。

ソーステーブルに id フィールドがないため、続行できません。

スキーマが原因で、データにはほかにも多くの問題があります。

  1. 上にスクロールして [データのスキーマ] で [Merchant Center] を選択します。

  2. [インポート] をクリックします。

  3. インポート操作が正常にスケジュールされたことを知らせるポップアップが表示されたら、[X] をクリックしてポップアップを閉じます。

  4. [キャンセル] をクリックしてインポート ページを閉じ、[小売データ] ページに戻ってデータ インポートのステータスを確認します。

BigQuery から小売商品スキーマのデータをインポートする

このタスクでは、小売商品スキーマを使用する BigQuery テーブルからカタログに商品データをインポートします。

  1. GCP コンソールのナビゲーション メニューナビゲーション メニュー)で、[AI] セクションの [すべてのプロダクトを表示] をクリックし、[商取引向け検索] > [データ] を選択して、小売データ マネジメント ページを開きます。

  2. [カタログ] タブが選択されていることを確認し、[インポート] をクリックします。

  3. 商品カタログをインポートするには、インポート パラメータを次のように構成します。

    • [インポート タイプ] で [商品カタログ] を選択します。
    • [インポート ブランチ] で [Branch 0] を選択します。
    • [データのソース] で [BigQuery] を選択します。
  4. [データのスキーマ] で、[小売商品カタログのスキーマ] を選択します。

  5. [BigQuery テーブル] で、[参照] をクリックします。

  6. 検索ボックスに「products」と入力し、[検索] をクリックします。

  7. [products - Dataset: retail] テーブルのラジオボタンを選択します。

  8. [選択] をクリックします。

注: テーブル名をクリックすると、Data Catalog ページが開きます。その場合は、小売商品のインポート ページに戻る必要があります。
  1. [インポート] をクリックします。

次のようなメッセージがポップアップ メッセージに表示されるまで待ちます。

インポート オペレーション import-products-6583047802807380211 をスケジュール設定しました。[統合アクティビティ] パネルに新しい長時間実行オペレーションが表示されるまで、最長で 5 分ほどかかる場合があります。

インポート タスクがスケジュールされると、定期的なデータ インポート タスクをスケジュールするために使用できる gcloud scheduler コマンドの詳細も表示されます。

  1. インポート操作が正常にスケジュールされたことを知らせるポップアップが表示されたら、[X] をクリックしてポップアップを閉じます。

  2. [キャンセル] をクリックしてインポート ページを閉じ、[小売データ] ページに戻ってカタログデータのインポート タスクのステータスを確認します。

  3. [商取引向け検索] ナビゲーション メニューで、[データ] をクリックし、[アクティビティのステータス] をクリックして、インポート タスクの進行状況をモニタリングします。

インポート タスクのステータスが [商品カタログのインポート アクティビティ] セクションで [成功] に変わるまで、1~2 分かかります。合計 1,268 個のアイテムがインポートされます。

Cloud Storage からユーザー イベントデータをインポートする

このタスクでは、BigQuery テーブルからユーザー イベントデータをインポートします。

  1. GCP コンソールのナビゲーション メニューナビゲーション メニュー)で、[AI] セクションの [すべてのプロダクトを表示] をクリックし、[商取引向け検索] > [データ] を選択して、小売データ マネジメント ページを開きます。

  2. [イベント] タブが選択されていることを確認し、[インポート] をクリックします。

  3. 商品カタログをインポートするには、インポート パラメータを次のように構成します。

    • [インポートのタイプ] で [ユーザー イベント] を選択します。
    • [データのソース] で [Google Cloud Storage] を選択します。
  4. [Google Cloud Storage のロケーション] で [参照] ボタンをクリックします。

  5. という名前のストレージ バケットに移動し、recent_retail_events.json ファイルを選択します。

  6. ファイル名をクリックして、選択されていることを確認します。

  7. [選択] をクリックします。

  8. [インポート] をクリックします。

  9. インポート操作が正常にスケジュールされたことを知らせるポップアップが表示されたら、[X] をクリックしてポップアップを閉じます。

  10. [キャンセル] をクリックしてインポート ページを閉じ、[小売データ] ページに戻ってイベントデータのインポート タスクのステータスを確認します。

次のようなメッセージがポップアップ メッセージに表示されるまで待ちます。

インポート オペレーション import-products-6583047802807380211 をスケジュール設定しました。[統合アクティビティ] パネルに新しい長時間実行オペレーションが表示されるまで、最長で 5 分ほどかかる場合があります。

インポート タスクがスケジュールされると、定期的なイベント インポート タスクをスケジュールするために使用できる gcloud scheduler コマンドの詳細も表示されます。

  1. gcloud scheduler コマンドが表示されたら、インポート タスクがスケジュールされるまで待ちます。

  2. インポート操作が正常にスケジュールされたことを知らせるポップアップが表示されたら、[X] をクリックしてポップアップを閉じます。

  3. [キャンセル] をクリックしてインポート ページを閉じ、[小売データ] ページに戻ってイベントデータのインポート タスクのステータスを確認します。

  4. [商取引向け検索] ナビゲーション メニューで、[データ] をクリックし、[アクティビティのステータス] をクリックして、インポート タスクの進行状況をモニタリングします。

インポート タスクのステータスが [ユーザー イベントのインポート アクティビティ] セクションで [成功] に変わるまで、1~2 分かかります。約 32,000 個のアイテムがインポートされ、5 個のアイテムが失敗します。

タスク 3. データ インポートのイベントとエラーを調べる

このタスクでは、データ インポート ジョブを調べ、無効なデータが検出されたときにインポート タスクによって記録されるエラーの一部を確認します。

  1. [商取引向け検索] ナビゲーション メニューで、[データ] をクリックし、[アクティビティのステータス] をクリックして、インポート タスクの進行状況をモニタリングします。

  2. [ユーザー イベント] タブをクリックし、[詳細] 列の [完全なエラーログを表示] をクリックしてエラーを確認します。

これにより、ソースデータが配置されていた Cloud Storage バケットの /error フォルダが開きます。

  1. インポートしたイベントデータ ファイルに対応するファイルの名前をクリックします。サイズは約 1 KB です。

  2. [ダウンロード] をクリックしてファイルをダウンロードし、パソコンで開いてエラーの詳細を確認します。5 つのイベントがインポートに失敗したことがわかります。これは、これらのイベントのデータスキーマにさまざまな問題があるためです。

{ "code": 3, "message": "add-to-cart イベントタイプには 'userEvent.productDetails' が必要です。", "details": [{ "@type": "type.googleapis.com/google.protobuf.Struct", "value": { "line_number": 475 } }] } { "code": 3, "message": "link: フィールドが見つかりません。", "details": [{ "@type": "type.googleapis.com/google.protobuf.Struct", "value": { "line_number": 478 } }] }
  1. Cloud コンソールに戻り、[Cloud Storage] タブを閉じます。

  2. [小売] の [アクティビティのステータス] タブを開き、[閉じる] をクリックして [アクティビティのステータス] ポップアウトを閉じます。

タスク 4. 商品カタログとユーザー イベントデータを確認する

このタスクでは、インポートした商品データとイベントデータを確認します。

  1. [商取引向け検索] ナビゲーション メニューで [データ] をクリックし、[カタログ] タブが選択されていることを確認します。

  2. [ブランチ名] では、ブランチを [Branch 0(デフォルト)] に設定したままにします。

  3. カタログの商品リストには、カタログにアップロードされた 1,268 件の商品レコードが表示され、そのうち 746 件が在庫ありとなっています。

  4. [フィルタ] に「GGOEGCBT136699」と入力します。

Google Yellow YoYo の商品レコードが表示されます。この商品の在庫がないことに注意してください。

  1. リンクアイコンをクリックして、リンクを開いてみます。開いたページに「申し訳ありません。このページは利用できません」と表示されます。

  2. 開いた商品タブを閉じて、小売向け検索のデータページに戻ります。

  3. [フィルタ] に「GGOECAEB163612」と入力します。

Google Black Cloud Tee の商品レコードが表示されます。この商品の在庫があることに注意してください。

  1. リンクアイコンをクリックしてリンクを開きます。Google Merchandise Store の商品ページが開きます。

  2. 開いた商品タブを閉じて、小売向け検索のデータページに戻ります。

タスク 5. Retail API を使用してユーザー イベントデータをアップロードする

ここでは、curl やその他のコマンドライン ユーティリティを使用して、Retail Recommendations AI API を呼び出し、リクエストの作成方法、おすすめ情報の取得方法、結果のフィルタリングと絞り込みの方法を確認します。

リクエストを認証するための IAM サービス アカウントを作成する

  1. プロジェクト ID を格納する環境変数を作成します。

    export PROJECT_ID=$(gcloud config get-value core/project)
  2. Retail API へのアクセスを制御するための IAM サービス アカウントを作成します。

    export SA_NAME="retail-service-account" gcloud iam service-accounts create $SA_NAME --display-name $SA_NAME
  3. サービス アカウントを Retail 編集者の IAM ロールにバインドします。

    gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:$SA_NAME@${PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/retail.editor"

ラボ ユーザー アカウントが新しいサービス アカウントで権限借用を使用できるようにする

サービス アカウントに対するロール バインディングを、サービス アカウント トークン作成者ロールを持つラボユーザーに対して作成すると、ラボユーザーはサービス アカウントの権限借用を使用して、サービス アカウントの有効期間が限られた認証トークンを安全に生成できます。これらのトークンを使用して、API やサービスへのアクセスをインタラクティブにテストできます。

  1. ユーザー アカウントが権限を借用できるように、Retail API サービス アカウントのロール バインディングを作成します。

    export USER_ACCOUNT=$(gcloud config list --format 'value(core.account)') gcloud iam service-accounts add-iam-policy-binding $SA_NAME@$PROJECT_ID.iam.gserviceaccount.com --member "user:$USER_ACCOUNT" --role roles/iam.serviceAccountTokenCreator
  2. Retail API の一時的なアクセス トークンを生成します。

    export ACCESS_TOKEN=$(gcloud auth print-access-token --impersonate-service-account $SA_NAME@$PROJECT_ID.iam.gserviceaccount.com )
サービス アカウント トークン作成者のロールが反映されるまで最大 10 分かかるため、このコマンドは失敗する可能性があります。失敗した場合は 1 分後に再試行し、成功するまで繰り返します。また、コマンドが権限借用を使用していることを知らせる警告も表示されます。これは想定された動作です。

ユーザー イベントを Retail API に送信する

JSON 形式のユーザー イベントデータを Retail API userEvents:write メソッドに渡すことで、サンプル ユーザー イベントを Retail API にアップロードします。

  1. サンプル ユーザー イベント JSON データを環境変数に保存します。

    DATA='{ "eventType": "detail-page-view", "visitorId": "GA1.3.1260529204.1622654859", "productDetails": [{ "product": { "id": "GGOEGDHB163199" } }, { "product": { "id": "GGOEAAKQ137410" } } ] }'
  2. Retail API userEvents.write メソッドを使用して、ユーザー イベントデータをカタログに書き込むための REST API URL を環境変数に保存します。

    URL="https://retail.googleapis.com/v2/projects/${PROJECT_ID}/locations/global/catalogs/default_catalog/userEvents:write?access_token=${ACCESS_TOKEN}"

    これは、ユーザー イベントデータを Retail API に書き込むための REST API URL です。URL には、プロジェクト IDaccess_token というインライン パラメータのアクセス トークンに対する bash 環境変数の置換が含まれています。このトークンは、権限借用を使用して事前に生成したサービス アカウントを使用してリクエストを認証します。

  3. curl を使用して REST API でユーザー イベントをアップロードします。

    curl -H 'Content-Type: application/json' -X POST -d "${DATA}" $URL

    curl を使用して userEvents:write メソッドを呼び出し、POST リクエストでイベントデータを JSON データ ペイロードとして渡しました。

    { "eventType": "detail-page-view", "visitorId": "GA1.3.1260529204.1622654859", "eventTime": "2021-06-28T18:39:26.691324Z", "productDetails": [ { "product": { "name": "projects/610724409905/locations/global/catalogs/default_catalog/branches/0/products/GGOEGDHB163199", "id": "GGOEGDHB163199", "type": "PRIMARY", "primaryProductId": "GGOEGDHB163199", "categories": [ "Drinkware" ], "title": "Google Chrome Dino Light Up Water Bottle", "priceInfo": { "currencyCode": "USD", "price": 24 }, "availability": "IN_STOCK", "uri": "https://shop.googlemerchandisestore.com/Google+Redesign/Google+Chrome+Dino+Light+Up+Water+Bottle", "images": [ { "uri": "https://shop.googlemerchandisestore.com/store/20160512512/assets/items/images/GGOEGDHB163199.jpg" } ] } }, { "product": { "name": "projects/610724409905/locations/global/catalogs/default_catalog/branches/0/products/GGOEAAKQ137410", "id": "GGOEAAKQ137410", "type": "PRIMARY", "primaryProductId": "GGOEAAKQ137410", "categories": [ "Apparel" ], "title": "Android Iconic Sock", "priceInfo": { "currencyCode": "USD", "price": 17 }, "availability": "IN_STOCK", "uri": "https://shop.googlemerchandisestore.com/Google+Redesign/Apparel/Android+Iconic+Sock", "images": [ { "uri": "https://shop.googlemerchandisestore.com/store/20160512512/assets/items/images/GGOEAAKQ137410.jpg" } ] } } ] }

アップロードが成功すると、フォーマットされたデータが応答に表示されます。これには、商品 URL や画像などの関連する商品データと、イベントのタイムスタンプが含まれます。失敗した場合は、エラーが表示されます。最も一般的なエラーは、ペイロードや URL の形式が不適切、または無効なトークンに関連することです。

お疲れさまでした

お疲れ様でした。さまざまな手法を使用して小売商品カタログとユーザー イベントデータを正常にインポートし、一般的なデータの取り込みエラーをいくつか確認しました。また、Cloud コンソールと Retail API を使用して、小売カタログとイベントデータを調べました。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

Copyright 2026 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。