วัตถุประสงค์
ในฐานะนักพัฒนาซอฟต์แวร์ คุณมักจะทำงานกับชุดข้อมูลที่มีที่อยู่ของลูกค้าซึ่งอาจมีคุณภาพไม่ดี คุณต้องตรวจสอบว่าที่อยู่ถูกต้องสำหรับกรณีการใช้งานต่างๆ ตั้งแต่การยืนยันผ่านบัตรประจำตัวลูกค้า การนำส่ง และอื่นๆ
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 ผู้ใช้จะให้ความยินยอมไม่ได้เนื่องจากการยืนยันที่อยู่เกิดขึ้นจากแบ็กเอนด์ ดังนั้นคุณสามารถแคชข้อมูลที่จํากัดมากในสถานการณ์ที่ไม่มีส่วนหัวนี้ได้
ทำความเข้าใจคำตอบ
หากการตอบกลับของ 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 ไม่มีเครื่องหมายข้างต้น แสดงว่าที่อยู่อินพุตมีแนวโน้มที่มีคุณภาพต่ำ และคุณสามารถแคชการแจ้งเตือนในฐานข้อมูลเพื่อแสดงข้อมูลดังกล่าว สถานะที่แคชไว้บ่งบอกว่าที่อยู่โดยรวมมีคุณภาพต่ำ ส่วนสถานะที่ละเอียดยิ่งขึ้น เช่น "แก้ไขการสะกดแล้ว" จะบ่งบอกถึงปัญหาด้านคุณภาพของที่อยู่แต่ละประเภท ในการโต้ตอบครั้งต่อไปของลูกค้ากับที่อยู่ที่ได้รับการแจ้งว่ามีคุณภาพต่ำ คุณสามารถเรียกใช้ 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 | วิศวกรโซลูชัน