Mengimpor informasi katalog

Halaman ini menjelaskan cara mengimpor informasi katalog dan terus memperbaruinya.

Prosedur impor di halaman ini berlaku untuk rekomendasi dan penelusuran. Setelah mengimpor data, kedua layanan dapat menggunakan data tersebut, sehingga Anda tidak perlu mengimpor data yang sama dua kali jika menggunakan kedua layanan.

Anda dapat mengimpor data produk dari BigQuery atau menentukan data secara inline dalam permintaan. Setiap prosedur ini adalah impor satu kali, kecuali penautan Merchant Center. Jadwalkan impor katalog reguler (sebaiknya setiap hari) untuk memverifikasi bahwa katalog Anda sudah terbaru.

Lihat Memastikan katalog Anda selalu ter-update.

Anda juga dapat mengimpor item produk satu per satu. Untuk mengetahui informasi selengkapnya, lihat Mengupload produk.

Sebelum memulai

Sebelum mulai mengimpor katalog, Anda harus:

  1. Siapkan project Anda.
  2. Membuat akun layanan.
  3. Tambahkan akun layanan ke lingkungan lokal Anda.

Lihat Prasyarat penyiapan untuk mengetahui informasi selengkapnya.

Pertimbangan impor katalog

Bagian ini menjelaskan metode yang dapat digunakan untuk mengimpor data katalog secara batch, kapan Anda dapat menggunakan setiap metode, dan beberapa batasannya.

BigQuery Deskripsi Mengimpor data dari tabel BigQuery yang dimuat sebelumnya yang menggunakan skema Vertex AI Search untuk e-commerce. Dapat dilakukan menggunakan konsol Google Cloud atau curl.
Kapan digunakan Jika Anda memiliki katalog produk dengan banyak atribut. Impor BigQuery menggunakan skema Vertex AI Search untuk Commerce, yang memiliki lebih banyak atribut produk daripada opsi impor lainnya, termasuk atribut kustom key/value.

Jika Anda memiliki data dalam jumlah besar. Impor BigQuery tidak memiliki batas data.

Jika Anda sudah menggunakan BigQuery.
Batasan Memerlukan langkah tambahan untuk membuat tabel BigQuery yang dipetakan ke skema Vertex AI Search untuk commerce.
Cloud Storage Deskripsi Mengimpor data dalam format JSON dari file yang dimuat di bucket Cloud Storage. Setiap file harus berukuran 2 GB atau lebih kecil dan hingga 100 file sekaligus dapat diimpor. Impor dapat dilakukan menggunakan konsol Google Cloud atau curl. Menggunakan format data JSON Product, yang memungkinkan atribut kustom.
Kapan digunakan Jika Anda perlu memuat data dalam jumlah besar dalam satu langkah.
Batasan Tidak ideal untuk katalog dengan pembaruan inventaris dan harga yang sering karena perubahan tidak langsung ditampilkan.
Impor inline Deskripsi Impor menggunakan panggilan ke metode Product.import. Menggunakan objek ProductInlineSource, yang memiliki lebih sedikit atribut katalog produk daripada skema Vertex AI Search untuk Commerce, tetapi mendukung atribut kustom.
Kapan digunakan Jika Anda memiliki data katalog datar dan non-relasional atau frekuensi pembaruan kuantitas atau harga yang tinggi.
Batasan Maksimal 100 item katalog dapat diimpor sekaligus. Namun, banyak langkah pemuatan dapat dilakukan; tidak ada batasan item.

Tutorial

Bagian ini membahas berbagai metode impor katalog dengan tutorial video dan shell.

Video tutorial

Tonton video ini untuk mempelajari cara mengimpor katalog menggunakan Retail API.

Tutorial mengimpor katalog dari BigQuery

Tutorial ini menunjukkan cara menggunakan tabel BigQuery untuk mengimpor data katalog dalam jumlah besar tanpa batas.


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

Pandu saya


Tutorial mengimpor katalog dari Cloud Storage

Tutorial ini menunjukkan cara mengimpor sejumlah besar item ke katalog.


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

Pandu saya


Tutorial inline mengimpor data katalog

Tutorial ini menunjukkan cara mengimpor produk ke dalam katalog secara inline.


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

Pandu saya


Praktik terbaik impor katalog

Data berkualitas tinggi diperlukan untuk menghasilkan hasil berkualitas tinggi. Jika data Anda tidak memiliki kolom atau memiliki nilai placeholder, bukan nilai sebenarnya, kualitas prediksi dan hasil penelusuran Anda akan terpengaruh.

Saat mengimpor data katalog, pastikan Anda menerapkan praktik terbaik berikut:

  • Pastikan untuk membedakan produk utama dan produk varian dengan cermat. Sebelum mengupload data apa pun, lihat Tingkat produk.

    • Mengubah konfigurasi tingkat produk setelah berupaya keras mengimpor data. Item utama, bukan item varian, ditampilkan sebagai hasil penelusuran atau rekomendasi.

    • Contoh: Jika grup SKU utama adalah Kaus V-neck, maka model rekomendasi akan menampilkan kaus V-neck, dan mungkin, kaus crew-neck dan scoop-neck. Namun, jika varian tidak digunakan dan setiap SKU adalah SKU utama, maka setiap kombinasi warna atau ukuran kemeja V-neck akan ditampilkan sebagai item yang berbeda di panel rekomendasi: Kemeja V-neck cokelat, ukuran XL, Kemeja V-neck cokelat, ukuran L, hingga Kemeja V-neck putih, ukuran M, Kemeja V-neck putih, ukuran S.

    • Koleksi dapat dikenali bersama selama ID varian panjang disertakan bersama dengan ID produk utama di collectionMemberIds[]. Hal ini menyebabkan kumpulan produk, yang memungkinkan pengguna membeli satu atau beberapa produk dalam set, dicatat dalam peristiwa pengguna, dengan mengatribusikan seluruh set ke pembelian. Hal ini memfasilitasi penayangan produk lain dalam koleksi tertentu kepada pengguna yang sama dalam kueri terkait di masa mendatang.

    • Contoh: Pengguna sebelumnya membeli sarung duvet, sehingga produk yang cocok dalam koleksi seprai, seperti sarung bantal, akan ditampilkan.

  • Perhatikan batas impor item produk.

    • Untuk impor massal dari Cloud Storage, ukuran setiap file harus 2 GB atau lebih kecil. Anda dapat menyertakan hingga 100 file sekaligus dalam satu permintaan impor massal.

    • Untuk impor inline, impor tidak lebih dari 5.000 item produk sekaligus.

  • Pastikan informasi katalog yang diperlukan disertakan dan benar. Jangan gunakan nilai placeholder.

  • Sertakan sebanyak mungkin informasi katalog opsional.

  • 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.

  • Perbarui katalog Anda, sebaiknya setiap hari. Menjadwalkan impor katalog berkala mencegah kualitas model menurun seiring waktu. Anda dapat menjadwalkan impor otomatis dan berulang saat mengimpor katalog menggunakan konsol Search for commerce. Atau, Anda dapat menggunakan Google Cloud Scheduler untuk mengotomatiskan impor.

  • Jangan merekam peristiwa pengguna untuk item produk yang belum diimpor.

  • Setelah mengimpor informasi katalog, tinjau informasi pelaporan dan logging error untuk project Anda. Jika Anda menemukan lebih dari beberapa error, tinjau error tersebut, perbaiki masalah proses yang menyebabkan error.

Pipeline penyerapan data Vertex AI Search untuk commerce mencakup data katalog produk dan data peristiwa pengguna. Aliran data ini memberikan fondasi untuk pelatihan model yang andal dan evaluasi berkelanjutan melalui mekanisme masukan. Penyerapan data yang akurat dan lengkap bukan hanya prasyarat, tetapi juga proses berkelanjutan yang penting untuk mempertahankan kemampuan adaptasi model pokok. Hal ini, pada gilirannya, secara langsung memengaruhi kualitas dan relevansi hasil penelusuran, sehingga memberikan laba atas investasi yang signifikan.

Pertimbangkan praktik terbaik penyerapan data ini saat merancang solusi penelusuran e-commerce Anda.

Impor massal, streaming real-time, atau keduanya?

Vertex AI Search untuk commerce menawarkan dua metode utama untuk penyerapan katalog:

  • Impor massal

  • Streaming real-time

Pendekatan ganda ini mengakomodasi beragam kebutuhan arsitektur berbagai backend pelanggan. Tidak ada persyaratan untuk memilih satu metode saja; mode penyerapan hibrida dapat digunakan, dengan menggunakan impor massal dan pembaruan streaming berdasarkan persyaratan tertentu.

Impor massal sangat ideal saat menangani penambahan, penghapusan, atau pembaruan skala besar pada ribuan produk sekaligus. Sebaliknya, streaming real-time sangat cocok jika update berkelanjutan diperlukan untuk produk dengan volume yang relatif lebih kecil. Pilihan antara metode ini bergantung pada sifat katalog produk, frekuensi pembaruan, dan arsitektur keseluruhan sistem backend Anda.

Fungsi impor massal mendukung tiga sumber data berbeda:

  • BigQuery: BigQuery memfasilitasi modifikasi data katalog yang cepat, memungkinkan penentuan tanggal partisi selama impor, dan memungkinkan transformasi data yang efisien melalui kueri SQL.
  • Google Cloud Storage: Cloud Storage mengharuskan kepatuhan terhadap format tertentu, seperti JSON, dan batasan file. Pengguna bertanggung jawab untuk mengelola struktur bucket, chunking file, dan aspek lain dari proses impor. Selain itu, mengedit katalog secara langsung dalam Cloud Storage bisa merepotkan, dan meskipun berpotensi hemat biaya, metode ini tidak memiliki fleksibilitas seperti metode lainnya.
  • Data inline: Untuk katalog yang besar, impor inline mungkin bukan opsi yang paling dapat diskalakan karena batasan ukuran. Cadangkan penggunaannya untuk update kecil atau pengujian eksperimental.

Untuk skenario yang melibatkan volume tinggi update katalog produk (ribuan perubahan, penambahan, atau penghapusan produk) dalam jangka waktu singkat dan pada interval reguler, pendekatan gabungan antara impor massal dan streaming real-time dapat sangat efektif. Siapkan pembaruan di BigQuery atau Cloud Storage dan lakukan impor massal inkremental secara berkala, seperti setiap satu atau dua jam. Metode ini secara efisien mengelola update skala besar sekaligus meminimalkan gangguan.

Untuk pembaruan yang lebih kecil dan tidak terlalu sering atau yang memerlukan pembaruan langsung dalam katalog, gunakan API streaming real-time. Dalam pendekatan hybrid, streaming real-time dapat mengisi kesenjangan antara impor massal, sehingga memastikan katalog Anda tetap terbaru. Strategi ini menyeimbangkan antara melakukan panggilan REST API individual (untuk memperbaiki produk) dan melakukan perubahan massal, sehingga mengoptimalkan efisiensi dan responsivitas dalam pengelolaan katalog Vertex AI Search untuk commerce.

Strategi percabangan untuk pengelolaan katalog

Pertahankan katalog terpadu dalam satu cabang, bukan memiliki katalog yang berbeda-beda di beberapa cabang. Praktik ini menyederhanakan update katalog dan mengurangi risiko inkonsistensi selama pengalihan cabang.

Strategi percabangan umum berikut efektif untuk pengelolaan katalog.

Pembaruan cabang tunggal

Tetapkan cabang aktif sebagai default dan perbarui terus-menerus saat perubahan katalog terjadi. Untuk update massal, gunakan fungsi impor selama periode traffic rendah untuk meminimalkan gangguan. Gunakan API streaming untuk pembaruan inkremental yang lebih kecil atau gabungkan ke dalam potongan yang lebih besar untuk impor reguler.

Peralihan cabang

Ada beberapa pilihan untuk mengelola berbagai cabang:

  • Menggunakan cabang untuk penyiapan dan verifikasi:

    • Beberapa engineer situs e-commerce memilih pendekatan pengalihan cabang, dengan katalog diperbarui dalam cabang non-live, lalu dijadikan cabang default (live) saat siap untuk produksi. Hal ini memungkinkan persiapan katalog untuk hari berikutnya dilakukan lebih awal. Pembaruan dapat dilakukan menggunakan impor massal atau streaming ke cabang non-live, sehingga memastikan transisi yang lancar selama waktu traffic rendah.
    • Pilihan antara strategi ini bergantung pada persyaratan spesifik, frekuensi update, dan penyiapan infrastruktur Anda. Namun, apa pun strategi yang dipilih, mempertahankan katalog terpadu dalam satu cabang sangat penting untuk performa yang optimal dan hasil penelusuran yang konsisten di Vertex AI Search untuk e-commerce.
  • Menggunakan cabang untuk cadangan:

    • Satu cabang aktif berfokus pada penyerapan dan pemrosesan berkelanjutan untuk pembaruan produk agar indeks Vertex AI Search untuk commerce tetap terbaru dalam waktu hampir real-time.
    • Cabang lain berfokus pada pembuatan snapshot harian data yang diubah di Retail Search, yang berfungsi sebagai mekanisme penggantian yang andal jika terjadi kerusakan data atau masalah pada cabang 0.
    • Cabang ketiga berfokus pada pembuatan snapshot mingguan dari tanggal yang diubah. Dengan cara ini, pelanggan dapat memiliki cadangan berusia satu hari dan cadangan berusia satu minggu di cabang yang berbeda.

Menghapus permanen cabang katalog

Jika Anda mengimpor data katalog baru ke cabang yang ada, penting agar cabang katalog kosong untuk menjaga integritas data yang diimpor ke cabang. Jika cabang kosong, Anda dapat mengimpor data katalog baru, dan menautkan cabang ke akun penjual.

Jika Anda menayangkan traffic penelusuran atau prediksi langsung dan berencana menghapus cabang default, pertimbangkan untuk menentukan cabang lain sebagai default terlebih dahulu sebelum menghapus. Karena cabang default akan menyajikan hasil kosong setelah dihapus, menghapus cabang default aktif dapat menyebabkan gangguan.

Untuk menghapus data dari cabang katalog, selesaikan langkah-langkah berikut:

  1. Buka halaman Data> di konsol Search for commerce.

    Buka halaman Data

  2. Pilih cabang katalog dari kolom Nama cabang.

  3. Dari menu tiga titik di samping kolom Nama cabang, pilih Hapus cabang.

    Pesan akan ditampilkan untuk memperingatkan Anda bahwa Anda akan menghapus semua data di cabang serta atribut apa pun yang dibuat untuk cabang tersebut.

  4. Masukkan cabang, lalu klik Konfirmasi untuk menghapus data katalog dari cabang.

    Operasi yang berjalan lama dimulai untuk menghapus data dari cabang katalog. Setelah operasi penghapusan selesai, status penghapusan akan ditampilkan di daftar Katalog produk di jendela Status aktivitas.

Pembaruan inventaris di Vertex AI Search untuk commerce

Bagian ini menjelaskan cara mengoptimalkan performa Vertex AI Search untuk commerce dengan melakukan update inventaris secara rutin.

Streaming real-time

  • Untuk data dinamis seperti informasi inventaris (harga, ketersediaan) dan detail tingkat toko, termasuk status pemenuhan dan harga khusus toko, streaming real-time adalah satu-satunya opsi dalam Vertex AI Search untuk commerce.
  • Perbedaan ini muncul karena sifat fluktuasi inventaris yang sering terjadi dibandingkan dengan data katalog produk yang relatif statis. Ketersediaan produk dapat berubah beberapa kali setiap hari, sementara deskripsi atau atribut tetap relatif konstan.
  • Frekuensi pembaruan tingkat toko semakin meningkat seiring dengan jumlah lokasi retail.

Pembaruan asinkron

  • Untuk mengakomodasi perubahan yang cepat ini, Vertex AI Search untuk commerce menggunakan update inventaris asinkron menggunakan API yang menampilkan ID tugas.
  • Proses update tidak dianggap selesai hingga status tugas di-polling dan dikonfirmasi, yang berpotensi menyebabkan sedikit penundaan mulai dari beberapa detik hingga beberapa menit.

Pembaruan tidak berurutan

  • Fitur penting dari sistem ini adalah kemampuan untuk memperbarui informasi inventaris sebelum produk yang sesuai dimasukkan ke dalam katalog. Hal ini mengatasi skenario umum saat pipeline data produk dan inventaris beroperasi secara independen dalam retailer, yang terkadang menyebabkan informasi inventaris tersedia sebelum katalog produk diperbarui. Saat memperbarui inventaris, gunakan opsi allowMissing untuk menangani pembaruan inventaris yang tidak berurutan dibandingkan dengan produk.
  • Dengan mengizinkan pembaruan inventaris mendahului penyerapan katalog, Vertex AI Search untuk commerce mengakomodasi perbedaan pipeline ini, sehingga memastikan data inventaris yang akurat tersedia bahkan untuk produk yang baru diperkenalkan.
  • Namun, informasi inventaris untuk produk dipertahankan selama 24 jam dan akan dihapus jika produk yang cocok tidak di-ingest dalam jangka waktu tersebut. Mekanisme ini memastikan konsistensi data dan mencegah informasi inventaris yang sudah tidak berlaku tetap ada dalam sistem.

Pemeriksaan awal katalog produk untuk pengujian A/B yang andal di Vertex AI Search untuk commerce

Bagian ini membahas cara menjalankan pemeriksaan awal pada data katalog produk.

Memastikan kesamaan pembaruan katalog yang konsisten

  • Sebagai persiapan untuk pengujian A/B dalam Vertex AI Search untuk commerce, menjaga paritas yang ketat antara katalog lama (kontrol) dan katalog Vertex AI Search untuk commerce (pengujian) sangat penting. Ketidakseimbangan antara keduanya dapat berdampak negatif pada pengujian A/B, sehingga menyebabkan pengamatan yang miring dan hasil yang berpotensi tidak valid. Misalnya, inkonsistensi dalam ketersediaan produk, harga, atau bahkan perbedaan atribut kecil dapat menimbulkan bias yang tidak diinginkan ke dalam data pengujian.
  • Untuk mengurangi risiko ini, Anda harus merancang proses update paralel untuk katalog kontrol dan pengujian, serta menghindari update berurutan jika memungkinkan. Tujuannya adalah memaksimalkan waktu saat kedua katalog disinkronkan. Di sisi lain, update serial dapat menyebabkan penundaan di satu jalur atau jalur lainnya. Penundaan ini dapat menyebabkan ketidakcocokan katalog sementara, di mana suatu produk mungkin tersedia di satu katalog, tetapi tidak di katalog lainnya. Atau, produk yang baru ditambahkan muncul di satu katalog lebih cepat daripada di katalog lainnya. Perbedaan tersebut dapat memengaruhi perilaku pengguna, klik, dan pembelian secara signifikan, yang pada akhirnya menyebabkan perbandingan yang tidak adil dan hasil pengujian A/B yang tidak akurat.
  • Dengan memprioritaskan pembaruan paralel dan berupaya mencapai paritas katalog yang konsisten, retailer dapat memastikan persaingan yang adil untuk pengujian A/B dalam Vertex AI Search untuk commerce. Pendekatan ini memungkinkan analisis hasil pengujian yang tidak bias dan adil, sehingga menghasilkan insight yang lebih andal dan pengambilan keputusan yang lebih tepat.

Mencapai kesamaan data katalog

  • Kedalaman dan akurasi pemahaman produk model penelusuran e-commerce bergantung pada kelengkapan dan kualitas informasi katalog produk yang mendasarinya. Makin komprehensif data produk dalam katalog, makin siap model memahami dan mengklasifikasikan produk secara efektif.
  • Jadi, sebagai persiapan untuk pengujian A/B, Anda harus memastikan bahwa data produk yang diupload ke katalog lama (kontrol) dan katalog Vertex AI Search untuk e-commerce (pengujian) sama persis. Setiap perbedaan informasi produk antara kedua lingkungan ini dapat secara signifikan memengaruhi hasil pengujian A/B.
  • Misalnya, jika mesin telusur lama mendapatkan manfaat dari katalog yang lebih kaya atau lebih luas dibandingkan dengan Vertex AI Search untuk commerce, hal ini akan menciptakan keuntungan yang tidak adil. Informasi yang tidak ada dalam katalog Vertex AI Search untuk commerce dapat menjadi masalah penting bagi pemahaman dan klasifikasi produk, yang berpotensi menyebabkan hasil penelusuran yang tidak akurat dan perbandingan performa yang menyesatkan. Mendeteksi perbedaan tersebut bisa jadi sulit dilakukan dengan alat eksternal dan sering kali memerlukan pemeriksaan manual yang cermat terhadap kedua katalog.
  • Dengan memastikan secara cermat bahwa kedua katalog berisi data produk yang sama dengan tingkat detail yang sama, retailer dapat menciptakan kondisi yang setara untuk pengujian A/B di Vertex AI Search untuk e-commerce. Pendekatan ini mendorong perbandingan yang adil dan tidak bias terhadap kedua mesin telusur, sehingga memfasilitasi evaluasi yang akurat terhadap performa dan kemampuan masing-masing.

Perencanaan pemulihan dari bencana

Rencana pemulihan dari bencana yang dipersiapkan dengan baik memastikan kemampuan penelusuran e-commerce Anda tetap beroperasi dan responsif, sehingga meminimalkan dampak pada pengalaman pelanggan dan perolehan pendapatan. Rencana ini akan memungkinkan pemulihan katalog yang cepat untuk mengatasi potensi kegagalan pipeline penyerapan peristiwa pengguna dan katalog, terlepas dari penyebab yang mendasarinya.

Penggunaan BigQuery untuk penahapan data memberikan keuntungan tersendiri dalam pemulihan dari bencana. Jika data peristiwa pengguna atau katalog saat ini dalam Vertex AI Search untuk e-commerce tidak jauh berbeda dengan snapshot terbaru yang disimpan di BigQuery, panggilan API impor dapat memulai pemulihan cepat. Pendekatan ini meminimalkan periode nonaktif dan memastikan fungsi penelusuran tetap beroperasi.

Sebaliknya, jika BigQuery tidak terintegrasi ke dalam pipeline data Anda, mekanisme alternatif harus diterapkan untuk memuat ulang katalog dengan cepat dari status baik yang diketahui. Mekanisme ini dapat melibatkan sistem pencadangan, replikasi data, atau strategi failover lainnya.

Dengan memasukkan pertimbangan pemulihan dari bencana ini ke dalam arsitektur Vertex AI Search untuk commerce, Anda dapat meningkatkan keandalan sistem dan mempertahankan kelangsungan bisnis bahkan saat terjadi gangguan yang tidak terduga.

Merencanakan ketersediaan tinggi

Saat mengupload katalog produk ke Vertex AI Search, penting untuk mempertimbangkan cara berbagai layanan menangani regionalitas untuk mendesain pipeline penyerapan data yang tangguh. Google Cloud

Untuk membuat pipeline penyerapan yang siap untuk pemulihan dari bencana menggunakan Dataflow, deploy tugas Anda di beberapa region menggunakan salah satu desain berikut:

  • Aktif/aktif: Instance Dataflow di beberapa region secara aktif memproses data secara bersamaan.
  • Aktif/pasif: Instance Dataflow di satu region aktif, sementara instance di region lain tetap dalam status standby.

Berikut cara menerapkan desain ini dengan Pub/Sub dan Dataflow:

  • Layanan global: Beberapa layanan, seperti Pub/Sub, beroperasi secara global. Google Cloud mengelola ketersediaannya sesuai dengan Perjanjian Tingkat Layanan (SLA) tertentu.
  • Layanan regional: Layanan lain, seperti Dataflow, yang mungkin Anda gunakan untuk mengubah dan menyerap data ke Vertex AI Search, bersifat regional. Anda bertanggung jawab untuk mengonfigurasi komponen ini untuk ketersediaan tinggi dan pemulihan dari bencana (disaster recovery).

Misalnya, saat memanfaatkan BigQuery untuk menyimpan data secara persisten, BigQuery dapat dikonfigurasi menjadi multi-regional sehingga redundansi dan ketersediaan data ditangani secara otomatis oleh Google Cloud. Demikian pula saat menggunakan Cloud Storage, Cloud Storage dapat dikonfigurasi menjadi multi-regional.

Desain aktif/aktif

Desain aktif/aktif menggunakan atribut pesan Pub/Sub dan filter langganan untuk memastikan setiap pesan diproses tepat satu kali oleh tugas Dataflow aktif di region tertentu.

  1. Menambahkan atribut pesan: Saat memublikasikan pesan ke topik Pub/Sub, seperti update produk, sertakan atribut yang menunjukkan target wilayah. Contoh:

    • region: us-central1
    • region: us-east1
  2. Konfigurasi filter langganan: Untuk setiap pipeline Dataflow regional, konfigurasikan langganan Pub/Sub-nya untuk menarik hanya pesan yang cocok dengan regionnya menggunakan filter pesan. Misalnya, langganan untuk tugas Dataflow us-central1 akan memiliki filter seperti attributes.region = "us-central1".

  3. Failover: Jika suatu region tidak tersedia, perbarui sistem publikasi upstream Anda untuk memberi tag pada semua pesan baru dengan atribut untuk region yang responsif. Tindakan ini mengalihkan pemrosesan pesan ke instance Dataflow di region failover.

Beberapa komponen yang digunakan dalam arsitektur dapat dikonfigurasi menjadi multi-regional secara default. Misalnya, saat memanfaatkan BigQuery untuk menyimpan data secara persisten, BigQuery dapat dikonfigurasi menjadi multi-regional sehingga redundansi dan ketersediaan data ditangani secara otomatis oleh Cloud Storage. Demikian pula, saat menggunakan Cloud Storage, Cloud Storage dapat dikonfigurasi menjadi multi-regional.

Desain aktif/pasif

Desain ini hanya melibatkan satu pipeline Dataflow regional yang secara aktif menarik pesan dari Pub/Sub setiap saat.

  1. Lampirkan satu langganan: Pastikan hanya langganan Pub/Sub untuk tugas Dataflow di region aktif yang dilampirkan dan menarik pesan. Langganan untuk tugas Dataflow di region pasif harus dibuat, tetapi tetap tidak terlampir.

  2. Failover: Jika region aktif mengalami kegagalan, secara manual atau terprogram:

    • Lepaskan langganan Pub/Sub yang terkait dengan tugas Dataflow region yang gagal.
    • Lampirkan langganan Pub/Sub yang terkait dengan tugas Dataflow di salah satu region pasif (standby).

Tindakan ini akan mentransfer beban pemrosesan pesan ke region yang baru diaktifkan.

Ketahanan dan forensik

Menggunakan BigQuery dalam desain penyerapan data dapat menghasilkan penanganan ketahanan dan pembuatan kemampuan untuk forensik dan proses debug. Produk dan inventaris yang diserap langsung dengan API patch dan addLocalInventory menyiratkan bahwa saat data dikirim ke Vertex AI Search untuk commerce, tidak ada jejak yang tersisa dari pembaruan produk dan inventaris. Pengguna Anda mungkin ingin tahu mengapa produk tidak muncul seperti yang mereka harapkan. Memiliki area penyiapan yang dibuat dengan BigQuery dengan histori data yang lengkap akan memfasilitasi penyelidikan dan penelusuran bug semacam ini.

Arsitektur referensi

Dalam arsitektur ini, penyerapan data biasanya memiliki tahap mentah, kurasi, dan penggunaan yang semuanya dibangun di BigQuery. Sistem akan memindahkan data di antara tahap menggunakan Dataflow dan mengatur untuk mengotomatiskan semua ini menggunakan alur kerja cloud:

  • Sistem akan mengambil data mentah apa adanya dan memberi stempel waktu untuk mempertahankan histori. Data ini tidak berubah sehingga pelanggan akan menganggapnya sebagai sumber yang benar.
  • Kemudian, sistem akan mengubah data ke tahap yang telah dikurasi dan memberi tag waktu lagi. Dengan begitu, pelanggan akan tahu kapan transformasi terjadi dan jika ada yang gagal.
  • Terakhir, sistem akan membuat tampilan di tahap konsumsi pada data yang dikurasi menggunakan waktu saat sistem menandai data sebelumnya. Dengan begitu, pelanggan akan tahu persis data yang telah diubah mana yang seharusnya diserap ke Vertex AI Search untuk commerce.

Branch 0, branch 1, dan branch 2 berfungsi sebagai cadangan langsung, cadangan satu hari, dan cadangan satu minggu. Data yang dimasukkan langsung ke cabang 0 diagregasikan dan diindeks ke cabang 1 setiap hari dan cabang 2 setiap minggu. Dengan cara ini, setiap kerusakan data dapat di-roll back sehingga meningkatkan kelangsungan bisnis dan ketahanan sistem.

Selain itu, analisis dan penelusuran kesalahan dapat dilakukan karena seluruh histori dan silsilah data dipertahankan dalam set data BigQuery global.

Merencanakan kasus ekstrem dengan penyerapan katalog

Segera setelah mekanisme inti untuk penyerapan katalog di Vertex AI Search untuk commerce ditetapkan, pendekatan proaktif melibatkan penilaian ketahanannya terhadap berbagai kasus ekstrem. Meskipun beberapa skenario ini mungkin tidak langsung relevan dengan persyaratan bisnis spesifik Anda, memasukkannya ke dalam desain backend Anda dapat memberikan perlindungan yang sangat berharga untuk masa depan.

Langkah persiapan ini mencakup peninjauan kemampuan pipeline data Anda untuk menangani skenario yang tidak terduga atau kasus ekstrem, sehingga memastikan ketahanan dan kemampuannya beradaptasi dengan permintaan yang terus berubah. Dengan mengantisipasi potensi tantangan dan mengatasinya secara proaktif, Anda dapat mengurangi gangguan di masa mendatang dan mempertahankan alur data produk yang lancar ke dalam sistem penelusuran retail Anda.

Untuk melakukannya, logika Dataflow harus dibuat sedemikian rupa sehingga:

  • Memvalidasi setiap item data mentah agar cocok dengan skema yang tepat. Kontrak data mentah harus ditentukan di awal dan setiap elemen data harus selalu dicocokkan dengan kontrak. Jika validasi gagal, elemen data mentah harus diberi stempel waktu dan dipertahankan di tabel mentah yang gagal di BigQuery dengan error sebenarnya yang dimaksudkan untuk forensik.

    Contoh kegagalan tersebut dapat berupa:

    • Atribut tertentu yang bukan bagian dari kontrak tiba-tiba muncul di elemen data mentah.
    • Atribut wajib tertentu tidak ada dalam elemen data mentah.
  • Memvalidasi setiap item data mentah untuk transformasi ke dalam format Vertex AI Search untuk commerce. Ada beberapa kolom wajib diisi yang diperlukan oleh Vertex AI Search untuk commerce untuk penyerapan produk. Setiap elemen data mentah kini harus diperiksa kembali untuk memastikan apakah dapat berhasil diubah menjadi format skema Vertex AI Search untuk commerce. Jika transformasi gagal, elemen data mentah harus diberi stempel waktu dan dipertahankan di tabel kurasi yang gagal di BigQuery dengan pesan error sebenarnya yang dapat membantu penyelidikan.

    Contoh kegagalan tersebut dapat berupa:

    • Atribut tertentu seperti harga tidak dapat diformat menjadi angka karena elemen data mentah memilikinya sebagai alfanumerik.
    • Nama produk tidak ada sama sekali.

Contoh ini menunjukkan contoh skema tabel BigQuery untuk mempertahankan semua kegagalan untuk proses debug:

Melihat contoh skema tabel BigQuery

[
    {
      "mode": "REQUIRED",
      "name": "ingestedTimestamp",
      "type": "TIMESTAMP"
    },
    {
      "mode": "REQUIRED",
      "name": "payloadString",
      "type": "STRING"
    },
    {
      "mode": "REQUIRED",
      "name": "payloadBytes",
      "type": "BYTES"
    },
    {
      "fields": [
        {
          "mode": "NULLABLE",
          "name": "key",
          "type": "STRING"
        },
        {
          "mode": "NULLABLE",
          "name": "value",
          "type": "STRING"
        }
      ],
      "mode": "REPEATED",
      "name": "attributes",
      "type": "RECORD"
    },
    {
      "mode": "NULLABLE",
      "name": "errorMessage",
      "type": "STRING"
    },
    {
      "mode": "NULLABLE",
      "name": "stacktrace",
      "type": "STRING"
    }
  ]

Pengujian daya tahan dan skalabilitas

Bersiaplah menghadapi peristiwa dan pertumbuhan dengan volume tinggi melalui pengujian beban dan skalabilitas.

Acara dengan traffic tinggi

Peristiwa dengan traffic tinggi seperti hari libur menimbulkan tantangan yang signifikan bagi pipeline penyerapan data. Lonjakan pembaruan inventaris, termasuk tingkat stok dan harga, serta potensi perubahan pada atribut produk memerlukan infrastruktur yang kuat. Penting untuk menilai apakah sistem penyerapan Anda dapat menangani peningkatan beban ini. Pengujian beban yang disimulasikan, yang mereplikasi pola traffic puncak, mengidentifikasi hambatan dan memastikan kelancaran operasi selama periode penting ini.

Flash sale

Flash sale menimbulkan tantangan unik karena durasinya yang singkat dan fluktuasi inventaris yang cepat. Memastikan sinkronisasi inventaris real-time sangat penting untuk mencegah perbedaan antara hasil penelusuran dan ketersediaan sebenarnya. Jika tidak dilakukan, hal ini dapat menyebabkan pengalaman pelanggan yang negatif, seperti produk populer yang muncul sebagai tersedia padahal sebenarnya sudah habis, atau sebaliknya. Selain itu, perubahan harga selama flash sale dapat memengaruhi peringkat produk secara signifikan, sehingga menekankan perlunya pembaruan harga yang akurat dan tepat waktu dalam indeks penelusuran.

Perluasan katalog

Pertumbuhan bisnis atau perluasan lini produk dapat menghasilkan peningkatan yang signifikan, seperti 5x atau 10x, dalam jumlah produk di katalog Anda. Arsitektur penyerapan data Anda harus dapat diskalakan untuk mengakomodasi pertumbuhan ini dengan lancar. Hal ini dapat memerlukan peninjauan ulang seluruh pipeline ETL (ekstrak, transformasi, muat), terutama jika sumber data baru atau format informasi produk baru diperkenalkan.

Dengan mengatasi potensi skenario ini secara proaktif, Anda dapat memastikan pipeline penyerapan Vertex AI Search untuk commerce tetap andal, dapat diskalakan, dan responsif, bahkan saat menghadapi lonjakan traffic yang tiba-tiba, flash sale, atau pertumbuhan katalog yang signifikan. Pendekatan proaktif ini menjaga akurasi dan keandalan hasil penelusuran Anda, sehingga berkontribusi pada pengalaman pengguna yang positif dan mendorong kesuksesan bisnis.

Performa pipeline penyerapan data harus dievaluasi dan dasar harus dibentuk untuk metrik berikut:

  1. Berapa lama waktu yang dibutuhkan untuk memublikasikan dan menyerap seluruh data katalog dan inventaris? Hal ini mungkin diperlukan secara ad hoc selama BFCM saat harga dapat berubah secara signifikan untuk seluruh katalog.
  2. Berapa lama waktu yang diperlukan untuk menampilkan satu pembaruan produk?
  3. Berapa kecepatan tertinggi pembaruan produk dan inventaris yang dapat diproses oleh sistem?

Bottleneck

  • Evaluasi dan cari tahu apakah pipeline dapat di-scale up dan down dengan benar.
  • Tentukan apakah batas maksimum untuk jumlah instance terlalu tinggi atau terlalu rendah.
  • Tentukan apakah sistem dibatasi lajunya oleh Vertex AI Search untuk commerce dengan memeriksa Kode HTTP 429.
  • Konfirmasi apakah kuota API tertentu perlu ditingkatkan untuk mengurangi batas frekuensi.

Struktur data produk untuk penyerapan katalog

Bagian ini menjelaskan cara menyiapkan data produk untuk penyerapan katalog.

Produk utama

Produk utama berfungsi sebagai penampung untuk mengelompokkan produk varian dan sebagai entri di petak penelusuran. Hanya atribut umum yang dibagikan di seluruh varian yang ditentukan untuk produk utama. Fitur tersebut meliputi:

  • ID produk utama
  • ID Produk (identik dengan ID produk utama)
  • Judul
  • Deskripsi

Lihat Tentang atribut produk untuk mengetahui informasi selengkapnya.

Produk varian

Produk varian mewarisi atribut umum dari produk utama, tetapi juga dapat menentukan nilai unik.

Atribut wajib meliputi:

  • Semua atribut yang ditentukan untuk produk utama (judul, deskripsi). Harga, judul, dan deskripsi dapat berbeda dari produk utama.
  • Atribut varian tertentu (warna, ukuran, dan variasi produk lainnya yang relevan).

Lihat Tentang atribut produk untuk mengetahui informasi selengkapnya.

Pengambilan atribut

Proses pengambilan mempertimbangkan semua atribut yang dapat ditelusuri untuk produk utama dan varian.

Penskoran relevansi

Pemberian skor relevansi hanya didasarkan pada kolom judul dan deskripsi. Untuk menjaga perbedaan yang tepat, ubah sedikit varian dari judul produk utama (misalnya, Nama Produk + Warna).

Pencocokan varian di hasil penelusuran

Pencocokan varian (misalnya, gaun biru) memfilter hasil berdasarkan atribut varian yang telah ditentukan sebelumnya seperti warna dan ukuran. Hasil penelusuran menampilkan hingga lima varian yang cocok untuk setiap produk utama.

Menyinkronkan Merchant Center ke Vertex AI Search untuk commerce

Merchant Center adalah alat yang dapat Anda gunakan untuk menyediakan data toko dan produk Anda untuk iklan Shopping dan layanan Google lainnya.

Untuk sinkronisasi berkelanjutan antara Merchant Center dan Vertex AI Search untuk commerce, Anda dapat menautkan akun Merchant Center ke Vertex AI Search untuk commerce.

Saat menyiapkan sinkronisasi Merchant Center untuk Vertex AI Search untuk commerce, Anda harus memiliki peran IAM Admin yang ditetapkan di Merchant Center. Meskipun peran akses Standar akan mengizinkan Anda membaca feed Merchant Center, saat Anda mencoba menyinkronkan Merchant Center ke Vertex AI Search untuk commerce, Anda akan mendapatkan pesan error. Jadi, sebelum Anda dapat berhasil menyinkronkan Merchant Center ke Vertex AI Search untuk commerce, tingkatkan peran Anda.

Saat Vertex AI Search untuk commerce ditautkan ke akun Merchant Center, perubahan pada data produk di akun Merchant Center akan otomatis diperbarui dalam hitungan menit di Vertex AI Search untuk commerce. Jika Anda ingin mencegah perubahan Merchant Center disinkronkan ke Vertex AI Search untuk e-commerce, Anda dapat membatalkan tautan akun Merchant Center Anda.

Membatalkan tautan akun Merchant Center tidak akan menghapus produk di Vertex AI Search untuk commerce. Untuk menghapus produk yang diimpor, lihat Menghapus informasi produk.

Untuk menyinkronkan akun Merchant Center Anda, selesaikan langkah-langkah berikut.

Menyinkronkan akun Merchant Center Anda

Cloud Console

  1. Buka halaman Data> di konsol Search for commerce.

    Buka halaman Data
  2. Klik Impor untuk membuka panel Impor Data.
  3. Pilih Katalog produk.
  4. Pilih Sinkronisasi Merchant Center sebagai sumber data Anda.
  5. Pilih akun Merchant Center Anda. Periksa Akses Pengguna jika Anda tidak melihat akun Anda.
  6. Opsional: Pilih Filter feed Merchant Center untuk mengimpor hanya penawaran dari feed yang dipilih.

    Jika tidak ditentukan, penawaran dari semua feed akan diimpor (termasuk feed mendatang).
  7. Opsional: Untuk mengimpor hanya penawaran yang ditargetkan ke negara atau bahasa tertentu, luaskan Tampilkan Opsi Lanjutan dan pilih negara penjualan dan bahasa Merchant Center yang akan difilter.
  8. Pilih cabang tempat Anda akan mengupload katalog.
  9. Klik Import.

curl

  1. Pastikan akun layanan di lingkungan lokal Anda memiliki akses ke akun Merchant Center dan Vertex AI Search untuk e-commerce. Untuk memeriksa akun mana yang memiliki akses ke akun Merchant Center Anda, lihat Akses pengguna untuk Merchant Center.

  2. Gunakan metode MerchantCenterAccountLink.create untuk membuat link.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
     --data '{
      "merchantCenterAccountId": MERCHANT_CENTER_ID,
      "branchId": "BRANCH_ID",
      "feedFilters": [
        {"dataSourceId": DATA_SOURCE_ID_1}
        {"dataSourceId": DATA_SOURCE_ID_2}
      ],
      "languageCode": "LANGUAGE_CODE",
      "feedLabel": "FEED_LABEL",
     }' \
     "https://retail.googleapis.com/v2alpha/projects/PROJECT_ID/locations/global/catalogs/default_catalog/merchantCenterAccountLinks"
    • MERCHANT_CENTER_ID: ID akun Merchant Center.
    • BRANCH_ID: ID cabang untuk membuat link. Menerima nilai '0', '1', atau '2'.
    • LANGUAGE_CODE: (OPSIONAL) Kode bahasa dua huruf dari produk yang ingin Anda impor. Seperti yang terlihat di Merchant Center di kolom Language produk. Jika tidak ditetapkan, semua bahasa akan diimpor.
    • FEED_LABEL: (OPSIONAL) Label feed produk yang ingin Anda impor. Anda dapat melihat label feed di Merchant Center di kolom Label Feed produk. Jika tidak ditetapkan, semua label feed akan diimpor.
    • FEED_FILTERS: (OPSIONAL) Daftar feed utama tempat produk akan diimpor. Tidak memilih feed berarti semua feed akun Merchant Center dibagikan. ID dapat ditemukan di referensi feed data Content API atau dengan membuka Merchant Center, memilih feed, dan mendapatkan ID feed dari parameter afmDataSourceId di URL situs. Sebagai contoh, mc/products/sources/detail?a=MERCHANT_CENTER_ID&afmDataSourceId=DATA_SOURCE_ID

Untuk melihat Merchant Center tertaut, buka halaman Data di konsol penelusuran untuk e-commerce, lalu klik tombol Merchant Center di kanan atas halaman. Tindakan ini akan membuka panel Akun Merchant Center yang Ditautkan. Anda juga dapat menambahkan akun Merchant Center tambahan dari panel ini.

Lihat Melihat informasi gabungan tentang katalog Anda untuk mengetahui petunjuk cara melihat produk yang telah diimpor.

Cloud Console

  1. Buka halaman Data> di konsol Search for commerce.

    Buka halaman Data

  2. Klik tombol Merchant Center di kanan atas halaman untuk membuka daftar akun Merchant Center tertaut Anda.

curl

Gunakan metode MerchantCenterAccountLink.list untuk mencantumkan resource link.

curl -X GET \
 -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
 -H "Content-Type: application/json; charset=utf-8" \
 "https://retail.googleapis.com/v2alpha/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/merchantCenterAccountLinks"

Membatalkan tautan akun Merchant Center akan menghentikan sinkronisasi data katalog akun tersebut ke Vertex AI Search untuk commerce. Prosedur ini tidak menghapus produk apa pun di Vertex AI Search untuk commerce yang telah diupload.

Cloud Console

  1. Buka halaman Data> di konsol Search for commerce.

    Buka halaman Data

  2. Klik tombol Merchant Center di kanan atas halaman untuk membuka daftar akun Merchant Center tertaut Anda.

  3. Klik Batalkan tautan di samping akun Merchant Center yang Anda batalkan tautannya, lalu konfirmasi pilihan Anda di dialog yang muncul.

curl

Gunakan metode MerchantCenterAccountLink.delete untuk menghapus resource MerchantCenterAccountLink.

curl -X DELETE \
 -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
 -H "Content-Type: application/json; charset=utf-8" \
 "https://retail.googleapis.com/v2alpha/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/BRANCH_ID_MERCHANT_CENTER_ID"

Batasan penautan ke Merchant Center

  • Akun Merchant Center dapat ditautkan ke sejumlah cabang katalog, tetapi satu cabang katalog hanya dapat ditautkan ke satu akun Merchant Center.

  • Akun Merchant Center tidak boleh berupa akun multiklien (MCA). Namun, Anda dapat menautkan masing-masing sub-akun.

  • Impor pertama setelah menautkan akun Merchant Center Anda dapat memerlukan waktu berjam-jam untuk selesai. Durasi waktu ini bergantung pada jumlah penawaran di akun Merchant Center.

  • Setiap modifikasi produk menggunakan metode API dinonaktifkan untuk cabang yang ditautkan ke akun Merchant Center. Setiap perubahan pada data katalog produk di cabang tersebut harus dilakukan menggunakan Merchant Center. Perubahan tersebut kemudian otomatis disinkronkan ke Vertex AI Search untuk commerce.

  • Jenis produk koleksi tidak didukung untuk cabang yang menggunakan penautan Merchant Center.

  • Akun Merchant Center Anda hanya dapat ditautkan ke cabang katalog kosong untuk akurasi data. Untuk menghapus produk dari cabang katalog, lihat Menghapus informasi produk.

Impor data katalog dari BigQuery

Untuk mengimpor data katalog dalam format yang benar dari BigQuery, gunakan skema Vertex AI Search untuk e-commerce guna membuat tabel BigQuery dengan format yang benar dan memuat tabel kosong dengan data katalog Anda. Kemudian, upload data Anda ke Vertex AI Search untuk commerce.

Untuk mendapatkan bantuan lebih lanjut terkait tabel BigQuery, lihat Pengantar tabel. Untuk mendapatkan bantuan terkait kueri BigQuery, lihat Ringkasan pembuatan kueri data BigQuery.


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

Pandu saya


Untuk mengimpor katalog:

  1. Jika set data BigQuery Anda berada di project lain, konfigurasikan izin yang diperlukan agar Vertex AI Search untuk e-commerce dapat mengakses set data BigQuery. Pelajari lebih lanjut.

  2. Impor data katalog Anda ke Vertex AI Search untuk commerce.

    Cloud Console

    1. Buka halaman Data> di konsol Search for commerce.

      Buka halaman Data
    2. Klik Impor untuk membuka panel Impor Data.
    3. Pilih Katalog produk.
    4. Pilih BigQuery sebagai sumber data Anda.
    5. Pilih cabang tempat Anda akan mengupload katalog.
    6. Pilih Skema Katalog Produk Retail. Ini adalah skema Produk untuk Vertex AI Search untuk commerce.
    7. Masukkan tabel BigQuery tempat data Anda berada.
    8. Opsional: Di bagian Tampilkan opsi lanjutan, masukkan lokasi bucket Cloud Storage di project Anda sebagai lokasi sementara untuk data Anda.

      Jika tidak ditentukan, lokasi default akan digunakan. Jika ditentukan, bucket BigQuery dan Cloud Storage harus berada di region yang sama.
    9. Jika Anda tidak mengaktifkan penelusuran dan menggunakan skema Merchant Center, pilih tingkat produk.

      Anda harus memilih tingkat produk jika ini adalah pertama kalinya Anda mengimpor katalog atau Anda mengimpor ulang katalog setelah menghapusnya. Pelajari lebih lanjut level produk. Mengubah tingkat produk setelah Anda mengimpor data apa pun memerlukan upaya yang signifikan.

      Penting: Anda tidak dapat mengaktifkan penelusuran untuk project dengan katalog produk yang telah di-ingest sebagai varian.
    10. Klik Import.

    curl

    1. Jika ini pertama kalinya Anda mengupload katalog, atau Anda mengimpor ulang katalog setelah menghapusnya, tetapkan tingkat produk dengan menggunakan metode Catalog.patch. Operasi ini memerlukan peran Admin Retail.

      curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" \
       --data '{
         "productLevelConfig": {
           "ingestionProductType": "PRODUCT_TYPE",
           "merchantCenterProductIdField": "PRODUCT_ID_FIELD"
         }
       }' \
      "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog"
    2. Buat file data untuk parameter input impor.

      Gunakan objek BigQuerySource untuk mengarah ke set data BigQuery Anda.

      • DATASET_ID: ID set data BigQuery.
      • TABLE_ID: ID tabel BigQuery yang menyimpan data Anda.
      • PROJECT_ID: ID project tempat sumber BigQuery berada. Jika tidak ditentukan, project ID akan diwarisi dari permintaan induk.
      • STAGING_DIRECTORY: Opsional. Direktori Cloud Storage yang digunakan sebagai lokasi sementara untuk data Anda sebelum diimpor ke BigQuery. Kosongkan kolom ini untuk membuat direktori sementara secara otomatis (direkomendasikan).
      • ERROR_DIRECTORY: Opsional. Direktori Cloud Storage untuk informasi error tentang impor. Biarkan kolom ini kosong untuk membuat direktori sementara secara otomatis (direkomendasikan).
      • dataSchema: Untuk properti dataSchema, gunakan nilai product (default). Anda akan menggunakan skema Vertex AI Search untuk commerce.

      Sebaiknya Anda tidak menentukan direktori penyiapan atau error, sehingga bucket Cloud Storage dengan direktori penyiapan dan error baru dapat dibuat secara otomatis. Direktori ini dibuat di region yang sama dengan set data BigQuery, dan unik untuk setiap impor (yang mencegah beberapa tugas impor melakukan penyiapan data ke direktori yang sama, dan berpotensi mengimpor ulang data yang sama). Setelah tiga hari, bucket dan direktori akan otomatis dihapus untuk mengurangi biaya penyimpanan.

      Nama bucket yang dibuat secara otomatis mencakup ID project, region bucket, dan nama skema data, yang dipisahkan dengan garis bawah (misalnya, 4321_us_catalog_retail). Direktori yang dibuat secara otomatis disebut staging atau errors, yang ditambahkan dengan angka (misalnya, staging2345 atau errors5678).

      Jika Anda menentukan direktori, bucket Cloud Storage harus berada di region yang sama dengan set data BigQuery, atau impor akan gagal. Berikan direktori penyiapan dan error dalam format gs://<bucket>/<folder>/; keduanya harus berbeda.

      {
         "inputConfig":{
           "bigQuerySource": {
             "projectId":"PROJECT_ID",
             "datasetId":"DATASET_ID",
             "tableId":"TABLE_ID",
             "dataSchema":"product"}
            }
      }
    3. Impor informasi katalog Anda dengan membuat permintaan POST ke metode REST Products:import, dengan memberikan nama file data (di sini, ditampilkan sebagai input.json).

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" -d @./input.json \
      "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products:import"

      Anda dapat memeriksa status secara terprogram menggunakan API. Anda akan menerima objek respons yang terlihat seperti ini:

      {
      "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456",
      "done": false
      }

      Kolom nama adalah ID objek operasi. Untuk meminta status objek ini, ganti kolom nama dengan nilai yang ditampilkan oleh metode import, hingga kolom done ditampilkan sebagai true:

      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/import-products-123456"

      Setelah operasi selesai, objek yang ditampilkan memiliki nilai done true, dan menyertakan objek Status yang mirip dengan contoh berikut:

      { "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.retail.v2.ImportMetadata",
        "createTime": "2020-01-01T03:33:33.000001Z",
        "updateTime": "2020-01-01T03:34:33.000001Z",
        "successCount": "2",
        "failureCount": "1"
      },
      "done": true,
      "response": {
      "@type": "type.googleapis.com/google.cloud.retail.v2.ImportProductsResponse",
      },
      "errorsConfig": {
        "gcsPrefix": "gs://error-bucket/error-directory"
      }
      }

      Anda dapat memeriksa file di direktori error di Cloud Storage untuk melihat apakah terjadi error selama pengimporan.

Menyiapkan akses ke set data BigQuery

Untuk menyiapkan akses saat set data BigQuery Anda berada dalam project yang berbeda dengan layanan Vertex AI Search for Commerce, selesaikan langkah-langkah berikut.

  1. Buka halaman IAM di konsol Google Cloud .

    Buka halaman IAM

  2. Pilih project Vertex AI Search untuk commerce Anda.

  3. Temukan akun layanan dengan nama Retail Service Account.

    Jika Anda belum pernah memulai operasi impor sebelumnya, akun layanan ini mungkin tidak tercantum. Jika Anda tidak melihat akun layanan ini, kembali ke tugas impor dan mulai impor. Jika gagal karena kesalahan izin, kembali ke sini dan selesaikan tugas ini.

  4. Salin ID untuk akun layanan, yang terlihat seperti alamat email (misalnya, service-525@gcp-sa-retail.iam.gserviceaccount.com).

  5. Beralih ke project BigQuery Anda (di halaman IAM & Admin yang sama) lalu klik  Grant Access.

  6. Untuk New principals, masukkan ID akun layanan Vertex AI Search untuk e-commerce, lalu pilih peran BigQuery > BigQuery User.

  7. Klik Add another role, lalu pilih BigQuery > BigQuery Data Editor.

    Jika tidak ingin memberikan peran Editor Data ke seluruh project, Anda dapat menambahkan peran ini langsung ke set data. Pelajari lebih lanjut.

  8. Klik Simpan.

Skema produk

Saat mengimpor katalog dari BigQuery, gunakan skema produk Vertex AI Search untuk e-commerce berikut guna membuat tabel BigQuery dengan format yang benar dan memuatnya dengan data katalog Anda. Kemudian, impor katalog.

Mengimpor data katalog dari Cloud Storage

Untuk mengimpor data katalog dalam format JSON, Anda membuat satu atau beberapa file JSON yang berisi data katalog yang ingin diimpor, lalu menguploadnya ke Cloud Storage. Dari sana, Anda dapat mengimpornya ke Vertex AI Search untuk commerce.

Untuk contoh format item produk JSON, lihat Format data JSON item produk.

Untuk mendapatkan bantuan dalam mengupload file ke Cloud Storage, lihat Mengupload objek.

  1. Pastikan akun layanan Vertex AI Search untuk e-commerce memiliki izin untuk membaca dan menulis ke bucket.

    Akun layanan Vertex AI Search untuk e-commerce tercantum di halaman IAM di konsol Google Cloud dengan nama Retail Service Account. Gunakan ID akun layanan, yang terlihat seperti alamat email (misalnya, service-525@gcp-sa-retail.iam.gserviceaccount.com), saat menambahkan akun ke izin bucket Anda.

  2. Impor data katalog Anda.

    Cloud Console

    1. Buka halaman Data> di konsol Search for commerce.

      Buka halaman Data
    2. Klik Impor untuk membuka panel Impor Data.
    3. Pilih Katalog produk sebagai sumber data Anda.
    4. Pilih cabang tempat Anda akan mengupload katalog.
    5. Pilih Retail Product Catalogs Schema sebagai skema.
    6. Masukkan lokasi Cloud Storage data Anda.
    7. Jika Anda tidak mengaktifkan penelusuran, pilih tingkat produk.

      Anda harus memilih tingkat produk jika ini adalah pertama kalinya Anda mengimpor katalog atau Anda mengimpor ulang katalog setelah menghapusnya. Pelajari lebih lanjut level produk. Mengubah tingkat produk setelah Anda mengimpor data apa pun memerlukan upaya yang signifikan.

      Penting: Anda tidak dapat mengaktifkan penelusuran untuk project dengan katalog produk yang telah di-ingest sebagai varian.
    8. Klik Import.

    curl

    1. Jika ini pertama kalinya Anda mengupload katalog, atau Anda mengimpor ulang katalog setelah menghapusnya, tetapkan tingkat produk menggunakan metode Catalog.patch. Pelajari lebih lanjut level produk.

      curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" \
       --data '{
         "productLevelConfig": {
           "ingestionProductType": "PRODUCT_TYPE",
           "merchantCenterProductIdField": "PRODUCT_ID_FIELD"
         }
       }' \
      "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog"
    2. Buat file data untuk parameter input impor. Gunakan objek GcsSource untuk mengarah ke bucket Cloud Storage Anda.

      Anda dapat memberikan beberapa file, atau hanya satu; contoh ini menggunakan dua file.

      • INPUT_FILE: File atau file di Cloud Storage yang berisi data katalog Anda.
      • ERROR_DIRECTORY: Direktori Cloud Storage untuk informasi error tentang impor.

      Kolom file input harus dalam format gs://<bucket>/<path-to-file>/. Direktori error harus dalam format gs://<bucket>/<folder>/. Jika direktori error tidak ada, direktori tersebut akan dibuat. Bucket harus sudah ada.

      {
      "inputConfig":{
       "gcsSource": {
         "inputUris": ["INPUT_FILE_1", "INPUT_FILE_2"]
        }
      },
      "errorsConfig":{"gcsPrefix":"ERROR_DIRECTORY"}
      }
    3. Impor informasi katalog Anda dengan membuat permintaan POST ke metode REST Products:import, dengan memberikan nama file data (di sini, ditampilkan sebagai input.json).

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" -d @./input.json \
      "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products:import"

      Cara termudah untuk memeriksa status operasi impor adalah dengan menggunakan konsol Google Cloud . Untuk mengetahui informasi selengkapnya, lihat Melihat status untuk operasi integrasi tertentu.

      Anda juga dapat memeriksa status secara terprogram menggunakan API. Anda akan menerima objek respons yang terlihat seperti ini:

      {
      "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456",
      "done": false
      }

      Kolom nama adalah ID objek operasi. Anda meminta status objek ini, mengganti kolom nama dengan nilai yang ditampilkan oleh metode impor, hingga kolom done ditampilkan sebagai true:

      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_NAME]"

      Setelah operasi selesai, objek yang ditampilkan memiliki nilai done true, dan menyertakan objek Status yang mirip dengan contoh berikut:

      { "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.retail.v2.ImportMetadata",
        "createTime": "2020-01-01T03:33:33.000001Z",
        "updateTime": "2020-01-01T03:34:33.000001Z",
        "successCount": "2",
        "failureCount": "1"
      },
      "done": true,
      "response": {
      "@type": "type.googleapis.com/google.cloud.retail.v2.ImportProductsResponse"
      },
      "errorsConfig": {
        "gcsPrefix": "gs://error-bucket/error-directory"
      }
      }

      Anda dapat memeriksa file di direktori error di Cloud Storage untuk melihat jenis error yang terjadi selama impor.

Mengimpor data katalog secara inline

curl

Anda mengimpor informasi katalog secara inline dengan membuat permintaan POST ke metode REST Products:import, menggunakan objek productInlineSource untuk menentukan data katalog.

Cantumkan seluruh produk dalam satu baris. Setiap produk harus berada di barisnya masing-masing.

Untuk contoh format item produk JSON, lihat Format data JSON item produk.

  1. Buat file JSON untuk produk Anda dan beri nama ./data.json:

    {
    "inputConfig": {
    "productInlineSource": {
        "products": [
          { PRODUCT_1 }
          { PRODUCT_2 }
        ]
      }
    }
    }
    
  2. Panggil metode POST:

    curl -X POST \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     --data @./data.json \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products:import"

Java

public static String importProductsFromInlineSource(
    List<Product> productsToImport)
    throws IOException, InterruptedException, ExecutionException {
  ProductServiceClient productClient = getProductServiceClient();

  ProductInlineSource inlineSource = ProductInlineSource.newBuilder()
      .addAllProducts(productsToImport)
      .build();

  ProductInputConfig inputConfig = ProductInputConfig.newBuilder()
      .setProductInlineSource(inlineSource)
      .build();

  ImportProductsRequest importRequest = ImportProductsRequest.newBuilder()
      .setParent(IMPORT_PARENT)
      .setRequestId(REQUEST_ID)
      .setReconciliationMode(ReconciliationMode.INCREMENTAL)
      .setInputConfig(inputConfig)
      .build();

  String operationName = productClient
      .importProductsAsync(importRequest).getName();

  productClient.shutdownNow();
  productClient.awaitTermination(2, TimeUnit.SECONDS);

  return operationName;
}

Format data JSON item produk

Entri Product dalam file JSON Anda akan terlihat seperti contoh berikut.

Cantumkan seluruh produk dalam satu baris. Setiap produk harus berada di barisnya masing-masing.

Kolom wajib diisi minimum:

      {
        "id": "1234",
        "categories": "Apparel & Accessories > Shoes",
        "title": "ABC sneakers"
      }
      {
        "id": "5839",
        "categories": "casual attire > t-shirts",
        "title": "Crew t-shirt"
      }

Melihat objek lengkap

      {
        "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/1234",
        "id": "1234",
        "categories": "Apparel & Accessories > Shoes",
        "title": "ABC sneakers",
        "description": "Sneakers for the rest of us",
        "attributes": { "vendor": {"text": ["vendor123", "vendor456"]} },
        "language_code": "en",
        "tags": [ "black-friday" ],
        "priceInfo": {
          "currencyCode": "USD", "price":100, "originalPrice":200, "cost": 50
        },
        "availableTime": "2020-01-01T03:33:33.000001Z",
        "availableQuantity": "1",
        "uri":"http://example.com",
        "images": [
          {"uri": "http://example.com/img1", "height": 320, "width": 320 }
        ]
      }
      {
        "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/4567",
        "id": "4567",
        "categories": "casual attire > t-shirts",
        "title": "Crew t-shirt",
        "description": "A casual shirt for a casual day",
        "attributes": { "vendor": {"text": ["vendor789", "vendor321"]} },
        "language_code": "en",
        "tags": [ "black-friday" ],
        "priceInfo": {
          "currencyCode": "USD", "price":50, "originalPrice":60, "cost": 40
        },
        "availableTime": "2020-02-01T04:44:44.000001Z",
        "availableQuantity": "2",
        "uri":"http://example.com",
        "images": [
          {"uri": "http://example.com/img2", "height": 320, "width": 320 }
        ]
      }

Data katalog historis

Vertex AI Search untuk commerce mendukung pengimporan dan pengelolaan data katalog historis. Data katalog historis dapat berguna saat Anda menggunakan peristiwa pengguna historis untuk pelatihan model. Informasi produk sebelumnya dapat digunakan untuk memperkaya data peristiwa pengguna historis dan meningkatkan akurasi model.

Produk historis disimpan sebagai produk yang sudah tidak berlaku. Data ini tidak ditampilkan dalam respons penelusuran, tetapi terlihat oleh panggilan API Update, List, dan Delete.

Mengimpor data katalog historis

Jika kolom expireTime produk ditetapkan ke stempel waktu lampau, produk ini dianggap sebagai produk historis. Tetapkan ketersediaan produk ke OUT_OF_STOCK untuk menghindari dampak pada rekomendasi.

Sebaiknya gunakan metode berikut untuk mengimpor data katalog historis:

Panggil metode Product.Create

Gunakan metode Product.Create untuk membuat entri Product dengan kolom expireTime disetel ke stempel waktu lampau.

Mengimpor produk yang sudah tidak berlaku secara inline

Langkah-langkahnya sama dengan impor inline, kecuali produk harus memiliki kolom expireTime yang ditetapkan ke stempel waktu di masa lalu.

Cantumkan seluruh produk dalam satu baris. Setiap produk harus berada di barisnya masing-masing.

Contoh ./data.json yang digunakan dalam permintaan impor inline:

Lihat contoh ini yang digunakan dalam permintaan impor inline

{
"inputConfig": {
  "productInlineSource": {
      "products": [
          {
            "id": "historical_product_001",
            "categories": "Apparel & Accessories > Shoes",
            "title": "ABC sneakers",
            "expire_time": {
              "second": "2021-10-02T15:01:23Z"  // a past timestamp
            }
          },
          {
            "id": "historical product 002",
            "categories": "casual attire > t-shirts",
            "title": "Crew t-shirt",
            "expire_time": {
              "second": "2021-10-02T15:01:24Z"  // a past timestamp
            }
          }
      ]
    }
  }
}

Mengimpor produk yang sudah habis masa berlakunya dari BigQuery atau Cloud Storage

Gunakan prosedur yang sama yang didokumentasikan untuk mengimpor data katalog dari BigQuery atau mengimpor data katalog dari Cloud Storage. Namun, pastikan untuk menyetel kolom expireTime ke stempel waktu sebelumnya.

Memastikan katalog Anda selalu terbaru

Untuk mendapatkan hasil terbaik, katalog Anda harus berisi informasi terbaru. Sebaiknya impor katalog Anda setiap hari untuk memastikan katalog Anda selalu terbaru. Anda dapat menggunakan Google Cloud Scheduler untuk menjadwalkan impor, atau memilih opsi penjadwalan otomatis saat mengimpor data menggunakan konsolGoogle Cloud .

Anda dapat memperbarui hanya item produk baru atau yang diubah, atau Anda dapat mengimpor seluruh katalog. Jika Anda mengimpor produk yang sudah ada di katalog, produk tersebut tidak akan ditambahkan lagi. Setiap item yang telah berubah akan diperbarui.

Untuk memperbarui satu item, lihat Memperbarui informasi produk.

Update batch

Anda dapat menggunakan metode impor untuk memperbarui katalog secara berkelompok. Anda melakukannya dengan cara yang sama seperti saat melakukan impor awal; ikuti langkah-langkah di Mengimpor data katalog.

Memantau kondisi impor

Untuk memantau penyerapan dan kualitas katalog:

  1. Lihat informasi gabungan tentang katalog Anda dan pratinjau produk yang diupload di tab Katalog pada halaman Data Penelusuran untuk e-commerce.

    Buka halaman Data

  2. Menilai apakah Anda perlu memperbarui data katalog untuk meningkatkan kualitas hasil penelusuran dan membuka tingkat performa penelusuran di halaman Kualitas data.

    Untuk mengetahui informasi selengkapnya tentang cara memeriksa kualitas data penelusuran dan melihat tingkat performa penelusuran, lihat Memanfaatkan tingkat performa penelusuran. Untuk ringkasan metrik katalog yang tersedia di halaman ini, lihat Metrik kualitas katalog.

    Buka halaman Kualitas data

  3. Untuk membuat pemberitahuan yang memberi tahu Anda jika terjadi masalah pada upload data, ikuti prosedur di Menyiapkan pemberitahuan Cloud Monitoring.

    Memastikan katalog Anda selalu ter-update penting untuk mendapatkan hasil yang berkualitas tinggi. Gunakan pemberitahuan untuk memantau tingkat error impor dan mengambil tindakan jika diperlukan.

Langkah berikutnya