API üzerinden satıcı durumunu sorgulama

Kullanım alanları

Google Maps Reservation API, çeşitli Actions Center entegrasyonları veya Yerel Hizmet Reklamları envanteri için her bir satıcının durumunu programatik olarak almak amacıyla kullanılabilecek iki yöntem sunar.

Merchant Status API'nin kullanım alanları:

  • Müşterilerinize envanterlerinin Actions Center platformunda nasıl gösterildiğini göstermek için mevcut müşteri ilişkileri yönetimi araçlarını geliştirin.
  • Satıcılarınızın envanter durumunu ve eşleşme durumunu izlemek için bir kontrol paneli oluşturun.
  • Veri kalitesini iyileştirmek için satıcılarınızın eşleşme ve rezervasyon yapılabilir durumda olma durumlarını programatik olarak alın ve yanlış bilgileri düzeltin.

Satıcı durumunda neler var?

MerchantStatus, aşağıdaki bilgileri içerir:

  • Satıcı envanter durumu: Hem rezervasyon hem de bekleme listesi satıcıları için geçerlidir.
  • Satıcı eşleşme durumu: Eşleşen işletme girişiyle ilgili ayrıntıları içerir.
  • Yalnızca Google Yerel Hizmet Reklamları için) Eşleşen satıcı servis sağlayıcısı: Müşteri kimliği ve hizmet kategorilerini içerir.
  • Satıcının Google ile Rezervasyon üzerinden nasıl gösterildiğini gösteren URL'ler.

Tek bir satıcı durumunu arama

inventory.partners.merchants.getStatus değerini kullanarak tek bir satıcının durumunu öğrenebilirsiniz:

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

Aşağıda bir Python kod örneği verilmiştir (daha fazla dildeki örnekleri burada bulabilirsiniz):

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

Örnek bir MerchantStatus yanıtı şu şekilde görünür:

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

Satıcı durumlarını toplu olarak alma

inventory.partners.merchants.status.list adresini kullanarak, belirli envanter/eşleşme koşullarını karşılayan tüm satıcıların veya bir satıcı grubunun durumlarını alabilirsiniz. Örneğin, gelecek tarihli geçerli rezervasyon envanterine sahip tüm eşleşmeyen satıcıları tespit etmek için bu çağrıyı yapabilirsiniz:

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

Örnek bir yanıt şöyle görünür:

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

Bu yanıt, filtreleme koşullarını karşılayan ve merchant_id ölçütüne göre sıralanan 50 MerchantStatus değerini içerir. Yanıt, sonraki sayfayı sorgulamak için bir sayfa jetonu da (son sayfa değilse) içerir.

Lütfen unutmayın: Filtreleme koşulları tüm sayfalarda tutarlı olmalıdır.

En iyi uygulamalar

Satıcı durumları çoğu zaman sık değişmediğinden, alınan sonuçları önbelleğe almanız ve düzenli olarak (ör. birkaç saatte bir) yeni sorgularla almanız önerilir. Saniye başına istek sayısı aşırı yüksek görünüyorsa Actions Center sorgularınızı kısıtlayabilir.