实时更新

借助实时更新,您可以使优惠商品目录与 Google 保持同步。您可以近乎实时地推送增量更新。我们的系统会汇总 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

如需详细了解 Offer JSON 对象定义,请参阅 Offer。 如需详细了解优惠属性,请访问优惠参考页面

如何向 API 进行身份验证

如需连接到该 API,请参阅使用 Mapsbooking API 进行身份验证

限制

使用实时更新 API 时,请注意以下限制:

  • protoRecord Only:API 配置为仅使用 protoRecord(而非 dataRecord)。
  • 配额限制:这些 API 的配额为每个合作伙伴账号每分钟 1,500 个请求。每个请求最多可发送 1,000 条记录以进行更新插入或删除。
  • 实体映射限制:对于每项优惠,合作伙伴可以针对 1 个实体 ID 发送更新。如果合作伙伴想更新多个实体 ID 的同一商品,则必须为每个 entityId 发送 1 条记录。每个记录的 entityId 必须始终是单数。
  • 加购项:由于实体映射限制,addOnOfferApplicableToAllEntities 的加购项实际上不支持 RTU 更新,并且无法通过这种方式(只能通过 Feed)进行更新。

示例

批量更新示例

以下是通过 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