Setelah memesan slot ketersediaan dengan harga tertentu, pengguna akan diarahkan ke halaman pemesanan menggunakan URL yang ditentukan oleh Anda. Langkah-langkahnya yang akan ditunjukkan kepada Anda cara melakukan hal berikut:
- Tentukan Template URL Anda.
- Tetapkan Template URL di feed Anda.
- Mengaktifkan penautan per slot ketersediaan.
- Verifikasi kolom di Pusat Tindakan.
1. Menentukan Template URL Anda.
Template URI mengikuti Internet Engineering Task Force (IETF) RFC6570 Spesifikasi Template Uri Level 2, detail selengkapnya di datatracker.ietf.org. URL ditetapkan oleh Anda dengan parameter yang diisi secara dinamis dengan informasi terkait reservasi tersebut. Tabel berikut berisi parameter wajib dan opsional yang tersedia untuk template URI Anda.
`https://reservation-provider.com/examplerestaurant/book?date={availability_slot_start_seconds}&num_guests={resources_party_size}`
Nilai yang Tersedia untuk Template URL
Parameter Template | Wajib/Opsional | Feed | Kolom | Nilai Contoh |
---|---|---|---|---|
availability_slot_start_seconds | Wajib | ketersediaan | start_sec | 4152695841 |
resources_party_size | Wajib | availability.resources | party_size | 2 |
availability_slot_availability_tag | Opsional | ketersediaan | availability_tag | res-123 |
availability_slot_duration_seconds | Opsional | ketersediaan | duration_sec | 3600 |
resources_room_id | Opsional | availability.resources | room_id | bar_123 |
2. Tetapkan Template URI di feed Anda.
Bagian berikut mengasumsikan bahwa Anda memiliki integrasi E2E live dengan Feed Layanan. URL yang telah Anda tentukan akan ditetapkan di feed Layanan, berikut adalah definisi untuk kolom tersebut.
message Service {
// ..
UriTemplate uri_template = 38;
}
Definisi Template 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; }
Definisi Contoh Layanan
{ "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. Mengaktifkan linkout per slot ketersediaan.
Bagian berikut mengasumsikan bahwa Anda memiliki integrasi E2E live dengan Feed Ketersediaan. Setelah menetapkan template URL di feed layanan, Anda harus menentukan slot ketersediaan mana yang diperlukan untuk penautan keluar.
Anda dapat melakukannya dengan menambahkan kolom linkout_required_reason
dengan nilai
PAYMENT_REQUIRED
.
Definisi Alasan Linkout
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; }
Definisi Contoh Alasan Linkout
{ "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. Memverifikasi Kolom di Pusat Tindakan
Setelah feed berhasil dikirim dan tidak ada error dalam histori feed, Anda dapat memverifikasi kolom menggunakan langkah-langkah berikut.
Template URL di Inventory Viewer
Anda dapat menemukan definisi Template URL di bagian Layanan pada tampilan inventaris. Anda akan menemukan template di bagian "cuplikan feed". Lihat Tampilan Inventaris untuk mengetahui detail selengkapnya tentang Tampilan Penjual dan Layanan.
Alasan Penautan di Penampil Ketersediaan
Anda dapat menemukan kolom linkout_reason_required
saat melihat slot ketersediaan
tertentu di Tampilan Ketersediaan.