End-to-End-Abfrage des Händlerstatus über Google Lokale Dienstleistungen über die API

Anwendungsfälle

Die Google Maps Booking API bietet zwei Methoden, die verwendet werden können: zum programmatischen Abrufen eines Status der einzelnen Händler für verschiedene Integrationen oder Google Lokale Dienstleistungen des Inventars.

Anwendungsfälle für die Merchant Status API:

  • Verbessern Sie Ihre bestehenden Tools für das Customer-Relationship-Management, um Ihre wie ihr Inventar auf Google angezeigt wird.
  • Erstellen Sie ein Dashboard, um den Inventar- und Abgleichsstatus von Ihre Händler.
  • Rufen Sie programmatisch den Abgleichs- und Buchungsstatus Ihrer Händler und korrigieren falsche Informationen, um die Datenqualität zu verbessern.

Was enthält der Händlerstatus?

Die MerchantStatus enthält die folgenden Informationen:

  • Status des Händlerinventars: gilt sowohl für Buchungs- als auch für Wartelistenhändler.
  • Händlerabgleichsstatus: enthält Details zum übereinstimmenden Brancheneintrag
  • Für Nur Google Lokale Dienstleistungen) Übereinstimmender Dienstleister für Händler: die Kundennummer und die Dienstleistungskategorien enthält.
  • Die URLs, um zu zeigen, wie der Händler auf Google angezeigt wird

Status eines einzelnen Händlers abrufen

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

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

Hier ist ein Python-Codebeispiel (siehe Beispiele in weiteren Sprachen). 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')

Beispiel MerchantStatus-Antwort 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 abrufen

Du kannst den Status aller Händler oder einer Gruppe von Händlern abrufen bestimmte Inventar-/Abgleichbedingungen erfüllen, inventory.partners.merchants.status.list. Sie können beispielsweise Rufen Sie diesen Aufruf auf, um alle nicht übereinstimmenden Händler mit einer gültigen, in der Zukunft enthaltenen Buchung abzurufen Inventar:

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 sortiert nach merchant_id Die Antwort enthält auch ein Seitentoken (falls es nicht auf der letzten Seite), um die nächste Seite abzufragen.

Bitte beachten Sie, dass die Filterbedingungen in allen Seiten.

Best Practices

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