Mengelola peristiwa pengguna

Halaman ini menjelaskan cara melihat dan menghapus peristiwa pengguna. Untuk informasi tentang cara merekam peristiwa pengguna saat terjadi, lihat Merekam peristiwa pengguna real-time. Untuk mengimpor data peristiwa pengguna dari peristiwa sebelumnya, lihat Mengimpor peristiwa pengguna historis.

Tutorial bergabung kembali ke peristiwa pengguna

Tutorial ini menunjukkan cara bergabung kembali ke peristiwa pengguna dengan membuat permintaan POST ke endpoint userEvents:rejoin.


Untuk mengikuti panduan langkah demi langkah tugas ini langsung di Cloud Shell Editor, klik Pandu saya:

Pandu saya


Tutorial menghapus peristiwa pengguna

Tutorial ini menunjukkan cara menghapus permanen peristiwa pengguna.


Untuk mengikuti panduan langkah demi langkah tugas ini langsung di Cloud Shell Editor, klik Pandu saya:

Pandu saya


Melihat informasi peristiwa pengguna gabungan

Lihat metrik integrasi peristiwa di tab Peristiwa di halaman Data konsol Penelusuran untuk Retail. Halaman ini menampilkan semua peristiwa yang ditulis atau diimpor pada tahun lalu. Metrik dapat memerlukan waktu hingga 24 jam untuk muncul setelah penyerapan data berhasil.

Buka halaman Data

Statistik Peristiwa Pengguna Vertex AI Search untuk retail

Bergabung kembali ke peristiwa pengguna

Anda dapat bergabung kembali ke peristiwa pengguna dengan membuat permintaan POST ke endpoint userEvents:rejoin.

Operasi bergabung kembali menggabungkan peristiwa yang ditentukan dengan versi terbaru katalog produk.

Peristiwa pengguna dianggap tidak tergabung jika produk yang terkait dengannya tidak ada dalam katalog pada saat peristiwa pengguna diserap. Peristiwa yang tidak digabungkan tidak memiliki informasi produk mendetail dan tidak terlalu berguna untuk melatih model dan menayangkan hasil.

Selain mengatasi peristiwa yang tidak bergabung, operasi bergabung kembali dapat digunakan untuk memperbaiki peristiwa yang telah bergabung dengan katalog produk yang salah.

Anda harus memiliki peran IAM Retail AI Admin untuk memanggil metode ini. Operasi bergabung kembali dapat memerlukan waktu berjam-jam atau berhari-hari untuk diselesaikan.

curl

Tetapkan userEventRejoinScope sesuai dengan jenis peristiwa yang Anda ikuti kembali:

  • USER_EVENT_REJOIN_SCOPE_UNSPECIFIED: Default. Memicu bergabung kembali untuk peristiwa yang bergabung dan tidak bergabung.
  • JOINED_EVENTS: Memicu bergabung kembali hanya untuk peristiwa yang bergabung.
  • UNJOINED_EVENTS: Memicu bergabung kembali hanya untuk peristiwa yang tidak bergabung.

Contoh berikut memicu bergabung kembali hanya untuk peristiwa yang tidak diikuti:

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"

Anda akan menerima objek respons yang terlihat seperti ini:

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

Anda dapat memeriksa status penggabungan kembali. Ganti OPERATION_ID dengan ID ID operasi yang ditampilkan oleh metode bergabung kembali:

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"

Setelah operasi selesai, status operasi akan ditampilkan sebagai 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;
}

Menghapus peristiwa pengguna

Umumnya, Anda harus membiarkan peristiwa pengguna tetap ada setelah dicatat. Pembersihan peristiwa tidak direkomendasikan.

Penghapusan permanen peristiwa dapat memerlukan waktu hingga beberapa hari. Jika Anda berencana mereset peristiwa pengguna sepenuhnya, sebaiknya buat project baru.

Jika memiliki peristiwa pengguna yang tidak dicatat dengan benar dan perlu menghapusnya, Anda dapat melakukannya menggunakan metode userEvents.purge.

Tentukan peristiwa yang ingin Anda hapus menggunakan string filter. Hal ini mendukung penghapusan peristiwa pengguna secara selektif dengan memfilter kolom eventTime, eventType, visitorID, dan userID.

Karena Anda tidak dapat mengurungkan penghapusan, uji string filter dengan melakukan uji coba sebelum menghapus peristiwa pengguna. Kolom force ditetapkan ke false secara default; setelan ini akan menampilkan jumlah peristiwa yang akan dihapus tanpa benar-benar menghapusnya. Jika Anda siap untuk benar-benar menghapus peristiwa pengguna, tetapkan kolom force ke true.

curl

Contoh ini memfilter rentang waktu, yang harus menggunakan format tanggal Waktu Zulu. Kolom force ditetapkan ke 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"

Anda akan menerima objek respons yang terlihat seperti ini, dengan purge-user-events-54321 adalah ID operasi:

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

Contoh ini meminta status operasi:

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"

Contoh status operasi:

{
  "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"
  }
}

Menetapkan kolom force ke true akan memaksa penghapusan terjadi.

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;
}

Menggunakan filter peristiwa pengguna

Anda dapat memfilter peristiwa pengguna yang akan dihapus.

Filter adalah string yang berisi satu atau beberapa batasan berikut:

  • eventTime

    Memberikan stempel waktu untuk membatasi peristiwa yang akan dihapus. Filter ini dapat ditentukan satu atau dua kali, dengan simbol lebih besar dari (>) atau kurang dari (<). Waktu yang dibatasi harus berupa satu blok yang berdekatan.

  • eventType

    Batasi peristiwa yang akan dihapus ke satu jenis peristiwa.

  • visitorID

    Batasi peristiwa yang akan dihapus ke satu ID pengunjung.

  • userID

    Batasi peristiwa yang akan dihapus ke satu ID pengguna.

Hanya peristiwa pengguna yang memenuhi semua batasan yang akan dihapus.

Untuk menghapus semua peristiwa pengguna jenis add-to-cart yang dicatat ke dalam log pada atau setelah 1 Februari 2019, Anda harus memberikan string filter berikut:

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