Запросы — это обращения от Google с просьбой обновить цены или метаданные. Они используются как в режиме «Pull», так и в режиме «Changed Pricing».
Корневым элементом сообщений запроса является <Query> .
The structure of the Query message depends on the type of message:
Ценообразование: Google отправляет запрос, который запрашивает обновление цен для указанных отелей.
Метаданные: Google отправляет запрос, в котором запрашиваются данные о номере и пакете услуг в указанных отелях.
В процессе первоначальной настройки вы определяете конечную точку, которую Google будет использовать для запросов и запросов на получение информации о ценах в реальном времени. Для получения дополнительной информации обратитесь к своему техническому менеджеру по работе с клиентами (TAM).
Google отправляет сообщение Query в виде HTTP POST запроса с заголовком Content-Type , установленным на "application/xml", и заголовком User-Agent установленным на Google-HotelAdsPrices . Исключение из этого правила возникает во время ручного тестирования интеграции конечной точки цен через Google-TravelAds-Live . В этих примерах запросов заголовок User-Agent может присутствовать, а может и отсутствовать.
Подробные сведения о форматировании сообщений запросов можно найти в справочнике по XML-запросам .
Сообщения с запросами о ценах
В сообщениях запроса цен указываются комбинации объектов недвижимости и маршрутов, для которых вы предоставляете цены.
Когда ваш сервер получает сообщение с запросом цен , он должен ответить сообщением типа <Transaction> , содержащим запрошенную информацию о ценах.
Для получения более подробной информации см. раздел «Обзор цен» .
Существует три особых типа сообщений-запросов:
Live pricing: If enabled, queries are sent when a user is actively browsing prices for the specified property or itinerary combination and you have a specified timeframe to respond.
С учетом контекста: Если эта функция включена, рекомендации по контексту пользователя включаются в каждый запрос, который Google вам отправляет, и эти рекомендации отражают наиболее распространенные типы пользователей, которые ищут данную комбинацию объектов недвижимости или маршрутов. Следование этим рекомендациям может повысить эффективность ваших ответов.
Метаданные: Это запрос на предоставление подробной информации о номерах и пакетах услуг для указанных объектов недвижимости.
Запросы на ценообразование в режиме реального времени
Запросы на обновление цен в режиме реального времени — это запросы от Google к поисковой системе для получения информации о ценах в ответ на поисковые запросы пользователей. Google получает поисковый запрос от пользователя на бронирование отеля или бронирование маршрута, и поскольку данные о ценах недоступны или устарели, Google запрашивает у вас обновление цены в момент поиска. С помощью запросов на обновление цен в режиме реального времени Google пытается получить цену и отобразить её в результатах поиска в момент его выполнения.
Для всех запросов на получение цен в режиме реального времени установлено ограничение по времени ответа, обычно составляющее до 4000 миллисекунд. Это ограничение указывается в самом запросе. Если ответ не может быть предоставлен в течение этого времени, это приведет к пропуску участия в конкретной сделке. Однако мы рекомендуем все равно указать цену, чтобы она могла быть кэширована и использована для будущих сделок. Соединение для ответа остается открытым в течение десяти минут или в соответствии с настройками партнера.
Запросы на получение цен в режиме реального времени также являются контекстными и могут получать цены по следующим параметрам: страна пользователя, тип устройства, количество гостей и то, являются ли эти гости взрослыми или детьми. С помощью запросов на получение цен в режиме реального времени вы можете показывать более актуальные цены, соответствующие поисковому запросу клиента.
Запросы на изменение цен в режиме реального времени предназначены в качестве вспомогательного механизма для обновления цен. Основным механизмом пересмотра цен по-прежнему остается запрос на изменение цен (Pull или Changed pricing). Запросы на изменение цен в режиме реального времени помогают восполнить пробелы, когда у Google отсутствуют цены на комбинации отелей или маршрутов.
Правила использования запросов на ценообразование в реальном времени
No cached data for the given itinerary exists because the requested itinerary is atypical, such as the dates are very far in the future or the hotel is very infrequently searched for.
Запрошенная дата отличается от даты по умолчанию.
: Note: The default dates are not eligible for Live pricing queries. Live pricing queries is requested only for non-default dates.
Google обычно кэширует результаты запроса цен в режиме реального времени, чтобы один и тот же отель или маршрут не запрашивались повторно. Он может запрашивать как отдельные отели или комбинации маршрутов, так и комбинации нескольких отелей или отдельных маршрутов.
Функция «Цены в реальном времени с учетом контекста» позволяет Google отправлять запросы на определение конкретных цен в реальном времени на основе типа устройства пользователя, страны, из которой он осуществляет поиск, и количества проживающих, включая детей. Как сообщение запроса, так и сообщение транзакции расширяются за счет элемента <Context> , определяющего параметры запроса. Цены, полученные из запросов на определение цен в реальном времени с учетом контекста, могут кэшироваться как «Пакет номеров» , если это цена за конкретное количество проживающих, и как «Условная ставка» , если это цена для страны пользователя или устройства пользователя.
С помощью контекстных запросов
Запросы по контексту — это регулярные запросы на обновление нашей базы данных для указанных комбинаций объектов недвижимости или маршрутов. Они содержат список пользовательских контекстов, популярных для этих комбинаций. Если используются условные тарифы , отправка тарифов для всех возможных пользовательских контекстов может быть дорогостоящей, поэтому вы можете использовать этот список пользовательских контекстов для ограничения ответа. Возврат цен только для указанных пользовательских контекстов охватывает подавляющее большинство релевантных запросов пользователей.
Если вас интересует получение запросов с контекстной информацией, свяжитесь со своим техническим менеджером по работе с клиентами (TAM). Он сможет подтвердить вашу готовность к получению таких сообщений и внести необходимые изменения в конфигурацию, чтобы начать отправлять вам пользовательские контексты в запросах.
Сообщения запроса метаданных
Metadata query messages contain details about room and package information for the specified properties.
When you receive a metadata Query message, you should respond with a <Transaction> message that specifies pricing for the requested properties in <Result> elements.
Для получения дополнительной информации см. раздел «Определение метаданных номера и пакета услуг» .
Примеры сообщений запроса
This section shows several examples of pricing Query messages and a metadata Query message. Additional examples are found in the Query XML Reference .
Примерный маршрут
The following example shows a pricing <Query> that requests price updates for 4 hotels, available for 3 nights, and starting on May 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>
This example requests pricing updates for each hotel:
5/23/18 - 6/26/18
Пример запроса цен в реальном времени
The following example shows a Live pricing query with a response time limit of 500 milliseconds:
<?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>
This example requests a price for a single hotel:
6/23/23 - 6/25/23
A sample transaction message response to this query can be found in the Pricing & Room Inventory (Transactions) XML Reference .
Примеры запросов с контекстом
The following are examples for With 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>
Запрос с контекстом, включающим данные о занятости.
<?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>
With Context queries only specifies user country context. In the future, such queries might also specify user device.
Диапазоны дат заезда/выезда
Если вы используете функцию изменения цен, структура сообщения запроса зависит от типа подсказки , используемого для диапазонов дат регистрации, точных маршрутов или маршрутов в заданном диапазоне. Дополнительную информацию о каждом из этих типов подсказок см. в разделе «Сообщения с ответами на подсказки» .
The following example shows a pricing <Query> message for check-in date ranges:
<?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>
This example requests pricing updates for the following stays (for each hotel):
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
Различные варианты проживания
The following example shows a pricing <Query> message for ranged stays:
<?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>
This example requests pricing updates for each hotel:
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
Plus stays that started before (but include) the given night:
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
Сообщение запроса метаданных
The following example shows a <Query> message that requests metadata updates for the room and package information for several properties:
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<HotelInfoProperties>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</HotelInfoProperties>
</Query>
You respond to this type of Query message with a Transaction message that defines room and package metadata. For more information, see Defining room and package metadata .