地址验证解决方案指南

流程图,简要概述了测试步骤。

目标

地址验证可为各种应用场景提供价值,除了测试结果的原始质量之外,还有一些关键注意事项,建议您探索。 例如:在用户体验流程中全面了解兼容的产品(例如地点自动补全和地图)、区域可用性以及企业信任度和可靠性。

在评估 Address Validation API 时,我们建议您在测试过程中遵循以下准则。

此测试的目标是:

  1. 确认 Address Validation API 适合您的应用场景。
  2. 验证 Address Validation API 如何满足您的解决方案要求,例如:
    • 识别优质地址。
    • 提醒用户解决输入质量不佳的问题。
    • 更正地址数据,包括推断、替换和拼写更正。
    • 提供格式化的送货地址。
    • 提醒缺少或不正确的子场所数据(仅限美国)。
  3. 确保您能从实现 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

英国

Verdict

{
  "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

Verdict

{
  "inputGranularity": "PREMISE",
  "validationGranularity": "OTHER",
  "geocodeGranularity": "OTHER",
  "hasUnconfirmedComponents": true
}

查看缺失或未确认的组件

在此阶段,还可以查看缺失或未确认的组件。这是返回的 Address 对象的一部分。这两个字段分别是 missingComponentTypes 和 unconfirmedComponentTypes。

您可以使用这些字段来帮助检测地址被 API 标记为无效的原因,并通过将不正确的特定字段反馈到数据收集点,收集地址的正确信息,使其有效。这是 API 通过提供有关数据质量的具体信息来提供价值的一种方式。

示例:缺少组件和未确认组件

输入的地址

区域

Fake St, New York, NY 10011

USA

Verdict

{
     "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,了解这些数据,并确定它们是否能为您的工作流程带来价值。

示例: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 工程师