Tentang peristiwa pengguna

Halaman ini menjelaskan objek peristiwa pengguna, termasuk mencantumkan potensi jenis peristiwa pengguna, dan memberikan contoh data untuk semua jenis peristiwa pengguna.

Vertex AI Search untuk commerce menggunakan peristiwa pengguna real-time untuk membuat rekomendasi dan hasil penelusuran. Saat Anda mengupload data, rekomendasi dan penelusuran dapat menggunakan data tersebut, sehingga Anda tidak perlu mengupload peristiwa yang sama dua kali jika menggunakan kedua layanan tersebut.

Cara kerja atribusi penelusuran

Cara kerja atribusi

Ringkasan jenis peristiwa pengguna

Ada beberapa jenis peristiwa pengguna yang dapat Anda catat saat pengguna menjelajahi situs retail Anda:

Nama peristiwa pengguna Tindakan pengguna Google Analytics 4 event_name
home-page-view Melihat halaman beranda. view_homepage
penelusuran (Penelusuran dan penjelajahan) Menelusuri katalog. view_item_list + [searchQuery ATAU pageCategories + filter]
category-page-view (Khusus Rekomendasi) Melihat halaman khusus, seperti halaman promo atau diskon. view_item_list + pageCategories
detail-page-view Melihat halaman detail produk. view_item
add-to-cart Menambahkan produk ke keranjang. add_to_cart
shopping-cart-page-view Melihat keranjang belanja. begin_checkout
purchase-complete Menyelesaikan checkout. purchase

Dari jenis peristiwa ini, Vertex AI Search untuk commerce secara khusus menggunakan empat jenis peristiwa berikut untuk pensinyalan popularitas:

  • SEARCH
  • DETAIL_PAGE_VIEW
  • ADD_TO_CART
  • PURCHASE_COMPLETE

Untuk melihat daftar lengkap kolom peristiwa GA4, lihat Kolom peristiwa pengguna Google Analytics 4.

Untuk mengetahui informasi mendetail tentang objek UserEvent, lihat UserEvent.

Persyaratan peristiwa pengguna

Tabel berikut mencantumkan persyaratan dan praktik terbaik untuk jenis peristiwa pengguna yang digunakan oleh rekomendasi dan penelusuran. Pastikan peristiwa pengguna Anda memenuhi persyaratan ini agar Vertex AI Search untuk commerce dapat menghasilkan hasil yang berkualitas.

Bagian ini mencantumkan:

Jika Anda menggunakan model rekomendasi, lihat juga Persyaratan data jenis model, yang mencantumkan persyaratan tambahan bergantung pada jenis model rekomendasi dan tujuan pengoptimalan yang akan Anda gunakan.

Anda dapat melihat metrik kualitas data untuk penelusuran di halaman Kualitas data di konsol Penelusuran untuk e-commerce. Metrik ini menunjukkan persentase produk dan peristiwa pengguna yang memenuhi standar kualitas data yang direkomendasikan. Untuk mengetahui informasi tentang cara melihat kualitas data penelusuran, lihat Memanfaatkan tingkat performa penelusuran.

Persyaratan umum peristiwa pengguna

Pastikan peristiwa pengguna Anda memenuhi persyaratan berikut agar Vertex AI Search untuk commerce dapat menghasilkan hasil yang berkualitas. Setelan ini berlaku untuk rekomendasi dan penelusuran.

Jenis peristiwa Persyaratan Dampak
Semua acara

Jangan sertakan data sintetis atau peristiwa duplikat.

Peristiwa sintetis atau duplikat berdampak negatif pada kualitas model dan sering kali mencegah keberhasilan pelatihan model. Peristiwa duplikat dapat menyebabkan nilai metrik yang salah.

Sertakan setidaknya 100 ID pengunjung unik untuk setiap jenis peristiwa yang di-ingest.

Hal ini memverifikasi bahwa Vertex AI Search untuk commerce memiliki cukup data untuk menghasilkan hasil berkualitas.

ID pengunjung harus diformat persis sama di seluruh impor peristiwa atau perekaman peristiwa dan dalam permintaan API.

Penggunaan format yang konsisten untuk ID pengunjung membantu mengidentifikasi pola pengunjung dengan benar dan memberikan hasil yang lebih berkualitas berdasarkan perilaku pengguna.

Produk yang disertakan dalam acara harus ada di katalog produk Anda.

Rasio peristiwa yang tidak digabungkan harus dijaga serendah mungkin. Rasio yang tinggi dapat berdampak negatif pada kualitas rekomendasi atau hasil penelusuran.

Data peristiwa yang tidak digabungkan tidak digunakan untuk melatih model. Namun, peristiwa yang tidak digabungkan dapat digabungkan nanti, setelah produk terkait diproses. Untuk mengetahui informasi selengkapnya, lihat Bergabung kembali ke peristiwa pengguna.

Beberapa peristiwa pengguna harus memiliki ID pengunjung yang sama.

Untuk membuat histori urutan perilaku yang valid, Vertex AI Search untuk commerce harus dapat melihat beberapa peristiwa dengan ID pengunjung yang sama.

Misalnya, visitor123 telah melihat lima halaman detail produk, menambahkan tiga produk ke keranjang, lalu membeli dua dari lima produk asli. Jika semua peristiwa ini memberikan ID pengunjung yang sama dan diformat secara konsisten, Vertex AI Search untuk e-commerce dapat mempertimbangkan urutan perilaku tersebut dalam modelnya.

detail-page-view

Sertakan tepat satu produk per acara.

Peristiwa tidak dapat digunakan jika tidak ada produk. Jika beberapa produk disertakan, acara tidak terbentuk dengan benar dan tidak dapat digunakan.

add-to-cart

Sertakan tepat satu produk per acara.

Jika beberapa produk disertakan, peristiwa salah bentuk dan tidak dapat digunakan.

purchase-complete

Sertakan purchase_transaction.revenue.

Peristiwa purchase-complete yang tidak memiliki kolom revenue tidak digunakan untuk melatih model.

Sertakan tepat satu purchase_transaction.currency_code di semua peristiwa pembelian.

Tidak ada kode mata uang default; kode harus diberikan.

Peristiwa pembelian tanpa kolom ini akan menghasilkan metrik pendapatan yang salah.

Periksa apakah beberapa peristiwa pembelian menyertakan beberapa produk.

Memiliki beberapa peristiwa pembelian dengan beberapa produk membantu model mempelajari pola pembelian bersama.

Persyaratan khusus rekomendasi

Jika Anda menggunakan rekomendasi, pastikan peristiwa pengguna Anda memenuhi persyaratan berikut.

Jika Anda menggunakan model rekomendasi, lihat juga Persyaratan data jenis model, yang mencantumkan persyaratan tambahan bergantung pada jenis model rekomendasi dan tujuan pengoptimalan yang ingin Anda gunakan.

Jenis peristiwa Persyaratan Dampak
purchase-complete

Jangan meratakan keranjang multi-item menjadi beberapa peristiwa pembelian. Peristiwa tersebut harus tetap berupa peristiwa pembelian tunggal yang mencakup beberapa produk.

Hal ini memverifikasi bahwa pola pembelian bersama yang valid dihasilkan.

Persyaratan khusus Penelusuran

Jika Anda menggunakan penelusuran, pastikan peristiwa pengguna Anda memenuhi persyaratan minimum berikut untuk mendapatkan hasil.

Jenis peristiwa Persyaratan Dampak
search

searchQuery harus ada untuk peristiwa penelusuran, dan pageCategories harus ada untuk peristiwa penjelajahan.

Tidak menyertakan kolom ini dapat berdampak negatif yang parah pada kualitas dan metrik hasil penelusuran.

ID pengunjung dalam permintaan penelusuran harus cocok dengan ID pengunjung yang dikirim dalam peristiwa yang terkait dengan permintaan penelusuran tersebut.

Jika tidak cocok, peristiwa tidak terbentuk dengan benar dan metrik bisa salah.

Daftar ID produk dalam peristiwa penelusuran harus cocok dengan daftar produk yang ditampilkan kepada pengguna secara keseluruhan.

Jika tidak cocok, dampak negatif terhadap kualitas hasil penelusuran bisa sangat besar, dan metrik akan salah.

Jika penelusuran menggunakan filter, filter harus ada dan diuraikan dengan benar.

Jika kolom ini tidak ada, Vertex AI Search untuk commerce tidak dapat menggunakan bagian filter data, yang dapat berdampak negatif pada kualitas hasil penelusuran.

Sertakan kolom attribution_token untuk menautkan peristiwa lain kembali ke peristiwa penelusuran.

Tidak menyertakan token atribusi akan memicu error di Penelusuran untuk e-commerce dan berdampak negatif yang parah pada kualitas penelusuran dan akurasi metrik.

Persyaratan pengoptimalan penelusuran

Agar penelusuran mengoptimalkan pengalaman penelusuran secara otomatis berdasarkan tren pengguna secara keseluruhan, upload data berikut.

Acara harus diupload setidaknya setiap hari dengan jeda maksimum 24 jam.

Metrik peristiwa Volume/frekuensi peristiwa Deskripsi
Volume acara search 250 ribu dalam 90 hari terakhir

Setidaknya 250.000 peristiwa dalam 90 hari terakhir diperlukan untuk mengoptimalkan pengalaman penelusuran berdasarkan peristiwa yang diproses.

Sebaiknya upload peristiwa setidaknya setiap hari untuk menjaga kualitas data yang baik. Selama impor peristiwa historis, pastikan distribusi data condong ke stempel waktu terbaru. Jumlah peristiwa pada hari stempel waktu terakhir harus sama dengan atau lebih besar dari jumlah peristiwa harian rata-rata.

Volume detail-page-view yang diatribusikan ke peristiwa search 500.000 dalam 30 hari terakhir Setidaknya 500.000 peristiwa diperlukan untuk mengoptimalkan hasil penelusuran menggunakan peristiwa pengguna.
Rata-rata peristiwa detail-page-view yang dapat diatribusikan ke peristiwa search per produk 10 dalam 30 hari terakhir Wajib untuk mengoptimalkan hasil penelusuran menggunakan peristiwa yang diserap, kecuali jika peristiwa untuk 21 hari terakhir diupload.
Proporsi peristiwa search dengan filter yang dapat diuraikan 0,1 dalam 30 hari terakhir Direkomendasikan untuk mengoptimalkan urutan aspek dinamis dalam respons penelusuran.
Proporsi produk yang ditelusuri dengan harga 0,95 dalam 30 hari terakhir Wajib untuk mengoptimalkan hasil penelusuran menggunakan peristiwa yang diserap.
Rata-rata peristiwa add-to-cart yang dapat diatribusikan ke peristiwa search per produk yang diberi harga 0,5 dalam 30 hari terakhir Direkomendasikan untuk hasil penelusuran yang dioptimalkan untuk pendapatan.
Rata-rata peristiwa purchase-complete yang dapat diatribusikan ke peristiwa search per produk yang dapat ditelusuri dan memiliki harga 0,5 dalam 30 hari terakhir Direkomendasikan untuk hasil penelusuran yang dioptimalkan untuk pendapatan.

Persyaratan personalisasi penelusuran

Penelusuran memerlukan data berikut untuk mempersonalisasi penelusuran teks dan menjelajahi hasil penelusuran bagi pengguna Anda berdasarkan aktivitas mereka.

Setelah Anda mengupload data berikut, penelusuran dapat mempersonalisasi hasil secara otomatis.

Metrik peristiwa Volume/frekuensi peristiwa Deskripsi
Volume peristiwa search yang ditayangkan oleh penelusuran 100.000 dalam 30 hari terakhir

Setidaknya 100.000 peristiwa yang ditayangkan oleh penelusuran dalam 30 hari terakhir diperlukan untuk memberikan personalisasi.

hasil penelusuran tidak di-cache Kurang dari 1% dari 100.000 peristiwa pengguna terbaru

Jangan menyimpan hasil penelusuran dalam cache untuk penelusuran teks atau penelusuran penjelajahan jika Anda berencana menggunakan personalisasi. Menggunakan kembali hasil yang sama untuk semua pengunjung mencegah penelusuran memberikan hasil yang benar-benar dipersonalisasi kepada pengguna tertentu dan berisiko mengekspos data pribadi pengguna. Penelusuran otomatis menonaktifkan personalisasi jika caching terdeteksi.

Jika Anda hanya menyimpan hasil penelusuran dalam cache, penelusuran masih dapat mempersonalisasi hasil penjelajahan. Sebaliknya, jika Anda hanya meng-cache hasil penjelajahan, penelusuran tetap dapat mempersonalisasi hasil penelusuran kueri teks.

ID pengunjung cocok antara SearchRequests dan peristiwa pengguna Lebih dari 10% kecocokan untuk 100.000 peristiwa pengguna terbaru Pastikan jarak dan format ID pengunjung cocok di seluruh SearchRequests dan peristiwa pengguna. Pemformatan ID pengunjung yang konsisten memverifikasi bahwa penelusuran dapat mengidentifikasi aktivitas pengguna dengan benar.

Praktik terbaik peristiwa pengguna

Bagian ini menjelaskan praktik terbaik untuk peristiwa pengguna di Vertex AI Search untuk commerce.

Pemeriksaan tayangan produk

Saat menyerap peristiwa ke Vertex AI Search untuk peristiwa historis e-commerce atau peristiwa live produksi, pastikan batas berikut terpenuhi agar model dapat dilatih, seperti yang dijelaskan di sini.

Penting untuk diperhatikan bahwa volume minimum peristiwa yang diperlukan bukanlah jumlah volume yang sama untuk semua kasus. Misalnya, jika batasnya menyatakan bahwa diperlukan 150 ribu peristiwa lihat halaman detail, maka hal ini tidak boleh dianggap sebagai 150 ribu peristiwa lihat halaman detail acak. Peristiwa harus terkait dengan peristiwa lain seperti SEARCH atau ADD TO CART.

Model dilatih pada peristiwa, terutama untuk pengoptimalan rasio klik, pada peristiwa SEARCH dan peristiwa penayangan halaman detail berikutnya. Akibatnya, setiap peristiwa penayangan halaman detail harus dapat dilacak ke daftar ID produk peristiwa penelusuran.

Hal yang sama berlaku untuk peristiwa tambahkan ke keranjang dan pembelian. Artinya, jika Anda membuat linimasa peristiwa menggunakan stempel waktu peristiwa untuk ID pengunjung tertentu, Anda dapat menyimpulkan perilaku penelusuran ke klik atau pembelian. Jadi, jika Anda menemukan peristiwa penayangan halaman detail acak yang tidak terkait dengan peristiwa penelusuran apa pun, peristiwa tersebut tidak dapat digunakan untuk pelatihan model.

Jadi, pastikan peristiwa yang diproses ditautkan kembali ke peristiwa penelusuran, yang berarti detail stempel waktu, ID pengunjung, dan ID produk harus akurat agar model dapat dilatih.

Prioritas jenis peristiwa

Untuk hasil berkualitas tertinggi, catat peristiwa pengguna untuk semua jenis peristiwa. Tabel berikut menjelaskan prioritas berbagai jenis peristiwa pengguna. Anda harus mencatat peristiwa pengguna dengan prioritas tertinggi untuk mendapatkan model data berkualitas.

Prioritas Jenis peristiwa pengguna

Diperlukan untuk eksperimen live awal untuk rekomendasi

(jenis acara bergantung pada jenis model rekomendasi)

detail-page-view

add-to-cart

purchase-complete

home-page-view

Acara tambahan yang diperlukan untuk eksperimen live penelusuran

search

Berdasarkan peristiwa ini, Vertex AI Search untuk commerce dapat menentukan produk mana yang diklik, ditambahkan ke keranjang, dan dibeli. Hal ini akan membantu melatih model saat produk mendapatkan lebih banyak interaksi dan konversi, yang akan membantu model memberi peringkat produk dengan lebih baik untuk peningkatan pendapatan yang dioptimalkan.

Selain itu, peristiwa pengguna juga menjadi dasar pengukuran KPI, termasuk pendapatan per pengguna, CTR, dan CVR.

Untuk melatih model berdasarkan data historis yang dihasilkan oleh mesin telusur sebelumnya, peristiwa pengguna harus diisi ulang terlebih dahulu dari data engagement situs historis (biasanya disediakan oleh framework analisis situs). Anda mungkin perlu mengubah peristiwa historis yang ada ke skema peristiwa pengguna yang ditentukan untuk Vertex AI Search untuk commerce. Hal ini diperlukan untuk melatih model agar dapat mengoptimalkan pendapatan. Setelah itu, peristiwa harus dikirimkan secara berkelanjutan ke Vertex AI Search untuk commerce menggunakan pengumpulan atau impor massal.

Atribusi peristiwa

Alur urutan peristiwa pengguna menjelaskan cara pengguna melakukan aktivitas di situs.

Alur pengguna yang ideal adalah:

  1. Pengguna melakukan penelusuran pada kueri.

  2. Pengguna menjalankan tayangan halaman pada produk yang diminati.

  3. Pengguna menambahkan produk ke keranjang yang ingin dibeli.

  4. Pengguna menjalankan transaksi pembelian untuk produk yang ingin dibelinya.

Demikian pula, peristiwa pengguna diharapkan berjalan dalam pola yang serupa untuk ID pengunjung tertentu. Artinya, dalam skala waktu, tidak boleh ada peristiwa menambahkan produk ke keranjang setelah transaksi pembelian untuk ID pengunjung tertentu untuk produk yang dibeli.

Alur peristiwa yang ideal adalah:

  • Jalur 1: Peristiwa penelusuran → Peristiwa lihat halaman detail → Peristiwa tambahkan ke keranjang → Peristiwa pembelian
  • Jalur 2: Peristiwa penelusuran → Peristiwa add-to-cart → Peristiwa pembelian

Dalam panggilan API penelusuran yang tidak di-cache, alur peristiwanya adalah sebagai berikut:

  • Setiap pengunjung dilayani oleh respons penelusuran yang unik dan token atribusi yang sesuai akan mengikuti.
  • Ada perbedaan yang jelas antara pelacakan visitorID1 dan visitorID2, karena token atribusinya berbeda.

Contoh dan skema jenis peristiwa pengguna

Bagian ini memberikan format data untuk setiap jenis peristiwa yang didukung.

Contoh untuk JavaScript Pixel dan Tag Manager disediakan. Untuk BigQuery, skema tabel lengkap untuk setiap jenis disediakan.

Untuk semua jenis peristiwa pengguna, userId bersifat opsional. Kolom informasi produk (priceInfo dan availability) bersifat opsional.

Perhatikan bahwa:

  • Kolom experimentIds hanya diperlukan jika Anda menjalankan eksperimen A/B.
  • Kolom attributionToken hanya diperlukan untuk Vertex AI Search untuk commerce. Metrik ini digunakan untuk mengukur performa. Token atribusi tidak boleh dikirim ke predict, search, dan detail-page-view, atau peristiwa klik.
  • Pastikan semua peristiwa Anda menggunakan satu mata uang, terutama jika Anda berencana menggunakan konsolGoogle Cloud untuk mendapatkan metrik pendapatan. API Vertex AI Search untuk commerce tidak mendukung penggunaan beberapa mata uang per katalog.

Untuk mengetahui detail selengkapnya tentang objek peristiwa pengguna, lihat dokumentasi referensi API UserEvent.

Tambahkan ke keranjang

Berikut ini menunjukkan format peristiwa pengguna add-to-cart dalam contoh yang hanya menggunakan kolom wajib diisi.

Jumlah produk dalam peristiwa add-to-cart harus berupa nilai inkremental yang merepresentasikan jumlah produk yang terkait dengan peristiwa pengguna tertentu tersebut. Misalnya, jika dua unit produk ditambahkan ke keranjang belanja, kolom jumlah untuk peristiwa add-to-cart tersebut harus 2. Untuk acara add-to-cart, sertakan tepat satu produk per acara.

Saat mengimpor peristiwa, Anda harus memberikan stempel waktu di kolom eventTime dalam format yang ditentukan oleh RFC 3339.

Kolom lain mungkin diperlukan, bergantung pada metode API yang digunakan atau jika kolom tambahan digunakan. (Misalnya, jika peristiwa pengguna dikaitkan dengan entitas, pastikan untuk menentukan kolom entity.) Untuk mengetahui detail lengkap setiap kolom dan kapan kolom tersebut diperlukan, lihat dokumentasi referensi API UserEvent.

Piksel JavaScript

var user_event = {
  "eventType": "add-to-cart",
  "visitorId": "visitor-id",
  "productDetails": [{
    "product": {
      "id": "product-id"
    },
    "quantity": { "value": product-quantity }
  }]
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'add-to-cart',
        'visitorId': 'visitor-id',
        // You can also define the visitor ID
        // directly on the Tag Manager tag.
        'productDetails': [{
          'product': {
            'id': 'product-id'
          },
          'quantity': product-quantity
        }]
      }
    });
</script>

BigQuery

Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.

Mode untuk kolom wajib diisi ditetapkan ke REQUIRED atau REPEATED. Mode untuk kolom opsional ditetapkan ke NULLABLE.

Perhatikan bahwa eventTime diperlukan untuk mengimpor peristiwa dengan BigQuery. eventTime adalah string dengan format stempel waktu.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "experimentIds",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "attributionToken",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     },
     {
       "name": "quantity",
       "type": "INTEGER",
       "mode": "REQUIRED"
     }
   ]
 },
 {
   "name": "cartId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "userInfo",
   "type": "RECORD",
   "mode": "NULLABLE",
   "fields": [
     {
       "name": "userId",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "ipAddress",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "userAgent",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "directUserRequest",
       "type": "BOOLEAN",
       "mode": "NULLABLE"
     }
   ]
 },
 {
   "name": "uri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "referrerUri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageViewId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Tampilan halaman kategori

Berikut menunjukkan format peristiwa pengguna category-page-view.

Contoh berikut hanya menampilkan kolom yang diperlukan dari format peristiwa pengguna category-page-view.

Meskipun biasanya hanya ada satu kategori yang terkait dengan halaman, kolom pageCategories juga mendukung hierarki kategori, yang dapat Anda berikan sebagai daftar.

Saat mengimpor peristiwa, Anda harus memberikan stempel waktu di kolom eventTime dalam format yang ditentukan oleh RFC 3339.

Kolom lain mungkin diperlukan, bergantung pada metode API yang digunakan atau jika kolom tambahan digunakan. (Misalnya, jika peristiwa pengguna dikaitkan dengan entitas, pastikan untuk menentukan kolom entity.) Untuk mengetahui detail lengkap setiap kolom dan kapan kolom tersebut diperlukan, lihat dokumentasi referensi API UserEvent.

Piksel JavaScript

var user_event = {
  "eventType": "category-page-view",
  "visitorId": "visitor-id",
  "pageCategories": ["category1 > category2"]
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'category-page-view',
        'visitorId": 'visitor-id',
        // You can also define the user ID and visitor ID
        // directly on the Tag Manager tag.
        'pageCategories': ['category1 > category2']
      }
    });
</script>

BigQuery

Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.

Mode untuk kolom wajib diisi ditetapkan ke REQUIRED atau REPEATED. Mode untuk kolom opsional ditetapkan ke NULLABLE.

Perhatikan bahwa eventTime diperlukan untuk mengimpor peristiwa dengan BigQuery. eventTime adalah string dengan format stempel waktu.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "experimentIds",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "attributionToken",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     }
   ]
 },
 {
   "name": "pageCategories",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "userInfo",
   "type": "RECORD",
   "mode": "NULLABLE",
   "fields": [
     {
       "name": "userId",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "ipAddress",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "userAgent",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "directUserRequest",
       "type": "BOOLEAN",
       "mode": "NULLABLE"
     }
   ]
 },
 {
   "name": "uri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "referrerUri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageViewId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Tampilan halaman detail

Berikut ini menunjukkan format data peristiwa pengguna detail-page-view.

Contoh berikut hanya menampilkan kolom yang diperlukan dari format peristiwa pengguna detail-page-view.

Dalam sebagian besar kasus, productDetails berisi detail untuk produk terkait, kecuali jika sekelompok item dijual bersama.

Saat mengimpor peristiwa, Anda harus memberikan stempel waktu di kolom eventTime dalam format yang ditentukan oleh RFC 3339.

Kolom lain mungkin diperlukan, bergantung pada metode API yang digunakan atau jika kolom tambahan digunakan. (Misalnya, jika peristiwa pengguna dikaitkan dengan entitas, pastikan untuk menentukan kolom entity.) Untuk mengetahui detail lengkap setiap kolom dan kapan kolom tersebut diperlukan, lihat dokumentasi referensi API UserEvent.

Piksel JavaScript

var user_event = {
  "eventType": "detail-page-view",
  "visitorId": "visitor-id",
  "productDetails": [{
    "product": {
      "id": "product-id"
    }
  }]
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'detail-page-view',
        'visitorId': 'visitor-id',
        // You can also define the visitor ID directly on
        // the Tag Manager tag.
        'productDetails': [{
          'product': {
            'id': 'product-id'
          }
        }]
      }
    });
</script>

BigQuery

Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.

Mode untuk kolom wajib diisi ditetapkan ke REQUIRED atau REPEATED. Mode untuk kolom opsional ditetapkan ke NULLABLE.

Perhatikan bahwa eventTime diperlukan untuk mengimpor peristiwa dengan BigQuery. eventTime adalah string dengan format stempel waktu.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "experimentIds",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "attributionToken",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     }
   ]
 },
 {
   "name": "userInfo",
   "type": "RECORD",
   "mode": "NULLABLE",
   "fields": [
     {
       "name": "userId",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "ipAddress",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "userAgent",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "directUserRequest",
       "type": "BOOLEAN",
       "mode": "NULLABLE"
     }
   ]
 },
 {
   "name": "uri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "referrerUri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageViewId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Tampilan halaman beranda

Berikut menunjukkan format peristiwa pengguna home-page-view.

Contoh berikut hanya menampilkan kolom wajib di format peristiwa pengguna home-page-view.

Saat mengimpor peristiwa, Anda harus memberikan stempel waktu di kolom eventTime dalam format yang ditentukan oleh RFC 3339.

Kolom lain mungkin diperlukan, bergantung pada metode API yang digunakan atau jika kolom tambahan digunakan. (Misalnya, jika peristiwa pengguna dikaitkan dengan entitas, pastikan untuk menentukan kolom entity.) Untuk mengetahui detail lengkap setiap kolom dan kapan kolom tersebut diperlukan, lihat dokumentasi referensi API UserEvent.

Piksel JavaScript

var user_event = {
  "eventType": "home-page-view",
  "visitorId": "visitor-id",
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'home-page-view',
        'visitorId': 'visitor-id'
        // You can also define the visitor ID
        // directly on the Tag Manager tag.
      }
    });
</script>

BigQuery

Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.

Mode untuk kolom wajib diisi ditetapkan ke REQUIRED atau REPEATED. Mode untuk kolom opsional ditetapkan ke NULLABLE.

Perhatikan bahwa eventTime diperlukan untuk mengimpor peristiwa dengan BigQuery. eventTime adalah string dengan format stempel waktu.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "experimentIds",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "attributionToken",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     },
     {
       "name": "quantity",
       "type": "INTEGER",
       "mode": "REQUIRED"
     }
   ]
 },
 {
   "name": "userInfo",
   "type": "RECORD",
   "mode": "NULLABLE",
   "fields": [
     {
       "name": "userId",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "ipAddress",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "userAgent",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "directUserRequest",
       "type": "BOOLEAN",
       "mode": "NULLABLE"
     }
   ]
 },
 {
   "name": "uri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "referrerUri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageViewId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Pembelian selesai

Berikut ini menunjukkan format data peristiwa pengguna purchase-complete.

Contoh berikut hanya menampilkan kolom wajib di format peristiwa pengguna purchase-complete.

Saat mengimpor peristiwa, Anda harus memberikan stempel waktu di kolom eventTime dalam format yang ditentukan oleh RFC 3339.

Kolom lain mungkin diperlukan, bergantung pada metode API yang digunakan atau jika kolom tambahan digunakan. (Misalnya, jika peristiwa pengguna dikaitkan dengan entitas, pastikan untuk menentukan kolom entity.) Untuk mengetahui detail lengkap setiap kolom dan kapan kolom tersebut diperlukan, lihat dokumentasi referensi API UserEvent.

Piksel JavaScript

var user_event = {
  "eventType": "purchase-complete",
  "visitorId": "visitor-id",
  "productDetails": [{
    "product": {
      "id": "product-id"
    },
    "quantity": product-quantity
  }],
  "purchaseTransaction": {
    "revenue": revenue,
    "currencyCode": "currency-code"
  }
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'purchase-complete',
        'visitorId': 'visitor-id',
        // You can also define the visitor ID directly on
        // the Tag Manager tag.
        'productDetails': [{
          'product': {
            'id': 'product-id'
          },
          'quantity': product-quantity
        }],
        'purchaseTransaction': {
          'revenue': revenue,
          'currencyCode': 'currency-code'
        }
      }
    });
</script>

BigQuery

Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.

Mode untuk kolom wajib diisi ditetapkan ke REQUIRED atau REPEATED. Mode untuk kolom opsional ditetapkan ke NULLABLE.

Perhatikan bahwa eventTime diperlukan untuk mengimpor peristiwa dengan BigQuery. eventTime adalah string dengan format stempel waktu.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "experimentIds",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "attributionToken",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         },
         {
           "name": "priceInfo",
           "type": "RECORD",
           "mode": "NULLABLE",
           "fields": [
             {
               "name": "price",
               "type": "FLOAT",
               "mode": "REQUIRED"
             },
             {
               "name": "originalPrice",
               "type": "FLOAT",
               "mode": "NULLABLE"
             },
             {
               "name": "currencyCode",
               "type": "STRING",
               "mode": "REQUIRED"
             },
             {
               "name": "cost",
               "type": "FLOAT",
               "mode": "NULLABLE"
             }
           ]
         }
       ]
     },
     {
       "name": "quantity",
       "type": "INTEGER",
       "mode": "REQUIRED"
     }
   ]
 },
 {
   "name": "cartId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "purchaseTransaction",
   "type": "RECORD",
   "mode": "REQUIRED",
   "fields": [
     {
       "name": "id",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "revenue",
       "type": "FLOAT",
       "mode": "REQUIRED"
     },
     {
       "name": "tax",
       "type": "FLOAT",
       "mode": "NULLABLE"
     },
     {
       "name": "cost",
       "type": "FLOAT",
       "mode": "NULLABLE"
     },
     {
       "name": "currencyCode",
       "type": "STRING",
       "mode": "REQUIRED"
     }
   ]
 },
 {
   "name": "userInfo",
   "type": "RECORD",
   "mode": "NULLABLE",
   "fields": [
     {
       "name": "userId",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "ipAddress",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "userAgent",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "directUserRequest",
       "type": "BOOLEAN",
       "mode": "NULLABLE"
     }
   ]
 },
 {
   "name": "uri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "referrerUri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageViewId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Berikut menunjukkan format peristiwa pengguna search.

Objek penelusuran minimum yang diperlukan

Berikut adalah kolom minimum yang diperlukan agar Vertex AI Search untuk commerce menampilkan daftar hasil penelusuran:

  • searchQuery dibaca dari parameter search_term atau dari peristiwa view_search_results.
  • productDetails dibaca dari parameter items peristiwa view_item_list. Ini harus menyertakan daftar ID produk yang ditampilkan kepada pengguna akhir di halaman hasil penelusuran.
  • userEvents merekam semua informasi metadata yang perlu diketahui Retail API tentang cara pengguna akhir berinteraksi dengan situs pelanggan.

Contoh berikut hanya menampilkan kolom yang diperlukan dari format peristiwa pengguna search.

Saat mengimpor peristiwa, Anda harus memberikan stempel waktu di kolom eventTime dalam format yang ditentukan oleh RFC 3339.

Kolom lain mungkin diperlukan, bergantung pada metode API yang digunakan atau jika kolom tambahan digunakan. (Misalnya, jika peristiwa pengguna dikaitkan dengan entitas, pastikan untuk menentukan kolom entity.) Untuk mengetahui detail lengkap setiap kolom dan kapan kolom tersebut diperlukan, lihat dokumentasi referensi API UserEvent.

Piksel JavaScript

var user_event = {
  "eventType": "search",
  "visitorId": "visitor-id",
  "searchQuery": "search-query",
  "pageCategories": ["category1 > category2"],
  "productDetails": [
    {
      "product": {
        "id": "product-id1"
      }
    }, {
      "product": {
        "id": "product-id2"
      }
    }
  ]
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'search',
        'visitorId': 'visitor-id',
        // You can also define the visitor ID
        // directly on the Tag Manager tag.
        'searchQuery': 'search-query',
        'pageCategories': ['category1 > category2'],
        'productDetails': [
          {
            'product': {
              'id': 'product-id1'
            }
          }, {
            'product': {
              'id': 'product-id2'
            }
          }
        ]
      }
    });
</script>

BigQuery

Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.

Mode untuk kolom wajib diisi ditetapkan ke REQUIRED atau REPEATED. Mode untuk kolom opsional ditetapkan ke NULLABLE.

Perhatikan bahwa eventTime diperlukan untuk mengimpor peristiwa dengan BigQuery. eventTime adalah string dengan format stempel waktu.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     }
   ]
 },
 {
   "name": "searchQuery",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageCategories",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Pelengkapan otomatis

Kolom ini hanya diperlukan untuk peristiwa penelusuran jika Anda ingin menggunakan Pelengkapan Otomatis. Hal ini tidak diperlukan untuk penelusuran.

Contoh berikut menunjukkan kolom completionDetail saat pengguna mengetik "sepatu" dan mengklik saran kedua, "sepatu", dalam daftar saran untuk memicu peristiwa penelusuran. Jika pengguna tidak mengklik saran apa pun, kolom completionDetail akan tetap kosong.

eventType harus berupa "search".

completionAttributionToken adalah attributionToken dari respons completeQuery.

selectedSuggestion harus sama dengan searchQuery.

Piksel JavaScript

var user_event = {
  "eventType": "search",
  "visitorId": "visitor-id",
  "searchQuery": "search-query",
  "pageCategories": ["category1 > category2"],
  "productDetails": [
    {
      "product": {
        "id": "product-id1"
      }
    }, {
      "product": {
        "id": "product-id2"
      }
    }
  ]
  "completionDetail": {
    "completionAttributionToken": "completion_token",
    "selectedSuggestion": "search-query",
    "selectedPosition": completion_position
  }
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'search',
        'visitorId': 'visitor-id',
        // You can also define the visitor ID
        // directly on the Tag Manager tag.
        'searchQuery': 'search-query',
        'pageCategories': ['category1 > category2'],
        'productDetails': [
          {
            'product': {
              'id': 'product-id1'
            }
          }, {
            'product': {
              'id': 'product-id2'
            }
          }
        ]
        "completionDetail": {
          "completionAttributionToken": 'completion_token',
          "selectedSuggestion": 'search-query',
          "selectedPosition": completion_position
        }
      }
    });
</script>

BigQuery

Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.

Mode untuk kolom wajib diisi ditetapkan ke REQUIRED atau REPEATED. Mode untuk kolom opsional ditetapkan ke NULLABLE.

Perhatikan bahwa eventTime diperlukan untuk mengimpor peristiwa dengan BigQuery. eventTime adalah string dengan format stempel waktu.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     }
   ]
 },
 {
   "name": "searchQuery",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageCategories",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "completionDetail",
   "type": "RECORD"
   "mode": "NULLABLE"
   "fields": [
     {
       "name": "completionAttributionToken",
       "type": "STRING",
       "mode": "REQUIRED"
     },
     {
       "name": "selectedSuggestion",
       "type": "STRING",
       "mode": "REQUIRED"
     },
     {
       "name": "selectedPosition",
       "type": "INTEGER",
       "mode": "REQUIRED"
     }
    ]
 }
]

Tampilan halaman keranjang belanja

Berikut ini menunjukkan format data peristiwa pengguna shopping-cart-page-view.

Contoh berikut hanya menampilkan kolom yang diperlukan dari format peristiwa pengguna shopping-cart-page-view.

Berikan objek productDetails dan userEvents kecuali jika keranjang belanja kosong.

Saat mengimpor peristiwa, Anda harus memberikan stempel waktu di kolom eventTime dalam format yang ditentukan oleh RFC 3339.

Kolom lain mungkin diperlukan, bergantung pada metode API yang digunakan atau jika kolom tambahan digunakan. (Misalnya, jika peristiwa pengguna dikaitkan dengan entitas, pastikan untuk menentukan kolom entity.) Untuk mengetahui detail lengkap setiap kolom dan kapan kolom tersebut diperlukan, lihat dokumentasi referensi API UserEvent.

Piksel JavaScript

var user_event = {
  "eventType": "shopping-cart-page-view"",
  "visitorId": "VISITOR-ID"
  "cartId": "CART-ID",
  "productDetails": [{
      "product": {
        "id": "PRODUCT-ID"
      },
      "quantity": PRODUCT-QUANTITY
    }]
};

Ganti PRODUCT-ID, PRODUCT-QUANTITY, VISOTOR-ID, dan CART-ID dengan ID produk, jumlah produk, ID sesi, dan ID keranjang belanja Anda.

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'shopping-cart-page-view',
        'visitorId': 'VISITOR-ID'
        // You can also define the visitor ID
        // directly on the Tag Manager tag.
        'cartId': 'CART-ID',
        'productDetails': [{
            'product': {
              'id': 'PRODUCT-ID'
            },
            'quantity': PRODUCT-QUANTITY
          }]
      }
    });
</script>

Ganti PRODUCT-ID, PRODUCT-QUANTITY, VISOTOR-ID, dan CART-ID dengan ID produk, jumlah produk, ID sesi, dan ID keranjang belanja Anda.

BigQuery

Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.

Mode untuk kolom wajib diisi ditetapkan ke REQUIRED atau REPEATED. Mode untuk kolom opsional ditetapkan ke NULLABLE.

Perhatikan bahwa eventTime diperlukan untuk mengimpor peristiwa dengan BigQuery. eventTime adalah string dengan format stempel waktu.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "experimentIds",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "attributionToken",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     },
     {
       "name": "quantity",
       "type": "INTEGER",
       "mode": "REQUIRED"
     }
   ]
 },
 {
   "name": "cartId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "userInfo",
   "type": "RECORD",
   "mode": "NULLABLE",
   "fields": [
     {
       "name": "userId",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "ipAddress",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "userAgent",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "directUserRequest",
       "type": "BOOLEAN",
       "mode": "NULLABLE"
     }
   ]
 },
 {
   "name": "uri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "referrerUri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageViewId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Kolom peristiwa pengguna Google Analytics 4

Tabel berikut menunjukkan cara pemetaan kolom peristiwa pengguna Google Analytics 4 ke kolom Vertex AI Search untuk e-commerce.

Sebelum mengimpor atau merekam peristiwa pengguna dari Google Analytics 4, pastikan peristiwa pengguna Google Analytics 4 Anda menggunakan kolom berikut agar Vertex AI Search untuk e-commerce dapat mengintegrasikan data Anda dengan benar.

Google Analytics 4 Retail
ecommerce.purchase_revenue purchaseTransaction.revenue
event_name eventType
event_timestamp eventTime
items.item_id productDetails.product.id
items.price productDetails.product.priceInfo.price
items.quantity productDetails.quantity
Kunci:
event_params.key ditetapkan ke "currency"

Nilai:
event_params.value.string_value
productDetails.product.priceInfo.currencyCode
Kunci:
event_params.key ditetapkan ke "currency"

Nilai:
event_params.value.string_value
purchaseTransaction.currencyCode
Kunci:
event_params.key ditetapkan ke "search_term"

Nilai:
event_params.value.string_value
searchQuery
user_id userInfo.userId
user_pseudo_id visitorId

Langkah berikutnya