Tujuan
Sebagai developer, Anda sering bekerja dengan set data yang berisi alamat pelanggan yang mungkin tidak berkualitas baik. Anda perlu memastikan bahwa alamat sudah benar untuk kasus penggunaan, mulai dari verifikasi ID pelanggan, pengiriman, dan lainnya.
Address Validation API adalah produk dari Google Maps Platform yang dapat Anda gunakan untuk memvalidasi alamat. Namun, ini hanya memproses satu alamat dalam satu waktu. Dalam dokumen ini, kita akan melihat cara menggunakan Validasi Alamat Volume Tinggi dalam berbagai skenario, mulai dari pengujian API hingga validasi alamat satu kali dan berulang.
Kasus penggunaan
Sekarang, mari kita pahami kasus penggunaan penggunaan Validasi Alamat Volume Tinggi.
Pengujian
Anda sering ingin menguji Address Validation API dengan menjalankan ribuan alamat. Anda mungkin memiliki alamat dalam file Nilai yang Dipisahkan Koma (Comma Separated Value) dan ingin memvalidasi kualitas alamat.
Validasi alamat satu kali
Saat melakukan aktivasi ke Address Validation API, Anda ingin memvalidasi database alamat yang ada berdasarkan database pengguna.
Validasi alamat berulang
Sejumlah skenario memerlukan validasi alamat secara berulang:
- Anda mungkin telah menjadwalkan pekerjaan untuk memvalidasi alamat untuk detail yang diambil pada hari itu, misalnya, dari pendaftaran pelanggan, detail pesanan, jadwal pengiriman.
- Anda mungkin menerima dump data yang berisi alamat dari departemen yang berbeda, misalnya dari penjualan hingga pemasaran. Departemen baru yang menerima alamat sering kali ingin memvalidasinya sebelum menggunakannya.
- Anda mungkin mengumpulkan alamat selama survei, atau berbagai promosi dan kemudian memperbaruinya di sistem online. Anda ingin memvalidasi bahwa alamat sudah benar saat memasukkannya ke dalam sistem.
Pembahasan mendalam teknis
Untuk tujuan dokumen ini, kami berasumsi bahwa:
- Anda memanggil Address Validation API dengan alamat dari database pelanggan (yaitu database dengan detail pelanggan)
- Anda dapat meng-cache tanda validitas terhadap masing-masing alamat dalam database Anda.
- Tanda validitas diambil dari Address Validation API saat pelanggan perorangan login.
Menyimpan ke cache untuk penggunaan produksi
Saat menggunakan Address Validation API, Anda sering kali ingin meng-cache beberapa bagian respons dari panggilan API. Meskipun Persyaratan Layanan kami membatasi data yang dapat di-cache, data apa pun yang dapat di-cache melalui Address Validation API harus di-cache terhadap akun pengguna. Artinya, dalam database, metadata alamat atau alamat harus di-cache terhadap alamat email pengguna atau ID utama lainnya.
Untuk kasus penggunaan Validasi Alamat Volume Tinggi, penyimpanan data dalam cache harus mengikuti Persyaratan Khusus Layanan Address Validation API, yang dijelaskan dalam Pasal 11.3. Berdasarkan informasi ini, Anda akan dapat menentukan apakah alamat pengguna mungkin tidak valid, dalam hal ini Anda akan meminta pengguna untuk memperbaiki alamat selama interaksi berikutnya dengan aplikasi Anda.
Data dari objek Verdict
inputGranularity
validationGranularity
geocodeGranularity
addressComplete
hasUnconfirmedComponents
hasInferredComponents
hasReplacedComponents
Data dari objek AddressComponent
confirmationLevel
inferred
spellCorrected
replaced
unexpected
Jika Anda ingin meng-cache informasi apa pun tentang alamat sebenarnya, data tersebut harus disimpan dalam cache hanya dengan persetujuan pengguna. Hal ini memastikan bahwa pengguna mengetahui dengan baik mengapa layanan tertentu menyimpan alamat mereka dan mereka baik-baik saja dengan ketentuan berbagi alamat mereka.
Contoh izin pengguna adalah interaksi langsung dengan formulir alamat e-commerce di halaman checkout. Ada pemahaman bahwa Anda akan menyimpan dalam cache dan memproses alamat untuk tujuan pengiriman paket.
Dengan izin pengguna, Anda dapat meng-cache formattedAddress
dan komponen penting lainnya dari respons. Namun, dalam skenario headless, pengguna tidak dapat memberikan izin karena validasi alamat dilakukan dari backend. Oleh karena itu, Anda dapat meng-cache informasi yang sangat terbatas dalam skenario headless ini.
Memahami respons
Jika respons Address Validation API berisi penanda berikut, Anda bisa yakin bahwa alamat input memiliki kualitas hasil kerja:
- Penanda
addressComplete
dalam objek Verdict adalahtrue
, validationGranularity
dalam objek Verdict adalahPREMISE
atauSUB_PREMISE
- Tidak ada AddressComponent yang ditandai sebagai:
Inferred
(Catatan: inferred=true
dapat terjadi jikaaddressComplete=true
)spellCorrected
replaced
unexpected
, dan
confirmationLevel
: Tingkat konfirmasi di AddressComponent disetel keCONFIRMED
atauUNCONFIRMED_BUT_PLAUSIBLE
Jika respons API tidak berisi penanda di atas, maka alamat input tersebut mungkin berkualitas buruk, dan Anda bisa menyimpan flag dalam database untuk menunjukkan hal tersebut. Tanda dalam cache menunjukkan bahwa alamat secara keseluruhan berkualitas buruk, sedangkan tanda yang lebih detail seperti Ejaan Dikoreksi menunjukkan jenis masalah kualitas alamat tertentu. Pada interaksi pelanggan berikutnya dengan alamat yang ditandai sebagai berkualitas buruk, Anda dapat memanggil Address Validation API dengan alamat yang sudah ada. Address Validation API akan menampilkan alamat yang sudah dikoreksi, yang dapat ditampilkan melalui perintah UI. Setelah pelanggan menerima alamat berformat, Anda dapat meng-cache hal berikut dari respons:
formattedAddress
postalAddress
addressComponent componentNames
atauUspsData standardizedAddress
Menerapkan validasi alamat headless
Berdasarkan diskusi di atas:
- Sering kali Anda perlu meng-cache beberapa bagian respons dari Address Validation API karena alasan bisnis.
- Namun, Persyaratan Layanan di Google Maps Platform membatasi data yang dapat disimpan dalam cache.
Di bagian berikut, kita akan membahas proses dua langkah tentang cara mematuhi Persyaratan Layanan dan menerapkan validasi alamat dalam jumlah besar.
Langkah 1:
Pada langkah pertama, kita akan melihat cara menerapkan skrip validasi alamat bervolume tinggi dari pipeline data yang ada. Proses ini akan memungkinkan Anda menyimpan kolom tertentu dari respons Address Validation API dengan cara yang mematuhi Persyaratan Layanan.
Diagram A: Diagram berikut menunjukkan bagaimana pipeline data dapat ditingkatkan dengan logika Validasi Alamat Volume Tinggi.
Berdasarkan Persyaratan Layanan , Anda dapat meng-cache
addressComplete,validationGranularity and validationFlags
saat memvalidasi alamat secara headless .Anda dapat meng-cache
addressComplete,validationGranularity and validationFlags, PlaceID
terhadap UserID tertentu dalam database pelanggan.
Oleh karena itu, selama langkah penerapan ini, kami akan meng-cache kolom yang disebutkan di atas berdasarkan UserID.
Untuk informasi selengkapnya, lihat detail tentang struktur data aktual.
Langkah 2:
Pada langkah 1, kami mengumpulkan masukan bahwa beberapa alamat dalam set data input mungkin tidak berkualitas tinggi. Pada langkah berikutnya, kita akan mengambil alamat yang ditandai ini dan menampilkannya kepada pengguna dan mendapatkan izin dari mereka untuk memperbaiki alamat yang tersimpan.
Diagram B: Diagram ini menunjukkan tampilan integrasi menyeluruh alur izin pengguna:
Saat pengguna login, pertama-tama periksa apakah Anda telah meng-cache tanda validasi apa pun di sistem, seperti:
addressComplete
benar- validationGranularity tidak berupa
PREMISE
atauSUB_PREMISE
validationFlags
menjadiinferred,spellCorrected,replaced,unexpected
.- Jika tidak ada tanda, ada keyakinan tinggi bahwa alamat dalam cache yang ada berkualitas baik, dan dapat digunakan.
Jika ada tanda, Anda harus menyajikan UI kepada pengguna untuk memperbaiki/memperbarui alamat mereka.
Anda dapat memanggil lagi Address Validation API dengan alamat yang diperbarui atau di-cache dan menyajikan alamat yang sudah dikoreksi kepada pengguna untuk dikonfirmasi.
Jika alamat berkualitas baik, Address Validation API akan menampilkan
formattedAddress
.Anda dapat menunjukkan alamat tersebut kepada pengguna jika koreksi telah dilakukan, atau menerima secara diam-diam jika tidak ada koreksi.
Setelah pengguna menerima, Anda dapat meng-cache
formattedAddress
di database.
Penerapan kode semu Langkah 2:
If addressComplete is FALSE
OR
If validationGranularity is Not PREMISE OR SUB_PREMISE
OR
If validationFlags is inferred OR spellCorrected OR replaced OR unexpected
{
# This means there are issues with the existing cached address
Call UI to present the address to user
}
Else{
# This means existing address is good
Proceed to checkout
}
Kesimpulan
Validasi Alamat Volume Tinggi adalah kasus penggunaan umum yang mungkin Anda temui di banyak aplikasi. Dokumen ini mencoba menunjukkan beberapa skenario dan pola desain tentang cara menerapkan solusi semacam ini yang sesuai dengan Persyaratan layanan Google Maps Platform.
Selanjutnya kami telah menulis implementasi referensi Validasi Alamat Volume Tinggi sebagai library open source di GitHub. Lihat panduan ini untuk mulai membuat aplikasi dengan Validasi Alamat Volume Tinggi dengan cepat. Baca juga artikel tentang pola desain tentang cara menggunakan library dalam berbagai skenario.
Langkah Berikutnya
Download Laporan Resmi Meningkatkan checkout, pengiriman, dan operasi dengan alamat yang andal , serta lihat Webinar Meningkatkan checkout, pengiriman, dan operasi dengan Validasi Alamat .
Disarankan bacaan lebih lanjut:
- Penerapan Validasi Alamat Volume Tinggi
- Library Python di github
- Pelajari demo Validasi Alamat
Kontributor
Google mengelola artikel ini. Awalnya, kontributor berikut ini ditulis.
Penulis utama:
Henrik Valve | Solutions Engineer
Thomas Anglaret | Solutions Engineer
Sarthak Ganguly | Solutions Engineer