Al momento della prenotazione di una fascia di disponibilità con un prezzo specifico, l'utente riceverà vengono reindirizzati alla tua pagina di prenotazione utilizzando un URL da te definito. I passaggi forniti ti mostreranno come svolgere le seguenti operazioni:
- Definisci il modello di URL.
- Imposta il modello di URL nei tuoi feed.
- Abilita il linkout per slot di disponibilità.
- Verifica i campi nel Centro azioni.
1. Definizione del modello di URL.
Il modello URI è conforme alla specifica Internet Engineering Task Force (IETF) RFC6570 Specifica del modello URI di livello 2; maggiori dettagli sono disponibili all'indirizzo datatracker.ietf.org. L'URL viene impostato da te con parametri compilati dinamicamente con le informazioni relative alla prenotazione. La tabella seguente include i parametri obbligatori e facoltativi disponibili per il modello 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 |
resources_room_id | Facoltativo | availability.resources | room_id | bar_123 |
2. Imposta il modello URI nel feed.
Nella sezione seguente si presuppone che tu abbia un'integrazione E2E attiva con un feed di servizi esistente. L'URL che hai definito verrà impostato nel feed del 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. // // 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; }
Definizione di esempio di 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 ogni spazio di disponibilità.
Nella sezione seguente si presuppone che tu abbia un'integrazione E2E pubblicata con un feed di disponibilità esistente. Dopo aver impostato il modello di URL nel feed del servizio, dovrai specificare quali slot di disponibilità saranno obbligatori per i linkout.
Aggiungi il campo linkout_required_reason
con un valore di
PAYMENT_REQUIRED
.
Definizione del motivo del 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; }
Esempio di definizione del motivo del collegamento
{ "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. Verificare i campi nel Centro azioni
Una volta che i feed sono stati inviati correttamente e non sono presenti errori nel feed puoi verificare i campi seguendo questi passaggi.
Modello di URL in Visualizzatore dell'inventario
Puoi trovare la definizione del modello di URL nella sezione Servizi della visualizzazione dell'inventario di un commerciante. Il modello si trova nello "snippet del feed" . Consulta la sezione Visualizzazione inventario per ulteriori dettagli su Merchant Center e Service View (Visualizzazione servizio).
Motivo del linkout nel visualizzatore della disponibilità
Puoi trovare il campo linkout_reason_required
quando visualizzi la scheda
slot di disponibilità in Visualizzazione disponibilità.