API を使って販売者のステータスをエンドツーエンドでクエリするローカル サービス広告

ユースケース

Google Maps Booking API では、2 つのメソッドを使用できます。 個々の販売者のステータスをプログラマティックに取得して、 さまざまな統合や ローカル サービス広告 できます。

Merchant Status API のユースケース:

  • 既存の顧客管理ツールを強化して 顧客に広告枠が公開される仕組み
  • 在庫ステータスと照合ステータスを追跡するダッシュボードを 提供します
  • 予約可能なお客様の予約可能なステータスをプログラマティックに取得し、 誤った情報があれば修正し、データ品質を改善します。

販売者ステータスの内容

MerchantStatus には、次の情報が含まれています。

  • 販売者の在庫ステータス: 予約と順番待ちリストの両方の販売者に適用されます。
  • 販売者の照合ステータス: 一致したビジネス リスティングの詳細が表示されます。
  • 対象 Google ローカル サービス広告のみ)で一致した販売者サービス プロバイダ: お客様 ID とサービスカテゴリが含まれます
  • Google で販売者がどのように表示されるのかを示す URL。

1 つの販売者のステータスを検索する

特定の販売者のステータスは、 inventory.partners.merchants.getStatus:

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

Python のコードサンプルを次に示します(他の言語の例を参照可能) こちら):

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

MerchantStatus レスポンスは次のようになります。

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

販売者のステータスを一括で取得する

すべての販売者のステータスまたは複数の販売者のステータスを取得できます。 特定の広告枠/一致条件を inventory.partners.merchants.status.list.たとえば、 この呼び出しを行うと、将来の日付で有効な予約を持つ、一致しないすべての販売者を取得できます インベントリ:

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

レスポンスの例は次のようになります。

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

このレスポンスには 50 文字 MerchantStatus がフィルタ条件を満たし、次の順序で並べ替えられている: merchant_id。レスポンスにはページトークンも含まれます( (最後のページではない)を選択して、次のページをクエリします。

注: フィルタリング条件はすべてのサービスで一貫している必要があります。 できます。

ベスト プラクティス

販売者のステータスは頻繁に変更されないため、 取得した結果を定期的に(たとえば、 新しいクエリを介して取得します。アクション センターがユーザーのアクションをスロットリングし、 1 秒あたりのリクエスト数が極端に多いと判断された場合に、これらのクエリをクエリできます。