Mengelola peristiwa pengguna

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

Bergabung kembali dengan tutorial 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 acara 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 Search for Retail Console. Halaman ini menampilkan semua acara yang ditulis atau diimpor pada tahun lalu. Metrik dapat memerlukan waktu hingga satu jam untuk muncul di konsol setelah penyerapan data berhasil.

Buka halaman Data

Statistik Peristiwa Pengguna Vertex AI Search untuk retail

Bergabung kembali peristiwa pengguna

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

Operasi bergabung kembali akan 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 tergabung tidak memiliki informasi produk yang mendetail dan tidak berguna untuk melatih model dan menyajikan hasil.

Selain mengatasi peristiwa yang tidak bergabung, operasi penggabungan dapat digunakan untuk memperbaiki peristiwa yang 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.

curl

Tetapkan userEventRejoinScope menurut jenis peristiwa Anda bergabung kembali:

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

Contoh berikut memicu bergabung kembali hanya untuk peristiwa yang belum bergabung:

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 penggabungan:

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

Biasanya, Anda harus membiarkan peristiwa pengguna tetap ada setelah peristiwa tersebut direkam. Sebaiknya jangan menghapus permanen peristiwa.

Penghapusan permanen acara 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 Anda 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 sudah siap untuk menghapus peristiwa pengguna, tetapkan kolom force ke true.

curl

Contoh ini memfilter rentang waktu, yang harus menggunakan format tanggal Waktu Zulu. Kolom force disetel 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 sebagai 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 terjadinya penghapusan.

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 ingin dihapus.

Filter adalah string yang berisi satu atau beberapa pembatasan berikut:

  • eventTime

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

  • eventType

    Membatasi peristiwa yang akan dihapus ke satu jenis peristiwa.

  • visitorID

    Membatasi peristiwa yang akan dihapus untuk satu ID pengunjung.

  • userID

    Membatasi 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 login pada atau setelah 1 Februari 2019, berikan string filter berikut:

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