В этом документе описаны реальные сценарии, в которых Address Validation API возвращает сигналы, требующие подтверждения от вашей системы. Приведенные ниже примеры не являются исчерпывающими. Дополнительную информацию можно найти в разделе Обзор рабочего процесса статьи Как создать логику проверки.
Примеры: подтверждение
В следующем примере показан случай с городскими районами с похожими названиями улиц. Предположим, пользователь хочет ввести адрес Google Building D в Керкленде, штат Вашингтон, США. Однако вместо города Киркленд они случайно вводят Сиэтл.
| Адрес введен | Регион |
|---|---|
| Building D, 451 7th Avenue South, Seattle, WA 98033 | США |
Решение по замененным данным
В примере ниже выделены важные сигналы из оценки.
{
"inputGranularity": "SUB_PREMISE",
"validationGranularity": "PREMISE_PROXIMITY",
"geocodeGranularity": "PREMISE_PROXIMITY",
"addressComplete": true,
"hasUnconfirmedComponents": true
"hasReplacedComponents": true
}
Уровень детализации PREMISE_PROXIMITY указывает на приблизительный адрес на уровне здания, но не является таким же подробным, как SUB_PREMISE, который предоставляется на входе. В ответе также есть неподтвержденные и замененные компоненты, поэтому он относится к категории Подтвердить.
Запрос компонентов адреса выявляет следующие проблемные области:
{
"componentName": {
"text": "451",
},
"componentType": "street_number",
"confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE",
}
...
{
"componentName": {
"text": "98104",
},
"componentType": "postal_code",
"confirmationLevel": "CONFIRMED",
"replaced": true
}
...
{
"componentName": {
"text": "Building D",
"language_code": "en"
},
"componentType": "subpremise",
"confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE",
}
.......
"unconfirmedComponentTypes": [
"street_number",
"subpremise"
]
В этом случае Address Validation API нашел адрес, близкий к указанному, в Сиэтле и заменил почтовый индекс (компонент более высокого уровня), чтобы получить адрес в Сиэтле. Это может быть допустимой заменой, но, учитывая, что компоненты не были подтверждены, имеет смысл убедиться, что пользователь намеревается ввести адрес в Сиэтле, а не в другом городе, например в Керкленде.
Примеры пограничных ситуаций: подтверждение
Ниже приведены примеры следующих пограничных случаев:
- Незначительные выводы, которые подтверждены. Address Validation API определяет страну, почтовый индекс или штат, но все остальные данные предоставляются и подтверждаются. Сочетание детализации и уровня подтверждения позволяет сделать незначительный вывод, который не обязательно требует подтверждения.
- Неожиданный компонент адреса НЕ подтвержден. Неподтвержденные компоненты адреса повышают уровень риска. В этом случае может потребоваться подтверждение.
- Неожиданный компонент адреса, который подтвержден. Этот компонент не является строго обязательным для правильного адреса, и Address Validation API удаляет его из выходных данных. Проблемы с форматированием обычно не требуют подтверждения.
Незначительные выводы, которые ПОДТВЕРЖДЕНЫ
Если в запросе отсутствуют только один из перечисленных ниже компонентов, API может сделать правильное умозаключение, используя подтвержденные данные более детального уровня.
- Город
- Штат
- Почтовый индекс
- Страна
Например, клиент указывает действительный почтовый адрес ресторана McDonald's в Спрингфилде, штат Массачусетс, но забывает указать город и указывает почтовый индекс без 4-значного расширения.
| Адрес введен | Регион |
|---|---|
| 1402 Allen St, MA 01118 | США |
Решение по отсутствующему городу
{
"inputGranularity": "PREMISE",
"validationGranularity": "PREMISE",
"geocodeGranularity": "PREMISE",
"addressComplete": true,
"hasInferredComponents": true
}
В ситуациях, когда Address Validation API выводит компоненты более высокого уровня для создания адреса доставки, вы можете быть более уверены в правильности данных из системы. Это связано с тем, что предполагаемые компоненты, представляющие широкий географический регион, легче сопоставить с подтвержденными компонентами адреса, которые являются более детализированными. Даже в странах, где названия городов повторяются, например Спрингфилд в США, другие компоненты в сочетании с ним могут обеспечить уникальный адрес.
В нашем примере сканирование всех компонентов адреса показывает, что каждый компонент подтвержден, то есть соответствует данным, хранящимся в Address Validation API, и что сервис также выводит два компонента более высокого уровня.
{
"componentName": {
"text": "Springfield",
"languageCode": "en"
},
"componentType": "locality",
"confirmationLevel": "CONFIRMED",
"inferred": true
},
{
"componentName": {
"text": "1806"
},
"componentType": "postal_code_suffix",
"confirmationLevel": "CONFIRMED",
"inferred": true
}
Неожиданный компонент адреса НЕ подтвержден
Этот сценарий иллюстрирует важность проверки, когда компоненты не подтверждены. Если компонент адреса не ожидается, Address Validation API удаляет его из выходных данных. В таких случаях вы можете либо принять адрес, либо попросить клиента подтвердить его, в зависимости от уровня риска и уверенности.
Например, адрес может быть из региона, где клиенты часто вводят безобидную информацию, игнорируемую почтовым отделением. В этом случае вы можете принять адрес. Однако в некоторых случаях неподтвержденный компонент может не соответствовать ожиданиям клиента.
| Адрес введен | Регион |
|---|---|
| 1 Rue Grenache, la caritat 2, 34630 Saint-Thibéry | Франция |
Вердикт для неожиданного компонента адреса не подтвержден
{
"inputGranularity": "PREMISE",
"validationGranularity": "PREMISE",
"geocodeGranularity": "PREMISE",
"unconfirmedComponents": true
}
Помимо оценки с неподтвержденными компонентами, Address Validation API возвращает следующий отформатированный адрес:
"formattedAddress": "1 Rue Grenache, 34630 Saint-Thibéry, France",
Сканирование на наличие неподтвержденных компонентов показывает, что API удалил la caritat 2 из возвращенного адреса:
{
"componentName": {
"text": "la caritat 2",
"languageCode": "fr"
},
"componentType": "sublocality_level_1",
"confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE",
"unexpected": true
}
Неожиданный компонент адреса, который подтвержден
В этом примере в адрес включено название округа в Великобритании, что является обычной практикой. Однако это не является требованием почтовой службы Великобритании и по сути игнорируется. См. postoffice.co.uk и How to address UK and international mail.
В результате, когда клиент указывает округ в адресе в Великобритании, сервис оценивает это как неожиданные входные данные.
| Адрес введен | Регион |
|---|---|
| 33 Dunalley St, Cheltenham, Gloucestershire, GL50 4AP | Великобритания |
Вердикт для неожиданного компонента адреса, который подтвержден
{
"inputGranularity": "PREMISE",
"validationGranularity": "PREMISE",
"geocodeGranularity": "PREMISE"
}
В этом случае address_complete принимает значение false, а анализ компонента адреса выявляет неожиданный флаг.
{
"componentName": {
"text": "Gloucestershire",
"languageCode": "en"
},
"componentType": "administrative_area_level_2",
"confirmationLevel": "CONFIRMED",
"unexpected": true
}
Хотя Глостершир – правильный округ для введенного адреса, сам адрес отформатирован неправильно. Напомним, что Address Validation API также оценивает информацию на предмет правильного форматирования.