Запросы представляют собой запросы от Google на обновление цен или метаданных. Они используются как в режимах доставки Pull, так и Changed Pricing.
Корневым элементом сообщений запроса является <Query>
.
Структура сообщения-запроса зависит от типа сообщения:
Цены: Google отправляет сообщение-запрос с просьбой обновить цены для указанных отелей.
Метаданные: Google отправляет сообщение-запрос, в котором запрашиваются данные о номерах и пакетах услуг в указанных отелях.
Вы определяете конечную точку, которую Google использует для сообщений Query и запросов на определение цены в режиме реального времени, во время первоначальной настройки. Для получения дополнительной информации обратитесь к своему техническому менеджеру по работе с клиентами (TAM).
Google отправляет запрос в виде HTTP-запроса POST
с заголовком Content-Type
, установленным на "application/xml", и заголовком User-Agent
установленным на Google-HotelAdsPrices
. Исключение из этого правила возникает при ручном тестировании интеграции конечной точки цены через Google-TravelAds-Live
. Эти примеры запросов могут содержать или не содержать заголовок User-Agent
.
Подробное форматирование сообщений запроса можно найти в Справочнике по XML запроса .
Сообщения с запросами цен
В сообщениях запроса цен указываются комбинации объектов недвижимости и маршрутов, для которых вы указываете цены.
Когда ваш сервер получает сообщение с запросом цен , он должен ответить сообщением <Transaction>
, содержащим запрошенную информацию о ценах.
Более подробную информацию смотрите в разделе Обзор цен .
Существует три специальных типа сообщений-запросов:
Цены в режиме реального времени: если эта опция включена, запросы отправляются, когда пользователь активно просматривает цены на указанный объект размещения или комбинацию маршрутов, а у вас есть заданные временные рамки для ответа.
С контекстом: если эта опция включена, рекомендации, основанные на пользовательском контексте, включаются в каждый запрос, отправляемый вам Google, и отражают наиболее распространённые типы пользователей, которые ищут заданный объект размещения или комбинации маршрутов. Следование этим рекомендациям может повысить эффективность ваших ответов.
Метаданные: Это запрос сведений о номерах и пакетах для указанных объектов недвижимости.
Запросы цен в режиме реального времени
Запросы на обновление цен в режиме реального времени — это запросы Google на обновление цен в режиме реального времени в ответ на поисковые запросы пользователей. Google получает от пользователя запрос на поиск отеля или комбинации маршрута, и, поскольку данные о ценах недоступны или устарели, Google запрашивает у вас обновление цен на момент поиска. С помощью запросов на обновление цен в режиме реального времени Google пытается получить цену и отобразить её в результатах поиска на момент выполнения поиска.
Время ответа на все запросы цен в режиме реального времени ограничено, обычно до 4000 миллисекунд. Это ограничение указано в запросе цен в режиме реального времени. Если ответ не будет предоставлен в течение этого времени, это приведет к пропуску участия в конкретной возможности. Тем не менее, мы рекомендуем в любом случае указать цену, чтобы её можно было кэшировать и использовать для будущих возможностей. Соединение для ответа остаётся открытым в течение десяти минут или в течение времени, указанного в настройках партнёра.
Запросы на информацию о ценах в режиме реального времени также являются контекстными и могут извлекать цены по следующим параметрам: страна пользователя, тип устройства, заполняемость (количество гостей) и то, являются ли эти гости взрослыми или детьми. С помощью запросов на информацию о ценах в режиме реального времени вы можете показывать более актуальные цены, соответствующие поисковому запросу клиента.
Запросы цен в режиме реального времени предназначены для использования в качестве вспомогательного механизма обновления цен. Основным механизмом переоценки по-прежнему является ценообразование по запросу или изменение цен. Запросы цен в режиме реального времени помогают заполнить пробелы, когда у Google нет цен на комбинации отелей и маршрутов.
Правила использования запросов цен в реальном времени
Кэшированные данные по заданному маршруту отсутствуют, поскольку запрошенный маршрут нетипичен, например, даты находятся в очень далеком будущем или отель ищут очень редко.
Запрошенная дата не является датой по умолчанию.
Примечание: запросы на получение информации о ценах в режиме реального времени не подходят для дат по умолчанию. Запросы на получение информации о ценах в режиме реального времени доступны только для дат, отличных от дат по умолчанию.
Google обычно кэширует результаты Live pricing, чтобы избежать повторных запросов на тот же отель или маршрут. Google может запрашивать как отдельные отели или комбинации маршрутов, так и комбинации из нескольких отелей или одного маршрута.
Функция «Цены в режиме реального времени с контекстом» позволяет Google отправлять запросы на определение цен в режиме реального времени с учетом типа устройства пользователя, страны, из которой он выполняет поиск, и количества жильцов, включая детей. Как сообщение «Запрос», так и сообщение «Транзакция» расширяются, включая элемент <Context>
, определяющий параметры запроса. Цены, полученные из запросов на определение цен в режиме реального времени с контекстом, можно кэшировать как « Комплект номеров» , если это цена для конкретного номера, и как « Условная ставка» , если это цена для страны или устройства пользователя.
С контекстными запросами
Запросы с контекстом — это регулярные запросы на обновление нашей базы данных для указанных комбинаций объектов размещения или маршрутов. Они содержат список пользовательских контекстов, популярных для этих комбинаций. При использовании условных ставок отправка цен для всех возможных пользовательских контекстов может быть дорогостоящей, поэтому вы можете использовать этот список пользовательских контекстов, чтобы ограничить объём ответа. Возврат цен только для указанных пользовательских контекстов охватывает подавляющее большинство релевантных пользовательских запросов.
Если вы заинтересованы в получении запросов с контекстом, обратитесь к своему техническому менеджеру по работе с клиентами (TAM). Он может подтвердить вашу готовность к получению таких сообщений, а затем внести необходимые изменения в конфигурацию, чтобы начать отправлять вам запросы с контекстом пользователя.
Сообщения запроса метаданных
Сообщения запроса метаданных содержат подробную информацию о комнатах и пакетах для указанных объектов недвижимости.
При получении сообщения запроса метаданных необходимо ответить сообщением <Transaction>
, в котором указаны цены на запрошенные свойства в элементах <Result>
.
Для получения дополнительной информации см. раздел Определение метаданных помещения и пакета .
Контрольные запросы
В этом разделе описывается, как вы управляете тем, какие объекты недвижимости и маршруты могут быть предметом сообщений запроса от Google.
Границы маршрута
Вы определяете возможные границы ценовых запросов с помощью <ItineraryCapabilities>
. Вы также определяете правила, определяющие диапазон дат и максимальную продолжительность пребывания, которые вы поддерживаете.
Вы можете задать значения по умолчанию для параметров <MaxAdvancePurchase>
и <MaxLengthOfStay>
, которые будут применяться ко всем комбинациям отелей и маршрутов. Вы также можете определить эти настройки для групп отелей.
Примеры сообщений запроса
В этом разделе приведены несколько примеров сообщений запроса цен и сообщений запроса метаданных. Дополнительные примеры можно найти в справочнике по 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-справочнике по ценам и номерному фонду (транзакции) .
С примерами контекстных запросов
Ниже приведены примеры запроса With Context:
Базовый запрос с контекстом
<?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>
В запросах Context указывается только контекст страны пользователя. В будущем такие запросы могут также указывать устройство пользователя.
Диапазоны дат заезда
Если вы используете функцию «Изменённые цены», структура сообщения-запроса зависит от типа подсказки , который вы используете для диапазонов дат регистрации, точных маршрутов или маршрутов с диапазонами. Подробнее о каждом из этих типов подсказок см. в разделе «Ответные сообщения с подсказками» .
В следующем примере показано сообщение <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>
На этот тип запроса вы отвечаете сообщением «Транзакция», которое определяет метаданные помещения и пакета. Подробнее см. в разделе «Определение метаданных помещения и пакета» .