Подтверждение адреса: примеры

В этом документе описаны реальные сценарии, в которых 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 нашел адрес, близкий к указанному, в Сиэтле и заменил почтовый индекс (компонент более высокого уровня), чтобы получить адрес в Сиэтле. Это может быть допустимой заменой, но, учитывая, что компоненты не были подтверждены, имеет смысл убедиться, что пользователь намеревается ввести адрес в Сиэтле, а не в другом городе, например в Керкленде.

Примеры пограничных ситуаций: подтверждение

Ниже приведены примеры следующих пограничных случаев:

Незначительные выводы, которые ПОДТВЕРЖДЕНЫ

Если в запросе отсутствуют только один из перечисленных ниже компонентов, 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 также оценивает информацию на предмет правильного форматирования.