本页面介绍如何批量导入过往事件的用户事件数据。
如需了解可以导入的用户事件类型,请参阅 userEvents
对象的 eventType
字段。通过导入用户事件,您可以提高结果的质量。例如,用户事件会影响搜索结果的排名。点击率较高的结果会得到提升,而点击率较低的结果会被埋没。仅导入已导入数据存储区中的文档的用户事件。
如果某个活动在 userEvents.Documents
中列出了文档,Gemini Enterprise 会自动将该活动与相应文档关联起来。
联接功能可让 Gemini Enterprise 将点击和浏览等事件归因于搜索结果或推荐中的正确文档。对于自定义搜索和推荐应用,联接是异步进行的,也就是说,用户事件会在批量导入完成后(通常在几分钟内)与文档联接。
如果您使用的搜索应用附加了多个数据存储区,请在位置一级导入用户事件,而不是在数据存储区一级导入。这样一来,系统便可将指定的用户事件发送到与其关联的数据存储区。如需在位置级而非数据存储区级导入包含不同 dataStores
的文档的用户事件,请参阅 userEvents.import
。
如需实时导入用户事件,请参阅记录实时用户事件。
您可以通过以下方式导入历史事件:
如需了解用户事件的 JSON 表示法,请参阅 API 参考文档中的 userEvents
。
准备工作
在导入用户事件之前,请做好以下准备:
- 创建数据存储区和应用。
- 如需了解用户事件要求,请参阅用户事件简介。
从 Cloud Storage 导入历史用户事件
REST
如需从 Cloud Storage 批量导入历史用户事件,请按以下步骤操作:
为导入作业的输入参数创建一个或多个数据文件。您可以使用
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 自动创建临时目录。
通过向
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 的访问权限。
- 打开 Google Cloud 控制台中的 IAM 和管理页面。
- 选择包含要向其中导入用户事件的数据存储区的项目。
- 选中包括 Google 提供的角色授权复选框。
- 找到名为 Discovery Engine Service Account 的服务账号。
- 如果您之前未曾使用过 Discovery Engine 启动导入操作,则此服务账号可能未列出。如果您没有看到此服务账号,请返回导入任务并启动导入。当由于权限错误而失败时,请返回此处完成此任务。系统会列出 Discovery Engine 服务账号。
- 复制服务账号的标识符,类似于电子邮件地址,例如
service-525@gcp-sa-discoveryengine.iam.gserviceaccount.com
。 - 切换到 BigQuery 项目(在同一 IAM 和管理页面上),然后点击授予访问权限。
- 对于新添加的主账号,请输入服务账号的标识符,然后选择 BigQuery > BigQuery Data Viewer 角色。
- 点击保存。
如需详细了解 BigQuery 访问权限,请参阅 BigQuery 文档中的控制对数据集的访问权限。
从 BigQuery 导入事件
REST
如需从 Cloud Storage 批量导入历史用户事件,请按以下步骤操作:
通过向
userEvents.import
方法发送 POST 请求来导入用户事件,并提供 BigQuery 项目的名称、数据集 ID 和表 ID。导入事件时,请使用
dataSchema
的user_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 请求中指定该文件,请按以下说明操作:
创建一个包含用户事件数据的 JSON 文件。如需了解用户事件的 JSON 表示法,请参阅 API 参考文档中的
userEvents
。{ "inlineSource": { "userEvents": [ { USER_EVENT_1 }, { USER_EVENT_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
。