导入历史用户事件

本页面介绍如何批量导入过往事件的用户事件数据。

如需了解可以导入的用户事件类型,请参阅 userEvents 对象的 eventType 字段。通过导入用户事件,您可以提高结果的质量。例如,用户事件会影响搜索结果的排名。点击率较高的结果会得到提升,而点击率较低的结果会被埋没。仅导入已导入数据存储区中的文档的用户事件。

如果某个活动在 userEvents.Documents 中列出了文档,Gemini Enterprise 会自动将该活动与相应文档关联起来。 联接功能可让 Gemini Enterprise 将点击和浏览等事件归因于搜索结果或推荐中的正确文档。对于自定义搜索和推荐应用,联接是异步进行的,也就是说,用户事件会在批量导入完成后(通常在几分钟内)与文档联接。

如果您使用的搜索应用附加了多个数据存储区,请在位置一级导入用户事件,而不是在数据存储区一级导入。这样一来,系统便可将指定的用户事件发送到与其关联的数据存储区。如需在位置级而非数据存储区级导入包含不同 dataStores 的文档的用户事件,请参阅 userEvents.import

如需实时导入用户事件,请参阅记录实时用户事件

您可以通过以下方式导入历史事件:

如需了解用户事件的 JSON 表示法,请参阅 API 参考文档中的 userEvents

准备工作

在导入用户事件之前,请做好以下准备:

  • 创建数据存储区和应用。
  • 如需了解用户事件要求,请参阅用户事件简介

从 Cloud Storage 导入历史用户事件

REST

如需从 Cloud Storage 批量导入历史用户事件,请按以下步骤操作:

  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。Google 建议将此字段留空,以便 Gemini Enterprise 自动创建临时目录。
  2. 通过向 userEvents.import 方法发出 POST 请求并提供数据文件的名称,导入您的事件。

    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/v1/projects/PROJECT_NUMBER/locations/global/dataStores/DATA_STORE_ID/userEvents:import"
    

    如果您要在位置信息一级导入用户事件,请使用端点 https://discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/userEvents:import

从 BigQuery 导入历史用户事件

在 BigQuery 中为用户事件创建表时,请使用用户事件简介中记录的架构。

设置 BigQuery 访问权限

如果您的 BigQuery 数据集与数据存储区属于不同的项目,请按照以下步骤设置对 BigQuery 的访问权限。

  1. 打开 Google Cloud 控制台中的 IAM 和管理页面。
  2. 选择包含要向其中导入用户事件的数据存储区的项目。
  3. 选中包括 Google 提供的角色授权复选框。
  4. 找到名为 Discovery Engine Service Account 的服务账号。
  5. 如果您之前未曾使用过 Discovery Engine 启动导入操作,则此服务账号可能未列出。如果您没有看到此服务账号,请返回导入任务并启动导入。当由于权限错误而失败时,请返回此处完成此任务。系统会列出 Discovery Engine 服务账号。
  6. 复制服务账号的标识符,类似于电子邮件地址,例如 service-525@gcp-sa-discoveryengine.iam.gserviceaccount.com
  7. 切换到 BigQuery 项目(在同一 IAM 和管理页面上),然后点击授予访问权限
  8. 对于新添加的主账号,请输入服务账号的标识符,然后选择 BigQuery > BigQuery Data Viewer 角色。
  9. 点击保存

如需详细了解 BigQuery 访问权限,请参阅 BigQuery 文档中的控制对数据集的访问权限

从 BigQuery 导入事件

REST

如需从 Cloud Storage 批量导入历史用户事件,请按以下步骤操作:

  1. 通过向 userEvents.import 方法发送 POST 请求来导入用户事件,并提供 BigQuery 项目的名称、数据集 ID 和表 ID。

    导入事件时,请使用 dataSchemauser_event 值。

    curl \
      -v \
      -X POST \
      -H "Content-Type: application/json; charset=utf-8" \
      -H "Authorization: Bearer "$(gcloud auth print-access-token)"" \
      "https://discoveryengine.googleapis.com/v1/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"
          }
        }'
    

    如果您要在位置信息一级导入用户事件,请使用端点 https://discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/userEvents:import

将历史用户事件作为本地 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/v1/projects/PROJECT_NUMBER/locations/global/dataStores/DATA_STORE_ID/userEvents:import"
    

    如果您要在位置信息一级导入用户事件,请使用端点 https://discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/userEvents:import