Meningkatkan Vertex AI Search untuk commerce dengan personalisasi CRM

Panduan penerapan API untuk Vertex AI Search untuk commerce ini menguraikan cara menggunakan data Customer Relationship Management (CRM) Anda untuk mempersonalisasi pengalaman penelusuran dalam Vertex AI Search untuk commerce. Dengan mengintegrasikan atribut pengguna dari CRM, Anda dapat memberikan hasil penelusuran yang lebih relevan, sehingga meningkatkan engagement dan konversi pelanggan. Dokumen ini menjelaskan proses mengintegrasikan atribut pengguna ini, termasuk pertimbangan data dan spesifikasi teknis.

Memilih data untuk personalisasi

Efektivitas personalisasi bergantung pada kualitas, cakupan, dan relevansi data CRM yang Anda berikan. Pertimbangkan informasi tentang pelanggan yang benar-benar akan memengaruhi hasil penelusuran yang mungkin ditawarkan oleh tenaga penjualan yang berpengetahuan luas.

Setelah menyelesaikan uji coba, Anda akan memiliki rekomendasi yang lebih kuat tentang data yang berdampak (dan tidak berdampak).

Kategori data ini merupakan informasi yang paling penting untuk perilaku pengguna situs e-commerce Anda.

  • Informasi geografis: Lokasi pelanggan, seperti negara bagian atau negara. Informasi kode pos terlalu terperinci. Lihat bagian tentang Perincian yang berlebihan untuk mengetahui informasi selengkapnya.
  • Data demografi: Karakteristik inti pelanggan, seperti usia dan gender.
    • Mengetahui kelompok usia pelanggan (18-24 tahun dibandingkan dengan 55-64 tahun) kemungkinan akan memengaruhi strategi tampilan produk yang berbeda untuk item seperti pakaian atau elektronik. Ini adalah data yang sangat berdampak.
  • Persona pelanggan: Misalnya, pembeli yang hemat atau berhemat dibandingkan dengan pembeli yang banyak berbelanja.

Kategori data yang cenderung tidak berdampak

Kategori data ini memiliki dampak kecil pada pengambilan data e-commerce Anda.

  • Atribut yang berasal dari histori pembelian:
    • Sistem kami sudah menggabungkan perilaku pembelian sebelumnya untuk personalisasi.
    • Mengirim atribut seperti user bought a green dress yesterday tidak diperlukan, karena informasi ini secara otomatis diambil dan digunakan.
    • Berfokus pada insight baru dari CRM Anda.
  • Data respons pemasaran tertentu, seperti Clicked email #7:
    • Meskipun relevan untuk analisis kampanye pemasaran, parameter ini tidak memberi tahu AI hasil penelusuran mana yang harus ditampilkan.

Kelengkapan data

Selain relevansi, kelengkapan data Anda di seluruh basis pengguna sangat memengaruhi kegunaannya untuk personalisasi. Atribut paling berharga jika tersedia untuk sebagian besar pengguna Anda, sehingga sistem dapat mengidentifikasi pola yang lebih luas dan menerapkan personalisasi secara lebih luas.

  • Sangat bermanfaat:
    • Atribut yang Anda miliki untuk sebagian besar pengguna, seperti shipping_state:MA jika tersedia untuk 70% basis pengguna Anda.
    • Hal ini memungkinkan pengenalan pola yang kuat dan penerapan personalisasi yang luas.
  • Kurang berguna:
    • Atribut hanya tersedia untuk sebagian kecil pengguna Anda, seperti hair_color:blonde jika hanya tersedia untuk 0,1% basis pengguna Anda.

Meskipun menarik, data yang jarang seperti ini menyulitkan sistem untuk mendapatkan sinyal personalisasi yang bermakna karena kurangnya contoh yang memadai. Sebagai gantinya, prioritaskan atribut yang menawarkan cakupan lebih luas di seluruh profil pelanggan Anda.

Panduan perincian data

Tingkat perincian data yang tepat sangat penting untuk personalisasi yang efektif. Data yang terlalu luas atau terlalu spesifik dapat mengurangi kemampuan sistem untuk mengidentifikasi pola yang bermakna. Tentukan atribut yang menyegmentasikan basis pelanggan Anda ke dalam grup yang dapat ditindaklanjuti.

Perincian yang sesuai

Contoh perincian yang sesuai adalah kolom untuk:

  • Gender
  • Negara bagian/Provinsi
  • Kota
  • Kelompok usia (seperti 30-39 tahun)

Tingkat perincian ini memberikan diferensiasi untuk personalisasi tanpa membuat sejumlah besar kategori yang sulit dikelola.

Perincian tidak memadai

Contoh perincian yang tidak memadai adalah country:US jika sebagian besar basis pelanggan Anda berada di Amerika Serikat. Hal ini karena atribut yang memiliki sedikit variasi di seluruh basis pelanggan Anda menawarkan nilai minimal untuk personalisasi.

Perincian yang berlebihan

Contoh perincian yang berlebihan adalah:

  • Kode pos yang tepat (zipcode:12345): Dengan puluhan ribu kemungkinan kode pos, sebagian besar akan memiliki sangat sedikit pelanggan terkait. Atomisasi ini mengurangi sinyal. Jika menggunakan kode pos, potong kode pos menjadi dua digit pertama untuk mencapai tingkat perincian yang lebih sesuai. Dua digit pertama kode pos dipetakan secara kasar ke area berukuran negara bagian.
  • Usia pasti (age:37): Hal ini akan membuat terlalu banyak kategori usia. Untuk mengurangi jumlahnya, kelompokkan data numerik seperti usia ke dalam ~10 bin atau bucket yang telah ditentukan sebelumnya (seperti age:30-39).

Panduan data lebih lanjut

Bagian ini membahas format data kategoris dan lainnya.

Format data kategorikal

Sistem ini dioptimalkan untuk data kategoris: nilai bernama yang berbeda, seperti:

  • state:MA
  • gender:male

Data numerik

Oleh karena itu, semua atribut numerik seperti usia, pendapatan, atau frekuensi harus dikelompokkan ke dalam bucket yang bermakna sebelum transmisi data.

Berikut adalah contoh yang salah dan benar:

  • age:37
  • age:30-39

Batasan data tambahan

  • Batas atribut: Setiap kueri mendukung hingga 100 pasangan nilai kunci. Dukungan untuk pasangan lainnya dapat ditambahkan dalam rilis mendatang.
  • Kunci duplikat: Kunci duplikat tidak diizinkan dalam satu kueri. Namun, beberapa nilai per kunci didukung.
  • PII yang dilarang: Anda tidak boleh mengirimkan Informasi Identitas Pribadi (PII) tertentu seperti alamat email pelanggan, Nomor Jaminan Sosial, nama lengkap, atau data keuangan, seperti nomor kartu kredit, dalam bentuk apa pun.

Integrasi API dan transmisi data

Data pelanggan harus dikirimkan dalam kolom query permintaan penelusuran Anda, bukan dalam peristiwa.

Struktur buffer protokol (untuk developer)

Atribut pengguna ditentukan dalam pesan SearchRequest sebagai peta string ke pesan StringList.

Lihat contoh protobuf

// A list of string values.
message StringList {
// String values.
repeated string values;
}

// Request message for [SearchService.Search][] method.
message SearchRequest {
...
// The user attributes that could be used for personalization of search.
maptring, StringList> user_attributes;
}

Contoh permintaan JSON

Contoh ini menggambarkan cara menyusun user_attributes dalam permintaan penelusuran JSON.

Lihat contoh JSON

{
...

user_attributes: [
       { key: "pets" # note keys can be hashed or unhashed
         value {
           values: "dog" # Note: these values MUST be hashed
           values: "cat"
         }
       },
       { key: "state"
         value {
           values: "CA"
         }
       }
      ]
}

Respons API

Tidak ada perubahan pada SearchResponse API saat menggunakan fitur ini. Personalisasi terjadi secara internal berdasarkan atribut pengguna yang diberikan.

Persyaratan hashing data

Untuk memastikan privasi dan keamanan data, nilai atribut harus di-hash. Kunci dapat dikirim di-hash atau tidak di-hash.

Kunci hashing

Kunci atribut, seperti pet_owner dan state, dapat dikirim dalam bentuk string aslinya atau di-hash. Keduanya dapat diterima.

Contoh:

  • Dapat diterimapet_owner
  • Dapat diterimahash(pet_owner)

Nilai hashing

Nilai atribut, seperti dog dan CA, harus di-hash. Pengiriman nilai teks biasa tidak diizinkan.

Contoh:

  • Dapat diterimahash(dog)
  • Tidak dapat diterima"Dog"

Hashing nilai kunci gabungan

Jika kunci dan nilai akan di-hash, keduanya harus di-hash secara terpisah. Jangan lakukan hashing pada string nilai kunci gabungan.

Contoh:

  • Dapat diterimapet_owner:hash("dog")
  • Dapat diterimahash(pet_owner):hash("dog")
  • Tidak dapat diterimahash("Pet_owner:dog")

Praktik terbaik untuk transmisi data

Bagian ini menguraikan beberapa praktik terbaik untuk transmisi data, termasuk cara menangani nilai berulang, konsistensi data, fleksibilitas penamaan kunci atribut, dan penanganan berbagai profil pengguna.

Cara menangani nilai berulang

Jika pengguna memiliki beberapa nilai untuk satu atribut, seperti memiliki dan kucing, berikan semua nilai dalam satu key dalam StringList.

Contoh kode ini menunjukkan contoh penggunaan yang salah dan benar:

Lihat sampel

// This is incorrect because it sends the same key multiple times for different
// values, causing only one of the two values for pets to be used, choosing one
// value or the other in an inconsistent manner.
{
  key: "pets",
  value {
    values: "dog"
  }
},
{
  key: "pets",
  value {
    values: "cat"
  }
}

Lihat sampel

{
  key: "pets",
  value {
    values: "dog",
    values: "cat"
  }
}

Konsistensi data

Pertahankan konsistensi yang ketat dalam ejaan, spasi, dan kapitalisasi semua kunci dan nilai. Sistem menafsirkan variasi kecil sekalipun sebagai kategori yang berbeda.

Misalnya, State:MA, state:MA, state:ma, STATE:MA, dan residence_state:MA akan diperlakukan sebagai atribut yang terpisah dan tidak terkait.

Fleksibilitas penamaan kunci atribut

Meskipun konsisten, konvensi penamaan khusus untuk kunci atribut Anda (misalnya, pet_owner, pets, codeabc) tidak secara inheren memengaruhi kemampuan sistem untuk menggunakan data. Aspek pentingnya adalah konsistensi data yang Anda kirimkan.

Cara menangani profil pengguna yang bervariasi

Pengguna yang berbeda dapat memiliki kumpulan atribut yang berbeda.

  • Contoh: Pengguna A mungkin memiliki age:30-39 dan pet:dog, sedangkan Pengguna B memiliki gender:male, tetapi tidak memiliki data hewan peliharaan atau usia. Sistem menangani profil parsial dengan baik.

Pembaruan data dinamis

Atribut pengguna dapat berubah dari waktu ke waktu. Anda dapat memperbarui profil pengguna dengan informasi baru saat tersedia.

  • Contoh: Pengguna yang awalnya diidentifikasi dengan age:30-39 dan pet:dog dapat menambahkan state:MA nanti jika lokasinya diperoleh.

Konsistensi lintas platform

Berupayalah untuk mengirimkan atribut yang konsisten untuk pengguna tertentu di semua titik kontak, seperti aplikasi seluler atau situs. Hal ini memastikan pengalaman personalisasi yang terpadu.

  • Optimal: Pengguna A secara konsisten age:30-39 di aplikasi seluler dan situs.
  • Suboptimal: Pengguna A age:30-39 di aplikasi seluler, tetapi hanya pet:dog di situs.

Cara menangani data yang hilang

Jika informasi tertentu tentang pengguna tidak tersedia, jangan mengirimkan placeholder atau nilai kosong. Cukup hapus pasangan nilai kunci tersebut dari permintaan.

  • Contoh: Hindari pet:unknown atau pet:

Akses SDK dan library

Akses ke library ini dapat ditemukan di versi berikut dan yang lebih baru: