Обновления в реальном времени позволяют синхронизировать ваш инвентарь предложений с Google. Вы можете отправлять поэтапные обновления практически в режиме реального времени. Наша система будет компилировать изменения из ленты новостей и RTU, чтобы отображать пользователям самую актуальную информацию.
Конечные точки API
Для отправки или удаления обновлений в режиме реального времени используйте следующие конечные точки REST API:
Пакетная отправка
- Песочница:
https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchPush - Production:
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 - Production:
https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchDelete
Для получения дополнительной информации об определении объекта Offer в формате JSON см. раздел Offer . Более подробную информацию о свойствах предложения см. на странице справочника Offer .
Как пройти аутентификацию в API
Для подключения к API см. раздел «Аутентификация с помощью API Mapsbooking» .
Ограничения
При использовании API для обновления данных в реальном времени следует учитывать следующие ограничения:
- Только protoRecord : API настроен на использование только
protoRecord(а неdataRecord). - Ограничения по квоте : Для этих API установлено ограничение в 1500 запросов в минуту на один партнерский аккаунт . Каждый запрос может отправить не более 1000 записей для обновления или удаления.
- Ограничения на сопоставление сущностей : Для каждого предложения партнеры могут отправлять обновление только для одного идентификатора сущности. Если вы хотите обновить одно и то же предложение для нескольких идентификаторов сущностей, партнер должен отправить одну запись для каждого
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