Händlerstatus über die API abfragen

Anwendungsfälle

Die Google Maps Booking API bietet zwei Methoden, mit denen du programmatisch den Status einzelner Händler für verschiedene Actions Center-Integrationen oder für Inventar für Google Lokale Dienstleistungen abrufen kannst.

Anwendungsfälle für die Merchant Status API:

  • Mit erweiterten Tools für das Customer-Relationship-Management können Sie Ihren Kunden zeigen, wie ihr Inventar auf der Actions Center-Plattform angezeigt wird.
  • Erstelle ein Dashboard, um den Inventar- und Abgleichsstatus deiner Händler zu verfolgen.
  • Rufen Sie programmatisch passende und buchbare Status Ihrer Händler ab und korrigieren Sie falsche Informationen, um die Datenqualität zu verbessern.

Was ist der Händlerstatus?

Der MerchantStatus enthält die folgenden Informationen:

  • Status des Händlerinventars: gilt sowohl für Buchungs- als auch für Wartelistenhändler.
  • Status der Händlerzuordnung: Enthält Details zum übereinstimmenden Brancheneintrag
  • Nur für Google Lokale Dienstleistungen) Übereinstimmender Händlerdienstleister: Enthält die Kundennummer und Dienstleistungskategorien.
  • Die URLs, um zu zeigen, wie der Händler über „Mit Google reservieren“ angezeigt wird.

Status eines einzelnen Händlers abrufen

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

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

Hier ist ein Python-Codebeispiel (Beispiele in weiteren Sprachen):

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 MerchantStatus-Antwort sieht beispielsweise 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 abrufen

Mit inventory.partners.merchants.status.list können Sie die Status aller Händler oder die Status einer Gruppe von Händlern abrufen, die bestimmte Inventar- bzw. Abgleichsbedingungen erfüllen. Mit diesem Aufruf kannst du beispielsweise alle nicht zugeordneten Händler mit gültigem Buchungsinventar in der Zukunft 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-Objekte, die die Filterbedingungen erfüllen, und sortiert nach merchant_id. Die Antwort enthält auch ein Seitentoken (wenn es sich nicht um die letzte Seite handelt), um die nächste Seite abzufragen.

Hinweis: Die Filterbedingungen sollten auf allen Seiten einheitlich sein.

Best Practices

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