Как проверить статус изменения адресов и атрибутов

Когда вы обновляете информацию о компании через My Business Business Information API или интерфейс профиля компании, изменения проходят модерацию и проверку, прежде чем появиться в Google Поиске и на Картах. Кроме того, Google может обновлять информацию о компании на основе сообщений пользователей или лицензированных источников данных.

Конечные точки v1alpha Edit Status позволяют получить унифицированное представление адреса или его атрибутов в одном запросе:

  • Данные, предоставленные продавцом. Значения, которые продавец отправил последними.
  • Данные, доступные пользователям. Значения, которые показываются в Google Поиске и на Картах.
  • Расширенные метаданные полей. Статус изменения для каждого поля или атрибута, включая этап жизненного цикла последнего изменения, источник (API или UI), временную метку последнего изменения и причину нарушения правил, если изменение было отклонено.

Подготовка

Прежде чем начинать работу с My Business Business Information API, необходимо зарегистрировать свое приложение и получить учетные данные OAuth 2.0. Подробнее о начале работы читайте в руководстве по базовой настройке.

Как получить расширенные данные о местоположении

Чтобы проверить данные о местоположении, предоставленные продавцом, потребительские данные о местоположении и статус редактирования для каждого поля, вызовите метод locations.getExtended.

В отличие от locations.get, для locations.getExtended не требуется параметр readMask, и возвращается полный ресурс ExtendedLocation.

Запрос

HTTP
GET https://mybusinessbusinessinformation.googleapis.com/v1alpha/locations/{locationId}:getExtended

Ответ

Ответ содержит три поля верхнего уровня:

  • locationProvidedByMerchant: данные Location, которыми управляет продавец.
  • locationSeenByConsumers – данные Location, которые видны пользователям в Google Поиске и на Картах.
  • extendedFieldData – сопоставление названий полей Location верхнего уровня в snake_case (например, title, phone_numbers, website_uri, storefront_address или regular_hours) с объектами ExtendedFieldData. Ключи всегда являются простыми названиями полей верхнего уровня, а не вложенными подполями.
{
  "locationProvidedByMerchant": {
    "name": "locations/{locationId}",
    "title": "Example Coffee Roasters - Best Coffee in Sydney",
    "phoneNumbers": {
      "primaryPhone": "02 5550 1234"
    },
    "websiteUri": "https://www.example.com/"
  },
  "locationSeenByConsumers": {
    "name": "locations/{locationId}",
    "title": "Example Coffee Roasters",
    "phoneNumbers": {
      "primaryPhone": "+61 2 5550 1234"
    },
    "websiteUri": "https://www.example.com/"
  },
  "extendedFieldData": {
    "title": {
      "lastEditLifecycleStage": "EDIT_LIFECYCLE_STAGE_REJECTED",
      "rejectionReason": "MISREPRESENTATION",
      "updateTime": "2026-09-25T08:00:00Z",
      "source": "SOURCE_API"
    },
    "phone_numbers": {
      "lastEditLifecycleStage": "EDIT_LIFECYCLE_STAGE_UPDATED_BY_GOOGLE",
      "updateTime": "2026-09-20T14:15:00Z",
      "source": "SOURCE_UI"
    },
    "website_uri": {
      "lastEditLifecycleStage": "EDIT_LIFECYCLE_STAGE_ACCEPTED",
      "updateTime": "2026-09-15T10:30:00Z",
      "source": "SOURCE_API"
    }
  }
}

Получение данных расширенных атрибутов

Чтобы проверить значения, предоставленные продавцом, значения, видимые потребителям, и статус изменения атрибутов адреса, вызовите метод locations.attributes.getExtended.

Запрос

HTTP
GET https://mybusinessbusinessinformation.googleapis.com/v1alpha/locations/{locationId}/attributes:getExtended

Ответ

В ответе возвращается ресурс ExtendedAttributes, содержащий список записей ExtendedAttribute. Каждая запись сопоставляет attributeProvidedByMerchant и attributeSeenByConsumers с объектом extendedFieldData для этого атрибута:

{
  "name": "locations/{locationId}/attributes",
  "extendedAttributes": [
    {
      "attributeProvidedByMerchant": {
        "name": "attributes/has_wheelchair_accessible_entrance",
        "valueType": "BOOL",
        "values": [
          true
        ]
      },
      "attributeSeenByConsumers": {
        "name": "attributes/has_wheelchair_accessible_entrance",
        "valueType": "BOOL",
        "values": [
          true
        ]
      },
      "extendedFieldData": {
        "lastEditLifecycleStage": "EDIT_LIFECYCLE_STAGE_ACCEPTED",
        "updateTime": "2026-09-10T12:00:00Z",
        "source": "SOURCE_API"
      }
    },
    {
      "attributeProvidedByMerchant": {
        "name": "attributes/wi_fi",
        "valueType": "ENUM",
        "values": [
          "free_wi_fi"
        ]
      },
      "attributeSeenByConsumers": {
        "name": "attributes/wi_fi",
        "valueType": "ENUM",
        "values": [
          "paid_wi_fi"
        ]
      },
      "extendedFieldData": {
        "lastEditLifecycleStage": "EDIT_LIFECYCLE_STAGE_PENDING",
        "updateTime": "2026-09-28T16:45:00Z",
        "source": "SOURCE_API"
      }
    }
  ]
}

Метаданные расширенных полей

Каждый объект ExtendedFieldData содержит следующие поля:

Поле Тип Описание
lastEditLifecycleStage EditLifecycleStage Статус модерации или показа последнего изменения этого поля или атрибута.
rejectionReason PolicyViolation Нарушение правил, из-за которого изменение было отклонено. Заполняется, если lastEditLifecycleStage – EDIT_LIFECYCLE_STAGE_REJECTED.
updateTime string (Timestamp) Временная метка последнего изменения этого поля или атрибута (в формате RFC 3339).
source Source Платформа, на которой продавец отправил изменение (SOURCE_API или SOURCE_UI).

Изменить этапы жизненного цикла

Перечисление EditLifecycleStage указывает, на каком этапе жизненного цикла находится изменение:

Значение Описание Рекомендуемые действия
EDIT_LIFECYCLE_STAGE_ACCEPTED Изменение, внесенное продавцом, одобрено и может быть показано. Вам не нужно выполнять никаких действий.
EDIT_LIFECYCLE_STAGE_PENDING Изменение, внесенное продавцом, находится на рассмотрении и не применено к потребительской информации о товаре. Дождитесь завершения модерации. Не отправляйте повторно одни и те же изменения, пока они находятся на рассмотрении.
EDIT_LIFECYCLE_STAGE_REJECTED Изменение, предложенное продавцом, не было принято. Проверьте значение PolicyViolation в файле rejectionReason. Устраните нарушение правил и отправьте новую версию приложения с помощью locations.patch или locations.updateAttributes.
EDIT_LIFECYCLE_STAGE_UPDATED_BY_GOOGLE Потребительское значение было обновлено Google (например, на основе сообщений пользователей или внешних источников) и отличается от значения, предоставленного продавцом. Проверьте значение locationSeenByConsumers или attributeSeenByConsumers и примите или переопределите его. Подробнее о том, как управлять изменениями, внесенными Google…
EDIT_LIFECYCLE_STAGE_DRAFT Изменение сохранено как черновик (например, для неподтвержденного адреса) и не показывается в Google Поиске и Картах. Чтобы информация о компании была опубликована, пройдите подтверждение адреса.
EDIT_LIFECYCLE_STAGE_UNSPECIFIED Этап жизненного цикла изменения неизвестен или не указан. Нет.

Изменить источники

Перечисление Source определяет канал, через который продавец отправил изменение:

  • SOURCE_API – изменение было отправлено через My Business Business Information API.
  • SOURCE_UI – изменение было отправлено через веб-интерфейс или мобильное приложение профиля компании.
  • SOURCE_UNSPECIFIED – источник изменения не указан.

Нарушения правил

Если для поля lastEditLifecycleStage задано значение EDIT_LIFECYCLE_STAGE_REJECTED, то в поле rejectionReason будет указано значение перечисления PolicyViolation, объясняющее, почему изменение было отклонено. Причины отклонения могут быть связаны со следующими аспектами (примеры):

  • Статус профиля и аккаунта: ACCOUNT_RESTRICTED_AND_SUSPENDED, ACCOUNT_RESTRICTED_AND_EDIT_REJECTED, ASSOCIATED_ACCOUNT_SUSPENDED, BUSINESS_INELIGIBLE, LOCATION_SUSPENDED, LOCATION_VERIFICATION_REQUIRED, OWNERSHIP_REVOKED, PO_BOX.
  • Ограничения на редактирование: EDITING_RESTRICTION, ILLEGAL_BUSINESS_HOURS_EDIT, IDENTITY_CHANGE, GEOGRAPHIC_LOCATION_CHANGE.
  • Правила в отношении контента: MISREPRESENTATION, OFF_TOPIC, PERSONAL_INFO, GIBBERISH_AND_REPETITIVE, OBSCENITY_AND_PROFANITY, GENERIC_QUALITY.

Полный список значений перечисления и их описания приведены в справочной документации по PolicyViolation.