關於使用者事件

本頁說明 Gemini Enterprise 應用程式的使用者事件,包括使用者事件類型、需求和使用者事件類型範例。

如果您在自己的應用程式中使用 Gemini Enterprise API,則必須在應用程式中設定搜尋功能,以取得使用者事件,然後將使用者事件資料新增至 Gemini Enterprise 應用程式。

如果您透過Google Cloud 控制台建立應用程式,就不需要手動匯入使用者事件,也不必閱讀本頁面。

如需記錄使用者事件的相關說明,請參閱「記錄即時使用者事件」。如要大量匯入過去的使用者事件,請參閱「匯入歷來的使用者事件」。

使用者事件類型

當使用者瀏覽或搜尋網站時,您可以記錄下列類型的使用者事件:

使用者事件名稱 使用者操作
view-item 查看文件詳細資料。
search 在 Gemini Enterprise 應用程式中搜尋資料。

如要瞭解使用者事件物件的詳細資料,請參閱 [UserEventAPI 參考文件][user-event]。

使用者事件類型範例和結構定義

本節提供 Gemini Enterprise 應用程式支援的各事件類型資料格式。 以下提供 JavaScript 像素範例。如果是 BigQuery,系統會提供每種資料類型的完整資料表結構定義。

userId 是所有使用者事件類型的選用欄位。

如要進一步瞭解使用者事件物件,請參閱 UserEvent API 參考文件。

view-item

以下顯示 view-item 使用者事件資料格式。

瀏覽項目事件的搜尋最佳化需求

如要讓搜尋自動化根據整體使用者趨勢調整搜尋體驗,請上傳下列資料。

請至少每天上傳事件,最晚延遲 24 小時。

事件指標 事件數量/頻率 說明
view-item 事件數量 25 萬個瀏覽項目

至少須有 25 萬個瀏覽項目,才能根據擷取的事件最佳化搜尋體驗。

view-item 物件的必要屬性

下列範例只會顯示 view-item 使用者事件格式的必要欄位。

documents 物件包含文件 ID (id) 和資源名稱 (name)。

  • 在資料儲存庫層級擷取或記錄使用者事件時,您可以提供文件的 ID (id) 或資源名稱 (name)。
  • 在位置層級擷取或記錄事件時,您必須提供文件的資源名稱 (name),因為這會指出文件的完整路徑,並參照文件所在的資料儲存庫。您可以視需要提供文件 ID 做為額外資訊。

JavaScript 像素

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 使用者事件格式。

搜尋事件的搜尋最佳化規定

如要讓搜尋自動化根據整體使用者趨勢改善搜尋體驗,請上傳下列資料。

事件應至少每天上傳一次,延遲時間不超過 24 小時。

事件指標 事件數量/頻率 說明
search 事件數量 10 萬次搜尋

至少需要 100,000 次搜尋,系統才能根據擷取的事件最佳化搜尋體驗。

必要搜尋物件下限

下列範例僅顯示 search 使用者事件格式的必要欄位。

如果使用者輸入文字查詢,請為搜尋事件提供 searchQuery。

attributionToken 會與搜尋查詢結果一併傳回。

documents 物件包含文件的 ID (id) 和資源名稱 (name)。

  • 在資料儲存庫層級擷取或記錄使用者事件時,您可以提供文件的 ID (id) 或資源名稱 (name)。
  • 在位置層級擷取或記錄事件時,您必須提供文件的資源名稱 (name),因為這會指出文件的完整路徑,並參照文件所在的資料儲存庫。您可以視需要提供文件 ID 做為額外資訊。

JavaScript 像素

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 代表不重複的使用者 ID,記錄使用者事件時必須提供這項 ID。

記錄使用者事件時,包含的使用者資訊 ([UserInfo][user-info]) 會包含 userPseudoId 值,以及 userId 值 (如有)。userId 為選用參數,使用者登入網站時,可用於做為使用者在各裝置上的專屬永久 ID。記錄使用者的 userId 後,Gemini Enterprise 應用程式就能在多部裝置 (例如行動裝置和網路瀏覽器) 上,為同一位使用者產生更個人化的結果。

關於時間戳記

記錄使用者事件時,請務必加入事件發生的準確時間戳記。準確的時間戳記可確保事件依正確順序儲存。系統會自動記錄使用 JavaScript 像素收集的事件時間戳記。匯入事件時,您必須在 [eventTime][event-time] 欄位中,以 RFC 3339 指定的格式提供時間戳記。

[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