Aktualizacje w czasie rzeczywistym pozwalają zachować synchronizację asortymentu ofert z Google. Możesz przesyłać przyrostowe aktualizacje w czasie zbliżonym do rzeczywistego. Nasz system skompiluje zmiany z pliku danych i RTU, aby wyświetlać użytkownikom najnowsze informacje.
Punkty końcowe interfejsu API
Aby przesłać lub usunąć aktualizacje w czasie rzeczywistym, użyj tych punktów końcowych interfejsu API REST:
Wysyłanie zbiorcze
- Piaskownica:
https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchPush - Produkcja:
https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchPush
Usuwanie zbiorcze
- Piaskownica:
https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchDelete - Produkcja:
https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchDelete
Więcej informacji o definicji obiektu JSON oferty znajdziesz w sekcji Oferta. Więcej informacji o właściwościach oferty znajdziesz na stronie referencyjnej dotyczącej ofert.
Uwierzytelnianie w interfejsie API
Aby połączyć się z interfejsem API, zapoznaj się z artykułem Uwierzytelnianie w interfejsie Mapsbooking API.
Ograniczenia
Podczas korzystania z interfejsu API do aktualizacji w czasie rzeczywistym pamiętaj o tych ograniczeniach:
- Tylko protoRecord: interfejs API jest skonfigurowany tak, aby używać tylko
protoRecord(niedataRecord). - Limity: te interfejsy API mają limit 1500 żądań na minutę na konto partnera. Każde żądanie jest ograniczone do wysyłania 1000 rekordów w przypadku operacji upsert lub usuwania.
- Ograniczenia dotyczące mapowania jednostek: w przypadku każdej oferty partnerzy mogą wysłać aktualizację 1 identyfikatora jednostki. Jeśli chcesz zaktualizować tę samą ofertę w przypadku wielu identyfikatorów jednostek, partner musi przesłać 1 rekord na
entityId.entityIdmusi zawsze występować w liczbie pojedynczej w przypadku każdego rekordu. - Oferty dodatkowe: ze względu na ograniczenie mapowania podmiotów oferty dodatkowe, które są
addOnOfferApplicableToAllEntities, nie są w rzeczywistości obsługiwane w przypadku aktualizacji w czasie rzeczywistym i nie można ich aktualizować w ten sposób (tylko za pomocą plików danych).
Przykład
Przykład aktualizacji zbiorczych
Oto przykład wysyłania aktualizacji w czasie rzeczywistym za pomocą interfejsu 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
Przykład usuwania zbiorczego
Oto przykład usuwania oferty za pomocą właściwości 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