Wysyłanie zapytania o stan sprzedawcy za pomocą interfejsu API

Przypadki użycia

Interfejs Google Maps Booking API udostępnia 2 metody, których można używać do automatycznego pobierania stanu poszczególnych sprzedawców w przypadku różnych integracji z Centrum działań lub zasobów reklamowych Reklam Usług Lokalnych.

Przypadki użycia interfejsu Merchant Status API:

  • Ulepsz dotychczasowe narzędzia do zarządzania relacjami z klientami, aby pokazać klientom, jak ich zasoby reklamowe są prezentowane na platformie Centrum działań.
  • Utwórz panel do śledzenia stanu asortymentu i dopasowania sprzedawców.
  • Automatycznie pobieraj pasujące stany sprzedawców i możliwe do zarezerwowania oraz poprawiaj nieprawidłowe informacje, aby poprawić jakość danych.

Co zawiera status sprzedawcy

MerchantStatus zawiera te informacje:

  • Stan asortymentu sprzedawcy: dotyczy zarówno sprzedawców dokonujących rezerwacji, jak i sprzedawców z listy oczekujących.
  • Stan dopasowania sprzedawcy: zawiera szczegóły pasującej wizytówki firmy
  • (tylko w przypadku Reklam Usług Lokalnych Google) – dostawca dopasowanych usług sprzedawcy: podaje identyfikator klienta i kategorie usług;
  • Adresy URL służące do pokazywania, w jaki sposób sprzedawca jest prezentowany w Zarezerwuj z Google.

Sprawdzanie statusu pojedynczego sprzedawcy

Aby sprawdzić stan pojedynczego sprzedawcy, możesz użyć parametru inventory.partners.merchants.getStatus:

GET https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/{merchantId}/status

Oto przykładowy kod w Pythonie (tutaj znajdziesz przykłady w innych językach):

from google.auth.transport.requests import AuthorizedSession
from google.oauth2 import service_account

credentials = service_account.Credentials.from_service_account_file(
    './your_key.json')
scoped_credentials = credentials.with_scopes(
    ['https://www.googleapis.com/auth/mapsbooking'])
authed_session = AuthorizedSession(scoped_credentials)

response = authed_session.get('https://partnerdev-mapsbooking.googleapis.com' +
    '/v1alpha/inventory/partners/123456789/merchants/001/status')

Przykładowa odpowiedź MerchantStatus wygląda tak:

  {
    "name": "partners/123456789/merchants/001/status",
    "merchantName": "Foo Bar Restaurant",
    "inputGeoInfo": {
      "unstructured_address": "123 Foo Bar Street, Mountain View"
    },
    "processingStatus": "COMPLETED",
    "bookingStatus": {
      "hasValidFutureInventory": true
    },
    "waitlistStatus": {
      "hasValidWaitlistService": true
    }
    "geoMatch": {
      "name": "Foo Bar Restaurant",
      "formattedAddress": "123 Foo Bar St, Mountain View, CA 94043",
      "placeId": "ChIAAAAAAAAABBBBBBBB"
    },
    "directUrls": [
      {
        "type": "BOOKING",
        "url": "https://reserve-partnerdev.sandbox.google.com/maps/reserve/v/dine/m/Nwaaaaa"
      },
      {
        "type": "WAITLIST",
        "url": "https://reserve-partnerdev.sandbox.google.com/maps/reserve/v/wait/c/iDbbbbb"
      }
    ]
  }

Zbiorcze pobieranie statusów sprzedawcy

Za pomocą atrybutu inventory.partners.merchants.status.list możesz pobrać stany wszystkich sprzedawców lub grupy sprzedawców spełniających określone warunki. Możesz na przykład wywołać to wywołanie, aby wyświetlić wszystkich niedopasowanych sprzedawców z prawidłowymi zasobami z rezerwacjami z datą przyszłą:

GET https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/status?pageSize=50&bookingInventoryStatusRestrict=HAS_VALID_FUTURE_INVENTORY&geoMatchRestrict=GEO_UNMATCHED

Przykładowa odpowiedź może wyglądać tak:

  {
    "merchantStatuses": [
      {
        "name": "partners/123456789/merchants/002/status",
        "merchantName": "Bar Foo Restaurant",
        "inputGeoInfo": {
          "unstructured_address": "234 Bar Foo Street, Mountain View"
        },
        "processingStatus": "COMPLETED",
        "bookingStatus": {
          "hasValidFutureInventory": true
        },
        "waitlistStatus": {},
      },
      ...
      {
        "name": "partners/123456789/merchants/080/status",
        "merchantName": "Baz Restaurant",
        "inputGeoInfo": {
          "unstructured_address": "345 Baz Street, Mountain View"
        },
        "processingStatus": "COMPLETED",
        "bookingStatus": {
          "hasValidFutureInventory": true
        },
        "waitlistStatus": {
          "hasValidWaitlistService": true
        },
      },
    ],
    "nextPageToken": "AAABBBB"
  }

Ta odpowiedź będzie zawierać 50 MerchantStatus, które spełniają warunki filtrowania i są posortowane według: merchant_id. Odpowiedź zawiera też token strony (jeśli nie jest to ostatnia strona), którego dotyczy zapytanie o następną stronę.

Uwaga: warunki filtrowania powinny być takie same na wszystkich stronach.

Sprawdzone metody

Stany sprzedawcy w większości przypadków nie zmieniają się często, dlatego zalecamy zapisywanie pobranych wyników w pamięci podręcznej i okresowe (np. co kilka godzin) pobieranie ich za pomocą nowych zapytań. Centrum działań może ograniczyć wykonywanie zapytań, jeśli liczba żądań na sekundę okaże się zbyt duża.