Справочник по XML-файлам запросов и подсказок

В этом разделе приведена справочная информация о сообщениях Google на основе XML: Hint Request, Hint Response и Query.

<Hint> (сообщение Hint Response)

Корневой элемент сообщения Hint Response. Сообщения Hint Response указывают, для каких отелей или маршрутов нужно обновить цены. Они отправляются в ответ на запрос подсказки от Google.

В сообщении Hint Response должны быть указаны только те гостиницы, цены которых изменились с момента последнего успешного получения Google сообщения Hint Response от ваших серверов.

В сообщениях Hint Response используется один из следующих методов, чтобы указать, для каких гостиниц и маршрутов Google должен пересчитать цены:

  • Точные маршруты. Сочетание даты заезда и длительности пребывания.

  • Диапазоны дат заезда. Указывает диапазон дат заезда, начиная с первой даты заезда и заканчивая последней датой заезда.

  • Диапазоны дат (или диапазоны дат в маршрутах)

Для каждого из этих методов требуется свой синтаксис сообщения Hint Response.

Подробнее о сообщениях Hint Response…

Синтаксис

Синтаксис элемента <Hint> зависит от типа сообщения Hint Response:

Точные маршруты

Ниже показан синтаксис для точных маршрутов в сообщении Hint Response.

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

Диапазоны времени заезда

Ниже показан синтаксис для диапазонов дат заезда в сообщении Hint Response.

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

Диапазон дат проживания

Ниже показан синтаксис для диапазонов дат проживания в сообщении Hint Response.

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

Атрибуты

Элемент <Hint> содержит необязательный атрибут id. Если он указан, то включается в качестве атрибута hintId в сообщения <Query>, отправленные на основе этого <Hint>.

Дочерние элементы

Элемент <Hint> содержит следующие дочерние элементы:

Дочерний элемент Обязательно? Тип Тип ответа с подсказкой Описание
<CheckInDate> Required Date Точные маршруты Дата заезда.
<FirstDate> Required Date Диапазоны дат заезда и маршруты с диапазонами дат Первая дата диапазона дат для диапазона заезда или диапазона пребывания в сообщении Hint Response. Указанные даты включаются в диапазон.
<Item> Required Object Все Контейнер для гостиницы или маршрута, который нужно обновить.
<LastDate> Required* Date Диапазоны дат заезда и маршруты с диапазонами дат

Последняя дата диапазона дат для диапазона заезда или диапазона пребывания в сообщении Hint Response. Указанные даты включаются в диапазон.

* Этот элемент необязателен для проживания в течение определенного периода.

<LengthOfStay> Required integer Точные маршруты Количество ночей в маршруте, выраженное положительным целым числом.
<Property> Required string Все

Идентификатор гостиницы, совпадающий с идентификатором в списке гостиниц. Количество элементов <Property>, которые можно указать в одном блоке <Item>, зависит от типа сообщения Hint Response:

  • Точные маршруты: до 100 гостиниц.
  • Диапазоны времени регистрации: несколько, если в сообщении <QueryControl> для параметра <MultipleItineraries> задано значение "checkin_range" .
  • Диапазон дат: больше одного, если в сообщении <QueryControl> для параметра <MultipleItineraries> задано значение "affected_dates" .
<Stay> Required Object Точные маршруты Контейнер для элементов <CheckinDate> и <LengthOfStay> в сообщении Hint Response с точным маршрутом. Каждый тег <Item> может содержать только один тег <Stay>.
<StaysIncludingRange> Required Object Маршруты с диапазоном дат Контейнер для элементов <FirstDate> и <LastDate> в сообщении Hint Response для диапазона дат.

Примеры

Точные маршруты

В следующем примере в сообщении Hint Response для одного объекта задано несколько маршрутов:

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

Диапазоны времени заезда

В примере ниже указаны две гостиницы, цены в которых изменились и должны быть получены снова. Google получает все маршруты с 3 по 6 июля для объектов 12345 и 67890:

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

Диапазон дат проживания

В примере ниже показаны два разных варианта использования диапазонов: один для нескольких ночей, а другой – для одной.

<!-- 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 отвечает с помощью <Query>, а вы должны ответить с помощью <Transaction>, который включает обновления цен для указанных гостиниц/маршрутов.

<HintRequest>

Корневой элемент сообщения Hint Request. Google отправляет на ваш сервер Hint Request message и ожидает ответа с указанием гостиниц и маршрутов, цены на которые изменились с момента последнего успешного получения Hint Response от вашего сервера.

Если цены изменились, Google отправляет запрос <Query>, чтобы получить обновленные данные о ценах для указанных гостиниц и маршрутов.

Подробнее о сообщениях Hint Request…

Синтаксис

Элемент <HintRequest> использует следующий синтаксис:

Синтаксис

<?xml version="1.0" encoding="UTF-8"?>
<HintRequest>
  <LastFetchTime>last_fetch_time</LastFetchTime>
</HintRequest>

Атрибуты

У элемента <HintRequest> нет атрибутов.

Дочерние элементы

Элемент <HintRequest> содержит следующие дочерние элементы:

Дочерний элемент Тип Описание
<LastFetchTime> DateTime Время, когда Google в последний раз удалось получить сообщение Hint Response в ответ на сообщение Hint Request.

Если это время предшествует последнему обновлению цен на вашем сервере, то вы должны отправить сообщение Hint Response с указанием гостиниц, для которых изменились цены.

Если в последнее время не было успешных сканирований, будет установлено фиксированное значение интервала (чтобы избежать более серьезных проблем с большим количеством невыполненных задач). В настоящее время фиксированный интервал составляет 1000 секунд, но это значение может измениться.

Дополнительную информацию можно найти в статье Сообщения Hint Response.

Примеры

Ниже приведен пример запроса подсказки.

Hint request message

Пример Hint Request message:

<?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. Сообщения Query – это запросы от Google на обновление цен или метаданных. Они используются как при запросе цен , так и при изменении цен .

Сообщения-запросы цен

В сообщениях-запросах цен указываются комбинации гостиниц и маршрутов, для которых вы предоставляете цены.

Когда ваш сервер получает сообщение-запрос pricing, он должен ответить сообщением <Transaction>, содержащим запрошенную информацию о ценах.

Подробнее о ценах…

Существует три специальных типа сообщений Query:

  • Цены в режиме реального времени. Google отвечает на определенный запрос пользователя, запрашивая обновление цены в режиме реального времени. Получив сообщение Live pricing query, партнеры должны ответить сообщением <Transaction>, содержащим запрашиваемую информацию о ценах в элементах <Result>.

  • С ценами в контексте. Google обновляет кеш цен на основе контекстов, которые были популярны в прошлом. Получив сообщение With Context query, вы должны отправить ответное сообщение <Transaction>, содержащее запрашиваемую информацию о ценах в элементах <Result>.

    • С контекстными запросами для одного гостя

      В ответ на запросы с контекстом следует отправлять только тарифы, соответствующие указанному контексту. Базовый тариф предполагает размещение как минимум двух человек, поэтому если в нем указан один человек, то он будет игнорироваться и тариф будет считаться как для двух человек. В этом случае вам нужно передать базовую цену как недоступную и использовать вложенную цену для одного гостя. См. пример ответа с контекстом. Чтобы объединить тарифы, вы можете использовать измененные цены с контекстом, задав для атрибута mergeable значение "true". Подробнее…

    • Измененные цены (ранее – извлекаемые цены с подсказками) с контекстом

      Когда вы отправляете ответ <Transaction> на запрос измененных цен с контекстом, Google считает, что он полностью заменяет информацию о ценах и наличии мест для определенной гостиницы или маршрута. Все тарифы, зависящие от контекста, исключаются из ответа и удаляются из кеша.

      Чтобы этого не произошло, задайте для атрибута mergeable значение "true" в элементе <Result> сообщения <Transaction>. Google добавляет ставки к существующим кешированным ставкам для предоставленного контекста в ответе. Если вы не используете атрибут mergeable, то должны отправлять в ответе все тарифы для всех подходящих контекстов.

    • Запрос цен в режиме реального времени с контекстом

      По умолчанию у запроса цен в режиме реального времени с контекстом есть атрибут mergeable, поэтому задавать его не нужно. Если все остальные контексты остаются прежними, вам нужно отправить только тарифы для определенных контекстов, запрошенных Google. Если изменились другие контексты, вы должны явно отправить изменения для этих контекстов, иначе новые цены не будут обновлены в кеше Google.

  • Метаданные. Google запрашивает обновления метаданных для номеров и пакетов номеров в указанных гостиницах. В ответ на сообщение Metadata Query вы должны отправить сообщение <Transaction> с данными о номерах и пакетах номеров в элементах <PropertyDataSet>. Подробную информацию можно найти в разделе Метаданные Room Bundle.

Синтаксис

Элемент <Query> использует следующий синтаксис:

Запрос цены

<?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>

Цены в режиме реального времени

<?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>

С запросом контекста

<?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>

Метаданные

<HotelInfoProperties>
  <Property>property_ID</Property>
  ...
</HotelInfoProperties>

Атрибуты

Элемент <Query> может содержать один атрибут: latencySensitive.

Атрибут latencySensitive необязателен. Если указан параметр true, это означает, что запрос является Live Pricing Query. Чтобы Google отправлял запросы с атрибутом latencySensitive, обратитесь к техническому менеджеру аккаунта.

Дочерние элементы

Элемент <Query> содержит следующие дочерние элементы:

Дочерний элемент Тип запроса Тип Описание
<AffectedNights> Pricing integer Количество ночей в диапазоне дат. Этот элемент используется только для запросов цен на проживание в диапазоне дат, которые применяются вместе с измененными ценами.
<Checkin> Pricing Date Даты изменения цены.
<Context> Pricing (Live Pricing Queries only) <Context> Для запросов цен в режиме реального времени указывает определенные параметры, в соответствии с которыми выполняется запрос. Дочерние элементы:
  • <Occupancy> – общее количество гостей.
  • <OccupancyDetails> – тип гостей, например взрослые или дети.
  • <UserCountry> – страна, в которой находится пользователь.
  • <UserDevice> – тип устройства, с помощью которого гость искал гостиницу, например "mobile, tablet или desktop.

Элемент <Context> может повторяться в одном запросе, что позволяет запрашивать данные для разного количества гостей. Список дочерних элементов, синтаксис и примеры можно найти в <Context>.

<FirstDate> Pricing Date Дата начала для диапазона маршрутов, к которым применяется цена. Этот элемент используется только для запросов цен в диапазоне дат заезда, которые применяются вместе с измененными ценами.
<HotelInfoProperties> Metadata string Один или несколько объектов, для которых Google запрашивает обновленные метаданные номеров и пакетов номеров в сообщении Query. Этот элемент может содержать один или несколько элементов <Property>, в которых указываются идентификаторы гостиниц.
<LastDate> Pricing Date Дата окончания диапазона маршрутов, к которым применяется цена. Этот элемент используется только для запросов цен в диапазоне дат заезда, которые отправляются с помощью Pull + Hints.
<Nights> Pricing integer Количество ночей для определенного маршрута (не более 30).
<PropertyList> Pricing Object

Один или несколько идентификаторов гостиниц, для которых нужно обновить цены.

Каждую гостиницу следует указывать с использованием элемента <Property>. Значение представляет собой строку, соответствующую идентификатору гостиницы в вашем списке гостиниц. Пример:

<PropertyList>
  <Property>pid1</Property>
  <Property>pid2</Property>
</PropertyList>

Примеры

Запрос цены

Ниже приведен пример сообщения-запроса, в котором запрашивается обновление цен для нескольких гостиниц на три ночи с заездом 23 мая 2023 г.

<?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>

Запрос цен в режиме реального времени

Ниже приведен пример запроса цен в режиме реального времени с ограничением времени ответа в 500 миллисекунд.

<?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>

С контекстным запросом

<?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>

С контекстным ответом

В примере ниже показано, как установить базовый тариф unavailable(-1) для одноместного размещения и вложить тарифы в элемент <Occupancy>.

<?xml version="1.0" encoding="UTF-8"
<Transaction id="Wtdj8QoQIWcAAbaTGlIAAAC4" timestamp="2025-11-19T18:36:48Z">
<Result>
  <Property>6781291</Property>
  <Checkin>2026-01-15</Checkin>
  <Nights>1</Nights>
  <!-- Base rate is set to -1 to indicate unavailability for the default (2-person) occupancy -->
  <Baserate currency="USD">-1</Baserate>
  <Tax currency="USD">0</Tax>
  <OtherFees currency="USD">0</OtherFees>
  <Rates>
    <!-- Nested Rate for Single Occupancy -->
    <Rate rate_rule_id="rule-951">
      <Occupancy>1</Occupancy>
      <OccupancyDetails>
        <NumAdults>1</NumAdults>
      </OccupancyDetails>
      <Baserate currency="USD">150.00</Baserate>
      <Tax currency="USD">15.00</Tax>
      <OtherFees currency="USD">5.00</OtherFees>
    </Rate>
  <!-- Other nested rates for different occupancies or room types could be included here if available -->
  </Rates>
</Result>
</Transaction>

Запрос метаданных

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <HotelInfoProperties>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </HotelInfoProperties>
</Query>

Дополнительные примеры, в том числе запросы цен для диапазона дат проживания и диапазона дат заезда, можно найти в статье Примеры сообщений Query.

<Context>

Элемент <Context> содержит информацию о Live pricing query, в том числе о количестве и типе гостей, стране и устройстве пользователя.

Несколько значений <Context> не будут использоваться для разных стран или устройств пользователей. Если для запроса используется несколько значений <Context> для нескольких вариантов количества гостей, укажите цену для каждого варианта количества гостей в отдельном пакете услуг для номера для соответствующего объекта или программы пребывания. Для каждого объекта или маршрута должен быть один блок <Result> с ценами для разного количества гостей.

Подробные сведения об ответе на запрос <Context> можно найти в разделе <OccupancyDetails>.

Синтаксис

Элемент <Context> использует следующий синтаксис:

Синтаксис

<?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>

Дочерние элементы

Элемент <Context> содержит следующие дочерние элементы:

Дочерний элемент Тип запроса Тип Описание
<Occupancy> Pricing integer Общее количество гостей.

Хотя это и не обязательно, запросы с <Occupancy> должны приводить к сообщению-транзакции с соответствующими пакетами номеров, определенными для каждого <Occupancy>. Однако если пакеты номеров недоступны, рекомендуется указать элемент <Occupancy>.

Примечание.<Occupancy> не всегда появляется в запросе. В таких случаях необходимо указывать цены для всех вариантов размещения.

<OccupancyDetails> Pricing Object Предшествует <Occupancy>. Указывает тип гостей, в том числе:
  • <NumAdults> – количество взрослых гостей.
  • <Children> и <Child="age">. Указывает, кто из гостей является ребенком (обычно это лица в возрасте от 0 до 17 лет), и при необходимости включает возраст каждого ребенка.

Хотя это и не обязательно, запросы с элементом <OccupancyDetails> должны приводить к сообщению-транзакции с соответствующими пакетами номеров, определенными для каждого элемента <Occupancy>. Однако если пакеты номеров недоступны, рекомендуется указать элемент <OccupancyDetails>.

Примечание. <OccupancyDetails> не всегда появляется в запросе. В таких случаях следует считать, что все гости – взрослые.

<UserCountry> Pricing string

Фильтрация тарифов по стране, в которой находится пользователь. Значение представляет собой двухбуквенный код страны, например "US" для США, или код региона, например "EU" для Европы.

Запросы с определенным элементом <UserCountry> должны возвращать сообщение-транзакцию с блоком <Rates>, соответствующим стране, указанной в запросе.

<UserDevice> Pricing string

Фильтрация цен по типу устройства, с которого пользователь выполняет поиск. Возможные значения:

  • mobile
  • desktop
  • tablet

Запросы с определенным элементом <UserDevice> должны возвращать сообщение-транзакцию с блоком <Rates>, соответствующим типу устройства, с которого был выполнен запрос.

Примеры

Вместимость

Ниже приведен пример запроса цен в режиме реального времени для <Occupancy> в <Context>. Запрос цен в режиме реального времени отправлен для трех взрослых гостей.

<?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>

Сведения о количестве гостей

В примере ниже показан запрос цен в режиме реального времени с элементом <OccupancyDetails> внутри <Context>. Запрос цен в режиме реального времени отправлен для четырех гостей, двое из которых дети. Требуется цена для гостя из США, который бронирует номер с мобильного устройства.

<?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>

Несколько контекстов

В примере ниже показано, как использовать дополнительный элемент <Context> в запросе цен в режиме реального времени.

<?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>