Пакеты номеров

Пакеты номеров позволяют вам определить несколько типов номеров для одного объекта размещения или объединить маршрут номера с функциями тарифа — дополнительными услугами, которые включают тариф и условия продажи — для ваших пользователей сверх стандартной цены.

Ключевые понятия и рабочий процесс

Пакеты номеров позволяют предлагать дополнительные комбинации типов номеров с различными пакетами услуг.

На следующем изображении показаны примеры пакетов номеров:

В этом примере первый пакет — это базовый номер со скидкой только для одного взрослого гостя. Второй номер представляет собой другой тип номера, в котором могут разместиться до трех взрослых гостей. Третий – это другой тип номера в том же объекте. Четвертый — это пакет «премиум» базового номера, который может включать такие удобства, как бесплатный завтрак или поздний выезд.

На следующих изображениях показаны примеры функций ставок:

Отображение пакетов номеров и характеристик тарифов в результатах поиска регулируется тем же процессом выбора, что и стандартные тарифы на номера.

Пакеты номеров

Вы определяете пакеты номеров и функции тарифов в сообщениях о транзакциях. Корневым элементом сообщения транзакции является <Transaction> .

Структура сообщения о транзакции зависит от того, что вы делаете: определяете метаданные о пакете номеров или функции тарифа или обновляете цены или доступность пакета номеров.

Метаданные
Определите пакет помещений и оцените метаданные функции с помощью <PackageData> в элементе <PropertyDataSet> . Дополнительную информацию см. в разделе Определение метаданных помещения и пакета . Пакеты помещений используют существующие элементы <RoomData> для описания физических помещений.
Цены и доступность
Определите цену и доступность пакета номеров с помощью элемента <RoomBundle> в <Result> для каждой комбинации пакета/маршрута. Дополнительную информацию см. в разделе Определение цен и доступности .

Стоимость базового номера, налоги и другие сборы являются обязательными в разделе <Result> , если они не используются с пакетами номеров, и могут быть удалены при использовании с пакетами номеров. Если вы внедряете пакеты номеров с использованием реальной учетной записи, выполните следующие действия:

  1. Включите стоимость базового номера, налоги и другие сборы в поле <Result> и добавьте один пакет номеров, соответствующий базовому пакету номеров.

  2. При необходимости определите дополнительные пакеты номеров в том же блоке <Result> для других типов номеров в этом объекте размещения или других пакетов услуг.

  3. После запуска пакета номеров удалите стоимость базового номера, налоги и другие сборы.

Метаданные пакета номеров

При определении пакетов номеров и характеристик тарифов вы обычно заранее определяете описание, дополнительные услуги, входящие в тариф, и другую информацию о пакете номеров. Эта информация известна как метаданные Room Bundle. Затем вы ссылаетесь на эти метаданные в своих обновлениях цен, но не включаете их в сообщения об обновлении цен.

При определении пакетов номеров используйте существующие элементы <RoomData> для описаний физических номеров и элементы <PackageData> для функций и условий тарифов, которые не являются частью описания физического номера.

Использование элементов <RoomData> и <PackageData> может значительно уменьшить размер списка отелей и канала цен на отели, поскольку уменьшает объем повторяющихся данных, отправляемых в сообщениях о транзакциях.

Например, такие данные, как название и описание комнаты, обычно повторяются для каждого маршрута. Вы можете использовать элементы <RoomData> и <PackageData> , чтобы один раз определить этот тип данных. Данные пакета номеров для конкретного маршрута затем объединяются с сохраненными определениями номеров и пакетов для отображения конечному пользователю.

Google сопоставляет ваши метаданные с данными вашего маршрута для отображения содержания ваших объявлений. Существует специальная обработка для объединения имен и описаний из элементов <RoomData> и <PackageData> , что позволяет описывать физическую комнату в <RoomData> , а функции оценки и сведения о пакете — в <PackageData> .

Если вы определяете как данные о номере, так и данные пакета для одного номера или пакета номеров, Google включает в вывод объявления и то, и другое, разделяя их дефисом.

Рекомендации по фото

При отправке фотографий комнат необходимо следовать следующим правилам, чтобы ваши фотографии были видны пользователям:

  • Отправьте фотографии для каждого типа номера, включая фотографии номеров, предназначенных для гостей с ограниченными физическими возможностями, например номеров, специально отведенных для людей с ограниченными возможностями, с различными сантехническими приспособлениями, такими как безбарьерная душевая кабина.

  • Включите как минимум четыре фотографии комнаты и хотя бы одну фотографию ванной комнаты.

  • Фотографии должны быть самого номера, а не объекта недвижимости. Самые важные фотографии — это кровать, вся комната, ванная комната, жилая площадь и вид из комнаты (с остальной частью комнаты на одной фотографии), а также, если применимо, балкон, патио или терраса. .

    Также полезно сфотографировать письменный стол, кухню, принадлежности для приготовления кофе/чая и особенности комнаты.

  • Избегайте фотографий людей и имущества (например, экстерьера или удобств на территории), достопримечательностей/туризма и еды.

  • Избегайте съемки объектов крупным планом, например, крупных планов бокалов.

  • Избегайте брендинга и брендов, хотя маркированные или фирменные туалетные принадлежности можно включить в фотографию, на которой запечатлена вся площадь ванной комнаты. На фотографиях не должно быть больших блоков текста, логотипов или водяных знаков.

  • Предоставьте стандартные, альбомные (горизонтальные) фотографии с широким углом обзора; избегайте эффекта «рыбий глаз» и искаженных фотографий. Снимайте фотографии в самом высоком разрешении для улучшения рейтинга. Не обязательно отправлять одну и ту же фотографию в разных разрешениях.

Приоритет данных

Данные о пакете номеров собираются из всех источников и объединяются с использованием правил приоритета для получения окончательных данных для данного отеля, маршрута и пакета номеров. Порядок следующий: от низшего к высшему приоритету:

  1. (Самый низкий) Данные партнера
  2. Данные о недвижимости
  3. <RoomData> , где <RoomID> соответствует <RoomID> в блоке <RoomBundle>
  4. <PackageData> , где <PackageID> соответствует <PackageID> в блоке <RoomBundle>
  5. (Самый высокий) <RoomBundle>

Определите цену и доступность

Чтобы определить цену и доступность пакета номеров, используйте элемент <RoomBundle> в сообщении транзакции для каждого пакета или комбинации маршрутов. Элемент <RoomBundle> должен находиться внутри элемента <Result> . Пример кода для двух элементов <RoomBundle> показан ниже. Обратите внимание, что в этом примере два элемента <RoomBundle> ссылаются на метаданные комнаты и пакета, используя <RoomID> и <PackageID> .

Для каждого <Result> содержащийся набор пакетов номеров перезаписывает существующий набор для этого объекта недвижимости или комбинации маршрутов. Если вы не определяете какие-либо пакеты номеров или функции тарифов в элементе <Result> , все пакеты номеров удаляются, и в результатах поиска отображается только базовый номер для этого отеля или маршрута.

Обязательно используйте такие элементы, как <Name> , чтобы сделать ваши пакеты номеров более привлекательными для потенциальных клиентов и убедиться, что они соответствуют целевой странице отеля. В этом примере вы определите имена и другую описательную информацию в метаданных.

<RatePlanID> является необязательным и представляет собой уникальный идентификатор комбинации номера и пакета. Мы настоятельно рекомендуем использовать RatePlanID в качестве переменной для создания URL-адреса динамической целевой страницы (ранее — точки продаж). Подробности см. в разделе «Использование переменных и условий» .

Следующие элементы являются необязательными в пакетах номеров:

<Baserate>
<Tax>
<OtherFees>
<RoomID>
<PackageID>
<Occupancy>
<OccupancyDetails>

При внедрении Room Bundle в реальном аккаунте удалите <Baserate> после включения Room Bundle.

<Result>
  <!-- Note: When using Room Bundles, the top level result price is no
       longer necessary. -->
  <Property>180054</Property>
  <Checkin>2017-10-07</Checkin>
  <Nights>2</Nights>
  <!-- Base Room Bundle -->
  <RoomBundle>
    <RoomID>060773</RoomID>
    <PackageID>P54321</PackageID>
    <Baserate currency="USD">199.99</Baserate>
    <Tax currency="USD">25.12</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>060773-P54321</RatePlanID>
  </RoomBundle>
  <!-- Premium Room Bundle -->
  <RoomBundle>
    <RoomID>436233</RoomID>
    <PackageID>P12345</PackageID>
    <!-- Price for 4 ("occupancy") -->
    <Baserate currency="USD">298.88</Baserate>
    <Tax currency="USD">42.12</Tax>
    <OtherFees currency="USD">10.00</OtherFees>
    <RatePlanID>436233-P12345</RatePlanID>
  </RoomBundle>
</Result>

Определите метаданные комнаты и пакета

Чтобы определить метаданные Room Bundle, используйте элементы <PackageData> и <RoomData> внутри элемента <PropertyDataSet> сообщения транзакции.

Вы определяете метаданные о номере и пакете в сообщении транзакции, которое отделено от данных о ценах и доступности . Если заранее определить эти данные, ваши обновления цен не должны включать повторяющуюся информацию, такую ​​​​как описания, URL-адреса фотографий, удобства и другие данные о каждом номере или пакете услуг для каждого маршрута.

Google сохраняет метаданные для вас и вставляет их в ваши объявления при их показе. Вы можете обновить метаданные комнаты и пакета в любое время с помощью нового сообщения о транзакции.

В сообщении о транзакции вы устанавливаете идентификатор пакета и идентификатор комнаты для каждого блока, на который вы затем ссылаетесь в своих блоках <Result> обновлений цен.

Если данные о номере и пакете изменяются (например, если вы добавляете новый тип номера в объект размещения или отправляете новое сообщение о транзакции, содержащее обновленные данные о номере и пакете), Google заменяет существующие метаданные о номере или пакете новыми данными. .

Google рекомендует определить метаданные во время первоначальной настройки. После предварительного определения метаданных вам нужно только ссылаться на значения <RoomID> и <PackageID> в обновлениях цен , а не включать всю эту информацию снова. Google использует эти идентификаторы для сопоставления номеров и пакетов номеров с сохраненными метаданными. Это может значительно уменьшить общий размер сообщений о транзакциях.

Поскольку цены на комбинации номеров или маршрутов меняются гораздо чаще, чем описания номеров или пакетов, определение метаданных один раз и последующее обращение к ним является гораздо более эффективным использованием сообщений о транзакциях. Кроме того, такие ошибки, как несовпадение описаний комнат, можно устранить, используя метаданные, а не определяя данные в режиме реального времени.

Рекомендуемый и наиболее эффективный метод определения метаданных и цен отдельно показан ниже:

<!-- Efficient method of defining Room Bundles -->
<!----- Occupancy of 2 and 4 example ------>

<Transaction timestamp="2019-04-18T16:20:00-04:00" id="12345678">
  <!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
  <!-- Note: Once defined it does not have to be repeated for future Transaction Messages. -->
  <!--       PropertyDataSets can also be defined and sent in their own Transaction Message -->
  <!--       separately from pricing. Google can be configured to pull just PropertyDataSets -->
  <!--       once per day (or on a predefined frequency). -->
  <PropertyDataSet>
    <Property>180054</Property>
    <!-- Can be reused by multiple Room Bundles -->
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Queen Room - Non-Smoking" language="en"/>
        <Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <!-- Room can accommodate 4, but bundle is for 2 -->
      <Capacity>4</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/imageQueen.jpg</URL>
        <Caption>
          <Text text="A bright and breezy way to enjoy your mornin'
            cuppa tea." language="en"/>
          <Text text="Une façon lumineuse et aérée pour profiter
            de votre journée tasse de thé." language="fr"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <RoomData>
      <RoomID>436233</RoomID>
      <Name>
        <Text text="Premium King Room - Non-Smoking" language="en"/>
        <Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <!-- Room can accommodate 4 and bundle is for 4 -->
      <Capacity>4</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/imageKing.jpg</URL>
        <Caption>
          <Text text="A bright and breezy way to enjoy your mornin'
            cuppa tea." language="en"/>
          <Text text="Une façon lumineuse et aérée pour profiter
            de votre journée tasse de thé." language="fr"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <!-- Can be reused by multiple Room Bundles -->
    <PackageData>
      <PackageID>P54321</PackageID>
      <Occupancy>2</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="7"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
    <PackageData>
      <PackageID>P12345</PackageID>
      <Occupancy>4</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="1"
           refundable_until_time="18:00:00"/>
      <BreakfastIncluded/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
  </PropertyDataSet>

    <!-- Efficient method of defining Room Bundles -->
    <!-- Part 2: Reference RoomData and PackageData through ID -->
  <Result>
    <Property>180054</Property>
    <Checkin>2017-10-07</Checkin>
    <Nights>2</Nights>

    <!-- Base Room Bundle -->
    <RoomBundle>
      <RoomID>060773</RoomID>
      <PackageID>P54321</PackageID>
      <Baserate currency="USD">199.99</Baserate>
      <Tax currency="USD">25.12</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>060773-P54321</RatePlanID>
    </RoomBundle>
    <!-- Premium Room Bundle -->
    <RoomBundle>
      <RoomID>436233</RoomID>
      <PackageID>P12345</PackageID>
      <!-- Price for 4 ("occupancy") -->
      <Baserate currency="USD">298.88</Baserate>
      <Tax currency="USD">42.12</Tax>
      <OtherFees currency="USD">10.00</OtherFees>
      <RatePlanID>060773-P12345</RatePlanID>
    </RoomBundle>
    <!-- Continue providing all available RoomBundle rates under matched
         property for any other occupancies -->
  </Result>
</Transaction>

Вместимость и вместимость

При определении пакетов номеров вы должны понимать разницу между заполняемостью и вместимостью :

Размещение
Количество гостей, на которых рассчитан пакет номеров. Например, «Пакет для молодоженов» рассчитан на двоих. Вы устанавливаете значение занятости пакета с помощью дочернего элемента <Occupancy> элементов <PackageData> или <RoomBundle> .
Емкость
Максимальное количество человек, которое физически может разместиться в помещении. Вместимость помещения всегда равна или превышает вместимость. Например, «Люкс для молодоженов» в вашем отеле рассчитан максимум на шесть человек, но вы платите за пакет для двух гостей. Значение емкости пакета можно установить с помощью дочернего элемента <Capacity> элемента <RoomData> .

При расчете цены на пакет номеров необходимо указать цену за количество гостей, на которое рассчитан пакет (значение, указанное в элементе <Occupancy> пакета). Если для <Occupancy> установлено значение «два», то цена в этом пакете должна быть рассчитана на двух человек. Вы не можете установить <Occupancy> для четырех гостей и установить цену пакета для двух гостей.

Общие комнаты

Вы также используете «Вместимость» и «Вместимость» в пакетах номеров, чтобы устанавливать цены на проживание в общих комнатах, например, в общежитии. Например, чтобы установить цену на человека для комнаты в общежитии с 8 кроватями, вы должны установить Occupancy равным 1 , а вместимость — 8 и указать ее как таковую в имени <RoomData> . См. пример .

Обновить пакеты номеров

В этом разделе описывается, как удалить пакет номеров, который больше не доступен, и как обновить цену существующего пакета номеров.

Удаление пакета номеров

Пакеты номеров отличаются от цен на отели тем, как вы их удаляете.

Чтобы удалить комбинацию номеров или маршрута из инвентаря, вы устанавливаете для <Result> элемента <Baserate> значение -1 . Чтобы удалить пакет номеров для данного номера или маршрута, удалите элемент <RoomBundle> из блока <Result> в сообщении транзакции.

Пакеты номеров в ваших фидах данных считаются наборами, число которых варьируется от 0 до десятков. Отправляя пакеты номеров в Google, вы отправляете текущий полный набор. Вы не меняете значения отдельного пакета номеров, чтобы пометить ранее доступный пакет как недоступный. Какой бы набор пакетов ни находился в самом последнем сообщении транзакции, он заменяет текущий набор.

Например, есть пакеты A, B, C и D. Сначала вы отправляете сообщение, в котором определяется набор пакетов номеров A, B, C и D. Позже, если пакет B распродается, вы повторно отправляете весь набор вместе с пакетами. Только А, С и D. Если все пакеты номеров распроданы, отправьте пустой набор пакетов номеров.

Корректировка цен

Чтобы изменить цену пакета номеров, установите новый <Baserate> в элементе <Result> .

Каждый раз, когда вы обновляете блок <Result> номера/маршрута в своих сообщениях о транзакциях, вы должны включать полный набор доступных пакетов номеров для каждого <Result> . Google заменяет существующий набор пакетов номеров новым набором. Если вы не включите какие-либо пакеты номеров в <Result> , Google удалит все пакеты номеров для этого номера или маршрута.

Обновления метаданных

Вы обновляете метаданные Room Bundle в ответ на <Query> от Google.

Вы отвечаете на сообщение запроса сообщением транзакции, которое определяет метаданные номера и пакета для указанных отелей. Дополнительную информацию см. в разделе Сообщения запроса .