過去のユーザー イベントをインポートする

このページでは、過去のイベントからユーザー イベントデータを一括インポートする方法について説明します。 メディア レコメンデーションにはユーザー イベントが必要です。メディア レコメンデーションを使用していない場合は、ユーザー イベントのインポートは必要ありません。ただし、メディア検索アプリの場合は推奨されます。

インポートできるユーザー イベントのタイプについては、userEvents オブジェクトの eventType フィールドをご覧ください。ユーザー イベントをインポートすると、レコメンデーションの品質と検索結果のランキングを改善できます。クリック率が高い検索結果はブーストされ、クリック率が低い検索結果は非表示になります。まだインポートしていないドキュメントのユーザー イベントはインポートしないでください。

userEvents.Documents にあるドキュメントがイベントに含まれている場合、Vertex AI Search はイベントをそのドキュメントに自動的に結合します。結合により、Vertex AI Search はクリックやビューなどのイベントを、検索結果またはレコメンデーション内の正しいドキュメントに関連付けることができます。一般的なユースケースのアプリでは、結合は非同期で行われます。つまり、バッチ インポートの完了後にユーザー イベントがドキュメントに結合されます(通常は数分以内に完了します)。メディアアプリの場合、結合は同期的に行われます。Vertex AI Search はバッチ インポートの進行中にユーザー イベントのドキュメントへの結合を開始します。コンソールで結合されていないイベント指標を表示する方法については、集計されたユーザー イベント情報を表示するをご覧ください。

ユーザー イベントをリアルタイムでインポートするには、リアルタイムのユーザー イベントを記録するをご覧ください。

過去のイベントは、次の方法でインポートできます。

ユーザー イベントの JSON 表現については、API リファレンスの userEvents をご覧ください。

始める前に

ユーザー イベントをインポートする前に:

Cloud Storage から過去のユーザー イベントをインポートする

メディアアプリがある場合は、Google Cloud コンソールまたは API を使用してユーザー イベントをインポートできます。他のアプリタイプの場合は、API を使用してのみインポートできます。

コンソール

コンソールを使用してメディアアプリのユーザー イベントをインポートする手順は次のとおりです。

  1. Google Cloud コンソールで、[Agent Builder] ページに移動します。

    Agent Builder

  2. [アプリ] ページで、メディアアプリをクリックします。

  3. [データ] ページに移動します。

    メディア レコメンデーション アプリの場合、[要件] タブに、インポートする必要があるメディア ドキュメントとユーザー イベントが表示されます。

  4. [イベント] タブをクリックします。イベントをすでにインポートしている場合は、そのイベントに関する情報がこのタブに表示されます。

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

  6. データソースとして [Cloud Storage] を選択します。

  7. ユーザー イベントの Cloud Storage のロケーションを入力または選択します。

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

  9. [アクティビティ] タブにインポートのステータスが表示されます。

  10. インポート エラーが発生した場合は、[アクティビティ] タブで次の操作を行います。

    1. [詳細] 列でエラーを開き、[詳細を表示] をクリックして、[アクティビティ ログの詳細] ペインで詳細を確認します。

    2. [アクティビティ ログの詳細] ペインで [エラーログ全体を表示] をクリックして、ログ エクスプローラでエラーを確認します。

REST

過去のユーザー イベントを Cloud Storage から一括インポートするには、次の操作を行います。

  1. インポートの入力パラメータ用に 1 つ以上のデータファイルを作成します。gcsSource オブジェクトを使用して、Cloud Storage バケットを参照します。

    {
    "gcsSource": {
      "inputUris": ["INPUT_FILE_1", "INPUT_FILE_2"],
      "dataSchema": "user_event"
      },
      "errorConfig":{
          "gcsPrefix":"ERROR_DIRECTORY"
      }
    }
    
    • INPUT_FILE: ユーザー イベント データが格納されている Cloud Storage 内のファイル。各ユーザー イベントは、改行がないそれ自体の単一の行であることを確認してください。ユーザー イベントの JSON 表現については、API リファレンスの userEvents をご覧ください。入力ファイルのフィールドは gs://<bucket>/<path-to-file>/ の形式にする必要があります。
    • ERROR_DIRECTORY: 省略可。インポートに関するエラー情報用の Cloud Storage ディレクトリ(例: gs://<your-gcs-bucket>/directory/import_errors)。Vertex AI Agent Builder に一時ディレクトリを自動的に作成させるには、このフィールドを空のままにすることをおすすめします。
  2. データファイルの名前を指定して userEvents:import メソッドに対して POST リクエストを実行し、イベントをインポートします。

    export GOOGLE_APPLICATION_CREDENTIALS=/tmp/my-key.json
    
    curl -X POST \
        -v \
        -H "Content-Type: application/json; charset=utf-8" \
        -H "Authorization: Bearer "$(gcloud auth print-access-token)"" \
        --data @DATA_FILE.json \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_NUMBER/locations/global/dataStores/DATA_STORE_ID/userEvents:import"
    

BigQuery から過去のユーザー イベントをインポートする

BigQuery でユーザー イベントのテーブルを作成する場合は、ユーザー イベントについてで説明されているスキーマを使用します。

BigQuery アクセスを設定する

BigQuery データセットがデータストアとは異なるプロジェクトにある場合は、次の手順で BigQuery へのアクセスを設定します。

  1. Google Cloud コンソールで [IAM と管理] ページを開きます。
  2. ユーザー イベントをインポートするデータストアを含むプロジェクトを選択します。
  3. [Google 提供のロール付与を含める] チェックボックスをオンにします。
  4. Discovery Engine サービス アカウントという名前のサービス アカウントを探します。
  5. 以前に Discovery Engine でインポート オペレーションを開始していない場合、このサービス アカウントが表示されない可能性があります。このサービス アカウントが表示されない場合は、インポート タスクに戻ってインポートを開始します。権限エラーで失敗した場合は、ここに戻ってこのタスクを完了してください。Discovery Engine サービス アカウントが表示されます。
  6. メールアドレスのようなサービス アカウントの ID(例: service-525@gcp-sa-discoveryengine.iam.gserviceaccount.com)をコピーします。
  7. (同じ [IAM と管理] ページで)BigQuery プロジェクトに切り替え、[アクセスを許可] をクリックします。
  8. [新しいプリンシパル] で、サービス アカウントの ID を入力し、[BigQuery] > [BigQuery データ閲覧者] ロールを選択します。
  9. [保存] をクリックします。

BigQuery へのアクセスの詳細については、BigQuery ドキュメントのデータセットへのアクセスの制御をご覧ください。

BigQuery からイベントをインポートする。

メディアアプリがある場合は、Google Cloud コンソールまたは API を使用してユーザー イベントをインポートできます。他のアプリタイプの場合は、API を使用してのみインポートできます。

コンソール

コンソールを使用してメディアアプリのユーザー イベントをインポートする手順は次のとおりです。

  1. Google Cloud コンソールで、[Agent Builder] ページに移動します。

    Agent Builder

  2. [アプリ] ページで、メディアアプリをクリックします。

  3. [データ] ページに移動します。

    メディア レコメンデーション アプリの場合、[要件] タブに、インポートする必要があるメディア ドキュメントとユーザー イベントが表示されます。

  4. [イベント] タブをクリックします。イベントをすでにインポートしている場合は、そのイベントに関する情報がこのタブに表示されます。

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

  6. データソースとして BigQuery を選択します。

  7. ユーザー イベントの BigQuery パスを入力または選択します。

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

  9. [アクティビティ] タブにインポートのステータスが表示されます。

  10. インポート エラーが発生した場合は、[アクティビティ] タブで次の操作を行います。

    1. [詳細] 列でエラーを開き、[詳細を表示] をクリックして、[アクティビティ ログの詳細] ペインで詳細を確認します。

    2. [アクティビティ ログの詳細] ペインで [エラーログ全体を表示] をクリックして、ログ エクスプローラでエラーを確認します。

REST

過去のユーザー イベントを Cloud Storage から一括インポートするには、次の操作を行います。

  1. BigQuery プロジェクトの名前、データセット ID、テーブル ID を指定して userEvents:import メソッドに対して POST リクエストを実行し、ユーザー イベントをインポートします。

    イベントをインポートする際は、dataSchema に値 user_event を使用します。

    export GOOGLE_APPLICATION_CREDENTIALS=/tmp/my-key.json
    
    curl \
      -v \
      -X POST \
      -H "Content-Type: application/json; charset=utf-8" \
      -H "Authorization: Bearer "$(gcloud auth print-access-token)"" \
      "https://discoveryengine.googleapis.com/v1beta/projects/[PROJECT_NUMBER]/locations/global/dataStores/DATA_STORE_ID/userEvents:import" \
      --data '{
          "bigquerySource": {
              "projectId":"PROJECT_ID",
              "datasetId": "DATASET_ID",
              "tableId": "TABLE_ID",
              "dataSchema": "user_event"
          }
        }'
    

過去のユーザー イベントをローカル JSON データとしてインポートする

ユーザー イベントをインポートするには、userEvents:import メソッドの呼び出しにイベントのローカル JSON データを含めます。

ユーザー イベント データを JSON ファイルに保存し、API リクエストでファイルを指定する手順は次のとおりです。

  1. ユーザー イベントデータを含む JSON ファイルを作成します。ユーザー イベントの JSON 表現については、API リファレンス ドキュメントの userEvents をご覧ください。

    {
      "inlineSource": {
        "userEvents": [
          {
            USER_EVENT_1
          },
          {
            USER_EVENT_2
          }
        ]
      }
    }
    
  2. データファイルの名前を指定して userEvents:import メソッドに対して POST リクエストを実行し、イベントをインポートします。

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data @[JSON_FILE] \
      "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_NUMBER/locations/global/dataStores/DATA_STORE_ID/userEvents:import"