Setelah memesan slot ketersediaan dengan harga tertentu, pengguna akan dialihkan ke halaman pemesanan Anda menggunakan URL yang ditentukan oleh Anda. Langkah-langkah yang diberikan akan menunjukkan cara melakukan hal berikut:
- Tentukan Template URL Anda.
- Tetapkan Template URL di feed Anda.
- Aktifkan penautan per slot ketersediaan.
- Verifikasi kolom di Pusat Tindakan.
1. Menentukan Template URL Anda.
Template URI mengikuti spesifikasi Template URI Level 2 RFC6570 Internet Engineering Task Force (IETF), detail selengkapnya di datatracker.ietf.org. URL ditetapkan oleh Anda dengan parameter yang diisi secara dinamis dengan informasi terkait reservasi tersebut. Tabel berikut mencakup 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 |
2. Tetapkan Template URI di feed Anda.
Bagian berikut mengasumsikan bahwa Anda memiliki integrasi E2E aktif dengan Feed Layanan yang ada. URL yang telah Anda tentukan akan ditetapkan di feed Layanan, yang mencakup 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. // // 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; }
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. Aktifkan penautan per slot ketersediaan.
Bagian berikut mengasumsikan bahwa Anda memiliki integrasi E2E aktif dengan Feed Ketersediaan yang ada. Setelah menetapkan template URL di feed layanan, Anda harus menentukan slot ketersediaan yang akan 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; }
Contoh Definisi Alasan Penarikan
{ "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 Anda berhasil dikirim dan tidak ada error dalam histori feed, Anda dapat memverifikasi kolom menggunakan langkah-langkah berikut.
Template URL di Penampil Inventaris
Anda dapat menemukan definisi Template URL di bagian Layanan pada tampilan inventaris penjual. 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_required_reason
saat melihat slot ketersediaan tertentu di Tampilan Ketersediaan.
