Las actualizaciones en tiempo real te permiten mantener tu inventario de ofertas sincronizado con Google. Puedes enviar actualizaciones incrementales casi en tiempo real. Nuestro sistema compilará los cambios del feed y la RTU para mostrar la información más reciente a los usuarios.
Extremos de la API
Para enviar o borrar actualizaciones en tiempo real, usa los siguientes extremos de la API de REST:
Envío por lotes
- Zona de pruebas:
https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchPush - Producción:
https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchPush
Borrado por lotes
- Zona de pruebas:
https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchDelete - Producción:
https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchDelete
Para obtener más información sobre la definición del objeto JSON de Offer, consulta Oferta. Para obtener más detalles sobre las propiedades de la oferta, visita la página de referencia de la oferta.
Cómo autenticar en la API
Para conectarte a la API, consulta Autenticación con la API de Mapsbooking.
Limitaciones
Cuando uses la API de actualizaciones en tiempo real, ten en cuenta las siguientes limitaciones:
- Solo protoRecord: La API está configurada para usar solo
protoRecord(nodataRecord). - Límites de cuota: Estas APIs tienen una cuota de 1,500 solicitudes por minuto por cuenta de socio. Cada solicitud tiene un límite de envío de 1,000 registros para la inserción o eliminación.
- Restricciones de asignación de entidades: Para cada oferta, los socios pueden enviar una actualización para 1 ID de entidad. Si deseas actualizar la misma oferta en varios IDs de entidad, el socio debe enviar 1 registro por
entityId. LosentityIdsiempre deben ser singulares por registro. - Ofertas de complementos: Debido a la restricción de asignación de entidades, las ofertas de complementos que son
addOnOfferApplicableToAllEntitiesno son compatibles con la actualización de RTU y no se pueden actualizar de esta manera (solo a través de feeds).
Ejemplo
Ejemplo de actualizaciones por lotes
Aquí tienes un ejemplo de cómo enviar una actualización en tiempo real a través de 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
Ejemplo de borrado por lotes
Aquí tienes un ejemplo de cómo borrar una oferta a través de 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