目标
地址验证可为各种应用场景提供价值,除了测试结果的原始质量之外,还有一些关键考虑因素,我们建议您探索一下。例如:用户流(如 地点自动补全和地图)中兼容产品的整体视图、区域可用性以及企业 信任度和可靠性。
在评估 Address Validation API 时,我们建议您使用以下指南作为测试的一部分。
此测试的目标是:
- 确认 Address Validation API 适合您的用例。
- 验证 Address Validation API 如何满足您的解决方案要求,例如:
- 识别高质量的地址。
- 提醒用户输入的地址质量不佳。
- 更正地址数据,包括推断、替换和拼写更正。
- 提供格式化的送货地址。
- 提醒用户注意缺失或不正确的子场所数据(仅限美国)。
- 确保您从实现 API 中获得可衡量的益处。
执行测试后,您将能够回答上述问题,并确定 API 是否适合您的业务。
准备数据
您应该针对现有地址数据的样本执行测试。 不要为测试手动挑选数据,而是选择具有代表性的随机样本,这些样本应代表您运营所在的地理区域。这意味着,如果您在美国和英国都有业务,但 70% 的业务在英国完成,30% 的业务在美国完成,那么样本应反映这种比例。
使用捕获时的地址。例如,如果您计划在电子商务结账流程中实现地址验证,请使用客户在表单中输入的地址,而不是在实现 Address Validation API 之前可能被替换的任何现有处理方式。
为测试准备大约 5,000 到 10,000 条记录的样本。
调用该 API
前提条件:了解如何 发送地址验证 请求。
准备好数据后,您需要针对 API 运行每条地址记录。
如需了解如何调用 API 的指南,请参阅Address Validation API 文档。我们还提供了一篇文章,介绍了使用 Address Validation API 以高容量处理地址的最佳实践。
此步骤的结果应该是 API 为每条地址记录提供的数据输出。然后,您就可以分析结果,以确定 API 是否适合您的用例。您可以使用电子表格、数据库或其他工具,具体取决于您的选择。
查看结果
前提条件:了解如何 处理验证响应, 尤其是“修复”“确认”和“接受”的概念。
在本部分中,我们将讨论您可以分析的输出场景,以评估解决方案的适用性。
本文档中讨论的关键 API 字段概览
响应数据 |
它是什么? |
评估方法 |
有何帮助? |
|---|---|---|---|
verdict.inputGranularity |
描述地址的输入粒度。 |
SUB_PREMISE PREMISE PREMISE_PROXIMITY BLOCK ROUTE OTHER |
让您确定输入地址是否有足够的数据,以便可能有效。 |
verdict.validationGranularity |
描述地址的整体输出验证。 |
SUB_PREMISE PREMISE PREMISE_PROXIMITY BLOCK ROUTE OTHER |
让您确定 API 输出的整体地址质量。 |
verdict.hasInferredComponents |
指示 API 是否推断出组件。 |
True/False |
API 能够在可以推断数据的情况下添加缺失的组件。例如,缺少州/省代码。 |
verdict.hasReplacedComponents |
指示 API 是否替换了组件。 |
True/False |
在某些情况下,API 能够使用正确的数据替换不正确的组件。 |
verdict.addressComplete |
指示地址是否完整。 |
True/False |
如果 API 确定输出地址包含所有必需的组件,则此值为 true。 |
address.missingComponentTypes |
指示地址是否缺少组件,并发出警告。 |
请参阅 表 2 中的值。 |
突出显示不完整地址中缺失的组件。 |
查看有效地址
对 API 返回的数据进行排序,以确定您的系统将接受为有效的地址集。需要注意的 API 关键信号包括:
verdict.validationGranularity包含PREMISE或更高。verdict.addressComplete为true。- 没有推断或替换的组件。
如需了解详情,请参阅接受地址。
此练习的输出应该是您的系统将接受为有效的地址数据的子集。此时,您可以确定:
- 接受百分比是否可接受?
- 如果您使用现有的地址验证工作流,接受率是否相等或更高?
示例:有效地址
输入的地址 |
区域 |
|---|---|
76 Buckingham Palace Road, London SW1W 9TQ |
英国 |
判定
{
"inputGranularity": "PREMISE",
"validationGranularity": "PREMISE",
"geocodeGranularity": "PREMISE",
"addressComplete": true
}
查看无效地址
在此步骤中,您可以手动查看一些标记为无效的地址数据,并查看如果不使用 Address Validation API,该无效地址是否会导致下游问题。
对 API 返回的数据进行排序,以确定您的系统将标记为无效的地址集。需要注意的 API 关键信号包括:
verdict.validationGranularity设置为OTHER或ROUTE,具体取决于您的 风险级别。verdict.addressComplete为false。
如需了解详情,请参阅修复地址。
此练习的输出应该是您的系统将标记为无效的地址数据的子集。此时,您可以确定无效百分比是否可接受。
请务必注意,将地址标记为无效是 Address Validation API 的一项核心功能,而将地址标记为无效的比例较高并不一定反映 API 的性能不佳。API 会告知您地址存在问题,这可以通过更早地发现错误来提高工作流的效率,从而避免下游问题。
示例:无效地址
输入的地址 |
区域 |
|---|---|
21 45 40th street |
美国 |
判定
{
"inputGranularity": "PREMISE",
"validationGranularity": "OTHER",
"geocodeGranularity": "OTHER",
"hasUnconfirmedComponents": true
}
查看缺失或未确认的组件
在此阶段,您还可以查看缺失或未确认的组件。这是
返回中的 Address 对象的一部分。这两个字段分别是 missingComponentTypes 和 unconfirmedComponentTypes。
使用这些字段有助于检测 API 将地址标记为无效的原因,并收集地址的正确信息,使其有效,方法是将不正确的特定字段反馈给数据收集点。这是 API 通过提供有关数据质量的特定信息来提供价值的一种方式。
示例:缺失和未确认的组件
输入的地址 |
区域 |
|---|---|
Fake St, New York, NY 10011 |
美国 |
判定
{
"inputGranularity": "ROUTE",
"validationGranularity": "OTHER",
"geocodeGranularity": "OTHER",
"hasUnconfirmedComponents": true
}
缺失和未确认的组件
"missingComponentTypes": [
"street_number"
],
"unconfirmedComponentTypes": [
"route"
]
查看已更正的地址
Address Validation API 能够更正输入数据,将可能无效的地址输入转换为有效的地址数据输出。这是 API 增加价值的一种方式,务必将其作为测试的一部分进行捕获。
需要注意的关键信号包括:
- 在任何
addressComponents上,inferred、replaced或spellCorrected设置为true。 verdict.hasInferredComponents或verdict.hasReplacedComponents设置为true。
如需了解详情,请参阅确认地址。
此练习的输出应该是 API 已应用更正的地址数据的子集。
您可以手动查看此数据的一部分,以确定 API 是否正在对您的数据进行更正,从而减少下游工作流中的摩擦。
示例:已更正的地址
输入的地址 |
区域 |
|---|---|
76 Bruckingm Palace Road, London SW1W 9TQ |
英国 |
Route addressComponent
{
"componentName": {
"text": "Buckingham Palace Road",
"languageCode": "en"
},
"componentType": "route",
"confirmationLevel": "CONFIRMED",
"spellCorrected": true
}
[仅限美国] 查看缺少或不正确的子场所数据的地址
Address Validation API 能够确定美国地址的子场所是缺失还是不正确。
需要注意的关键信号包括:
- 在 Address 对象中:
unconfirmedComponentTypes包含subpremisemissingComponentTypes包含subpremise
- 在 UspsData 对象中:
dpvConfirmation为D(子场所缺失)dpvConfirmation为S(子场所未确认)
如需了解详情,请参阅处理美国地址。
此测试将显示您的数据中是否存在缺少或不正确的子场所(例如公寓号码)的问题。这可能会导致下游问题,尤其是在配送用例中。Address Validation API 可以通过更早地识别此问题来为您的工作流增加价值,从而让您能够实施步骤来收集更正后的数据。
示例:缺少子场所
输入的地址 |
区域 |
|---|---|
111 8th Avenue, Manhattan, NY 10011 |
美国 |
缺少组件
"missingComponentTypes": [
"subpremise"
]
USPS 数据 DPV 确认
"dpvConfirmation": "D"
[仅限美国] 查看 USPS standardizedAddress
Address Validation API 还会返回美国地址的 USPS 标准化地址。如果您需要在配送标签上打印 USPS 格式的地址,这一点尤其重要。
您可以查看 UspsAddress 以查看此数据,并确定它是否为您的工作流增加了 价值。
示例:USPS 标准化地址
"standardizedAddress": {
"firstAddressLine": "111 8TH AVE FL 11",
"cityStateZipAddressLine": "NEW YORK NY 10011-5201",
"city": "NEW YORK",
"state": "NY",
"zipCode": "10011",
"zipCodeExtension": "5201"
}
总结
开始测试 - 立即开始 Address Validation API 测试,以确保地址数据的准确性,提升客户体验,并简化您的业务运营。按照上述测试场景进行测试后,您将获得所需的信息,以确定 Address Validation API 是否会为您的工作流带来价值。
建议进一步阅读:
贡献者
Henrik Valve | DevX 工程师