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 veya seyahat planı kombinasyonlarının yeniden fiyatlandırılacağını 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ı: Check-in tarihi ve konaklama süresinin kombinasyonudur.
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 -->
<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 -->
<Property>1458700</Property>
<Property>5418701</Property>
<StaysIncludingRange>
<!-- Required -->
<FirstDate>2025-04-28</FirstDate>
<!-- Optional -->
<LastDate>2025-04-29</LastDate>
</StaysIncludingRange>
</Item>
...
</Hint>
Özellikler
<Hint>
öğesi isteğe bağlı bir özellik içeriyor: id
. Sağlanırsa bu <Hint>
'ye göre gönderilen <Query>
iletilerine 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 giriş 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ında <FirstDate> ve <LastDate> öğeleri için bir kapsayıcıdır. |
Örnekler
Tam seyahat planları
Aşağıdaki örnek İ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, 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>
Aralıklı konaklamalar
Aşağıdaki örnekte, biri üst üste birkaç gece için ve 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>
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 otellerin ve seyahat planlarının belirtildiği 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 an, sunucunuzda fiyatları son güncellediğiniz andan daha önceyse 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 işlemi yapılmadıysa bu ayar, sabit bir aralık değerine ayarlanır (büyük bekleme listeleriyle ilgili daha ciddi sorunların önlenmesi için). Mevcut sabit aralık değeri 1.000 saniyedir ancak bu değer değişebilir. Daha fazla bilgi için ipucu 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.
Fiyatlandırma sorgusu mesajları
Fiyatlandırma Sorgusu mesajları, fiyatlarını sağladığınız tesis ve seyahat planı kombinasyonlarını belirtir.
Sunucunuz bir fiyatlandırma Sorgusu mesajı aldığında, istenen fiyatlandırma bilgilerini içeren bir <Transaction>
mesajıyla yanıt vermelidir.
Daha fazla bilgi için Fiyatlandırmaya Genel Bakış konusuna bakın.
Üç özel Query
mesaj türü vardır:
Canlı fiyatlandırma: Google, gerçek zamanlı fiyat güncellemesi isteyen belirli bir kullanıcı isteğine yanıt verir. İş ortakları bir
Live pricing query
mesajı aldığında, istenen fiyatlandırma bilgilerini<Result>
öğelerinde 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 fiyatlandırma bilgilerini<Result>
öğelerinde içeren bir<Transaction>
mesajıyla yanıt vermeniz gerekir.Meta veri: Google, belirtilen otellerdeki 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 Oda Paketi meta verileri konusuna bakın.
Söz dizimi
<Query>
öğesi şu söz dizimini kullanır:
Fiyatlandırma Sorgusu
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>YYYY-MM-DD</Checkin>
<Nights>number_of_nights</Nights>
<PropertyList>
<Property>hotel_id</Property>
...
</PropertyList>
</Query>
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ğlamla
<?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. Bu özellik sağlandığında ve true
olarak ayarlandığında, sorgunun Live Pricing Query
olduğunu belirtir. Google'ın latencySensitive
özelliğiyle sorgu göndermesini sağlamak için teknik hesap yöneticinizle (THY) iletişime geçin.
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 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 gece sayısıdır (en fazla 30). |
<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 23 Mayıs 2023'ten 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 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 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, 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 diğer örnekler için Query
mesajı örnekleri bölümüne göz atın.
<Context>
<Context>
öğesi; konuk sayısı, kullanıcının yaşadığı ülke ve kullanıcı cihazı dahil olmak üzere bir 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 her bir doluluk fiyatını ilgili tesis veya seyahat planı için ek bir 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>
bölümüne 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 olmasa da, Not: |
<OccupancyDetails> | Pricing | Object | Öncesinde <Occupancy> bulunur. Konukları türe göre belirtir:
Zorunlu olmasa da, Not: |
<UserCountry> | Pricing | string | Ücretleri, kullanıcının bulunduğu ülkeye göre filtreler. Değer, 2 harfli bir ülke kodudur (ör. 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>
öğesi 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çindeki <OccupancyDetails>
öğesi için 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 olacak bir ücret 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>