Kullanıcı, belirli bir fiyata sahip uygunluk aralığı için rezervasyon yaptığında, sizin tanımladığınız bir URL kullanılarak rezervasyon sayfanıza yönlendirilir. Aşağıdaki adımlarda şunları nasıl yapacağınız gösterilmektedir:
- URL şablonunuzu tanımlayın.
- Feed'lerinizde URL şablonunuzu ayarlayın.
- Kullanılabilirlik aralığı başına yönlendirme bağlantısını etkinleştirin.
- İşlem Merkezi'ndeki alanları doğrulayın.
1. URL şablonunuzu tanımlama
URI şablonu, İnternet Mühendisliği Görev Gücü (IETF) RFC6570 Level 2 URI Şablonu spesifikasyonuna uygundur. Daha fazla bilgi için datatracker.ietf.org adresini ziyaret edin. URL, sizin tarafınızdan ayarlanır ve ilgili rezervasyonla ilgili bilgilerle dinamik olarak doldurulan parametreler içerir. Aşağıdaki tabloda, URI şablonunuz için kullanılabilen zorunlu ve isteğe bağlı parametreler yer almaktadır.
`https://reservation-provider.com/examplerestaurant/book?date={availability_slot_start_seconds}&num_guests={resources_party_size}`
URL şablonu için kullanılabilir değerler
Şablon Parametreleri | Zorunlu / İsteğe bağlı | Feed | Alan | Örnek Değer |
---|---|---|---|---|
availability_slot_start_seconds | Zorunlu | hazır bulunma oranı | start_sec | 4152695841 |
resources_party_size | Zorunlu | availability.resources | party_size | 2 |
availability_slot_availability_tag | İsteğe bağlı | hazır bulunma oranı | availability_tag | res-123 |
availability_slot_duration_seconds | İsteğe bağlı | hazır bulunma oranı | duration_sec | 3600 |
2. Feed'inizde URI şablonunuzu ayarlayın.
Aşağıdaki bölümde, mevcut bir hizmet feed'i ile canlı bir uçtan uca entegrasyonunuz olduğu varsayılmaktadır. Tanımladığınız URL, hizmet feed'inde ayarlanır. Aşağıda bu alanın tanımı yer almaktadır.
message Service {
// ..
UriTemplate uri_template = 38;
}
Uri Template tanımı
// 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; }
Hizmet Örneği Tanımı
{ "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. Kullanılabilirlik aralığı başına yönlendirme bağlantısını etkinleştirin.
Aşağıdaki bölümde, mevcut bir Stok Durumu Feed'i ile canlı bir uçtan uca entegrasyonunuz olduğu varsayılmaktadır. Hizmet feed'inizde URL şablonunu ayarladıktan sonra, hangi uygunluk aralıklarınızın bağlantı oluşturmak için gerekli olacağını belirtmeniz gerekir.
Bunun için linkout_required_reason
alanını PAYMENT_REQUIRED
değeriyle ekleyebilirsiniz.
Yönlendirme Nedeni Tanımı
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; }
Linkout Reason Sample Definition
{ "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. İşlem Merkezi'ndeki Alanları Doğrulama
Feed'leriniz başarıyla gönderildikten ve feed geçmişinde hata bulunmadıktan sonra aşağıdaki adımları uygulayarak alanları doğrulayabilirsiniz.
Envanter görüntüleyicideki URL şablonu
URL şablonu tanımını, bir satıcının envanter görünümünün Hizmetler bölümünde bulabilirsiniz. Şablonu "feed snippet'i" bölümünde bulabilirsiniz. Satıcı ve hizmet görünümü hakkında daha fazla bilgi için Envanter Görünümü başlıklı makaleyi inceleyin.

Kullanılabilirlik görüntüleyicideki yönlendirme nedeni
Müsaitlik durumu görünümünde belirli bir müsaitlik aralığını görüntülerken linkout_required_reason
alanını bulabilirsiniz.
