Bu bölüm, Google XML tabanlı İpucu İsteği mesajları, İpucu Yanıtı mesajları ve Sorgu mesajları için referans sağlamaktadır.
<Hint>
(İpucu Yanıtı mesajı)
Bir İpucu Yanıtı mesajının kök öğesidir. İpucu Yanıtı mesajları, hangi otel/seyahat planı kombinasyonlarının yeniden fiyatlandırılması gerektiğini belirtir. Bunlar, Google'dan gelen bir İpucu İsteği mesajına verdiğiniz yanıttır.
İpucu Yanıtı mesajı, yalnızca Google'ın sunucularınızdan başarılı bir İpucu Yanıtı almasından bu yana fiyatları değişen otelleri belirtmelidir.
İpucu Yanıtı mesajları, Google'ın yeniden fiyatlandıracağı otel ve seyahat planlarını belirtmek için aşağıdaki yöntemlerden birini kullanır:
Tam seyahat planları: Giriş tarihi ve konaklama süresinin kombinasyonudur.
Giriş tarih aralıkları: İlk check-in tarihiyle başlayıp son check-in tarihiyle biten bir check-in tarihi aralığını belirtir.
Aralıklı konaklamalar (veya aralıklı seyahat planları)
Bu yöntemlerin her biri, İpucu Yanıtı mesajı için farklı bir söz dizimi gerektirir.
Daha fazla bilgi için İpucu Yanıtı mesajları bölümüne bakın.
Söz dizimi
<Hint>
öğesi, İpucu Yanıtı mesajının türüne bağlı olarak farklı söz dizimi kullanır:
Tam seyahat planları
Aşağıda, bir İpucu Yanıtı mesajında tam seyahat planları için söz dizimi gösterilmektedir:
<!-- Exact Itinerary Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<Property>hotel_ID</Property>
...
<Stay>
<CheckInDate>checkin_date</CheckInDate>
<LengthOfStay>number_of_nights</LengthOfStay>
</Stay>
</Item>
...
</Hint>
Check-in aralıkları
Aşağıda, bir İpucu Yanıtı mesajında check-in aralıkları için söz dizimi gösterilmektedir:
<!-- Check-in Ranges Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<!-- At least one is required -->
<!-- Can be > 1 if MultipleItineraries is "checkin_range" in your
QueryControl message -->
<Property>hotel_ID</Property>
[...]
<!-- Required -->
<FirstDate>first_checkin_date</FirstDate>
<!-- Required -->
<LastDate>last_checkin_date</LastDate>
</Item>
...
</Hint>
Aralıklı konaklamalar
Aşağıda, bir İpucu Yanıtı mesajında aralıklı konaklamalar için söz dizimi gösterilmektedir:
<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<!-- At least one is required -->
<!-- Can be > 1 if MultipleItineraries is "affected_dates" in your
QueryControl message -->
<Property>hotel_ID</Property>
[...]
<StaysIncludingRange>
<!-- Required -->
<FirstDate>first_date</FirstDate>
<!-- Optional -->
<LastDate>last_date</LastDate>
</StaysIncludingRange>
</Item>
...
</Hint>
Özellikler
<Hint>
öğesi, isteğe bağlı bir özellik içeriyor: id
. Bu değer sağlandığında, bu <Hint>
temel alınarak gönderilen <Query>
mesajlarına hintId
özelliği olarak eklenir.
Alt öğeler
<Hint>
öğesi aşağıdaki alt öğelere sahiptir:
Alt Öğe | Zorunlu mu? | Tür | İpucu Yanıtı Türü | Açıklama |
---|---|---|---|---|
<CheckInDate> | Required | Date | Tam seyahat planları | Seyahat planının check-in tarihidir. |
<FirstDate> | Required | Date | Check-in aralıkları ve aralıklı seyahat planları | Giriş aralığı veya aralıklı konaklama İpucu Yanıtı mesajı için tarih aralığının ilk tarihidir. Tarihler dahildir. |
<Item> | Required | Object | Tümü | Otel/seyahat planının güncellenmesi için bir kapsayıcıdır. |
<LastDate> | Required* | Date | Check-in aralıkları ve aralıklı seyahat planları | Check-in aralığı veya aralıklı konaklama İpucu Yanıtı mesajı için tarih aralığının son tarihidir. Tarihler dahildir. * Bu öğe, aralıklı konaklamalar için isteğe bağlıdır. |
<LengthOfStay> | Required | integer | Tam seyahat planları | Seyahat planı için pozitif bir tam sayı olarak ifade edilen gece sayısıdır. |
<Property> | Required | string | Tümü | Otel kimliğidir. Otel Listesi ile aynı kimliği kullanır. Tek bir
|
<Stay> | Required | Object | Tam seyahat planları | Tam seyahat planı İpucu Yanıtı mesajında <CheckinDate> ve <LengthOfStay> öğeleri için bir kapsayıcıdır. Her <Item> yalnızca tek bir <Stay> içerebilir. |
<StaysIncludingRange> | Required | Object | Aralıklı seyahat planları | Aralıklı konaklama İpucu Yanıtı mesajındaki <FirstDate> ve <LastDate> öğeleri için bir kapsayıcıdır. |
Örnekler
Tam seyahat planları
Aşağıdaki örnekte İpucu Yanıtı mesajında tek bir tesis için birden fazla seyahat planı tanımlanmaktadır:
<!-- Exact Itinerary Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<Property>12345</Property>
<Stay>
<CheckInDate>2018-07-03</CheckInDate>
<LengthOfStay>3</LengthOfStay>
</Stay>
</Item>
<Item>
<Property>12345</Property>
<Stay>
<CheckInDate>2018-07-03</CheckInDate>
<LengthOfStay>4</LengthOfStay>
</Stay>
</Item>
</Hint>
Check-in aralıkları
Aşağıdaki örnekte, fiyatı değişen ve tekrar getirilmesi gereken iki otel belirtilmektedir. Google, 12345 ve 67890 tesisleri için 3 Temmuz ile 6 Temmuz arasındaki tüm seyahat planlarını alır:
<!-- Check-in Ranges Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<Property>12345</Property>
<Property>67890</Property>
<FirstDate>2018-07-03</FirstDate>
<LastDate>2018-07-06</LastDate>
</Item>
</Hint>
Bir check-in aralığı mesajının tek bir <Item>
içinde birden fazla özellik belirtebilmesi için <QueryControl>
içindeki <MultipleItineraries>
değerinin "checkin_range"
olarak ayarlanması gerektiğini unutmayın.
Aralıklı konaklamalar
Aşağıdaki örnekte, biri birkaç gecelik, diğeri tek bir gece için olmak üzere aralıklı konaklamaların iki farklı kullanımı gösterilmektedir:
<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<!-- Google fetches prices for all itineraries (first and last date are set) -->
<Item>
<Property>12345</Property>
<StaysIncludingRange>
<FirstDate>2018-07-03</FirstDate>
<LastDate>2018-07-06</LastDate>
</StaysIncludingRange>
</Item>
<!-- Google fetches prices for a single night (first date only) -->
<Item>
<Property>67890</Property>
<StaysIncludingRange>
<FirstDate>2018-07-03</FirstDate>
</StaysIncludingRange>
</Item>
</Hint>
Aralıklı konaklama mesajının tek bir <Item>
içinde birden fazla özellik belirtebilmesi için <QueryControl>
içindeki <MultipleItineraries>
değerinin "affected_dates"
olarak ayarlanması gerektiğini unutmayın.
Google, bu örneklerin her birinde <Query>
ile yanıt verir ve ardından sizin de belirtilen oteller/seyahat planları için fiyat güncellemelerini içeren bir <Transaction>
ile yanıt vermeniz gerekir.
<HintRequest>
Bir İpucu İsteği mesajının kök öğesidir. Google, sunucunuza bir İpucu İsteği mesajı gönderir ve Google'ın sunucunuzdan başarılı bir İpucu Yanıtı almasından bu yana fiyatları değişen otelleri ve seyahat planlarını belirten bir yanıt bekler.
Herhangi bir fiyat değişikliği varsa Google, belirtilen oteller ve seyahat planları için güncellenmiş fiyatlandırma verilerini getiren bir <Query>
gönderir.
Daha fazla bilgi için İpucu İsteği Mesajları bölümüne bakın.
Söz dizimi
<HintRequest>
öğesi şu söz dizimini kullanır:
Söz dizimi
<?xml version="1.0" encoding="UTF-8"?>
<HintRequest>
<LastFetchTime>last_fetch_time</LastFetchTime>
</HintRequest>
Özellikler
<HintRequest>
öğesinin özelliği yok.
Alt öğeler
<HintRequest>
öğesi aşağıdaki alt öğelere sahiptir:
Alt Öğe | Tür | Açıklama |
---|---|---|
<LastFetchTime> | DateTime | Google'ın bir İpucu İsteği mesajı için başarılı bir şekilde İpucu Yanıtı mesajı aldığı en son zamandır.
Bu zaman, sunucunuzda fiyatları son güncellediğiniz andan daha eskiyse hangi otellerin değiştiğini belirten bir İpucu Yanıtı mesajı ile yanıt vermeniz gerekir. Yakın zamanda başarılı bir getirme yapılmadıysa bu, sabit aralıklı bir değere ayarlanır (büyük iş listeleriyle ilgili daha ciddi sorunlardan kaçınmak için). Mevcut sabit aralık değeri 1.000 saniyedir ancak bu değerde değişiklik yapılabilir. Daha fazla bilgi için İpucu Yanıtı Mesajları bölümüne bakın. |
Örnekler
Aşağıdaki örnekte bir İpucu İsteği mesajı gösterilmektedir:
İpucu İsteği mesajı
Aşağıdaki örnekte bir İpucu İsteği mesajı gösterilmektedir:
<?xml version="1.0" encoding="UTF-8"?>
<HintRequest id="ABCDEF" timestamp="2018-06-07T16:20:00Z">
<LastFetchTime>2018-03-25T00:04:09Z</LastFetchTime>
</HintRequest>
<Query>
Bir Query
mesajının kök öğesidir. Query
mesajları, Google'ın fiyatlandırma veya meta veri güncellemeleri için yaptığı isteklerdir. Bunlar hem Alınan hem de Değiştirilen fiyatlandırma iletim modlarıyla kullanılır.
Üç tür Query
mesajı vardır:
Gerçek zamanlı fiyatlandırma: Google, belirli bir kullanıcı isteğine yanıt vererek gerçek zamanlı fiyat güncellemesi ister. İş ortakları bir
Live pricing query
mesajı aldığında,<Result>
öğelerinde istenen fiyatlandırma bilgilerini içeren bir<Transaction>
mesajıyla yanıt vermelidir.Bağlam fiyatlandırması ile: Google, fiyat önbelleğini geçmişte popüler olan bağlamlara dayalı olarak günceller. Bir
With context query
mesajı aldığınızda, istenen fiyatlandırma bilgilerini<Result>
öğelerinde içeren bir<Transaction>
mesajıyla yanıt vermeniz gerekir.Meta veri: Google, belirtilen otellere yönelik olarak odalar ve Oda Paketleri için meta veri güncellemeleri ister.
Metadata Query
mesajı aldığınızda,<PropertyDataSet>
öğelerinde odalar ve Oda Paketleri hakkındaki verileri belirten bir<Transaction>
mesajıyla yanıt vermeniz gerekir.
Daha fazla bilgi için fiyatlandırma sorguları için Fiyatlandırmaya genel bakış ve meta veri sorguları için Oda Paketi meta verileri bölümünü inceleyin.
Üç farklı türün söz dizimi aşağıda açıklanmıştır.
Söz dizimi
<Query>
öğesi şu söz dizimini kullanır:
Gerçek zamanlı fiyatlandırma
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true_or_false">
<Checkin>YYYY-MM-DD</Checkin>
<Nights>number_of_nights</Nights>
<!-- Only for Check-in Date Range pricing queries (Changed Pricing) -->
<FirstDate>YYYY-MM-DD</FirstDate>
<LastDate>YYYY-MM-DD</LastDate>
<!-- Only for Ranged Stay pricing queries (Changed Pricing) -->
<AffectedNights>number_of_nights</AffectedNights>
<PropertyList>
<Property>hotel_id</Property>
...
</PropertyList>
<!-- See documentation below for <Context> -->
<Context>
...
</Context>
</Query>
Bağlam içinde
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>YYYY-MM-DD</Checkin>
<Nights>number_of_nights</Nights>
<!-- Only for Check-in Date Range pricing queries (Changed Pricing) -->
<FirstDate>YYYY-MM-DD</FirstDate>
<LastDate>YYYY-MM-DD</LastDate>
<!-- Only for Ranged Stay pricing queries (Changed Pricing) -->
<AffectedNights>number_of_nights</AffectedNights>
<PropertyContextList>
<PropertyContext>
<Property>hotel_id</Property>
...
<!-- See documentation below for <Context> -->
<Context>
...
</Context>
</PropertyContext>
</PropertyContextList>
</Query>
Meta veri
<HotelInfoProperties>
<Property>property_ID</Property>
...
</HotelInfoProperties>
Özellikler
<Query>
öğesi bir özellik içerebilir: latencySensitive
.
latencySensitive
özelliği isteğe bağlıdır. Sağlanıp true
değerine ayarlanırsa sorgunun bir Live Pricing Query
olduğunu belirtir. Google'ın latencySensitive
özelliğiyle sorgular göndermesini sağlamak için lütfen Teknik Hesap Yöneticinize (THY) danışın.
Alt öğeler
<Query>
öğesi aşağıdaki alt öğelere sahiptir:
Alt Öğe | Sorgu Türü | Tür | Açıklama |
---|---|---|---|
<AffectedNights> | Pricing | integer | Aralıklı konaklama için gece sayısıdır. Bu öğe, yalnızca Değiştirilen Fiyatlandırma ile kullanılan Aralıklı Konaklama fiyatlandırma sorguları için kullanılır. |
<Checkin> | Pricing | Date | Belirli bir fiyat değişikliğinin tarihleridir. |
<Context> | Pricing (Live Pricing Queries only) | <Context> | Gerçek Zamanlı Fiyatlandırma Sorguları için sorgunun yapıldığı belirli parametreleri belirtir. Alt öğeler şunları içerir:
|
<FirstDate> | Pricing | Date | Fiyatlandırmanın geçerli olduğu seyahat planları için başlangıç tarihidir. Bu öğe, yalnızca Değiştirilen Fiyatlandırma ile kullanılan Check-in Tarih Aralığı fiyatlandırma sorguları için kullanılır. |
<HotelInfoProperties> | Metadata | string | Google'ın, meta veri Query mesajında güncellenmiş oda ve Oda Paketi meta verilerini istediği bir veya daha fazla tesistir. Bu öğe, otel tesis kimliklerini belirten bir veya daha fazla <Property> öğesi içerebilir. |
<LastDate> | Pricing | Date | Fiyatlandırmanın geçerli olduğu seyahat planları için bitiş tarihidir. Bu öğe, yalnızca Çekme + İpuçları ile kullanılan Check-in Tarih Aralığı fiyatlandırma sorguları için kullanılır. |
<Nights> | Pricing | integer | Belirli bir seyahat planı için en fazla 30 gece sayısıdır. |
<PropertyList> | Pricing | Object | Fiyatlandırma güncellemesi gerektiren otel için bir veya daha fazla kimlik. Her oteli bir <PropertyList> <Property>pid1</Property> <Property>pid2</Property> </PropertyList> |
Örnekler
Fiyatlandırma sorgusu
Aşağıdaki örnekte bir grup otel için 10 Haziran 2018'den itibaren 3 gecelik fiyat güncellemeleri isteyen bir fiyatlandırma Sorgusu mesajı gösterilmektedir:
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>2023-05-23</Checkin>
<Nights>3</Nights>
<PropertyList>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</PropertyList>
</Query>
Gerçek zamanlı fiyatlandırma sorgusu
Aşağıdaki örnekte yanıt süresi sınırı 500 milisaniye olan bir Gerçek Zamanlı Fiyatlandırma Sorgusu gösterilmektedir:
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<Checkin>2017-06-07</Checkin>
<Nights>5</Nights>
<DeadlineMs>500</DeadlineMs>
<PropertyList>
<Property>8675309</Property>
</PropertyList>
<Context>
<Occupancy>4</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="8"/>
<Child age="5"/>
</Children>
</OccupancyDetails>
<UserCountry>US</UserCountry>
<UserDevice>mobile</UserDevice>
</Context>
</Query>
Bağlam sorgusuyla
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>2023-05-23</Checkin>
<Nights>2</Nights>
<PropertyContextList>
<PropertyContext>
<Property>8675309</Property>
<!-- In the future, occupancy and device might be specified -->
<Context><UserCountry>US</UserCountry></Context>
<Context><UserCountry>GB</UserCountry></Context>
</PropertyContext>
<PropertyContext>
<Property>8675310</Property>
<Property>8675311</Property>
<Context><UserCountry>CA</UserCountry></Context>
</PropertyContext>
</PropertyContextList>
</Query>
Meta veri sorgusu
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<HotelInfoProperties>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</HotelInfoProperties>
</Query>
Aralıklı konaklama ve giriş tarihi aralığı fiyatlandırma sorguları dahil olmak üzere diğer örnekler için Query
mesaj örneklerine göz atın.
<Context>
<Context>
öğesi; konuk sayısı ve türü, kullanıcının ülkesi ve kullanıcı cihazı dahil olmak üzere Live pricing query
ile ilgili bilgileri açıklar.
Hiçbir zaman farklı kullanıcı ülkeleri veya kullanıcı cihazlarıyla birden fazla <Context>
kullanılmaz. Birden fazla doluluk için sorgulama yapmak üzere birden fazla <Context>
kullanıldığında lütfen her bir doluluk fiyatını ilgili tesis/seyahat planı için ek Oda Paketi olarak sağlayın. Her tesis veya seyahat planında, birden fazla doluluk için fiyatın dahil edildiği tek bir <Result>
bloku olmalıdır.
<Context>
sorgusuyla ilgili yanıt ayrıntıları için <OccupancyDetails>
sayfasına bakın.
Söz dizimi
<Context>
öğesi şu söz dizimini kullanır:
Söz dizimi
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true_or_false">
<Checkin>date</Checkin>
<Nights>number_of_nights</Nights>
<DeadlineMs>number_of_milliseconds</DeadlineMs>
<PropertyList>
<Property>property_ID</Property>
</PropertyList>
<Context>
<Occupancy>total_number_of_guests</Occupancy>
<OccupancyDetails>
<NumAdults>number_of_adults</NumAdults>
<Children>
<Child age=age_of_one_child_guest/>
<Child age=age_of_one_child_guest/>
</Children>
</OccupancyDetails>
<UserCountry>end_user_country</UserCountry>
<UserDevice>user_device_type</UserDevice>
</Context>
</Query>
Alt öğeler
<Context>
öğesi aşağıdaki alt öğelere sahiptir:
Alt Öğe | Sorgu türü | Tür | Açıklama |
---|---|---|---|
<Occupancy> | Pricing | integer | Toplam konuk sayısını belirtir. Zorunlu olmamakla birlikte, Not: Bir sorguda |
<OccupancyDetails> | Pricing | Object | Öncesinde <Occupancy> bulunur. Konukları türe göre belirtir:
Zorunlu olmamakla birlikte, Not: Bir sorguda |
<UserCountry> | Pricing | string | Ücretleri, kullanıcının bulunduğu ülkeye göre filtreler. Bu değer, Amerika Birleşik Devletleri için
|
<UserDevice> | Pricing | string | Ücretleri, kullanıcının arama yaptığı cihazın türüne göre filtreler. Olası değerler:
|
Örnekler
Doluluk
Aşağıdaki örnekte, <Context>
içindeki <Occupancy>
için bir Gerçek zamanlı fiyatlandırma sorgusu gösterilmektedir. Gerçek zamanlı fiyatlandırma sorgusu, 3 yetişkin konuk içindir.
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<Checkin>2017-06-07</Checkin>
<Nights>4</Nights>
<DeadlineMs>500</DeadlineMs>
<PropertyList>
<Property>45617</Property>
</PropertyList>
<Context>
<Occupancy>3</Occupancy>
<UserCountry>US</UserCountry>
<UserDevice>mobile</UserDevice>
</Context>
</Query>
Doluluk ayrıntıları
Aşağıdaki örnekte, <Context>
dahilinde <OccupancyDetails>
içeren bir Gerçek zamanlı fiyatlandırma sorgusu gösterilmektedir.
Gerçek zamanlı fiyatlandırma sorgusu, 2'si çocuk olan 4 konuk içindir ve ABD'de mobil cihazdan rezervasyon yapan bir konuk için geçerli olan bir fiyat aranır:
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<Checkin>2017-06-07</Checkin>
<Nights>5</Nights>
<DeadlineMs>500</DeadlineMs>
<PropertyList>
<Property>8675309</Property>
</PropertyList>
<Context>
<Occupancy>4</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="4"/>
<Child age="12"/>
</Children>
</OccupancyDetails>
<UserCountry>US</UserCountry>
<UserDevice>mobile</UserDevice>
</Context>
</Query>
Birden fazla bağlam
Aşağıdaki örnekte, Gerçek zamanlı fiyatlandırma sorgusunda ek <Context>
öğesinin kullanımı gösterilmektedir.
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<Checkin>2017-06-07</Checkin>
<Nights>4</Nights>
<DeadlineMs>500</DeadlineMs>
<PropertyList>
<Property>45617</Property>
</PropertyList>
<Context>
<Occupancy>3</Occupancy>
<UserCountry>US</UserCountry>
<UserDevice>mobile</UserDevice>
</Context>
<Context>
<Occupancy>6</Occupancy>
<OccupancyDetails>
<NumAdults>4</NumAdults>
<Children>
<Child age="6"/>
<Child age="10"/>
</Children>
</OccupancyDetails>
<UserCountry>US</UserCountry>
<UserDevice>mobile</UserDevice>
</Context>
</Query>