As atualizações em tempo real permitem manter o inventário de ofertas sincronizado com o Google. É possível enviar atualizações incrementais quase em tempo real. Nosso sistema vai compilar as mudanças do feed e da RTU para mostrar as informações mais recentes aos usuários.
Endpoints de API
Para enviar ou excluir atualizações em tempo real, use os seguintes endpoints da API REST:
Envio em lote
- Sandbox:
https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchPush - Produção:
https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchPush
Exclusão em lote
- Sandbox:
https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchDelete - Produção:
https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchDelete
Para mais informações sobre a definição do objeto JSON de oferta, consulte Oferta. Para mais detalhes sobre as propriedades da oferta, acesse a página de referência da oferta.
Como autenticar com a API
Para se conectar à API, consulte Autenticar com a API Mapsbooking.
Limitações
Ao usar a API de atualizações em tempo real, lembre-se das seguintes limitações:
- Somente protoRecord: a API está configurada para usar apenas
protoRecord(nãodataRecord). - Limites de cota: essas APIs têm uma cota de 1.500 solicitações por minuto por conta de parceiro. Cada solicitação é limitada ao envio de 1.000 registros para upsert ou exclusão.
- Restrições de mapeamento de IDs de entidade: para cada oferta, os parceiros podem enviar uma atualização para um ID de entidade. Se você quiser atualizar a mesma oferta em vários IDs de entidade, o parceiro precisará enviar 1 registro por
entityId. OsentityIds precisam ser sempre únicos por registro. - Ofertas de complementos: devido à restrição de mapeamento de entidades, as ofertas de complementos que são
addOnOfferApplicableToAllEntitiesnão são realmente compatíveis com a atualização de RTU e não podem ser atualizadas dessa forma (apenas por feeds).
Exemplo
Exemplo de atualizações em lote
Confira um exemplo de envio de uma atualização em tempo real usando 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
Exemplo de exclusão em lote
Confira um exemplo de exclusão de uma oferta usando 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