管理使用者事件

本頁說明如何查看及刪除使用者事件。如要瞭解如何記錄使用者事件,請參閱「記錄即時使用者事件」。如要從過往活動匯入使用者事件資料,請參閱「匯入歷來的使用者事件」。

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

本教學課程說明如何向 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