วัตถุประสงค์
ในฐานะนักพัฒนาซอฟต์แวร์ คุณมักจะทำงานกับชุดข้อมูลที่มีที่อยู่ของลูกค้าซึ่งอาจมีคุณภาพไม่ดี คุณต้องตรวจสอบว่าที่อยู่ถูกต้องสำหรับกรณีการใช้งานต่างๆ ตั้งแต่การยืนยันผ่านบัตรประจำตัวลูกค้า การนำส่ง และอื่นๆ
Address Validation API เป็นผลิตภัณฑ์จาก Google Maps Platform ที่คุณสามารถใช้เพื่อตรวจสอบที่อยู่ แต่ระบบจะประมวลผลทีละที่อยู่เท่านั้น ในเอกสารนี้ เราจะดูวิธีใช้การยืนยันที่อยู่จำนวนมากในสถานการณ์ต่างๆ ตั้งแต่การทดสอบ API ไปจนถึงการยืนยันที่อยู่แบบครั้งเดียวและแบบตามรอบ
กรณีการใช้งาน
ตอนนี้เราจะทำความเข้าใจกรณีการใช้งานที่การตรวจสอบที่อยู่จำนวนมากมีประโยชน์
การทดสอบ
คุณมักจะต้องทดสอบ Address Validation API โดยเรียกใช้ที่อยู่หลายพันรายการ คุณอาจมีที่อยู่ในรูปแบบไฟล์ค่าที่คั่นด้วยคอมมาและต้องการตรวจสอบคุณภาพของที่อยู่
การยืนยันที่อยู่แบบครั้งเดียว
ขณะเริ่มต้นใช้งาน Address Validation API คุณต้องการตรวจสอบฐานข้อมูลที่อยู่ที่มีอยู่กับฐานข้อมูลผู้ใช้
การยืนยันที่อยู่ที่เกิดขึ้นซ้ำๆ
มีหลายกรณีที่ต้องมีการตรวจสอบที่อยู่เป็นประจำ ดังนี้
- คุณอาจตั้งเวลางานให้ตรวจสอบที่อยู่สำหรับรายละเอียดที่บันทึกไว้ในระหว่างวัน เช่น จากการลงชื่อสมัครใช้ของลูกค้า รายละเอียดคำสั่งซื้อ กำหนดเวลาการนำส่ง
- คุณอาจได้รับไฟล์ข้อมูลที่มีที่อยู่จากแผนกต่างๆ เช่น จากฝ่ายขายไปยังฝ่ายการตลาด แผนกใหม่ที่ได้รับอีเมลมักจะต้องตรวจสอบอีเมลก่อนใช้งาน
- คุณอาจเก็บรวบรวมที่อยู่ระหว่างการสำรวจหรือโปรโมชันต่างๆ และอัปเดตในระบบออนไลน์ในภายหลัง คุณต้องการตรวจสอบว่าที่อยู่ถูกต้องขณะป้อนลงในระบบ
ข้อมูลเจาะลึกทางเทคนิค
เอกสารนี้จะถือว่า
- คุณเรียกใช้ Address Validation API ด้วยที่อยู่จากฐานข้อมูลลูกค้า (เช่น ฐานข้อมูลที่มีรายละเอียดลูกค้า)
- คุณสามารถแคชการแจ้งว่าใช้งานได้กับที่อยู่แต่ละรายการในฐานข้อมูลได้
- ระบบจะดึงข้อมูล Flag ของที่อยู่จาก Address Validation API เมื่อลูกค้าแต่ละรายเข้าสู่ระบบ
แคชสําหรับการใช้งานจริง
เมื่อใช้ Address Validation API คุณมักจะต้องการแคชคำตอบบางส่วนจากการเรียก API แม้ว่าข้อกำหนดในการให้บริการจะจำกัดข้อมูลที่แคชได้ แต่ข้อมูลที่แคชได้จาก Address Validation API ต้องแคชกับบัญชีผู้ใช้ ซึ่งหมายความว่าในฐานข้อมูล ที่อยู่หรือข้อมูลเมตาของที่อยู่ต้องได้รับการแคชกับอีเมลของผู้ใช้หรือรหัสหลักอื่นๆ
สำหรับกรณีการใช้งานการยืนยันที่อยู่ในปริมาณมาก การแคชข้อมูลต้องเป็นไปตามข้อกำหนดเฉพาะบริการของ Address Validation API ที่ระบุไว้ในส่วนที่ 11.3 ข้อมูลนี้จะช่วยให้คุณระบุได้ว่าที่อยู่ของผู้ใช้อาจไม่ถูกต้องหรือไม่ ซึ่งในกรณีนี้ คุณจะแจ้งให้ผู้ใช้แก้ไขที่อยู่ในระหว่างที่โต้ตอบกับแอปพลิเคชันของคุณครั้งถัดไป
- ข้อมูลจากออบเจ็กต์ AddressComponent
confirmationLevel
inferred
spellCorrected
replaced
unexpected
หากต้องการแคชข้อมูลเกี่ยวกับที่อยู่จริง ข้อมูลดังกล่าวจะต้องได้รับการแคชเมื่อได้รับความยินยอมจากผู้ใช้เท่านั้น วิธีนี้ช่วยให้ผู้ใช้ทราบสาเหตุที่บริการหนึ่งๆ จัดเก็บที่อยู่ของตน และผู้ใช้ยินยอมตามข้อกำหนดในการแชร์ที่อยู่
ตัวอย่างความยินยอมของผู้ใช้คือการโต้ตอบโดยตรงกับแบบฟอร์มที่อยู่อีคอมเมิร์ซในหน้าชำระเงิน เราเข้าใจว่าคุณจะแคชและประมวลผลที่อยู่เพื่อวัตถุประสงค์ในการจัดส่งพัสดุ
เมื่อได้รับความยินยอมจากผู้ใช้ คุณจะแคช formattedAddress
และคอมโพเนนต์หลักอื่นๆ จากคำตอบได้ อย่างไรก็ตาม ในสถานการณ์แบบ Headless ผู้ใช้จะให้ความยินยอมไม่ได้เนื่องจากการยืนยันที่อยู่เกิดขึ้นจากแบ็กเอนด์ คุณจึงแคชข้อมูลได้เพียงเล็กน้อยในสถานการณ์แบบ Headless นี้
ทําความเข้าใจคําตอบ
หากการตอบกลับของ Address Validation API มีเครื่องหมายต่อไปนี้ แสดงว่าที่อยู่ที่คุณป้อนมีคุณภาพที่นำไปใช้งานได้
- เครื่องหมาย
addressComplete
ในแอปเพล็ตVerdictคือtrue
validationGranularity
ในออบเจ็กต์VerdictคือPREMISE
หรือSUB_PREMISE
- AddressComponent รายการใดก็ไม่ได้ทำเครื่องหมายเป็นค่าต่อไปนี้
Inferred
(หมายเหตุ: inferred=true
อาจเกิดขึ้นได้เมื่อaddressComplete=true
)spellCorrected
replaced
unexpected
และ
confirmationLevel
: ระบบตั้งค่าระดับการยืนยันในAddressComponentเป็นCONFIRMED
หรือUNCONFIRMED_BUT_PLAUSIBLE
หากการตอบกลับของ API ไม่มีเครื่องหมายข้างต้น แสดงว่าที่อยู่อินพุตมีแนวโน้มที่มีคุณภาพต่ำ และคุณสามารถแคชการแจ้งเตือนในฐานข้อมูลเพื่อแสดงข้อมูลดังกล่าว สถานะที่แคชไว้บ่งบอกว่าที่อยู่โดยรวมมีคุณภาพต่ำ ส่วนสถานะที่ละเอียดยิ่งขึ้น เช่น "แก้ไขการสะกดแล้ว" จะบ่งบอกถึงปัญหาด้านคุณภาพของที่อยู่ประเภทใดประเภทหนึ่ง เมื่อลูกค้าโต้ตอบกับที่อยู่ที่มีการแจ้งว่ามีคุณภาพต่ำในครั้งถัดไป คุณสามารถเรียกใช้ Address Validation API ด้วยที่อยู่ที่มีอยู่ Address Validation API จะแสดงผลที่อยู่ที่ได้รับการแก้ไขซึ่งคุณสามารถแสดงโดยใช้พรอมต์ UI เมื่อลูกค้ายอมรับที่อยู่ที่มีการจัดรูปแบบแล้ว คุณก็สามารถแคชข้อมูลต่อไปนี้จากคำตอบได้
formattedAddress
postalAddress
addressComponent componentNames
หรือUspsData standardizedAddress
ใช้การตรวจสอบที่อยู่แบบ Headless
จากการสนทนาข้างต้น
- บ่อยครั้งที่คุณจำเป็นต้องแคชการตอบกลับบางส่วนจาก Address Validation API เพื่อเหตุผลทางธุรกิจ
- อย่างไรก็ตาม ข้อกำหนดในการให้บริการของ Google Maps Platform จะจำกัดข้อมูลที่แคชได้
ในส่วนถัดไป เราจะกล่าวถึงกระบวนการ 2 ขั้นตอนในการปฏิบัติตามข้อกำหนดในการให้บริการและการใช้การตรวจสอบที่อยู่จำนวนมาก
ขั้นตอนที่ 1:
ในขั้นตอนแรก เราจะดูวิธีใช้สคริปต์ตรวจสอบที่อยู่จํานวนมากจากไปป์ไลน์ข้อมูลที่มีอยู่ กระบวนการนี้จะช่วยให้คุณจัดเก็บช่องที่เฉพาะเจาะจงจากคำตอบของ Address Validation API ในลักษณะที่เป็นไปตามข้อกำหนดในการให้บริการ
แผนภาพ ก: แผนภาพต่อไปนี้แสดงวิธีปรับปรุงไปป์ไลน์ข้อมูลด้วยตรรกะการยืนยันที่อยู่จำนวนมาก
คุณแคชข้อมูลต่อไปนี้จาก addressComponent
ได้ตามกฎหมายข้อกำหนดในการให้บริการ
confirmationLevel
inferred
spellCorrected
replaced
unexpected
ดังนั้นในขั้นตอนการติดตั้งใช้งานนี้ เราจะแคชช่องที่กล่าวถึงข้างต้นกับ UserID
ดูข้อมูลเพิ่มเติมได้ที่รายละเอียดเกี่ยวกับโครงสร้างข้อมูลจริง
ขั้นตอนที่ 2:
ในขั้นตอนที่ 1 เราได้รวบรวมความคิดเห็นว่าที่อยู่บางรายการในชุดข้อมูลอินพุตอาจไม่มีคุณภาพสูง ในขั้นตอนถัดไป เราจะนำที่อยู่ที่ได้รับแจ้งเหล่านี้ไปแสดงต่อผู้ใช้และขอความยินยอมจากผู้ใช้ในการแก้ไขที่อยู่ที่จัดเก็บไว้
แผนภาพ ข: แผนภาพนี้แสดงการผสานรวมแบบครบวงจรของขั้นตอนการขอความยินยอมของผู้ใช้
- เมื่อผู้ใช้เข้าสู่ระบบ ให้ตรวจสอบก่อนว่าคุณได้แคช Flag การตรวจสอบไว้ในระบบหรือไม่
- หากมีการแจ้งว่าไม่ถูกต้อง คุณควรแสดง UI ให้ผู้ใช้แก้ไขและอัปเดตที่อยู่
- คุณสามารถเรียกใช้ Address Validation API อีกครั้งด้วยที่อยู่ที่ได้รับการอัปเดตหรือแคชไว้ และแสดงที่อยู่ที่ได้รับการแก้ไขให้ผู้ใช้ยืนยัน
- หากที่อยู่มีคุณภาพดี Address Validation API จะแสดงผลเป็น
formattedAddress
- คุณสามารถแสดงที่อยู่ดังกล่าวให้ผู้ใช้เห็นหากมีการแก้ไข หรือจะยอมรับโดยปริยายหากไม่มีการแก้ไขก็ได้
- เมื่อผู้ใช้ยอมรับแล้ว คุณจะแคช
formattedAddress
ในฐานข้อมูลได้
บทสรุป
การตรวจสอบที่อยู่จำนวนมากเป็น Use Case ที่พบบ่อยซึ่งคุณอาจพบในแอปพลิเคชันหลายรายการ เอกสารนี้พยายามสาธิตสถานการณ์และรูปแบบการออกแบบบางอย่างเกี่ยวกับวิธีใช้โซลูชันดังกล่าวให้เป็นไปตามข้อกำหนดในการให้บริการของแพลตฟอร์ม Google Maps
เราได้เขียนการใช้งานอ้างอิงเพิ่มเติมของการตรวจสอบที่อยู่จำนวนมากเป็นไลบรารีโอเพนซอร์สใน GitHub โปรดดูวิดีโอเพื่อเริ่มต้นใช้งานการสร้างด้วยการตรวจสอบที่อยู่จำนวนมากอย่างรวดเร็ว นอกจากนี้ โปรดอ่านบทความเกี่ยวกับรูปแบบการออกแบบวิธีใช้คลังภาพในสถานการณ์ต่างๆ
ขั้นตอนถัดไป
ดาวน์โหลดเอกสารปรับปรุงการชำระเงิน การนำส่ง และการดำเนินการด้วยที่อยู่ที่น่าเชื่อถือ และดูการสัมมนาผ่านเว็บเรื่องการปรับปรุงการชำระเงิน การนำส่ง และการดำเนินการด้วยการตรวจสอบที่อยู่
แหล่งข้อมูลอื่นๆ ที่แนะนํา
- การใช้งานการยืนยันที่อยู่จํานวนมาก
- ไลบรารี Python ใน GitHub
- ดูเดโมการตรวจสอบที่อยู่
ผู้ร่วมให้ข้อมูล
Google เป็นผู้ดูแลบทความนี้ ผู้เขียนเนื้อหาต้นฉบับมีดังนี้
ผู้เขียนหลัก:
Henrik Valve | วิศวกรโซลูชัน
Thomas Anglaret | วิศวกรโซลูชัน
Sarthak Ganguly | วิศวกรโซลูชัน