Gdy aktualizujesz informacje o firmie za pomocą interfejsu My Business Business Information API lub interfejsu Profilu Firmy, zmiany przechodzą przez proces moderacji i weryfikacji, zanim pojawią się w wyszukiwarce i Mapach Google. Dodatkowo Google może aktualizować dane firmy na podstawie zgłoszeń użytkowników lub licencjonowanych źródeł danych.
Punkty końcowe v1alpha Edit Status umożliwiają pobranie ujednoliconego widoku lokalizacji lub jej atrybutów w jednym żądaniu:
- Dane podane przez sprzedawcę: wartości przesłane ostatnio przez sprzedawcę.
- Dane przeznaczone dla użytkowników: wartości są widoczne w wyszukiwarce Google i Mapach.
- Rozszerzone metadane pól: stan edycji poszczególnych pól lub atrybutów, w tym etap cyklu życia ostatniej zmiany, źródło (
APIlubUI), sygnatura czasowa ostatniej zmiany i przyczyna naruszenia zasad, jeśli zmiana została odrzucona.
Zanim zaczniesz
Zanim zaczniesz korzystać z My Business Business Information API, zarejestruj aplikację i uzyskaj dane logowania OAuth 2.0. Szczegółowe informacje o tym, jak zacząć, znajdziesz w artykule Konfiguracja podstawowa.
Pobieranie rozszerzonych danych o lokalizacji
Aby sprawdzić dane o lokalizacji podane przez sprzedawcę, dane o lokalizacji przeznaczone dla użytkowników i stan edycji poszczególnych pól lokalizacji, wywołaj metodę locations.getExtended.
W przeciwieństwie do locations.get metoda locations.getExtended nie wymaga parametru readMask i zwraca pełny zasób ExtendedLocation.
Żądanie
GET https://mybusinessbusinessinformation.googleapis.com/v1alpha/locations/{locationId}:getExtended
Odpowiedź
Odpowiedź zawiera 3 pola najwyższego poziomu:
locationProvidedByMerchant: daneLocationzarządzane przez sprzedawcę.locationSeenByConsumers: daneLocationwidoczne dla konsumentów w wyszukiwarce i Mapach Google.extendedFieldData: mapa nazw pólLocationnajwyższego poziomu wsnake_case(takich jaktitle,phone_numbers,website_uri,storefront_addresslubregular_hours) do obiektówExtendedFieldData. Klucze są zawsze zwykłymi nazwami pól najwyższego poziomu, nigdy zagnieżdżonymi podpolami.
{
"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"
}
}
}Pobieranie danych atrybutów rozszerzonych
Aby sprawdzić wartości podane przez sprzedawcę, wartości przeznaczone dla użytkowników i stan edycji atrybutów lokalizacji, wywołaj metodę locations.attributes.getExtended.
Żądanie
GET https://mybusinessbusinessinformation.googleapis.com/v1alpha/locations/{locationId}/attributes:getExtended
Odpowiedź
Odpowiedź zwraca zasób ExtendedAttributes zawierający listę wpisów ExtendedAttribute. Każdy wpis łączy attributeProvidedByMerchant i attributeSeenByConsumers z obiektem extendedFieldData dla tego atrybutu:
{ "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" } } ] }
Omówienie rozszerzonych metadanych pól
Każdy obiekt ExtendedFieldData zawiera te pola:
| Pole | Typ | Opis |
|---|---|---|
lastEditLifecycleStage |
EditLifecycleStage |
Stan moderowania lub wyświetlania ostatniej zmiany w tym polu lub atrybucie. |
rejectionReason |
PolicyViolation |
Naruszenie zasad, które spowodowało odrzucenie zmiany. Wypełniane, gdy lastEditLifecycleStage to EDIT_LIFECYCLE_STAGE_REJECTED. |
updateTime |
string (Timestamp) |
Sygnatura czasowa ostatniej zmiany tego pola lub atrybutu (format RFC 3339). |
source |
Source |
Platforma, na której sprzedawca przesłał zmianę (SOURCE_API lub SOURCE_UI). |
Edytowanie etapów cyklu życia
Typ wyliczeniowy EditLifecycleStage wskazuje, na jakim etapie cyklu życia znajduje się zmiana:
| Wartość | Opis | Zalecane działanie |
|---|---|---|
EDIT_LIFECYCLE_STAGE_ACCEPTED |
Zmiana wprowadzona przez sprzedawcę została zatwierdzona i może być wyświetlana. | Nie trzeba nic robić. |
EDIT_LIFECYCLE_STAGE_PENDING |
Zmiana wprowadzona przez sprzedawcę jest w trakcie sprawdzania i nie została jeszcze zastosowana w informacjach o produkcie przeznaczonych dla użytkowników. | Poczekaj na zakończenie moderowania. Nie przesyłaj wielokrotnie tych samych zmian, gdy oczekują one na sprawdzenie. |
EDIT_LIFECYCLE_STAGE_REJECTED |
Zmiana wprowadzona przez sprzedawcę nie została zaakceptowana. Sprawdź rejectionReason, aby uzyskać konkretną wartość PolicyViolation. |
Usuń naruszenie zasad i prześlij nową aktualizację za pomocą locations.patch lub locations.updateAttributes. |
EDIT_LIFECYCLE_STAGE_UPDATED_BY_GOOGLE |
Wartość widoczna dla klientów została zaktualizowana przez Google (np. na podstawie zgłoszeń użytkowników lub źródeł zewnętrznych) i różni się od wartości podanej przez sprzedawcę. | Sprawdź wartość locationSeenByConsumers lub attributeSeenByConsumers i zaakceptuj ją lub zastąp. Zobacz Zarządzanie aktualizacjami Google. |
EDIT_LIFECYCLE_STAGE_DRAFT |
Zmiana została zapisana jako wersja robocza (np. w niezweryfikowanej lokalizacji) i nie jest widoczna w wyszukiwarce Google ani Mapach Google. | Przejdź weryfikację lokalizacji, aby wizytówka mogła zostać opublikowana. |
EDIT_LIFECYCLE_STAGE_UNSPECIFIED |
Etap cyklu życia zmiany jest nieznany lub nieokreślony. | Brak. |
Edytowanie źródeł
Typ wyliczeniowy Source określa kanał, za pomocą którego sprzedawca przesłał zmianę:
SOURCE_API: zmiana została przesłana za pomocą interfejsu My Business Business Information API.SOURCE_UI: zmiana została przesłana przez interfejs internetowy lub aplikację mobilną Profilu Firmy.SOURCE_UNSPECIFIED: nie określono źródła zmiany.
Naruszenia zasad
Gdy pole lastEditLifecycleStage ma wartość EDIT_LIFECYCLE_STAGE_REJECTED, pole rejectionReason zawiera wartość typu wyliczeniowego PolicyViolation, która wyjaśnia, dlaczego zmiana została odrzucona. Przyczyny odrzucenia obejmują te obszary (przykłady):
- Stan profilu i konta:
ACCOUNT_RESTRICTED_AND_SUSPENDED,ACCOUNT_RESTRICTED_AND_EDIT_REJECTED,ASSOCIATED_ACCOUNT_SUSPENDED,BUSINESS_INELIGIBLE,LOCATION_SUSPENDED,LOCATION_VERIFICATION_REQUIRED,OWNERSHIP_REVOKED,PO_BOX. - Ograniczenia edycji:
EDITING_RESTRICTION,ILLEGAL_BUSINESS_HOURS_EDIT,IDENTITY_CHANGE,GEOGRAPHIC_LOCATION_CHANGE. - Polityka treści:
MISREPRESENTATION,OFF_TOPIC,PERSONAL_INFO,GIBBERISH_AND_REPETITIVE,OBSCENITY_AND_PROFANITY,GENERIC_QUALITY.
Pełną listę wartości i opisów typów wyliczeniowych znajdziesz w dokumentacji referencyjnej PolicyViolation.