本页面介绍了 Gemini Enterprise 应用的用户事件,包括用户事件类型、要求和用户事件类型示例。
如果您在自己的应用中使用 Gemini Enterprise API,则需要在应用中配置搜索,以获取用户事件,然后将用户事件数据添加到 Gemini Enterprise 应用。
如果您通过控制台创建应用,则无需手动导入用户事件(也无需阅读本页面)。Google Cloud
如需有关记录用户事件方面的帮助,请参阅记录实时用户事件。如需批量导入过去的用户 101 事件,请参阅导入历史用户事件。
用户事件类型
当最终用户浏览或搜索您的网站时,您可以记录以下类型的用户事件:
| 用户事件名称 | 用户操作 |
|---|---|
view-item |
查看文档的详细信息。 |
search |
在 Gemini Enterprise 应用中搜索数据。 |
如需详细了解用户事件对象,请参阅 [UserEvent API 参考文档][user-event]。
用户事件类型示例和架构
本部分提供了 Gemini Enterprise 应用支持的每种事件类型的数据格式。 同时还提供了 JavaScript Pixel 的示例。对于 BigQuery,提供了每种类型的完整表架构。
对于所有用户事件类型,userId 是可选的。
如需详细了解用户事件对象,请参阅 [UserEvent API 参考文档][user-event]。
view-item
下面显示了 view-item 用户事件数据格式。
view-item 事件的搜索优化要求
如需让搜索根据整体用户趋势自动优化搜索体验,请上传以下数据。
事件应至少每天上传一次,最长延迟时间为 24 小时。
| 事件指标 | 事件数量/频率 | 说明 |
|---|---|---|
view-item 事件的数量 |
25 万个查看项 |
为了根据注入的事件优化搜索体验,必须至少有 25 万个查看项。 |
至少需要 view-item 对象
以下示例仅显示 view-item 用户事件格式的必填字段。
documents
对象包含文档的 ID
(id) 及其资源
名称 (name)。
- 当您在数据存储区级注入或记录用户事件时,可以提供
文档的 ID (
id) 或资源名称 (name)。 - 当您在位置级注入或记录事件时,必须提供
文档的资源名称 (
name),因为它表示文档的完整路径 并引用文档所在的数据存储区。您可以提供 文档的 ID 作为可选的附加信息。
JavaScript Pixel
var user_event = {
"eventType": "view-item",
"userPseudoId": "USER_PSEUDO_ID",
"engine": "APP_ID",
"eventTime": "2020-01-01T03:33:33.000001Z",
"documents": [{
"name": "DOCUMENT_NAME"
}]
};
BigQuery
这是此用户事件类型的完整 JSON 架构。在 BigQuery 中为此用户事件类型创建表时指定此架构。
必填字段的模式设置为 REQUIRED 或 REPEATED。可选字段的模式设置为 NULLABLE。
请注意,要使用 BigQuery 导入事件,必须使用 eventTime。eventTime 是时间戳格式的字符串。
[ { "name": "eventType", "type": "STRING", "mode": "REQUIRED" }, { "name": "userPseudoId", "type": "STRING", "mode": "REQUIRED" }, { "name": "engine", "type": "STRING", "mode": "NULLABLE" }, { "name": "eventTime", "type": "STRING", "mode": "REQUIRED" }, { "name": "userInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "userId", "type": "STRING", "mode": "NULLABLE" }, { "name": "userAgent", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "pageInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "pageviewId", "type": "STRING", "mode": "NULLABLE" }, { "name": "uri", "type": "STRING", "mode": "NULLABLE" }, { "name": "referrerUri", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "attributionToken", "type": "STRING", "mode": "NULLABLE" }, { "name": "documents", "type": "RECORD", "mode": "REPEATED", "fields": [ { "name": "id", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "tagIds", "type": "STRING", "mode": "REPEATED" }, { "name": "attributes", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "example_text_attribute", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "text", "type": "STRING", "mode": "REPEATED" } ] }, { "name": "example_number_attribute", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "numbers", "type": "NUMERIC", "mode": "REPEATED" } ] } ] } ]
search
下面显示了 search 用户事件格式。
search 事件的搜索优化要求
如需让搜索根据整体用户趋势自动优化搜索体验,请上传以下数据。
事件应至少每天上传一次,最长延迟时间为 24 小时。
| 事件指标 | 事件数量/频率 | 说明 |
|---|---|---|
search 事件的数量 |
10 万次搜索 |
至少需要 10 万次搜索,才能根据注入的事件优化搜索体验。 |
至少需要 search 对象
以下示例仅显示 search 用户事件格式的必填字段。
searchQuery。
attributionToken 会随搜索查询结果一起返回。
documents
对象包含文档的 ID
(id) 及其资源
名称 (name)。
- 当您在数据存储区级注入或记录用户事件时,可以提供
文档的 ID (
id) 或资源名称 (name)。 - 当您在位置级注入或记录事件时,必须提供
文档的资源名称 (
name),因为它表示文档的完整路径 并引用文档所在的数据存储区。您可以提供 文档的 ID 作为可选的附加信息。
JavaScript Pixel
var user_event = {
"eventType": "search",
"userPseudoId": "USER_PSEUDO_ID",
"engine": "APP_ID",
"eventTime": "2020-01-01T03:33:33.000001Z",
"searchInfo": {
"searchQuery": "SEARCH_QUERY",
},
"attributionToken": "ATTRIBUTION_TOKEN",
"documents": [
{
"name": "DOCUMENT_NAME_1",
},
{
"name": "DOCUMENT_NAME_2",
},
]
};
BigQuery
这是此用户事件类型的完整 JSON 架构。在 BigQuery 中为此用户事件类型创建表时指定此架构。
必填字段的模式设置为 REQUIRED 或 REPEATED。可选字段的模式设置为 NULLABLE。
请注意,要使用 BigQuery 导入事件,必须使用 eventTime。eventTime 是时间戳格式的字符串。
[ { "name": "eventType", "type": "STRING", "mode": "REQUIRED" }, { "name": "userPseudoId", "type": "STRING", "mode": "REQUIRED" }, { "name": "engine", "type": "STRING", "mode": "NULLABLE" }, { "name": "eventTime", "type": "STRING", "mode": "REQUIRED" }, { "name": "searchInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "searchQuery", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "pageInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "pageCategory", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "attributionToken", "type": "STRING", "mode": "NULLABLE" }, { "name": "documents", "type": "RECORD", "mode": "REPEATED", "fields": [ { "name": "id", "type": "STRING", "mode": "NULLABLE" } ] } ]
关于用户信息
userPseudoId 表示唯一身份用户标识符,当您记录用户事件时,需要此参数。
记录用户事件时包括的用户信息 ([UserInfo][user-info]) 包含 userPseudoId 值,如果可用,还包含
userId 值。
userId 是可选项,每当用户登录您的网站时,它可用作用户在不同设备上的唯一永久性标识符。当您记录某个用户的
userId时,
Gemini Enterprise 应用
可以针对使用多台设备(
例如移动设备和网络浏览器)的一个用户生成个性化结果。
关于时间戳
当您记录用户事件时,请确保添加事件发生的确切时间戳。准确的时间戳可确保您的事件按正确的顺序存储。对于使用 JavaScript
Pixel 收集的事件,时间戳会被自动记录。导入事件时,您必须按照 RFC
3339 指定的格式在 [eventTime][event-time] 字段中提供
时间戳。
[rec-type-reqs]: /gemini/enterprise/docs/about-media-recommendations-types [record-events]: /gemini/enterprise/docs/record-user-events [event-time]: /gemini/enterprise/docs/reference/rest/v1/projects.locations.dataStores.userEvents#UserEvent.FIELDS.event_time [user-event]: /gemini/enterprise/docs/reference/rest/v1/projects.locations.dataStores.userEvents [user-info]: /gemini/enterprise/docs/reference/rest/v1/projects.locations.dataStores.userEvents#userinfo