管理使用者事件

本頁說明如何查看及刪除使用者事件。如要瞭解如何在使用者事件發生時記錄這些事件,請參閱「記錄即時使用者事件」。如要匯入過去事件的使用者事件資料,請參閱「匯入歷來的使用者事件」。

教學課程:重新彙整使用者事件

本教學課程將說明如何向 userEvents:rejoin 端點提出 POST 要求,重新彙整使用者事件。


如要直接在 Cloud Shell 編輯器中按照逐步指南操作,請按一下「Guide me」

逐步引導


移除使用者事件的教學課程

本教學課程將說明如何清除使用者事件。


如要直接在 Cloud Shell 編輯器中按照逐步指南操作,請按一下「Guide me」

逐步引導


查看匯總使用者事件資訊

在「Search for commerce」控制台的「資料」頁面中,點選「事件」分頁標籤,即可查看事件整合指標。這個頁面會顯示去年寫入或匯入的所有事件。資料擷取成功後,指標最多可能需要 24 小時才會顯示。

前往「資料」頁面

商家適用的 Vertex AI Search 使用者事件統計資料

重新彙整使用者事件

您可以向 userEvents:rejoin 端點提出 POST 要求,重新加入使用者事件。

重新彙整作業會彙整指定事件與最新版的產品目錄。

如果系統擷取特定使用者事件時,相關產品尚未列入目錄,則該事件就會視為未彙整。未彙整的事件缺少詳細的產品資訊,不適合用於訓練模型及提供結果。

重新彙整作業不僅可以處理未彙整的事件,如果事件所彙整的產品目錄有誤,也能加以修正。

您必須具備 Retail AI 管理員 IAM 角色,才能呼叫這個方法。重新加入作業可能需要數小時或數天才能完成。

curl

請根據要重新加入的事件類型設定 userEventRejoinScope

  • USER_EVENT_REJOIN_SCOPE_UNSPECIFIED:預設值。針對已加入和未加入的事件觸發重新加入。
  • JOINED_EVENTS:只針對已加入的事件觸發重新加入。
  • UNJOINED_EVENTS:只針對未加入的事件觸發重新加入。

以下範例只會針對未加入的事件觸發重新加入:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
     'userEventRejoinScope': 'UNJOINED_EVENTS'
     }" \
    "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:rejoin"

您應該會收到類似下方的回應物件:

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID"
}

你可以查看重新加入的狀態。請將 OPERATION_ID 替換為重新加入方法傳回的作業 ID:

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID"

作業完成後,作業狀態會傳回為 done

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.retail.v2.RejoinUserEventsResponse",
    "rejoinedUserEventsCount": "1"
  }
}

Java

public static String rejoinUserEvents(UserEventRejoinScope scope)
    throws IOException, InterruptedException, ExecutionException {
  UserEventServiceClient userEventsClient = getUserEventServiceClient();

  RejoinUserEventsRequest request = RejoinUserEventsRequest.newBuilder()
      .setParent(DEFAULT_CATALOG_NAME)
      .setUserEventRejoinScope(scope)
      .build();

  String operationName = userEventsClient
      .rejoinUserEventsAsync(request).getName();

  userEventsClient.shutdownNow();
  userEventsClient.awaitTermination(2, TimeUnit.SECONDS);

  return operationName;
}

移除使用者事件

一般來說,您應該在記錄使用者事件後,將其保留在原處。我們不建議您清除事件。

事件清除作業最多可能需要幾天才能完成。如果您打算完全重設使用者事件,請考慮改為建立新專案。

如果您有未正確記錄的使用者事件,且需要移除這些事件,可以使用 userEvents.purge 方法。

使用篩選條件字串指定要移除的事件。這項功能可透過 eventTimeeventTypevisitorIDuserID 欄位篩選,有選擇地刪除使用者事件。

由於您無法復原刪除作業,因此請先進行模擬執行,再刪除使用者事件,以便測試篩選字串。根據預設,force 欄位會設為 false;這項設定會傳回要刪除的事件數量,但不會實際刪除事件。準備實際刪除使用者事件時,請將 force 欄位設為 true

curl

這個範例會篩選時間範圍,但必須使用 Zulu Time 日期格式force 欄位已設為 false

curl -X POST \
  -H "Authorization: Bearer "$(gcloud auth application-default print-access-token)"" \
  -H "Content-Type: application/json; charset=utf-8" \
  --data '{
    "filter":"eventTime > \"2019-12-23T18:25:43.511Z\" eventTime < \"2019-12-23T18:30:43.511Z\"",
    "force":"false"
  }' \
  "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:purge"

您應該會收到類似下方的回應物件,其中 purge-user-events-54321 是作業 ID:

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/purge-user-events-54321"
}

以下範例會要求作業狀態:

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID"

作業狀態範例:

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.retail.v2.PurgeUserEventsResponse",
    "purgedEventsCount": "1"
  }
}

force 欄位設為 true 會強制執行刪除作業。

curl -X POST \
  -H "Authorization: Bearer "$(gcloud auth application-default print-access-token)"" \
  -H "Content-Type: application/json; charset=utf-8" \
  --data '{
    "filter":"eventTime > \"2019-12-23T18:25:43.511Z\" eventTime < \"2019-12-23T18:30:43.511Z\"",
    "force":"true"
  }' \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:purge"

Java

public static String purgeUserEvents(
    String filter)
    throws IOException, InterruptedException, ExecutionException {
  UserEventServiceClient userEventsClient = getUserEventServiceClient();

  PurgeUserEventsRequest request = PurgeUserEventsRequest.newBuilder()
      .setParent(DEFAULT_CATALOG_NAME)
      .setFilter(filter)
      .setForce(true)
      .build();

  String operationName = userEventsClient
      .purgeUserEventsAsync(request).getName();

  userEventsClient.shutdownNow();
  userEventsClient.awaitTermination(2, TimeUnit.SECONDS);

  return operationName;
}

使用使用者事件篩選器

您可以篩選要刪除的使用者事件。

篩選器是包含下列一或多個限制的字串:

  • eventTime

    提供時間戳記,用於限定要刪除的事件。您可以使用大於 (>) 或小於 (<) 符號,指定這個篩選器一次或兩次。時間範圍必須是單一連續區塊。

  • eventType

    將要刪除的事件限制為單一事件類型。

  • visitorID

    將要刪除的事件限制為單一訪客 ID。

  • userID

    將要刪除的事件限制在單一使用者 ID。

系統只會刪除符合所有限制條件的使用者活動。

如要刪除 2019 年 2 月 1 日當天或之後記錄的所有 add-to-cart 類型使用者事件,請提供下列篩選字串:

eventTime > "2019-02-01T00:00:00Z" eventType = add-to-cart