Условные тарифы – это тип правила тарифов, позволяющий предлагать разные тарифы для маршрутов на основе таких критериев, как устройство пользователя, страна или то, вошел ли пользователь в Google.
Если у вас есть более одного общедоступного или условного тарифа для маршрута или пакета номеров, пользователь увидит самый низкий тариф. Google всегда выбирает самую низкую ставку для пользователя.
Обзор
Условные тарифы видны в стандартных ценовых сегментах и отображаются только для пользователей, чьи поисковые запросы соответствуют критериям соответствующей условной тарифа. Эти критерии могут быть основаны на следующем:
- Устройство конечного пользователя
- Страна конечного пользователя
- Языковые предпочтения конечного пользователя
- Уменьшенная выборка всех пользователей
- Вошел ли конечный пользователь в систему
Чтобы включить условные ставки, измените следующее:
XML-файл правил ставок : определение условий, при которых применяются условные ставки.
Лента цен : используйте элемент
<Rate>
в сообщении транзакции, чтобы установить ставки.Файл целевой страницы : добавьте значения, специфичные для правил ставок, в ваши глубокие ссылки.
Условные тарифы для конкретного устройства
Тарифы для конкретных устройств — это тарифы отелей, которые видны и бронируются пользователями только на определенном устройстве, например мобильном телефоне, планшете или настольном компьютере. Тарифы предоставляются партнерами Google, и конечные пользователи могут видеть и бронировать те же тарифы для конкретных устройств на сайте партнера.
Условные ставки для конкретной страны
Тарифы для конкретной страны — это тарифы на отели, которые видны и бронируются только пользователями, которые ищут отели из определенной страны. Google определяет страну по IP-адресу конечного пользователя. Тарифы предоставляются партнерами Google, и конечные пользователи могут видеть и бронировать те же тарифы для конкретной страны на собственном сайте партнера для конкретной страны.
Условные тарифы для конкретного языка
Тарифы на конкретном языке видны только пользователям, которые ищут отели, используя определенные языковые настройки в Google. Условия, специфичные для языка, определяются с помощью элемента <LanguageCode>
.
Язык не указан в сообщениях запроса запросов с контекстом . Таким образом, если вы укажете <LanguageCode>
в правилах тарифов, ответ с контекстом должен включать все соответствующие тарифы для конкретного языка.
Условные ставки с пониженной дискретизацией
Условные ставки с пониженной выборкой видны только рандомизированной подгруппе всех подходящих пользователей. Частота выборки определяется с помощью элемента <MaxUsersPercent>
и рассчитывается с использованием следующего:
MaxUsersPercent = (number of users selected to view rate)/(total eligible users)
Условные тарифы для зарегистрированных пользователей
Тарифы, выполнившие вход, видны только пользователям, вошедшим в систему с помощью учетной записи Google. Партнеры Google предоставляют тарифы, а пользователи могут просматривать и бронировать тарифы на собственном сайте партнера. Доля выполнивших вход определяется с помощью элемента <UserSignedIn>
.
Поскольку Google всегда выбирает самую низкую приемлемую ставку, если условная ставка выше цены, установленной на уровне <Result>
, условная ставка никогда не будет выбрана. Чтобы избежать этого, удалите ставку на уровне <Result>
и согласуйте все ставки. Вы также можете попросить своего технического менеджера по работе с клиентами использовать правило ставок по умолчанию для цен, установленных на уровне <Result>
.
Создайте XML-файл правил тарифов.
Правила тарифов для условных тарифов определяются с помощью XML-файла правил тарифов. Для получения дополнительной информации см. Справочник по XML-правилам тарифов .
Обновите фид цен
Условные ставки устанавливаются с помощью элемента в сообщении транзакции .
Элемент <Rate>
также можно использовать в качестве нескольких дочерних элементов <Rates>
внутри элементов <RoomBundle>
или <Result>
. Чтобы использовать его в качестве условной ставки, необходимо установить значение rate_rule_id
в соответствии с идентификатором правила ставки, который вы определили в XML-файле правил ставки.
Если у вас нет публичного коэффициента двойной занятости по умолчанию, установите для дочернего элемента <Baserate>
сообщения <Result>
значение -1
. Любые условные <Rates>
, отправленные в Google в этом случае, будут считаться действительными.
Примеры
Базовый + условный
В следующем примере показано сообщение транзакции, содержащее базовую ставку и условную ставку :
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">200.00</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates -->
<Rate rate_rule_id="mobile">
<!-- Override base rate and taxes for conditional rates -->
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<!-- NOTE: OtherFees is inherited from the above setting -->
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
КомнатаКомплекс одноместный
В следующем примере показано сообщение транзакции, содержащее один тариф в <RoomBundle>
:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">300.00</Baserate>
<Tax currency="USD">30.00</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RoomBundle>
<RoomID>single</RoomID>
<Baserate currency="USD">300.00</Baserate>
<Tax currency="USD">30.00</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</RoomBundle>
<RoomBundle>
<RoomID>3</RoomID> <!-- Links to data in metadata -->
<RatePlanID>basic</RatePlanID>
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<ChargeCurrency>web</ChargeCurrency>
<BreakfastIncluded>1</BreakfastIncluded>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">269.00</Baserate>
<Tax currency="USD">2.69</Tax>
<OtherFees currency="USD">1.00</OtherFees>
</Rates>
</Rates>
</RoomBundle>
</Result>
</Transaction>
КомнатаПакет несколько
В следующем примере показано сообщение транзакции, содержащее несколько тарифов в <RoomBundle>
:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>2</Nights>
<!-- When Google receives new room bundle information for an itinerary, all
previous room bundle pricing is dropped from Google's cache. Thus, if you
want to delete a specific room bundle from Google's cache, you may do so
by simply not providing that specific room bundle in subsequent transaction
messages. -->
<RoomBundle>
...
<!-- RoomID is required, PackageID is recommended. -->
<RoomID>5</RoomID>
<PackageID>ABC</PackageID>
<!-- Baserate is required. -->
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<!-- RatePlanID is optional and represents the unique identifier for a
room and package data combination. We strongly recommend using RatePlanID
as a variable to build your dynamic landing page (formerly Point of Sale)
URL. For details, see Using Variables and Conditions. -->
<RatePlanID>5-ABC</RatePlanID>
<!-- Occupancy is mandatory for RoomBundle elements. -->
<!-- Elements below will get inherited to nested rate elements. -->
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
</OccupancyDetails>
<InternetIncluded>1</InternetIncluded>
<!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
<ChargeCurrency>web</ChargeCurrency>
<Custom1>ratebasic</Custom1>
<!-- Neither rate overrides Custom2. -->
<Custom2>ratebasic</Custom2>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides ChargeCurrency from roombundle. -->
<ChargeCurrency>hotel</ChargeCurrency>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode321</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode432</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>
Нет общественного двухместного размещения.
В следующем примере показано сообщение транзакции, которое содержит условную ставку без общедоступной ставки при двухместном размещении :
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<!-- <Unavailable/> should not be specified when available nested rates
exist. -->
<Baserate currency="USD">-1</Baserate>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates. -->
<Rate rate_rule_id="mobile">
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
Обновите файл целевой страницы
Чтобы конечные пользователи, соответствующие критериям, могли забронировать тариф со скидкой через глубокую ссылку, измените файл целевой страницы . Также может потребоваться дополнительная реализация на веб-сайте бронирования, чтобы правильно отображать и выполнять тарифы со скидкой.
Мы ожидаем, что партнеры будут соблюдать цену, указанную в глубокой ссылке с условной ставкой.
В динамическую глубокую ссылку вы можете включить правило ставки по его имени, атрибуту id
элемента <RateRule>
и переменной RATE-RULE-ID
.
В следующем примере добавляется идентификатор правила тарифа:
https://bookingsite.com/landing.do?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)¤cy=(USER-CURRENCY)&prid=(RATE-RULE-ID)
Файл целевой страницы также поддерживает директиву IF-RATE-RULE-ID
, которая позволяет условно определять части URL-адреса в зависимости от существования правила ставки:
https://bookingsite.com/(IF-RATE-RULE-ID)privatelanding.do(RATE-RULE-ID)(ELSE)landing.do(ENDIF)?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)¤cy=(USER-CURRENCY)
В этом примере выполняется выбор между двумя целевыми страницами в зависимости от того, установлен ли идентификатор правила тарифа.
Дополнительные сведения см. в разделе Использование переменных и условий .