เมื่อจองช่วงเวลาที่พร้อมให้บริการด้วยราคาที่เฉพาะเจาะจง ระบบจะเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าการจองของคุณโดยใช้ URL ที่คุณกำหนด ขั้นตอน ที่ระบุจะแสดงวิธีทำสิ่งต่อไปนี้
- กำหนดเทมเพลต URL
- ตั้งค่าเทมเพลต URL ในฟีด
- เปิดใช้ลิงก์ออกต่อช่วงเวลาที่พร้อมให้บริการ
- ยืนยันฟิลด์ในศูนย์การดำเนินการ
1. การกำหนดเทมเพลต URL
เทมเพลต URI เป็นไปตามข้อกำหนดเฉพาะของเทมเพลต URI ระดับ 2 ของ RFC6570 ของคณะทำงานเฉพาะกิจด้านวิศวกรรมอินเทอร์เน็ต (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 | ต้องระบุ | availability | start_sec | 4152695841 |
| resources_party_size | ต้องระบุ | availability.resources | party_size | 2 |
| availability_slot_availability_tag | ไม่บังคับ | availability | availability_tag | res-123 |
| availability_slot_duration_seconds | ไม่บังคับ | availability | duration_sec | 3600 |
2. ตั้งค่าเทมเพลต URI ในฟีด
ส่วนต่อไปนี้ถือว่าคุณมีการผสานรวม E2E ที่ใช้งานจริงกับฟีดบริการที่มีอยู่ ระบบจะตั้งค่า 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. // // Available parameters for Dining Reservation Linkout: // 1) (required) {availability_slot_start_seconds} :: populated from start_sec // field in availability feed // 2) (required) {resources_party_size} :: populated from party_size field in // availability feed // 3) (optional) {availability_slot_duration_seconds} :: populated from // duration_sec field in availability feed // 4) (optional) {availability_slot_availability_tag} :: populated from // availability_tag 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. เปิดใช้ลิงก์ออกต่อช่วงเวลาที่พร้อมให้บริการ
ส่วนต่อไปนี้จะถือว่าคุณมีการผสานรวม E2E แบบเรียลไทม์กับฟีดความพร้อมที่มีอยู่ เมื่อตั้งค่าเทมเพลต 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. ยืนยันช่องใน Action Center
เมื่อส่งฟีดเรียบร้อยแล้วและไม่มีข้อผิดพลาดในประวัติฟีด คุณจะยืนยันช่องได้โดยใช้ขั้นตอนต่อไปนี้
เทมเพลต URL ในเครื่องมือดูพื้นที่โฆษณา
คุณดูคำจำกัดความของเทมเพลต URL ได้ในส่วนบริการของมุมมองสินค้าคงคลังของผู้ขาย คุณจะเห็นเทมเพลตในส่วน "ข้อมูลโค้ดฟีด" ดูรายละเอียดเพิ่มเติมเกี่ยวกับมุมมองผู้ขายและมุมมองบริการได้ที่มุมมองสินค้าคงคลัง
เหตุผลในการลิงก์ออกในเครื่องมือดูความพร้อม
คุณจะเห็นช่อง linkout_required_reason เมื่อดูช่วงเวลาที่พร้อมให้บริการที่เฉพาะเจาะจงในมุมมองความพร้อมให้บริการ