Membuat Kueri Status Penjual Secara Menyeluruh Iklan Jasa dan Servis melalui API

Kasus penggunaan

Google Maps Booking API menyediakan dua metode, yang dapat digunakan untuk mengambil status setiap penjual secara terprogram berbagai integrasi atau Iklan Jasa dan Servis inventaris Anda.

Kasus penggunaan untuk Merchant Status API:

  • Meningkatkan kualitas alat manajemen hubungan pelanggan yang ada untuk menunjukkan pelanggan bagaimana inventaris mereka ditampilkan di Google.
  • Buat dasbor untuk melacak status inventaris dan status pencocokan penjual Anda.
  • Mengambil status yang cocok dan dapat dipesan secara terprogram penjual dan memperbaiki informasi yang tidak tepat untuk meningkatkan kualitas data.

Isi status penjual

Tujuan MerchantStatus berisi informasi berikut:

  • Status inventaris penjual: berlaku untuk penjual pemesanan dan/atau daftar tunggu.
  • Status pencocokan penjual: mencakup detail tentang listingan bisnis yang cocok
  • Sebagai Iklan Jasa dan Servis Google) Penyedia layanan penjual yang cocok: menyertakan ID pelanggan dan kategori layanan.
  • URL yang menunjukkan bagaimana penjual ditampilkan di Google.

Mencari status penjual tunggal

Anda bisa mendapatkan status satu penjual menggunakan inventory.partners.merchants.getStatus:

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

Berikut adalah contoh kode Python (lihat contoh dalam bahasa lainnya di sini):

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

Contoh Respons MerchantStatus terlihat seperti ini:

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

Mengambil status penjual secara massal

Anda dapat mengambil status semua penjual atau grup penjual memenuhi kondisi inventaris/pencocokan tertentu, menggunakan inventory.partners.merchants.status.list. Misalnya, Anda dapat membuat panggilan ini untuk mendapatkan semua penjual yang tidak cocok dengan pemesanan valid di masa mendatang inventaris:

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

Contoh respons akan terlihat seperti ini:

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

Respons ini akan berisi 50 MerchantStatus yang memenuhi kondisi pemfilteran dan diurutkan berdasarkan merchant_id. Respons juga berisi token halaman (jika berupa bukan halaman terakhir) untuk melakukan kueri ke halaman berikutnya.

Perhatikan: kondisi pemfilteran harus konsisten di semua halaman.

Praktik Terbaik

Karena status penjual sering kali tidak sering berubah, disarankan untuk menyimpan hasil yang diambil ke cache dan secara berkala (mis. setiap beberapa jam) mengambilnya melalui kueri baru. Actions Center mungkin membatasi jika jumlah permintaan per detik dianggap terlalu tinggi.