עדכונים בזמן אמת מאפשרים לכם לשמור על סנכרון בין מלאי המוצרים שלכם לבין Google. אפשר לשלוח עדכונים מצטברים כמעט בזמן אמת. המערכת שלנו תרכז את השינויים מפיד + RTU כדי להציג למשתמשים את המידע העדכני ביותר.
נקודות קצה ל-API
כדי לשלוח או למחוק עדכונים בזמן אמת, משתמשים בנקודות הקצה הבאות של API בארכיטקטורת REST:
העברה באצווה
- ארגז חול:
https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchPush - סביבת ייצור:
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 - סביבת ייצור:
https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchDelete
למידע נוסף על הגדרת אובייקט JSON של מבצע, אפשר לעיין במאמר בנושא מבצע. פרטים נוספים על מאפייני המבצע זמינים בדף ההפניה למבצעים.
איך מאמתים את ה-API
כדי להתחבר ל-API, אפשר לעיין במאמר אימות באמצעות Mapsbooking API.
מגבלות
כשמשתמשים ב-API לעדכונים בזמן אמת, חשוב לזכור את המגבלות הבאות:
- protoRecord בלבד: ה-API מוגדר לשימוש רק ב-
protoRecord(לא ב-dataRecord). - מגבלות מכסה: לממשקי ה-API האלה יש מכסה של 1,500 בקשות לדקה לכל חשבון שותף. כל בקשה מוגבלת לשליחה של 1,000 רשומות לעדכון או למחיקה.
- מגבלות על מיפוי ישויות: לכל מבצע, השותפים יכולים לשלוח עדכון למזהה ישות ב-SAML אחד. אם רוצים לעדכן את אותו מוצר בכמה מזהי ישות, השותף צריך לשלוח רשומה אחת לכל
entityId.entityIds חייבים להיות תמיד ביחיד לכל רשומה. - מבצעים על חבילות: בגלל ההגבלה על מיפוי ישויות, אין תמיכה אמיתית במבצעים על חבילות שמוגדרים כ-
addOnOfferApplicableToAllEntitiesלעדכון בזמן אמת, ואי אפשר לעדכן אותם בדרך הזו (אפשר לעדכן אותם רק באמצעות פידים).
דוגמה
דוגמה לעדכון אצווה
דוגמה לשליחת עדכון בזמן אמת באמצעות 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