ユースケース
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 秒あたりのリクエスト数が極端に多いと判断された場合に、これらのクエリをクエリできます。