Sau khi đặt chỗ một khung giờ có giá cụ thể, người dùng sẽ được chuyển hướng đến trang đặt phòng của bạn thông qua một URL do bạn xác định. Các bước được cung cấp sẽ hướng dẫn bạn cách thực hiện những việc sau:
- Xác định Mẫu URL của bạn.
- Thiết lập Mẫu URL trong nguồn cấp dữ liệu.
- Bật đường liên kết đến mỗi khung giờ có sẵn.
- Xác minh các trường trong Trung tâm hành động.
1. Xác định mẫu URL.
Mẫu uri tuân theo quy cách Mẫu URI cấp 2 RFC6570 của Nhóm công tác kỹ thuật Internet (IETF). Bạn có thể xem thêm thông tin chi tiết tại datatracker.ietf.org. URL do bạn đặt bằng các tham số được điền động liên quan đến giao dịch đặt chỗ đó. Bảng sau đây bao gồm các tham số bắt buộc và không bắt buộc có sẵn cho mẫu uri của bạn.
`https://reservation-provider.com/examplerestaurant/book?date={availability_slot_start_seconds}&num_guests={resources_party_size}`
Các giá trị có sẵn cho mẫu URL
Tham số mẫu | Bắt buộc / Không bắt buộc | Nguồn cấp dữ liệu | Trường | Giá trị mẫu |
---|---|---|---|---|
availability_slot_start_seconds | Bắt buộc | độ khả dụng | start_sec | 4152695841 |
resources_party_size | Bắt buộc | availability.resources | party_size | 2 |
availability_slot_availability_tag | Không bắt buộc | độ khả dụng | availability_tag | res-123 |
availability_slot_duration_seconds | Không bắt buộc | độ khả dụng | duration_sec | 3600 |
resources_room_id | Không bắt buộc | availability.resources | room_id | bar_123 |
2. Đặt Mẫu URI trong nguồn cấp dữ liệu.
Phần sau đây giả định rằng bạn đang tích hợp E2E với Nguồn cấp dữ liệu dịch vụ. URL mà bạn đã xác định sẽ được đặt trong Nguồn cấp dữ liệu dịch vụ, sau đây bao gồm định nghĩa cho trường đó.
message Service {
// ..
UriTemplate uri_template = 38;
}
Định nghĩa mẫu 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; }
Định nghĩa mẫu dịch vụ
{ "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. Bật đường liên kết ra cho mỗi vùng khả dụng.
Phần sau đây giả định rằng bạn đang tích hợp E2E với Nguồn cấp dữ liệu về tình trạng còn hàng. Sau khi đặt mẫu URL trong nguồn cấp dữ liệu dịch vụ, bạn cần chỉ định những khung giờ trống nào sẽ bắt buộc phải liên kết.
Bạn có thể thực hiện việc này bằng cách thêm trường linkout_required_reason
có giá trị là PAYMENT_REQUIRED
.
Định nghĩa về lý do liên kết đến bên ngoài
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; }
Định nghĩa mẫu về lý do liên kết ra ngoài
{ "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. Xác minh các trường trong Trung tâm hành động
Sau khi gửi thành công nguồn cấp dữ liệu và không có lỗi nào trong nguồn cấp dữ liệu lịch sử, bạn có thể xác minh các trường bằng cách làm theo các bước sau.
Mẫu URL trong Trình xem khoảng không quảng cáo
Bạn có thể tìm thấy định nghĩa về Mẫu URL trong phần Dịch vụ trên trang chế độ xem khoảng không quảng cáo. Bạn sẽ tìm thấy mẫu này trong "đoạn mã nguồn cấp dữ liệu" . Hãy tham khảo phần Chế độ xem kho hàng để biết thêm thông tin chi tiết về Chế độ xem người bán và Chế độ xem dịch vụ.
Lý do liên kết trong Trình xem tình trạng rảnh/bận
Bạn có thể thấy trường linkout_reason_required
khi xem
vị trí tình trạng rảnh/bận trong Chế độ xem tình trạng còn hàng.