Mengelola peristiwa pengguna

Halaman ini menjelaskan cara melihat dan menghapus peristiwa pengguna. Untuk mengetahui informasi tentang 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 peristiwa pengguna yang bergabung kembali

Tutorial ini menunjukkan cara menggabungkan kembali 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 acara 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 acara di tab Acara di halaman Data pada konsol Penelusuran untuk e-commerce. 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 commerce

Bergabung kembali dengan 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 katalog produk versi terbaru.

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

Selain menangani peristiwa yang tidak digabungkan, operasi penggabungan ulang dapat digunakan untuk mengoreksi peristiwa yang telah digabungkan dengan katalog produk yang salah.

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

curl

Tetapkan userEventRejoinScope sesuai dengan jenis acara yang Anda ikuti kembali:

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

Contoh berikut memicu bergabung kembali hanya untuk peristiwa yang belum 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 bergabung kembali. Ganti OPERATION_ID dengan 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 acara pengguna

Secara umum, Anda harus membiarkan peristiwa pengguna tetap ada setelah direkam. Menghapus acara tidak direkomendasikan.

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

Jika Anda memiliki peristiwa pengguna yang tidak direkam 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 Anda dengan melakukan uji coba sebelum menghapus peristiwa pengguna. Kolom force disetel ke false secara default; setelan ini akan menampilkan jumlah peristiwa yang akan dihapus tanpa benar-benar menghapusnya. Saat Anda siap 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 terikat harus berupa satu blok yang berdekatan.

  • eventType

    Batasi acara yang akan dihapus ke satu jenis acara.

  • visitorID

    Membatasi acara yang akan dihapus ke satu ID pengunjung.

  • userID

    Membatasi acara yang akan dihapus ke satu ID pengguna.

Hanya peristiwa pengguna yang memenuhi semua batasan yang akan dihapus.

Untuk menghapus semua peristiwa pengguna berjenis add-to-cart yang dicatat pada atau setelah 1 Februari 2019, Anda akan memberikan string filter berikut:

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