API를 통한 판매자 상태 쿼리
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
사용 사례
Google Maps Booking API는 다양한 액션 센터 통합 또는 지역 서비스 광고 인벤토리의 개별 판매자의 상태를 프로그래매틱 방식으로 가져오는 데 사용할 수 있는 두 가지 메서드를 제공합니다.
Merchant Status API의 사용 사례:
- 기존 고객 관계 관리 도구를 개선하여 고객에게 인벤토리가 액션 센터 플랫폼에 표시되는 방식을 보여줍니다.
- 판매자의 인벤토리 상태 및 일치 상태를 추적하는 대시보드를 만듭니다.
- 판매자의 일치 및 예약 가능 상태를 프로그래매틱 방식으로 검색하고 잘못된 정보를 수정하여 데이터 품질을 개선합니다.
판매자 상태에 포함되는 항목
MerchantStatus에는 다음 정보가 포함됩니다.
- 판매자 인벤토리 상태: 예약 판매자 또는 대기자 명단 판매자 모두에게 적용됩니다.
- 판매자 일치 상태: 일치하는 비즈니스 등록정보에 관한 세부정보가 포함됩니다.
- Google 지역 서비스 광고만 해당) 일치하는 판매자 서비스 제공업체: 고객 ID 및 서비스 카테고리가 포함됩니다.
- Google 예약을 통해 판매자가 표시되는 방식을 보여주는 URL입니다.
단일 판매자 상태 조회
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"
}
이 응답에는 필터링 조건을 충족하고 merchant_id
순으로 정렬된 MerchantStatus가 50개 포함됩니다. 응답에는 다음 페이지를 쿼리하는 페이지 토큰 (마지막 페이지가 아닌 경우)도 포함됩니다.
필터링 조건은 모든 페이지에서 일관되어야 합니다.
권장사항
판매자 상태는 대부분 자주 변경되지 않으므로 검색된 결과를 캐시하고 주기적으로 (예: 몇 시간마다) 새 쿼리를 통해 검색하는 것이 좋습니다. 초당 요청 수가 지나치게 많다고 판단되면 액션 센터에서 쿼리를 제한할 수 있습니다.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-07-26(UTC)
[null,null,["최종 업데이트: 2025-07-26(UTC)"],[[["\u003cp\u003eThe Google Maps Booking API provides methods to retrieve the status of individual merchants for Actions Center integrations or Local Services Ads inventory.\u003c/p\u003e\n"],["\u003cp\u003eYou can enhance CRM tools, build dashboards, and programmatically fix merchant information using the Merchant Status API.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003einventory.partners.merchants.getStatus\u003c/code\u003e allows for looking up the status of a single merchant, while \u003ccode\u003einventory.partners.merchants.status.list\u003c/code\u003e enables retrieval in bulk with filtering options.\u003c/p\u003e\n"],["\u003cp\u003eMerchant status includes inventory, matching, service provider (LSA only), and Reserve with Google surfacing details.\u003c/p\u003e\n"],["\u003cp\u003eIt's recommended to cache retrieved results and periodically refresh them to avoid excessive API requests and potential throttling.\u003c/p\u003e\n"]]],["The Merchant Status API provides methods to retrieve merchant statuses for Actions Center integrations or Local Services Ads. Key actions include using the API to enhance customer relationship management tools, build tracking dashboards, and programmatically fix incorrect merchant data. Merchants statuses, accessible individually or in bulk, contain inventory, matching details, service provider specifics, and URLs. Caching is encouraged for efficiency, given the infrequent changes in status. Bulk retrieval can filter by inventory or matching conditions.\n"],null,["# Querying merchant status via the API\n\nUse cases\n---------\n\n\n[Google Maps Booking API](/maps-booking/reference/maps-booking-api/rest) provides two methods, which can be used\nto programmatically retrieve a status of the individual merchants for\nvarious Actions Center integrations or\n[Local Services Ads](https://ads.google.com/local-services-ads)\ninventory.\n\nUse cases for Merchant Status API:\n\n- Enhance existing customer relation management tools to demonstrate your customers how their inventory is surfaced on the Actions Center platform.\n- Build a dashboard to track the inventory status and matching status of your merchants.\n- Programmatically retrieve matching and bookable statuses of your merchants and fix any incorrect information to improve data quality.\n\nWhat does the merchant status contain\n-------------------------------------\n\nThe\n[MerchantStatus](/maps-booking/reference/maps-booking-api/rest/v1alpha/MerchantStatus) contains the following information:\n\n- Merchant inventory status: applies to both booking and/or waitlist merchants.\n- Merchant matching status: includes details on the matched business listing\n- For [Google Local Services Ads](https://ads.google.com/local-services-ads) only) Matched merchant service provider: includes the customer ID and service categories.\n- The URLs to demonstrate how the merchant is surfaced via Reserve with Google.\n\nLook up a single merchant status\n--------------------------------\n\nYou can get the status of a single merchant using\n[inventory.partners.merchants.getStatus](/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.merchants/getStatus): \n\n```text\nGET https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/{merchantId}/status\n```\n\nHere is a Python code sample (see examples in more languages\n[here](/actions-center/verticals/local-services/e2e/reference/real-time-updates-rest/code-samples)): \n\n```python\nfrom google.auth.transport.requests import AuthorizedSession\nfrom google.oauth2 import service_account\n\ncredentials = service_account.Credentials.from_service_account_file(\n './your_key.json')\nscoped_credentials = credentials.with_scopes(\n ['https://www.googleapis.com/auth/mapsbooking'])\nauthed_session = AuthorizedSession(scoped_credentials)\n\nresponse = authed_session.get('https://partnerdev-mapsbooking.googleapis.com' +\n '/v1alpha/inventory/partners/123456789/merchants/001/status')\n```\n\nAn example\n[MerchantStatus](/maps-booking/reference/maps-booking-api/rest/v1alpha/MerchantStatus) response looks like: \n\n```carbon\n {\n \"name\": \"partners/123456789/merchants/001/status\",\n \"merchantName\": \"Foo Bar Restaurant\",\n \"inputGeoInfo\": {\n \"unstructured_address\": \"123 Foo Bar Street, Mountain View\"\n },\n \"processingStatus\": \"COMPLETED\",\n \"bookingStatus\": {\n \"hasValidFutureInventory\": true\n },\n \"waitlistStatus\": {\n \"hasValidWaitlistService\": true\n }\n \"geoMatch\": {\n \"name\": \"Foo Bar Restaurant\",\n \"formattedAddress\": \"123 Foo Bar St, Mountain View, CA 94043\",\n \"placeId\": \"ChIAAAAAAAAABBBBBBBB\"\n },\n \"directUrls\": [\n {\n \"type\": \"BOOKING\",\n \"url\": \"https://reserve-partnerdev.sandbox.google.com/maps/reserve/v/dine/m/Nwaaaaa\"\n },\n {\n \"type\": \"WAITLIST\",\n \"url\": \"https://reserve-partnerdev.sandbox.google.com/maps/reserve/v/wait/c/iDbbbbb\"\n }\n ]\n }\n```\n\nRetrieve merchant statuses in bulk\n----------------------------------\n\nYou can retrieve statuses of all merchants, or a group of merchants\nsatisfying certain inventory/matching conditions, using\n[inventory.partners.merchants.status.list](/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.merchants.status/list). For example, you can make\nthis call to get all unmatched merchants with valid future-dated booking\ninventory: \n\n```scdoc\nGET https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/status?pageSize=50&bookingInventoryStatusRestrict=HAS_VALID_FUTURE_INVENTORY&geoMatchRestrict=GEO_UNMATCHED\n```\n\nA sample response would look like this: \n\n```carbon\n {\n \"merchantStatuses\": [\n {\n \"name\": \"partners/123456789/merchants/002/status\",\n \"merchantName\": \"Bar Foo Restaurant\",\n \"inputGeoInfo\": {\n \"unstructured_address\": \"234 Bar Foo Street, Mountain View\"\n },\n \"processingStatus\": \"COMPLETED\",\n \"bookingStatus\": {\n \"hasValidFutureInventory\": true\n },\n \"waitlistStatus\": {},\n },\n ...\n {\n \"name\": \"partners/123456789/merchants/080/status\",\n \"merchantName\": \"Baz Restaurant\",\n \"inputGeoInfo\": {\n \"unstructured_address\": \"345 Baz Street, Mountain View\"\n },\n \"processingStatus\": \"COMPLETED\",\n \"bookingStatus\": {\n \"hasValidFutureInventory\": true\n },\n \"waitlistStatus\": {\n \"hasValidWaitlistService\": true\n },\n },\n ],\n \"nextPageToken\": \"AAABBBB\"\n }\n```\n\nThis response will contain 50\n[MerchantStatus](/maps-booking/reference/maps-booking-api/rest/v1alpha/MerchantStatus) that satisfy the filtering conditions and ordered by\n`merchant_id`. The response also contains a page token (if it is\nnot the last page) to query the next page.\n\nPlease note: the filtering conditions should be consistent across all\npages.\n\nBest Practices\n--------------\n\nSince merchant statuses do not change frequently in most times, it is\nencouraged to cache the retrieved results and periodically (e.g. every few\nhours) retrieve them via new queries. The Actions Center may throttle your\nqueries if the number of requests per second deem to be excessively high."]]