Wenn ein Nutzer einen Verfügbarkeitszeitraum mit einem bestimmten Preis bucht, wird er über eine von Ihnen festgelegte URL auf Ihre Buchungsseite weitergeleitet. In den folgenden Schritten wird Folgendes beschrieben:
- Definieren Sie Ihre URL-Vorlage.
- Legen Sie die URL-Vorlage in Ihren Feeds fest.
- Aktiviere die Weiterleitung pro Verfügbarkeitsfenster.
- Überprüfen Sie die Felder im Info-Center.
1. URL-Vorlage definieren
Die URI-Vorlage folgt der Spezifikation der Internet Engineering Task Force (IETF) RFC6570 Level 2 URI-Vorlage. Weitere Informationen finden Sie unter datatracker.ietf.org. Die URL wird von Ihnen mit Parametern festgelegt, die dynamisch mit Informationen zu dieser Reservierung ausgefüllt werden. In der folgenden Tabelle sind die erforderlichen und optionalen Parameter aufgeführt, die für Ihre URI-Vorlage verfügbar sind.
`https://reservation-provider.com/examplerestaurant/book?date={availability_slot_start_seconds}&num_guests={resources_party_size}`
Verfügbare Werte für die URL-Vorlage
Vorlagenparameter | Erforderlich / Optional | Feed | Feld | Beispielwert |
---|---|---|---|---|
availability_slot_start_seconds | Erforderlich | Verfügbarkeit | start_sec | 4152695841 |
resources_party_size | Erforderlich | availability.resources | party_size | 2 |
availability_slot_availability_tag | Optional | Verfügbarkeit | availability_tag | res-123 |
availability_slot_duration_seconds | Optional | Verfügbarkeit | duration_sec | 3600 |
resources_room_id | Optional | availability.resources | room_id | bar_123 |
2. Legen Sie die URI-Vorlage in Ihrem Feed fest.
Im folgenden Abschnitt wird davon ausgegangen, dass Sie eine Live-E2E-Integration mit einem vorhandenen Dienstfeed haben. Die von Ihnen definierte URL wird im Dienstfeed festgelegt. Im Folgenden finden Sie die Definition für dieses Feld.
message Service {
// ..
UriTemplate uri_template = 38;
}
Definition der URI-Vorlage
// 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; }
Definition des Beispiels für einen Dienst
{ "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. Aktiviere die Weiterleitung pro Verfügbarkeitsfenster.
Im folgenden Abschnitt wird davon ausgegangen, dass Sie eine Live-E2E-Integration mit einem vorhandenen Verfügbarkeitsfeed haben. Nachdem Sie die URL-Vorlage in Ihrem Dienstfeed festgelegt haben, müssen Sie angeben, welche Ihrer Verfügbarkeitsslots für den Link erforderlich sind.
Dazu fügen Sie das Feld linkout_required_reason
mit dem Wert PAYMENT_REQUIRED
hinzu.
Definition des Grunds für einen 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; }
Beispieldefinition für den Grund für einen 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. Felder im Info-Center prüfen
Sobald Ihre Feeds erfolgreich gesendet wurden und im Feedverlauf keine Fehler angezeigt werden, können Sie die Felder mit den folgenden Schritten überprüfen.
URL-Vorlage in der Inventaranzeige
Die Definition der URL-Vorlage finden Sie in der Inventaransicht eines Händlers im Bereich „Dienste“. Sie finden die Vorlage im Bereich „Feed-Snippet“. Weitere Informationen zur Händler- und Dienstansicht finden Sie unter Inventardatenansicht.
Grund für den Linkout in der Verfügbarkeitsübersicht
Das Feld linkout_reason_required
finden Sie in der Verfügbarkeitsansicht im jeweiligen Verfügbarkeitszeitraum.