אחרי שהמשתמש יבצע הזמנה של זמן זמינות במחיר ספציפי, הוא יועבר לדף ההזמנות שלכם באמצעות כתובת URL שתגדירו. בשלבים הבאים מוסבר איך לבצע את הפעולות הבאות:
- מגדירים את תבנית כתובת ה-URL.
- מגדירים את תבנית כתובות ה-URL בפיד.
- מפעילים קישורים יוצאים לכל חריץ זמינות.
- מאמתים את השדות במרכז הפעולות.
1. הגדרת תבנית כתובת ה-URL.
תבנית ה-URI תואמת למפרט של תבנית URI ברמה 2 של RFC6570 של Internet Engineering Task Force (IETF). פרטים נוספים זמינים בכתובת datatracker.ietf.org. אתם מגדירים את כתובת ה-URL עם פרמטרים שמאוכלסים באופן דינמי במידע שקשור להזמנה. בטבלה הבאה מפורטים הפרמטרים הנדרשים והאופציונליים שזמינים לתבנית ה-URI.
`https://reservation-provider.com/examplerestaurant/book?date={availability_slot_start_seconds}&num_guests={resources_party_size}`
הערכים הזמינים לתבנית של כתובת URL
פרמטרים של תבניות | חובה / אופציונלי | פיד | שדה | ערך לדוגמה |
---|---|---|---|---|
availability_slot_start_seconds | חובה | זמינות | start_sec | 4152695841 |
resources_party_size | חובה | availability.resources | party_size | 2 |
availability_slot_availability_tag | אופציונלי | זמינות | availability_tag | res-123 |
availability_slot_duration_seconds | אופציונלי | זמינות | duration_sec | 3600 |
resources_room_id | אופציונלי | availability.resources | room_id | bar_123 |
2. מגדירים את תבנית ה-URI בפיד.
בקטע הבא נניח שיש לכם אינטגרציה פעילה מקצה לקצה עם פיד שירות קיים. כתובת ה-URL שתגדירו תוגדר בפיד השירות. בהמשך מופיעה ההגדרה של השדה הזה.
message Service {
// ..
UriTemplate uri_template = 38;
}
הגדרת תבנית URI
// A template specifying how Google should generate URLs to external site. message UriTemplate { // The uri template must follow the RFC6570, see // https://datatracker.ietf.org/doc/html/rfc6570. // Supports Level 2 templates. // These parameters will be resolved to their values specified in their // respective entities. // // 5 available parameters for Dining Reservation Linkout: // 1) (required) {availability_slot_start_seconds} :: populated from start_sec // field in availability feed // 2) (required) {availability_slot_duration_seconds} :: populated from // duration_sec field in availability feed // 3) (optional) {resources_party_size} :: populated from party_size field in // availability feed // 4) (optional) {availability_availability_tag} :: populated from // availability_tag field in availability feed // 5) (optional) {resources_room_id} :: populated from room_id field in // availability feed // // Example usage: // http://example.com/book/restaurant?start={availability_slot_start_seconds} // &num_guests={resources_party_size} // * start_sec = 123456 // * party_size = 2 // https://example.com/book/restaurant?start=123456&num_guests=2 string uri_template = 1; }
הגדרת דוגמה לשירות
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "shard_number": 0, "total_shards": 1, "nonce": "12484913", "generation_timestamp": 1530432018 }, "service": [ { "merchant_id": "dining-A", "service_id": "reservation", "uri_template": { "uri_template": "https://reservation-provider.com/examplerestaurant/book?date={availability_slot_start_seconds}&num_guests={resources_party_size}" }, "localized_service_name": { "value": "Reservation", "localized_value": [ { "locale": "en", "value": "Reservation" } ] } } ] }
3. מפעילים קישורים יוצאים לכל חריץ זמינות.
בקטע הבא נניח שיש לכם אינטגרציה פעילה מקצה לקצה עם פיד זמינות קיים. אחרי שתגדירו את תבנית כתובת ה-URL בפיד השירות, תצטרכו לציין אילו משבצות זמינות יידרשו ליצירת קישורים לאתרים אחרים.
כדי לעשות זאת, מוסיפים את השדה linkout_required_reason
עם הערך PAYMENT_REQUIRED
.
הגדרה של הסיבה להצגת קישור
message Availability {
// ..
LinkoutRequiredReason linkout_required_reason = 19;
}
// The reason why a slot requires a linkout. Currently only used for Dining // Reservations Payment Redirect Partners. enum LinkoutRequiredReason { // Default value: Do not use, equates to unknown. LINKOUT_REQUIRED_REASON_UNSPECIFIED = 0; // Slot requires payment in the partner platform to be booked. PAYMENT_REQUIRED = 1; }
הגדרה לדוגמה של סיבה לקישור החוצה
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "shard_number": 0, "total_shards": 1, "nonce": "11203880", "generation_timestamp": 1543875200 }, "service_availability": [ { "availability": [ { "merchant_id": "dining-A", "service_id": "reservation", "linkout_required_reason": "PAYMENT_REQUIRED", "start_sec": 1535853600, "duration_sec": 2700, "spots_total": 2, "spots_open": 2, "resources": { "room_id": "A-dining-room", "room_name": "Dining Room", "party_size": 2 } } ] } ] }
4. אימות השדות במרכז הפעולות
אחרי שהפידים נשלחים בהצלחה ואין שגיאות בהיסטוריית הפיד, אפשר לאמת את השדות לפי השלבים הבאים.
תבנית של כתובת URL ב'כלי להצגת מלאי שטחי הפרסום'
ההגדרה של תבנית כתובת ה-URL מופיעה בקטע 'שירותים' בתצוגת המלאי של המוכר. התבנית מופיעה בקטע 'קטע פיד'. פרטים נוספים על תצוגת המלאי זמינים במאמר תצוגת מלאי.
הסיבה להפניה החוצה בתצוגת הזמינות
השדה linkout_reason_required
מופיע כשמציגים את חלון הזמינות הספציפי בתצוגת הזמינות.