Sorgu ve İpuçları XML Referansı

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ı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 -->
    <!-- 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> öğesinin özelliği yoktur.

Alt öğeler

<Hint> öğesi aşağıdaki alt öğelere sahiptir:

Alt Öğe Zorunluluk Tür İpucu Yanıtı Türü Açıklama
<CheckInDate> Zorunlu Date Tam seyahat planları Seyahat planının check-in tarihidir.
<FirstDate> Zorunlu 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> Zorunlu Nesne Tümü Otel/seyahat planının güncellenmesi için bir kapsayıcıdır.
<LastDate> Zorunlu* 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> Zorunlu Tam sayı Tam seyahat planları Seyahat planı için pozitif bir tam sayı olarak ifade edilen gece sayısıdır.
<Property> Zorunlu Dize Tümü Otel kimliğidir, Otel Listesi ile aynı kimliği kullanır. Tek bir <Item> blokunda belirtebileceğiniz <Property> öğesi sayısı, İpucu Yanıtı mesajının türüne göre belirlenir:

  • Tam seyahat planları: En fazla 100 otel.
  • Check-in aralıkları: <QueryControl> mesajınızda <MultipleItineraries> öğesini "checkin_range" olarak ayarlarsanız birden fazladır.
  • Aralıklı konaklama: <QueryControl> mesajınızda <MultipleItineraries> öğesini "affected_dates" olarak ayarlarsanız birden fazladır.
<Stay> Zorunlu Nesne 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> Zorunlu Nesne 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>

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_pace" olarak ayarlanması gerektiğini unutmayın.

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>

Bir 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 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.

Daha fazla bilgi için İpucu Yanıtı Mesajları bölümüne bakın.

Örnekler

İ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 Sorgu mesajının kök öğesidir. Sorgu 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.

İki tür Sorgu mesajı vardır:

  • Fiyatlandırma: Google, belirtilen oteller için fiyatlandırma güncellemeleri ister. Bir fiyatlandırma Sorgu mesajı aldığınızda, istenen fiyatlandırma bilgilerini <Result> öğelerinde içeren bir <Transaction> mesajıyla yanıt vermeniz gerekir.

    Gerçek Zamanlı Fiyatlandırma Sorguları, Google'ın gerçek zamanlı fiyat güncellemeleri istediği özel bir fiyatlandırma Sorgu mesajı türüdür.

    Daha fazla bilgi için Fiyatlandırmaya Genel Bakış bölümüne bakın.

  • Meta veri: Google, belirtilen otellerdeki odalar ve Oda Paketleri için meta veri güncellemeleri ister. Bir meta veri Sorgu mesajı aldığınızda, odalar ve Oda Paketleri hakkındaki verileri <PropertyDataSet> öğelerinde belirten bir <Transaction> mesajıyla yanıt vermeniz gerekir.

    Daha fazla bilgi için Oda Paketi meta verileri bölümüne bakın.

Mesajların söz dizimi, türe bağlı olarak farklılık gösterir. Her iki tür de bu bölümde açıklanmaktadır.

Söz dizimi

<Query> öğesi şu söz dizimini kullanır:

Söz dizimi

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true_or_false">
<!-- The "latencySensitive" attribute appears only with Live Pricing Queries -->

  <!-- PRICING QUERIES -->
    <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>

    <!-- Only for Live Pricing Queries -->
    <DeadlineMs>deadline</DeadlineMs>
    <Context>
      <Occupancy>total_number_of_guests</Occupancy>
      <UserCountry>country_code</UserCountry>
      <UserDevice>device_type</UserDevice>
    </Context>

  <!-- METADATA QUERIES -->
    <HotelInfoProperties>
      <Property>property_ID</Property>
      ...
    </HotelInfoProperties>

</Query>

Ö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 Gerçek Zamanlı Fiyatlandırma Sorgusu olduğunu belirtir. Google'ın <LatencySensitive> özelliğiyle sorgu göndermesini sağlamak için lütfen teknik hesap yöneticinize bir istek gönderin.

Alt öğeler

<Query> öğesi aşağıdaki alt öğelere sahiptir:

Alt Öğe Sorgu Türü Tür Açıklama
<AffectedNights> Fiyatlandırma Tam sayı 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> Fiyatlandırma Date Belirli bir fiyat değişikliğinin tarihleridir.
<Context> Fiyatlandırma (yalnızca Gerçek Zamanlı Fiyatlandırma Sorguları) Nesne Gerçek Zamanlı Fiyatlandırma Sorguları için sorgunun yapıldığı belirli parametreleri belirtir. Alt öğeler şunları içerir:
  • <Occupancy>: toplam konuk sayısı
  • <OccupancyDetails>: konukların türü (ör. yetişkinler veya çocuklar)
  • <UserCountry>: kullanıcının yaşadığı ülke
  • <UserDevice>: "mobile", "tablet" veya "desktop" gibi, konukların otel aramak için kullandığı cihaz türü

<Context> öğesi, tek bir istekte tekrarlanabilir ve böylece farklı doluluk değerleri için sorgulama yapılabilir. Alt öğelerin, söz diziminin ve örneklerin listesi için <Context> bölümüne bakın.

<FirstDate> Fiyatlandırma 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> Meta veri Dize Google'ın bir meta veri Sorgu 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> Fiyatlandırma 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> Fiyatlandırma Tam sayı Belirli bir seyahat planı için gece sayısıdır (en fazla 30).
<PropertyList> Fiyatlandırma Nesne Fiyatlandırma güncellemeleri gerektiren otel için bir veya daha fazla kimliktir.

Her oteli bir <Property> öğesinde tanımlayın. Değer, Otel Listesi feed'inizdeki bir otel kimliğiyle eşleşen bir dizedir. Örneğin:


<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>2018-06-10</Checkin>
  <Nights>3</Nights>
  <PropertyList>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </PropertyList>
</Query>

Meta Veri Sorgusu

Aşağıdaki örnekte bir meta veri Sorgu mesajı gösterilmektedir:

<?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 Sorgu 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 Gerçek Zamanlı Fiyatlandırma Sorgusu 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> 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> Fiyatlandırma Tam sayı Toplam konuk sayısını belirtir.

Zorunlu olmasa da, <Occupancy> içeren sorgular, sorgulanan her <Occupancy> için tanımlanmış uygun Oda Paketlerini içeren bir Transaction mesajıyla sonuçlanmalıdır.

Not: Bir sorguda <Occupancy> her zaman görünmeyebilir. Bu tür durumlarda, tüm doluluk durumları için fiyat belirtmeniz gerekir.

<OccupancyDetails> Fiyatlandırma Nesne Öncesinde <Occupancy> bulunur. Konukları türe göre belirtir:

  • <NumAdults>: yetişkin konuk sayısı
  • <Children> ve <Child "age">: Hangi konukların çocuk olduğunu (genellikle 0-17 yaş) belirtir ve isteğe bağlı olarak her çocuğun yaşını içerir.
  • Zorunlu olmasa da, <OccupancyDetails> içeren sorgular, sorgulanan her <Occupancy> için tanımlanmış uygun Oda Paketlerini içeren bir Transaction mesajıyla sonuçlanmalıdır.

    Not: Bir sorguda <OccupancyDetails> her zaman görünmeyebilir. Bu tür durumlarda, tüm konukların yetişkin olduğunu varsaymanız gerekir.

<UserCountry> Fiyatlandırma Dize

Ücretleri, kullanıcının bulunduğu ülkeye göre filtreler. Değer, 2 harfli bir ülke kodu (ör. Amerika Birleşik Devletleri için "US") veya bir bölge kodudur (ör. "Avrupa" için "EU").

<UserCountry> içeren sorgular, sorgulanan ülke için tanımlanmış uygun <Rates> blokuna sahip bir Transaction mesajıyla sonuçlanmalıdır.

<UserDevice> Fiyatlandırma Dize

Ücretleri, kullanıcının arama yaptığı cihazın türüne göre filtreler. Olası değerler:

  • mobile
  • desktop
  • tablet

<UserDevice> içeren sorgular, sorgulanan cihaz türü için tanımlanmış uygun <Rates> blokuna sahip bir Transaction mesajıyla sonuçlanmalıdır.

Ö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 Context

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>