Сообщения с запросами – это запросы от Google об обновлении цен или метаданных. Они используются как в режимах доставки по запросу, так и в режиме измененной цены.
Корневым элементом сообщений запроса является <Query>
.
Структура сообщения-запроса зависит от типа сообщения:
Цены: Google отправляет сообщение-запрос, в котором запрашивается обновленная информация о ценах для указанных отелей.
Метаданные: Google отправляет сообщение-запрос, в котором запрашиваются данные о номере и пакете услуг в указанных отелях.
Вы определяете конечную точку, которую Google использует для сообщений-запросов и запросов цен в реальном времени, во время первоначальной настройки. Для получения дополнительной информации обратитесь к своему техническому менеджеру по работе с клиентами (TAM).
Google отправляет сообщение запроса в виде запроса HTTP POST
с заголовком Content-Type
, установленным на «application/xml», и заголовком User-Agent
установленным на Google-HotelAdsPrices
. Исключение из этого правила возникает во время ручного тестирования интеграции конечной точки цены через Google-TravelAds-Live
. Эти примеры запросов могут содержать или не содержать заголовок User-Agent
.
Подробное форматирование сообщений запроса можно найти в Справочнике по XML-запросам .
Сообщения с запросами цен
В сообщениях запроса цен указаны комбинации объектов недвижимости и маршрутов, для которых вы предоставляете цены.
Когда ваш сервер получает сообщение с запросом цен , он должен ответить сообщением <Transaction>
, содержащим запрошенную информацию о ценах.
Дополнительную информацию см. в разделе Обзор цен .
Существует три специальных типа сообщений запроса:
Цены в реальном времени: если этот параметр включен, запросы отправляются, когда пользователь активно просматривает цены на указанный объект недвижимости или комбинацию маршрутов, и у вас есть указанный период времени для ответа.
С контекстом: если этот параметр включен, рекомендации пользовательского контекста включаются в каждый запрос, который отправляет вам Google, и рекомендации отражают наиболее распространенные типы пользователей, которые ищут данный объект недвижимости или комбинации маршрутов. Следование этим рекомендациям может повысить эффективность ваших ответов.
Метаданные: это запрос подробной информации о номерах и пакетах для указанных объектов недвижимости.
Запросы цен в реальном времени
Запросы цен в реальном времени — это запросы от Google обновлений цен в реальном времени в ответ на поисковые запросы пользователей. Google получает от пользователя поисковый запрос на отель или комбинацию маршрутов, и, поскольку данные о ценах недоступны или устарели, Google запрашивает у вас обновленную информацию о ценах во время поиска. При запросе цен в реальном времени Google пытается получить цену и отобразить ее в результатах во время поиска.
Все запросы цен Live имеют ограничение по времени ответа, которое обычно составляет до 4000 миллисекунд. Этот предел указан в запросе запроса цен в реальном времени. Если ответ не может быть предоставлен в течение установленного срока, это приводит к пропуску участия в конкретной возможности. Тем не менее, мы рекомендуем в любом случае указывать цену, чтобы ее можно было кэшировать и использовать для будущих возможностей. Соединение для ответа остается открытым в течение десяти минут или согласно настройкам партнера.
Запросы цен в реальном времени также являются контекстными и могут получать цены по следующим параметрам: страна пользователя, тип устройства, вместимость (количество гостей), а также то, являются ли эти гости взрослыми или детьми. С помощью запросов цен в реальном времени вы можете отображать более актуальные цены, соответствующие тому, что искал клиент.
Запросы цен в реальном времени предназначены для вторичного механизма обновления цен. Основным механизмом переоценки по-прежнему является ценообразование Pull или Changed. Запросы цен в реальном времени помогают заполнить пробелы, когда у Google нет цен на комбинации отелей или маршрутов.
Правила использования запросов цен в реальном времени
Кэшированные данные для данного маршрута отсутствуют, поскольку запрошенный маршрут нетипичен, например, даты находятся очень далеко в будущем или отель ищется очень редко.
Запрошенная дата не является датой по умолчанию.
: Примечание. Даты по умолчанию не подходят для запросов цен в реальном времени. Запросы цен в реальном времени запрашиваются только на даты, отличные от дат по умолчанию.
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-справочнике по ценообразованию и инвентаризации номеров (транзакции) .
С примером контекстного запроса
В следующем примере показан пример запроса с контекстом:
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>2023-05-23</Checkin>
<Nights>2</Nights>
<PropertyContextList>
<PropertyContext>
<Property>8675309</Property>
<!-- In the future, occupancy and 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>
С запросами контекста указывается только контекст страны пользователя. В будущем такие запросы могут также указывать пользовательское устройство и занятость.
Диапазоны дат заезда
Если вы используете «Измененные цены», то структура сообщения-запроса зависит от типа подсказки , которую вы используете для диапазонов дат регистрации, точных или ранжированных маршрутов. Дополнительные сведения о каждом из этих типов подсказок см. в разделе Ответные сообщения подсказок .
В следующем примере показано сообщение о цене <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>
На этот тип сообщения запроса вы отвечаете сообщением транзакции, которое определяет метаданные комнаты и пакета. Дополнительную информацию см. в разделе Определение метаданных комнаты и пакета .