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

Запросы — это обращения от Google с просьбой обновить цены или метаданные. Они используются как в режиме «Pull», так и в режиме «Changed Pricing».

Корневым элементом сообщений запроса является <Query> .

Структура сообщения запроса зависит от типа сообщения:

  • Ценообразование: Google отправляет запрос, который запрашивает обновление цен для указанных отелей.

  • Метаданные: Google отправляет запрос, в котором запрашиваются данные о номере и пакете услуг в указанных отелях.

В процессе первоначальной настройки вы определяете конечную точку, которую Google будет использовать для запросов и запросов на получение информации о ценах в реальном времени. Для получения дополнительной информации обратитесь к своему техническому менеджеру по работе с клиентами (TAM).

Google отправляет сообщение Query в виде HTTP POST запроса с заголовком Content-Type , установленным на "application/xml", и заголовком User-Agent установленным на Google-HotelAdsPrices . Исключение из этого правила возникает во время ручного тестирования интеграции конечной точки цен через Google-TravelAds-Live . В этих примерах запросов заголовок User-Agent может присутствовать, а может и отсутствовать.

Подробные сведения о форматировании сообщений запросов можно найти в справочнике по XML-запросам .

Сообщения с запросами о ценах

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

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

Для получения более подробной информации см. раздел «Обзор цен» .

Существует три особых типа сообщений-запросов:

  1. Цены в реальном времени: Если эта функция включена, запросы отправляются, когда пользователь активно просматривает цены на указанный объект недвижимости или комбинацию маршрута, и у вас есть определенный период времени для ответа.

  2. С учетом контекста: Если эта функция включена, рекомендации по контексту пользователя включаются в каждый запрос, который Google вам отправляет, и эти рекомендации отражают наиболее распространенные типы пользователей, которые ищут данную комбинацию объектов недвижимости или маршрутов. Следование этим рекомендациям может повысить эффективность ваших ответов.

  3. Метаданные: Это запрос на предоставление подробной информации о номерах и пакетах услуг для указанных объектов недвижимости.

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

Запросы на обновление цен в режиме реального времени — это запросы от Google к поисковой системе для получения информации о ценах в ответ на поисковые запросы пользователей. Google получает поисковый запрос от пользователя на бронирование отеля или бронирование маршрута, и поскольку данные о ценах недоступны или устарели, Google запрашивает у вас обновление цены в момент поиска. С помощью запросов на обновление цен в режиме реального времени Google пытается получить цену и отобразить её в результатах поиска в момент его выполнения.

Для всех запросов на получение цен в режиме реального времени установлен лимит времени ответа, обычно составляющий до 4000 миллисекунд. Этот лимит указывается в запросе на получение цен в режиме реального времени. Если ответ не может быть предоставлен в течение этого времени, это приведет к пропуску участия в конкретной сделке. Однако мы рекомендуем все равно указать цену, чтобы она могла быть кэширована и использована для будущих сделок. Соединение для ответа остается открытым в течение десяти минут или в соответствии с настройками партнера.

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

Запросы на изменение цен в режиме реального времени предназначены в качестве вспомогательного механизма для обновления цен. Основным механизмом пересмотра цен по-прежнему остается запрос на изменение цен (Pull или Changed pricing). Запросы на изменение цен в режиме реального времени помогают восполнить пробелы, когда у Google отсутствуют цены на комбинации отелей или маршрутов.

Правила использования запросов на ценообразование в реальном времени

  • Кэшированные данные для данного маршрута отсутствуют, поскольку запрошенный маршрут является нетипичным, например, даты находятся очень далеко в будущем или поиск отеля осуществляется крайне редко.

  • Запрошенная дата отличается от даты по умолчанию.

Примечание: Даты по умолчанию не подходят для запросов на расчет стоимости в режиме реального времени. Запросы на расчет стоимости в режиме реального времени запрашиваются только для дат, отличных от указанных по умолчанию.

Google обычно кэширует результаты запроса цен в режиме реального времени, чтобы один и тот же отель или маршрут не запрашивались повторно. Он может запрашивать как отдельные отели или комбинации маршрутов, так и комбинации нескольких отелей или отдельных маршрутов.

Функция «Цены в реальном времени с учетом контекста» позволяет Google отправлять запросы на определение конкретных цен в реальном времени на основе типа устройства пользователя, страны, из которой он осуществляет поиск, и количества проживающих, включая детей. Как сообщение запроса, так и сообщение транзакции расширяются за счет элемента <Context> , определяющего параметры запроса. Цены, полученные из запросов на определение цен в реальном времени с учетом контекста, могут кэшироваться как «Пакет номеров» , если это цена за конкретное количество проживающих, и как «Условная ставка» , если это цена за страну или устройство пользователя.

С помощью контекстных запросов

Запросы по контексту — это регулярные запросы на обновление нашей базы данных для указанных комбинаций объектов недвижимости или маршрутов. Они содержат список пользовательских контекстов, популярных для этих комбинаций. Если используются условные тарифы , отправка тарифов для всех возможных пользовательских контекстов может быть дорогостоящей, поэтому вы можете использовать этот список пользовательских контекстов для ограничения ответа. Возврат цен только для указанных пользовательских контекстов охватывает подавляющее большинство релевантных запросов пользователей.

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

Сообщения запроса метаданных

Сообщения запроса метаданных содержат подробную информацию о номерах и пакетах услуг для указанных объектов.

При получении сообщения запроса метаданных следует ответить сообщением типа <Transaction> , в котором указываются цены на запрошенные свойства в элементах <Result> .

Для получения дополнительной информации см. раздел «Определение метаданных номера и пакета услуг» .

Примеры сообщений запроса

В этом разделе приведены несколько примеров сообщений запроса на ценообразование и сообщения запроса на метаданные. Дополнительные примеры можно найти в справочнике по XML-запросам .

Примерный маршрут

В следующем примере показан <Query> на изменение цен для 4 отелей, доступных для бронирования на 3 ночи, начиная с 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>

В этом примере запрашивается обновление цен для каждого отеля:

5/23/18 - 6/26/18

Пример запроса цен в реальном времени

В следующем примере показан запрос на получение цен в режиме реального времени с ограничением времени ответа в 500 миллисекунд:

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<!-- Note that the latencySensitive attribute is not present by default but can
     be configured to be displayed, on request, by Google. This attribute is only
     displayed for a Live Pricing Query request -->
  <Checkin>2023-05-23</Checkin>
  <Nights>2</Nights>
  <DeadlineMs>500</DeadlineMs>
<!-- The deadline represents the timeframe by which a response will need to be
     received by. This element is only displayed for a Live Pricing Query request -->
  <PropertyList>
    <Property>6781291</Property>
  </PropertyList>
<!-- Note that Context tags are potentially repeatable -->
  <Context>
<!-- The total number of guests occupying the room (adults+children) -->
    <Occupancy>3</Occupancy>
    <OccupancyDetails>
      <NumAdults>2</NumAdults>
<!-- In this example one of the 3 guests is a 5yr old child -->
      <Children>
        <Child age="5"/>
      </Children>
    </OccupancyDetails>
<!-- The user was located in the US when this search was made -->
    <UserCountry>US</UserCountry>
<!-- The user was searching from a mobile device at the time of search -->
    <UserDevice>mobile</UserDevice>
  </Context>
</Query>

В этом примере запрашивается цена за номер в одном отеле:

6/23/23 - 6/25/23

Пример ответа на этот запрос в виде сообщения транзакции можно найти в справочнике XML-данных по ценам и номерному фонду (транзакциям) .

Примеры запросов с контекстом

Ниже приведены примеры запросов с контекстом:

Простой запрос с контекстом

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

Запрос с контекстом, включающим данные о занятости.

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>2025-07-10</Checkin>
  <Nights>2</Nights>
  <PropertyContextList>
    <PropertyContext>
      <Property>8675309</Property>
      <Context>
        <UserCountry>US</UserCountry>
      </Context>
      <Occupancy>3</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
        <Children>
          <Child age="7"/>
        </Children>
      </OccupancyDetails>
    </PropertyContext>
    <PropertyContext>
      <Property>8675310</Property>
      <Context>
        <UserCountry>GB</UserCountry>
      </Context>
      <Occupancy>1</Occupancy>
      <OccupancyDetails>
        <NumAdults>1</NumAdults>
      </OccupancyDetails>
    </PropertyContext>
  </PropertyContextList>
</Query>

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

Диапазоны дат заезда/выезда

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

В следующем примере показано сообщение <Query> ценообразования для диапазонов дат регистрации заезда:

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <FirstDate>2023-05-23</FirstDate>
  <LastDate>2023-05-26</LastDate>
  <Nights>3</Nights>
  <PropertyList>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </PropertyList>
</Query>

В этом примере запрашивается обновление цен для следующих вариантов проживания (для каждого отеля):

5/23/23 - 5/24/23
5/23/23 - 5/25/23
5/23/23 - 5/26/23
5/24/23 - 5/25/23
5/24/23 - 5/26/23
5/24/23 - 5/27/23
5/24/23 - 5/26/23
5/25/23 - 5/27/23
5/25/23 - 5/28/23

Различные варианты проживания

В следующем примере показано сообщение <Query> цен на проживание в зависимости от выбранного диапазона:

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <FirstDate>2023-05-23</FirstDate>
  <LastDate>2023-05-26</LastDate>
  <AffectedNights>3</AffectedNights>
  <PropertyList>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </PropertyList>
</Query>

В этом примере запрашивается обновление цен для каждого отеля:

5/23/23 - 5/24/23
5/23/23 - 5/25/23
5/23/23 - 5/26/23
5/24/23 - 5/25/23
5/24/23 - 5/26/23
5/24/23 - 5/27/23
5/25/23 - 5/26/23
5/25/23 - 5/27/23
5/25/23 - 5/28/23

Кроме того, проживание, начавшееся до (но включающее) данную ночь:

5/20/23 - 5/23/23
5/21/23 - 5/23/23
5/21/23 - 5/24/23
5/22/23 - 5/23/23
5/22/23 - 5/24/23
5/22/23 - 5/25/23

Сообщение запроса метаданных

В следующем примере показано сообщение <Query> , запрашивающее обновление метаданных для информации о номере и пакетах услуг для нескольких объектов недвижимости:

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

В ответ на сообщение типа Query вы отправляете сообщение Transaction, в котором определяются метаданные номера и пакетов услуг. Для получения дополнительной информации см. раздел «Определение метаданных номера и пакетов услуг» .