Termine – Ende-zu-Ende: Händlerstatus über die API abfragen

Anwendungsfälle

Die Google Maps Booking API bietet zwei Methoden, mit denen der Status der einzelnen Händler für verschiedene Integrationen oder das Inventar von Anzeigen für lokale Dienstleistungen programmatisch abgerufen werden kann.

Anwendungsfälle für die Merchant Status API:

  • Optimieren Sie vorhandene Tools für das Kundenbeziehungsmanagement, um Ihren Kunden zu zeigen, wie ihr Inventar auf Google präsentiert wird.
  • Erstellen Sie ein Dashboard, um den Inventarstatus und den Abgleichsstatus Ihrer Händler im Blick zu behalten.
  • Sie können den Abgleichs- und Buchungsstatus Ihrer Händler programmatisch abrufen und falsche Informationen korrigieren, um die Datenqualität zu verbessern.

Was enthält der Händlerstatus?

Das Feld MerchantStatus enthält die folgenden Informationen:

  • Händlerinventarstatus: gilt sowohl für Buchungs- als auch für Wartelistenhändler.
  • Abgleichsstatus des Händlers: Enthält Details zum abgeglichenen Unternehmenseintrag.
  • Nur für Google Lokale Dienstleistungen: Abgeglichener Dienstleister: Enthält die Kundennummer und die Dienstleistungskategorien.
  • Die URLs, die zeigen, wie der Händler auf Google präsentiert wird.

Status eines einzelnen Händlers abrufen

Mit inventory.partners.merchants.getStatus können Sie den Status eines einzelnen Händlers abrufen:

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

Hier ist ein Python-Codebeispiel. Beispiele in anderen Sprachen finden Sie hier.

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')

Eine Beispielantwort für MerchantStatus sieht so aus:

  {
    "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"
      }
    ]
  }

Händlerstatus im Bulk-Verfahren abrufen

Mit inventory.partners.merchants.status.list können Sie den Status aller Händler oder einer Gruppe von Händlern abrufen, die bestimmte Inventar-/Abgleichbedingungen erfüllen. Mit diesem Aufruf können Sie beispielsweise alle nicht abgeglichenen Händler mit gültigem Inventar für Buchungen mit zukünftigem Datum abrufen:

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

Eine Beispielantwort würde so aussehen:

  {
    "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"
  }

Diese Antwort enthält 50 MerchantStatus, die die Filterbedingungen erfüllen und nach merchant_id sortiert sind. Die Antwort enthält auch ein Seitentoken (sofern es sich nicht um die letzte Seite handelt), mit dem die nächste Seite abgefragt werden kann.

Hinweis: Die Filterbedingungen sollten auf allen Seiten einheitlich sein.

Best Practices

Da sich der Händlerstatus in den meisten Fällen nicht häufig ändert, wird empfohlen, die abgerufenen Ergebnisse im Cache zu speichern und sie regelmäßig (z.B. alle paar Stunden) über neue Abfragen abzurufen. Das Actions Center kann Ihre Abfragen drosseln, wenn die Anzahl der Anfragen pro Sekunde als zu hoch eingestuft wird.