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ıtlardı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 kombinasyonu.
Check-in tarih aralıkları: İlk check-in tarihiyle başlayan ve son check-in tarihiyle biten bir check-in tarih aralığı 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çerir: id
. Sağlandığında, bu <Hint>
temel alınarak gönderilen <Query>
mesajlara 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ı | Check-in aralığı veya aralıklı konaklama İpucu Yanıtı mesajı için tarih aralığının ilk tarihidir. Belirtilen tarihler aralığa 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. Belirtilen tarihler aralığa 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, tek bir tesis için bir İpucu Yanıtı mesajı 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, fiyatları 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ç gece için, 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>
Bir aralıklı konaklama mesajının tek bir <Item>
içinde birden çok ö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 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 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ının 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 yoktur.
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ıyla İpucu Yanıtı mesajı aldığı en son zamandır.
Bu zaman, sunucunuzda fiyatları son güncellediğiniz andan daha önceyse hangi otellerin değiştiğini belirten bir İpucu Yanıtı mesajıyla yanıt vermeniz gerekir. Yakın zamanda başarılı bir getirme işlemi gerçekleşmemişse bu değer, sabit bir aralık değerine ayarlanır (büyük iş listeleri olan daha ciddi sorunları önlemek 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>
Query
mesajının kök öğesidir. Query
mesajları, Google'ın fiyatlandırma veya meta veri güncellemeleri için yaptığı isteklerdir. Bunlar hem Çekme 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, iş ortakları<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 göre günceller. Bir
With context query
mesajı aldığınızda, istenen fiyat bilgilerini<Result>
öğelerinde içeren bir<Transaction>
mesajıyla yanıt vermeniz gerekir.Meta veri: Google, belirtilen oteller için odalar ve Oda Paketleri için meta veri güncellemeleri ister. Bir
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ış, meta veri sorguları için Oda Paketi meta verileri bölümüne bakın.
Üç 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 bilgisi içeren
<?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ğlandığında ve true
olarak ayarlandığında, 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 tarihleri. |
<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 uygulandığı 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 bir 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 uygulandığı seyahat planları için bitiş tarihidir. Bu öğe, yalnızca İpuçlarıyla Çekme 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 gecelik gece sayısı. |
<PropertyList> | Pricing | Object | Fiyatlandırma güncellemeleri gerektiren otel için bir veya daha fazla kimliktir. 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 Sorgu 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 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 sorgusu ile
<?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 check-in tarihi aralığı fiyatlandırma sorguları dahil daha fazla örnek için Query
mesaj örneklerini inceleyin.
<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 doluluk fiyatını ilgili tesis/seyahat planı için ek Oda Paketi olarak sağlayın. Her tesis/seyahat planında, birden fazla doluluk için fiyatın dahil edildiği tek bir <Result>
bloğu olmalıdır.
<Context>
sorgusunun 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, 2 harfli bir ülke kodudur (ör. ABD 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>
içinde <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 çok 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>