Les mises à jour en temps réel vous permettent de synchroniser votre inventaire d'offres avec Google. Vous pouvez envoyer des mises à jour incrémentielles en temps quasi réel. Notre système compilera les modifications apportées au flux et à la RTU pour afficher les informations les plus récentes aux utilisateurs.
Points de terminaison de l'API
Pour envoyer ou supprimer des mises à jour en temps réel, utilisez les points de terminaison de l'API REST suivants :
Envoi par lot
- Bac à sable :
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
Suppression par lot
- Bac à sable :
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
Pour en savoir plus sur la définition de l'objet JSON "Offer" (Offre), consultez Offer. Pour en savoir plus sur les propriétés des offres, consultez la page de référence sur les offres.
S'authentifier auprès de l'API
Pour vous connecter à l'API, consultez S'authentifier avec l'API Maps Booking.
Limites
Lorsque vous utilisez l'API de mises à jour en temps réel, gardez à l'esprit les limites suivantes :
- protoRecord uniquement : l'API est configurée pour n'utiliser que
protoRecord(et nondataRecord). - Limites de quota : ces API ont un quota de 1 500 requêtes par minute et par compte partenaire. Chaque requête est limitée à l'envoi de 1 000 enregistrements pour l'insertion/mise à jour ou la suppression.
- Restrictions concernant le mappage d'entités : pour chaque offre, les partenaires peuvent envoyer une mise à jour pour un ID d'entité. Si vous souhaitez modifier la même offre pour plusieurs ID d'entité, le partenaire doit envoyer un enregistrement par
entityId. LesentityIddoivent toujours être au singulier pour chaque enregistrement. - Offres de modules complémentaires : en raison de la restriction de mappage d'entités, les offres de modules complémentaires
addOnOfferApplicableToAllEntitiesne sont pas réellement compatibles avec la mise à jour des conditions d'utilisation en temps réel et ne peuvent pas être mises à jour de cette manière (uniquement via les flux).
Exemple
Exemple de mise à jour par lot
Voici un exemple d'envoi d'une mise à jour en temps réel via 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
Exemple de suppression par lot
Voici un exemple de suppression d'une offre via 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