目标
地址验证可为各种用例提供价值,除了测试结果的原始质量之外,我们建议您还要考虑一些关键注意事项。例如:用户体验历程中兼容产品的整体视图(例如地点自动补全和 Google 地图)、地区性可用性,以及企业信任度和可靠性。
在评估 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 屏蔽 ROUTE 其他 |
让您确定输入地址是否包含足够的数据,以便可能有效。 |
verdict.validationGranularity |
描述地址的整体输出验证。 |
SUB_PREMISE PREMISE PREMISE_PROXIMITY 屏蔽 ROUTE 其他 |
让您能够确定 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 |
USA |
判定
{
"inputGranularity": "PREMISE",
"validationGranularity": "OTHER",
"geocodeGranularity": "OTHER",
"hasUnconfirmedComponents": true
}
查看缺失或未确认的组件
在此阶段,您还可以查看缺失或未确认的组件。这是返回中的 Address 对象的一部分。这两个字段分别是 missingComponentTypes
和 unconfirmedComponentTypes
。
通过这些字段,您可以检测 API 将地址标记为无效的原因,并收集地址的正确信息,以使其有效(方法是将不正确的具体字段反馈给数据收集点)。通过向您提供有关数据质量的具体信息,该 API 可为您提供价值。
示例:缺少未经确认的组件
输入的地址 |
区域 |
---|---|
Fake St, New York, NY 10011 |
USA |
判定
{
"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 |
英国 |
路由 addressComponent
{
"componentName": {
"text": "Buckingham Palace Road",
"languageCode": "en"
},
"componentType": "route",
"confirmationLevel": "CONFIRMED",
"spellCorrected": true
}
[仅限美国] 检查缺少或不正确的子门牌数据的地址
Address Validation API 能够确定美国地址是否缺少子门牌或子门牌是否不正确。
需要注意的关键信号包括:
- 在 Address 对象中:
- “
unconfirmedComponentTypes
”包含“subpremise
” - “
missingComponentTypes
”包含“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 以查看此类数据,并确定这些数据是否有助于提升工作流的价值。
示例:美国邮政标准地址
"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 工程师