Условные тарифы — это тип правил ценообразования, позволяющий предлагать разные тарифы на маршруты в зависимости от таких критериев, как устройство пользователя, страна или то, вошел ли пользователь в свою учетную запись Google.
Если для маршрута или пакета услуг номера доступно несколько публичных или условных тарифов, пользователь увидит самый низкий тариф. Google всегда выбирает самый низкий доступный для пользователя тариф.
Обзор
Условные тарифы отображаются в стандартных ценовых слотах и показываются только пользователям, чьи поисковые запросы соответствуют критериям для соответствующего условного тарифа. Эти критерии могут основываться на следующих параметрах:
- устройство конечного пользователя
- страна конечного пользователя
- языковые предпочтения конечного пользователя
- Уменьшенное количество выборок среди всех пользователей
- Проверяет, вошел ли конечный пользователь в систему.
Для включения условных ставок внесите следующие изменения:
XML-файл правил расчета ставок : определяет условия, при которых применяются условные ставки.
Ценовой фид : Используйте элемент
<Rate>в сообщении транзакции для установки цен.Файл целевой страницы : Добавьте значения, специфичные для правил расчета тарифов, к вашим прямым ссылкам.
Условные ставки, специфичные для каждого устройства
Тарифы, специфичные для конкретного устройства, — это тарифы на проживание в отеле, которые видны и доступны для бронирования только пользователями на определенных устройствах, таких как мобильные телефоны, планшеты или компьютеры. Эти тарифы предоставляются партнерами Google, и конечные пользователи могут видеть и бронировать номера по тем же тарифам, специфичным для конкретного устройства, на сайте партнера.

условные ставки для отдельных стран
Тарифы для конкретных стран — это цены на отели, которые видны и доступны для бронирования только пользователям, ищущим отели из определенной страны. Google определяет страну по IP-адресу конечного пользователя. Эти тарифы предоставляются партнерами Google, и конечные пользователи могут видеть и бронировать номера по тем же тарифам для конкретных стран на собственных сайтах партнеров, посвященных этой стране.
Условные ставки, специфичные для конкретного языка
Тарифы, специфичные для конкретного языка, отображаются только пользователям, которые ищут отели, используя определенные языковые настройки в Google. Условия для конкретного языка определяются с помощью элемента <LanguageCode> .
В запросах With Context язык не указывается. Поэтому, если вы укажете <LanguageCode> в своих правилах расчета тарифов, то ответ With Context должен включать все соответствующие тарифы для конкретного языка.
пониженные условные ставки
Сниженные условные показатели видны только случайной выборке всех подходящих пользователей. Показатель выборки определяется с помощью элемента <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>
</Rate>
</Rates>
</Result>
</Transaction>
RoomBundle single
В следующем примере показано сообщение транзакции, содержащее единый тариф в рамках пакета услуг <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 multiple
В следующем примере показано сообщение транзакции, содержащее несколько тарифов в рамках пакета услуг <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 and it should be within 50 characters in length for optimal
performance. 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>
<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>
</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>
</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)
В этом примере происходит выбор между двумя целевыми страницами в зависимости от того, задан ли идентификатор правила расчета тарифа.
Для получения более подробной информации см. раздел «Использование переменных и условий» .