Dopo aver prenotato uno spazio di disponibilità con un prezzo specifico, l'utente verrà reindirizzato alla tua pagina di prenotazione utilizzando un URL definito da te. I passaggi forniti ti mostreranno come:
- Definisci il modello di URL.
- Imposta il modello di URL nei feed.
- Attiva il linkout per slot di disponibilità.
- Verifica i campi nel Centro azioni.
1. Definizione del modello di URL.
Il modello URI segue la specifica del modello URI di livello 2 RFC6570 dell'Internet Engineering Task Force (IETF). Per ulteriori dettagli, visita la pagina datatracker.ietf.org. L'URL viene impostato da te con parametri compilati dinamicamente con informazioni relative alla prenotazione. La tabella seguente include i parametri obbligatori e facoltativi disponibili per il modello di URI.
`https://reservation-provider.com/examplerestaurant/book?date={availability_slot_start_seconds}&num_guests={resources_party_size}`
Valori disponibili per il modello di URL
Parametri del modello | Obbligatorio / Facoltativo | Feed | Campo | Valore di esempio |
---|---|---|---|---|
availability_slot_start_seconds | Obbligatorio | disponibilità | start_sec | 4152695841 |
resources_party_size | Obbligatorio | availability.resources | party_size | 2 |
availability_slot_availability_tag | Facoltativo | disponibilità | availability_tag | res-123 |
availability_slot_duration_seconds | Facoltativo | disponibilità | duration_sec | 3600 |
2. Imposta il modello URI nel feed.
La sezione seguente presuppone che tu disponga di un'integrazione E2E attiva con un feed di servizi esistente. L'URL che hai definito verrà impostato nel feed di servizio. Di seguito è riportata la definizione di questo campo.
message Service {
// ..
UriTemplate uri_template = 38;
}
Definizione del modello di 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; }
Definizione di esempio del servizio
{ "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. Attiva il linkout per slot di disponibilità.
La sezione seguente presuppone che tu disponga di un'integrazione E2E live con un feed della disponibilità esistente. Una volta impostato il modello di URL nel feed di servizio, dovrai specificare quali slot di disponibilità saranno necessari per il linkout.
Per farlo, aggiungi il campo linkout_required_reason
con un valore di
PAYMENT_REQUIRED
.
Definizione del motivo del link esterno
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; }
Esempio di definizione del motivo del link esterno
{ "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. Verifica i campi nel Centro azioni
Una volta inviati correttamente i feed e senza errori nella cronologia dei feed, puoi verificare i campi seguendo i passaggi riportati di seguito.
Modello di URL nel visualizzatore dell'inventario
Puoi trovare la definizione del modello di URL nella sezione Servizi della visualizzazione dell'inventario di un commerciante. Troverai il modello nella sezione "Snippet del feed". Per ulteriori dettagli sulla visualizzazione commerciante e servizio, consulta la visualizzazione inventario.

Motivo del link esterno nel visualizzatore della disponibilità
Puoi trovare il campo linkout_required_reason
quando visualizzi lo slot di disponibilità specifico nella visualizzazione Disponibilità.
