Po zarezerwowaniu miejsca z określoną ceną użytkownik zostanie przekierowany na stronę rezerwacji za pomocą określonego przez Ciebie adresu URL. Z podanych kroków dowiesz się, jak:
- Zdefiniuj szablon adresu URL.
- W plikach danych ustaw szablon adresu URL.
- Włącz linkowanie na podstawie slotu dostępności.
- Sprawdź pola w Centrum działań.
1. Definiowanie szablonu adresu URL
Szablon URI jest zgodny ze specyfikacją RFC6570 IETF dotyczącą szablonu URI na poziomie 2. Więcej informacji znajdziesz na stronie datatracker.ietf.org. Adres URL jest ustawiany przez Ciebie i dynamicznie wypełniany parametrami dotyczącymi rezerwacji. Tabela poniżej zawiera wymagane i opcjonalne parametry dostępne w szablonie adresu URL.
`https://reservation-provider.com/examplerestaurant/book?date={availability_slot_start_seconds}&num_guests={resources_party_size}`
Dostępne wartości szablonu URL
Parametry szablonu | Wymagany / Opcjonalny | Kanał | Pole | Przykładowa wartość |
---|---|---|---|---|
availability_slot_start_seconds | Wymagane | dostępność | start_sec | 4152695841 |
resources_party_size | Wymagane | availability.resources | party_size | 2 |
availability_slot_availability_tag | Opcjonalny | dostępność | availability_tag | res-123 |
availability_slot_duration_seconds | Opcjonalny | dostępność | duration_sec | 3600 |
2. W pliku danych ustaw szablon identyfikatora URI.
W tej sekcji zakładamy, że masz aktywną integrację E2E z dotychczasowym plikiem danych usługi. Zdefiniowany przez Ciebie URL zostanie ustawiony w pliku danych usługi. Poniżej znajdziesz definicję tego pola.
message Service {
// ..
UriTemplate uri_template = 38;
}
Definicja szablonu 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; }
Przykładowa definicja usługi
{ "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. Włącz linkowanie do konkretnego slotu dostępności.
W tej sekcji zakładamy, że masz aktywną integrację E2E z istniejącym kanałem danych z dostępnością. Po ustawieniu szablonu adresu URL w pliku danych o usłudze musisz określić, które sloty z dostępnością będą wymagane do linkowania.
Możesz to zrobić, dodając pole linkout_required_reason
z wartością PAYMENT_REQUIRED
.
Definicja przyczyny linkowania zewnętrznego
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; }
Definicja przykładowego powodu linku zewnętrznego
{ "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. Weryfikowanie pól w Centrum działań
Gdy przesłane przez Ciebie pliki danych zostaną przetworzone, a w ich historii nie będzie błędów, możesz zweryfikować pola, wykonując te czynności.
Szablon adresu URL w Inventory Viewer
Definicję szablonu URL znajdziesz w sekcji Usługi w widoku asortymentu sprzedawcy. Szablon znajdziesz w sekcji „Fragment pliku danych”. Więcej informacji o widoku danych o asortymencie znajdziesz w sekcji Widok danych o asortymencie.

Linkout Reason (Powód linkowania) w wyświetlaczu dostępności
Pole linkout_reason_required
znajdziesz, gdy wyświetlisz konkretny slot dostępności w widoku dostępności.
