Cuando actualizas la información de la empresa a través de la API de Business Information para Mi Negocio o la IU del Perfil de Negocio, las ediciones pasan por una canalización de moderación y verificación antes de aparecer publicadas en la Búsqueda de Google y Maps. Además, Google puede actualizar los detalles de la empresa según los informes de los usuarios o las fuentes de datos con licencia.
Los extremos de estado de edición de v1alpha te permiten recuperar una vista unificada de una ubicación o sus atributos en una sola solicitud:
- Datos proporcionados por el comercio: Son los valores que envió el comercio por última vez.
- Datos orientados al consumidor: Los valores se publican en la Búsqueda de Google y en Maps.
- Metadatos de campo extendidos: Estado de edición por campo o por atributo,
incluida la etapa del ciclo de vida de la última edición, la fuente de origen (
APIoUI), la marca de tiempo de la última edición y cualquier motivo de incumplimiento de política si se rechazó una edición.
Antes de comenzar
Antes de usar la API de My Business Business Information, registra tu aplicación y obtén las credenciales de OAuth 2.0. Para obtener detalles sobre cómo comenzar, consulta Configuración básica.
Recupera datos de ubicación extendidos
Para inspeccionar los datos de ubicación proporcionados por el comercio, los datos de ubicación para el consumidor
y el estado de edición por campo de una ubicación, llama a
locations.getExtended.
A diferencia de locations.get,
locations.getExtended no requiere un parámetro readMask y devuelve el
recurso ExtendedLocation completo.
Solicitud
GET https://mybusinessbusinessinformation.googleapis.com/v1alpha/locations/{locationId}:getExtended
Respuesta
La respuesta contiene tres campos de nivel superior:
locationProvidedByMerchant: Son los datos deLocationque administra el comercio.locationSeenByConsumers: Son los datos deLocationvisibles para los consumidores en la Búsqueda de Google y Maps.extendedFieldData: Es un mapa de nombres de camposLocationde nivel superior ensnake_case(comotitle,phone_numbers,website_uri,storefront_addressoregular_hours) para objetosExtendedFieldData. Las claves siempre son nombres de campos de nivel superior simples, nunca subcampos anidados.
{
"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"
}
}
}Recupera datos de atributos extendidos
Para inspeccionar los valores proporcionados por el comercio, los valores para el consumidor y el estado de edición de los atributos de una ubicación, llama a locations.attributes.getExtended.
Solicitud
GET https://mybusinessbusinessinformation.googleapis.com/v1alpha/locations/{locationId}/attributes:getExtended
Respuesta
La respuesta devuelve un recurso ExtendedAttributes
que contiene una lista de entradas ExtendedAttribute. Cada
entrada vincula attributeProvidedByMerchant y attributeSeenByConsumers con un
objeto extendedFieldData para ese atributo:
{ "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" } } ] }
Comprende los metadatos de campos extendidos
Cada objeto ExtendedFieldData contiene los siguientes campos:
| Campo | Tipo | Descripción |
|---|---|---|
lastEditLifecycleStage |
EditLifecycleStage |
Es el estado de moderación o publicación de la edición más reciente de este campo o atributo. |
rejectionReason |
PolicyViolation |
Es el incumplimiento de política que provocó el rechazo de la edición. Se propaga cuando lastEditLifecycleStage es EDIT_LIFECYCLE_STAGE_REJECTED. |
updateTime |
string (Timestamp) |
Es la marca de tiempo de la última edición que se envió para este campo o atributo (formato RFC 3339). |
source |
Source |
Es la plataforma de origen en la que el comercio envió la edición (SOURCE_API o SOURCE_UI). |
Cómo editar las etapas del ciclo de vida
La enumeración EditLifecycleStage indica en qué etapa de su ciclo de vida se encuentra una edición:
| Valor | Descripción | Acción recomendada |
|---|---|---|
EDIT_LIFECYCLE_STAGE_ACCEPTED |
Se aprobó la edición del comercio y es apta para publicarse. | No se requiere ninguna acción. |
EDIT_LIFECYCLE_STAGE_PENDING |
La edición del comercio está en proceso de revisión y aún no se aplicó a la ficha para el consumidor. | Espera a que se complete la moderación. No vuelvas a enviar ediciones idénticas de forma reiterada mientras haya una edición pendiente. |
EDIT_LIFECYCLE_STAGE_REJECTED |
No se aceptó la edición del comercio. Verifica rejectionReason para obtener el valor específico de PolicyViolation. |
Corrige el incumplimiento de política subyacente y envía una actualización nueva con locations.patch o locations.updateAttributes. |
EDIT_LIFECYCLE_STAGE_UPDATED_BY_GOOGLE |
Google actualizó el valor para el consumidor (por ejemplo, a partir de informes de usuarios o fuentes externas) y difiere del valor que proporcionó el comercio. | Revisa el valor de locationSeenByConsumers o attributeSeenByConsumers, y acéptalo o anúlalo. Consulta Cómo administrar las actualizaciones de Google. |
EDIT_LIFECYCLE_STAGE_DRAFT |
La edición se guardó como borrador (por ejemplo, en una ubicación no verificada) y no está publicada en la Búsqueda de Google ni en Maps. | Completa la verificación de la ubicación para que la ficha se publique. |
EDIT_LIFECYCLE_STAGE_UNSPECIFIED |
La etapa del ciclo de vida de la edición es desconocida o no se especificó. | Ninguno |
Editar fuentes
La enumeración Source identifica el canal a través del cual el comercio envió la edición:
SOURCE_API: La edición se envió a través de la API de Business Information para Mi Negocio.SOURCE_UI: La edición se envió a través de la IU web o la app para dispositivos móviles del Perfil de Negocio.SOURCE_UNSPECIFIED: No se especifica la fuente de la edición.
Incumplimientos de política
Cuando lastEditLifecycleStage es EDIT_LIFECYCLE_STAGE_REJECTED, el campo rejectionReason proporciona un valor de enumeración PolicyViolation que explica por qué se rechazó la edición. Los motivos de rechazo abarcan las siguientes áreas (ejemplos):
- Estado del perfil y de la cuenta:
ACCOUNT_RESTRICTED_AND_SUSPENDED,ACCOUNT_RESTRICTED_AND_EDIT_REJECTED,ASSOCIATED_ACCOUNT_SUSPENDED,BUSINESS_INELIGIBLE,LOCATION_SUSPENDED,LOCATION_VERIFICATION_REQUIRED,OWNERSHIP_REVOKED,PO_BOX. - Restricciones de edición:
EDITING_RESTRICTION,ILLEGAL_BUSINESS_HOURS_EDIT,IDENTITY_CHANGE,GEOGRAPHIC_LOCATION_CHANGE. - Políticas de contenido:
MISREPRESENTATION,OFF_TOPIC,PERSONAL_INFO,GIBBERISH_AND_REPETITIVE,OBSCENITY_AND_PROFANITY,GENERIC_QUALITY.
Para obtener la lista completa de valores y descripciones de enumeraciones, consulta la
documentación de referencia de PolicyViolation.