ユースケース
Google Maps Booking API には 2 つの方法が用意されています。これらを使用して、さまざまなアクション センターの統合やローカル サービス広告の在庫について、個々の販売者のステータスをプログラムで取得できます。
Merchant Status API のユースケース:
- 既存の顧客関係管理ツールを強化して、アクション センター プラットフォームで在庫がどのように表示されるかを顧客に示します。
- 販売者の在庫ステータスと照合ステータスをトラッキングするダッシュボードを構築します。
- プログラムでビジネス オーナーの照合ステータスと予約可能ステータスを取得し、誤った情報を修正してデータ品質を改善します。
販売者のステータスに含まれる情報
MerchantStatus には次の情報が含まれます。
- 販売者の在庫ステータス: 予約と順番待ちリストの両方の販売者に適用されます。
- 販売者のマッチング ステータス: マッチングされたビジネス リスティングの詳細が含まれます
- (Google ローカル サービス広告のみ)一致した販売者サービス プロバイダ: お客様 ID とサービス カテゴリが含まれます。
- 「Google で予約」で販売者がどのように表示されるかを示す URL。
単一の販売者のステータスを検索する
inventory.partners.merchants.getStatus を使用して、単一の販売者のステータスを取得できます。
GET https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/{merchantId}/statusPython のコードサンプルは次のとおりです(他の言語の例については、こちらをご覧ください)。
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" }
このレスポンスには、フィルタ条件を満たし、merchant_id で並べ替えられた 50 個の MerchantStatus が含まれます。レスポンスには、次のページをクエリするためのページトークン(最後のページでない場合)も含まれます。
注: フィルタリング条件はすべてのページで一貫している必要があります。
ベスト プラクティス
通常、販売者のステータスは頻繁に変更されないため、取得した結果をキャッシュに保存し、定期的に(数時間ごとなど)新しいクエリで取得することをおすすめします。1 秒あたりのリクエスト数が過度に多いと判断された場合、アクション センターはクエリをスロットリングすることがあります。