به‌روزرسانی‌های بلادرنگ

به‌روزرسانی‌های آنی به شما این امکان را می‌دهد که موجودی پیشنهادات خود را با گوگل همگام‌سازی کنید. می‌توانید به‌روزرسانی‌های تدریجی را تقریباً به صورت آنی ارائه دهید. سیستم ما تغییرات را از Feed + RTU جمع‌آوری می‌کند تا جدیدترین اطلاعات را به کاربران نمایش دهد.

نقاط پایانی API

برای ارسال یا حذف به‌روزرسانی‌های بلادرنگ، از نقاط پایانی REST API زیر استفاده کنید:

فشار دسته‌ای

  • سندباکس: https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchPush
  • تولید: https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchPush

حذف دسته‌ای

  • سندباکس: https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchDelete
  • تولید: https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchDelete

برای اطلاعات بیشتر در مورد تعریف شیء JSON مربوط به Offer، به Offer مراجعه کنید. برای جزئیات بیشتر در مورد ویژگی‌های offer، به صفحه مرجع Offer مراجعه کنید.

نحوه احراز هویت در API

برای اتصال به API، به بخش «احراز هویت با API Mapsbooking» مراجعه کنید.

محدودیت‌ها

هنگام استفاده از API به‌روزرسانی‌های بلادرنگ، محدودیت‌های زیر را در نظر داشته باشید:

  • فقط protoRecord : این API طوری پیکربندی شده است که فقط protoRecord استفاده کند (نه dataRecord ).
  • محدودیت‌های سهمیه : این APIها سهمیه‌ای معادل ۱۵۰۰ درخواست در دقیقه برای هر حساب کاربری همکار دارند. هر درخواست به ارسال ۱۰۰۰ رکورد برای افزودن یا حذف محدود می‌شود.
  • محدودیت‌های نگاشت موجودیت : برای هر پیشنهاد، شرکا می‌توانند برای ۱ شناسه موجودیت به‌روزرسانی ارسال کنند. اگر می‌خواهید همان پیشنهاد را برای چندین شناسه موجودیت به‌روزرسانی کنید، شریک باید ۱ رکورد برای هر entityId ارسال کند. entityId ها همیشه باید برای هر رکورد مفرد باشند.
  • پیشنهادات افزونه : به دلیل محدودیت نگاشت موجودیت، پیشنهادات افزونه‌ای که addOnOfferApplicableToAllEntities هستند، واقعاً برای به‌روزرسانی RTU پشتیبانی نمی‌شوند و نمی‌توانند از این طریق به‌روزرسانی شوند (فقط از طریق فیدها).

مثال

مثال به‌روزرسانی‌های دسته‌ای

در اینجا مثالی از ارسال به‌روزرسانی بلادرنگ از طریق curl آورده شده است:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token --impersonate-service-account=test@myproject.gserviceaccount.com --scopes=https://www.googleapis.com/auth/mapsbooking)" \
  -H "Content-Type: application/json" \
  -d '{
  "records": [
    {
      "generationTimestamp": {
        "seconds": 100
      },
      "protoRecord": {
        "@type": "type.googleapis.com/madden.ingestion.offer.Offer",
        "offerId": "1",
        "entityIds": [
          "1234567890"
        ],
        "addOnOfferApplicableToAllEntities": false,
        "offerSource": "OFFER_SOURCE_AGGREGATOR",
        "actionType": "ACTION_TYPE_FOOD_DELIVERY",
        "offerModes": [
          "OFFER_MODE_WALK_IN"
        ],
        "offerCategory": "OFFER_CATEGORY_BASE_OFFER",
        "tags": [
          "OFFER_TAG_NEW_YEAR_SPECIAL"
        ],
        "offerDetails": {
          "offerDisplayText": "FLAT 10% off",
          "offerSummaryText": "MONDAY TO FRIDAY",
          "discountPercent": 10
        },
        "offerRestrictions": {
          "combinableWithOtherOffers": true,
          "inclusions": [
            {
              "description": "complementary drink"
            },
            {
              "description": " starters"
            }
          ],
          "exclusions": [
            {
              "description": "taxes and Tips"
            }
          ]
        },
        "validityPeriods": [
          {
            "timeOfDay": {
              "timeWindows": [
                {
                  "openTime": {
                    "hours": 10
                  },
                  "closeTime": {
                    "hours": 20
                  }
                }
              ]
            },
            "validPeriod": {
              "validFromTime": {
                "seconds": 10
              }
            }
          }
        ],
        "offerUrl": "https://www.google.com/offer"
      }
    }
  ]
}' \
  https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/20000123/feeds/google.offer/record:batchPush

مثال حذف دسته‌ای

در اینجا مثالی از حذف یک پیشنهاد از طریق curl آورده شده است:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token --impersonate-service-account=test@myproject.gserviceaccount.com --scopes=https://www.googleapis.com/auth/mapsbooking)" \
  -H "Content-Type: application/json" \
  -d '{
  "records": [
    {
      "deleteTime": {
        "seconds": 150
      },
      "protoRecord": {
        "@type": "type.googleapis.com/madden.ingestion.offer.Offer",
        "offerId": "1",
        "entityIds": [
          "1234567890"
        ]
      }
    }
  ]
}' \
  https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/20000123/feeds/google.offer/record:batchDelete