借助实时更新,您可以使优惠商品目录与 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