Paquetes de habitaciones

Los paquetes de habitaciones te permiten definir varios tipos de habitaciones para una sola propiedad o combinar el itinerario de una habitación con funciones de tarifas (servicios adicionales que incluyen una tarifa y condiciones de venta) a los usuarios más allá de un precio estándar.

Flujo de trabajo y conceptos clave

Con los paquetes de habitaciones, puedes ofrecer combinaciones adicionales de tipos de habitaciones físicas con diferentes paquetes de servicios.

En la siguiente imagen, se muestran ejemplos de paquetes de habitaciones:

En este ejemplo, el primer paquete es la habitación base, con un descuento para un solo adulto. El segundo es un tipo de habitación diferente que está disponible para un máximo de tres ocupantes adultos. El tercero es otro tipo de habitación dentro de la misma propiedad. El cuarto es un paquete "premium" de la sala base, que puede incluir comodidades como desayuno incluido o una confirmación de la compra posterior.

En las siguientes imágenes, se muestran ejemplos de funciones de tarifas:

La visualización de paquetes de habitaciones y funciones de tarifas en los resultados de la búsqueda se rige por el mismo proceso de selección que las tarifas de habitaciones estándar.

Paquetes de habitaciones

Puedes definir los paquetes de habitaciones y las funciones de tarifas en los mensajes de transacción. El elemento raíz de un mensaje de transacción es <Transaction>.

La estructura del mensaje de transacción depende de lo que estés haciendo: definir los metadatos sobre el paquete de habitaciones o la función de tarifa, o actualizar el precio o la disponibilidad del paquete de habitaciones.

Metadata
Define los paquetes de habitaciones y los metadatos de funciones con <PackageData> en un elemento <PropertyDataSet>. Para obtener más información, consulta Cómo definir los metadatos de habitaciones y paquetes. Los paquetes de habitaciones usan elementos <RoomData> existentes para las descripciones de las salas físicas.
Precios y disponibilidad
Define los precios y la disponibilidad del paquete de habitaciones con el elemento <RoomBundle> en una <Result> para cada combinación de paquete/itinerario. Para obtener más información, consulta Define los precios y la disponibilidad.

La tarifa, los impuestos y otras tarifas de la habitación base son obligatorios en <Result> cuando no se usan con los paquetes de habitaciones y se pueden quitar cuando se usan con paquetes de habitaciones. Si implementas paquetes de habitación con una cuenta activa, sigue estos pasos:

  1. Incluye la tarifa de la habitación base, los impuestos y otras tarifas en <Result> y agrega un paquete de habitaciones que coincida con el paquete base.

  2. Si es necesario, define paquetes de habitación adicionales dentro del mismo bloque <Result> para otros tipos de habitaciones de esa propiedad o diferentes paquetes de servicios.

  3. Después de iniciar el paquete de habitaciones, quita la tarifa de la habitación base, los impuestos y otras tarifas.

Metadatos del paquete de habitación

Cuando defines paquetes de habitaciones y funciones de tarifas, por lo general, defines la descripción, los servicios adicionales que forman parte de la tarifa y otra información sobre el paquete de habitaciones con anticipación. Esta información se conoce como metadatos de paquete de Room. Luego, debes hacer referencia a estos metadatos en las actualizaciones de precios, pero no debes incluirlos en los mensajes de actualización de precios.

Cuando definas los paquetes de habitaciones, usa elementos <RoomData> existentes para las descripciones de las salas físicas y elementos <PackageData> para las características de las tarifas y los términos que no formen parte de la descripción de las habitaciones físicas.

El uso de los elementos <RoomData> y <PackageData> puede reducir significativamente el tamaño de tu lista de hoteles y del feed de precios de hoteles, ya que reduce la cantidad de datos repetitivos que se envían en los mensajes de transacción.

Por ejemplo, los datos, como el nombre y la descripción de una habitación, suelen repetirse para cada itinerario. Puedes usar los elementos <RoomData> y <PackageData> para definir este tipo de datos una vez. Luego, los datos del paquete de habitaciones específicos del itinerario se combinan con las definiciones de la habitación y el paquete almacenados para mostrarse al usuario final.

Google hace coincidir tus metadatos con los datos específicos de tu itinerario para renderizar el contenido de tus anuncios. Hay un procesamiento especial para combinar los nombres y las descripciones de los elementos <RoomData> y <PackageData>, lo que permite que se describa la sala física en <RoomData> y que las características de las tarifas y los detalles del paquete estén en <PackageData>.

Si defines los datos de la habitación y del paquete para una sola habitación o un paquete de habitación, Google incluirá ambos en la salida del anuncio, separados por un guion.

Lineamientos relacionados con las fotos

A continuación, se incluyen algunos lineamientos que debes seguir cuando envíes fotos de las salas para asegurarte de que los usuarios las vean:

  • Envía fotos para cada tipo de habitación, incluidas las de otras habitaciones accesibles, como las designadas como accesibles con distintos accesorios, como ducha integrada.

  • Incluye al menos cuatro fotos de la habitación y al menos una del baño.

  • Las fotos deben ser de la habitación, no de la propiedad. Las fotos más importantes son de la cama, toda la habitación, el baño, el espacio de estar y la vista desde la habitación (con el resto de la habitación en la misma foto) y, si corresponde, desde el balcón, el patio o la terraza.

    También es útil tomar fotos del escritorio, la cocina, las cafeteras y las características distintivas de las habitaciones.

  • Evita las fotos de personas o propiedades, como servicios de exteriores o de propiedades, turismo o turismo y comida.

  • Evite las tomas en primer plano de objetos, como los primeros planos de copas.

  • Evita el desarrollo de la marca y las marcas, aunque se pueden incluir los artículos de tocador etiquetados o de marca en una foto que capture todo el área del baño. Las fotos no deben incluir grandes bloques de texto, logotipos ni marcas de agua.

  • Proporciona fotos estándar (horizontales) y horizontales con un campo visual amplio; evita los ojos de pez y las fotos distorsionadas. Toma fotos con la resolución más alta para mejorar la clasificación. No es necesario que envíes la misma foto en varias resoluciones.

Precedencia de los datos

Los datos del paquete de habitaciones se recopilan de todas las fuentes y se combinan mediante reglas de prioridad a fin de producir los datos finales para un hotel, un itinerario y un paquete de habitaciones determinados. El orden es el siguiente, de menor a mayor precedencia:

  1. Datos (menos) del socio
  2. Datos de la propiedad
  3. <RoomData>, en la que <RoomID> coincide con <RoomID> en el bloque <RoomBundle>
  4. <PackageData>, en la que <PackageID> coincide con <PackageID> en el bloque <RoomBundle>
  5. (Más alta) <RoomBundle>

Define los precios y la disponibilidad

Para definir los precios y la disponibilidad del paquete de habitaciones, usa un elemento <RoomBundle> en un mensaje de transacción para cada combinación de paquete o itinerario. El elemento <RoomBundle> debe estar dentro del elemento <Result>. A continuación, se muestra el código de muestra para dos elementos <RoomBundle>. Ten en cuenta que, en este ejemplo, los dos elementos <RoomBundle> hacen referencia a metadatos de salas y paquetes con <RoomID> y <PackageID>.

Para cada <Result>, el conjunto contenido de los paquetes de habitaciones reemplaza el conjunto existente para esa combinación de propiedad o itinerario. Si no defines ningún paquete de habitación ni características de tarifa en el elemento <Result>, se quitarán todos los paquetes de habitación y solo se mostrará la habitación básica de ese hotel o itinerario en los resultados de la búsqueda.

Asegúrate de usar elementos como <Name> para que tus paquetes de habitaciones sean más atractivos para los clientes potenciales y asegúrate de que coincidan con la página de destino del hotel. En este ejemplo, definirías los nombres y otra información descriptiva en los metadatos.

<RatePlanID> es opcional y representa el identificador único de una combinación de habitación y paquete. Te recomendamos que uses RatePlanID como variable para crear la URL de tu página de destino dinámica (anteriormente, el punto de venta). Para obtener más información, consulta Usa variables y condiciones.

Los siguientes elementos son opcionales en los paquetes de habitaciones:

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

Cuando implementes el paquete de habitación en una cuenta activa, quita <Baserate> después de que esté habilitado.

<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>

Cómo definir metadatos de habitaciones y paquetes

Para definir los metadatos del paquete de habitaciones, usa los elementos <PackageData> y <RoomData> dentro del elemento <PropertyDataSet> de un mensaje de transacción.

Defines los metadatos de habitaciones y paquetes en un mensaje de transacción que es independiente de los datos de precios y disponibilidad. Si defines estos datos con anticipación, no es necesario que las actualizaciones de precios incluyan información repetitiva, como descripciones, URLs de fotos, comodidades y otros datos sobre cada habitación o paquete para cada itinerario.

Google almacena los metadatos por ti y los inserta en tus anuncios cuando se muestran. Puedes actualizar los metadatos de las salas y de los paquetes en cualquier momento con un nuevo mensaje de transacción.

En el mensaje de transacción, configuras un ID de paquete y un ID de habitación en cada bloque al que luego hagas referencia en los bloques <Result> de actualizaciones de precios.

Si los datos de la habitación y el paquete cambian (por ejemplo, si agregas un tipo de habitación nuevo a una propiedad y envías un mensaje de transacción nuevo que contiene los datos actualizados de la habitación y del paquete), Google reemplazará los metadatos existentes por una habitación o un paquete con los datos nuevos.

Google recomienda que definas los metadatos durante la configuración inicial. Después de definir los metadatos, solo debes hacer referencia a los valores <RoomID> y <PackageID> en las actualizaciones de precios, en lugar de volver a incluir toda esa información. Google usa esos ID para hacer coincidir las habitaciones y los paquetes de habitaciones con los metadatos almacenados. Esto puede reducir en gran medida el tamaño general de los mensajes de transacción.

Dado que los precios de las combinaciones de habitaciones o itinerarios cambian con mucha más frecuencia que las descripciones de las habitaciones o los paquetes, definir los metadatos una vez y hacer referencia a ellos es un uso mucho más eficiente de los mensajes de transacción. Además, los errores como la discrepancia de descripciones de salas se pueden eliminar mediante el uso de metadatos en lugar de definir los datos intercalados.

A continuación, se muestra el método recomendado y más eficiente para definir los metadatos y los precios por separado:

<!-- 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>

Ocupación y capacidad

Cuando definas los paquetes de habitaciones, debes comprender la diferencia entre ocupación y capacidad:

Ocupación
Es la cantidad de huéspedes a los que se aplicará un paquete de habitación. Por ejemplo, el "Paquete Honeymoon" tiene una ocupación de dos. Puedes establecer el valor de la ocupación de un paquete con el elemento secundario <Occupancy> <PackageData> o <RoomBundle>.
Capacidad
La cantidad máxima de personas que puede alojar una habitación física. La capacidad de una habitación siempre es igual o mayor que la ocupación. Por ejemplo, el “Paquete Honeymoon” de tu hotel tiene una capacidad máxima de seis personas, pero el precio de un paquete es para dos huéspedes. Establece el valor de la capacidad de un paquete con el elemento secundario <Capacity> del elemento <RoomData>.

Cuando estableces un precio de un paquete de habitaciones, debes establecer el precio de la cantidad de huéspedes a los que está destinado el paquete (el valor especificado en el elemento <Occupancy> del paquete). Si <Occupancy> se establece en dos, el precio en ese paquete debe ser para dos personas. No puedes establecer <Occupancy> en cuatro invitados y establecer el precio del paquete para dos invitados.

Salas compartidas

También puedes usar la ocupación y la capacidad de los paquetes de habitaciones para establecer los precios de las habitaciones compartidas, por ejemplo, el hostal. Por ejemplo, a fin de establecer un precio por persona para un dormitorio que tiene 8 camas, debes establecer la ocupación en 1 y la capacidad en 8, e identificarla como tal en el nombre de <RoomData>. Consulta el ejemplo.

Actualizar paquetes de habitaciones

En esta sección, se describe cómo quitar un paquete de habitación que ya no está disponible y cómo actualizar el precio de uno existente.

Eliminación del paquete de habitaciones

Los paquetes de habitaciones difieren de los precios de los hoteles en la forma en que los quitas.

Para quitar una combinación de habitación o itinerario del inventario, establece el <Baserate> del elemento <Result> en -1. Para quitar un paquete de habitación de una habitación o un itinerario determinado, quita el elemento <RoomBundle> del bloque <Result> en el mensaje de transacción.

Los paquetes de habitaciones en tus feeds de datos se consideran un conjunto, que puede variar de 0 a decenas. Cuando envías paquetes de habitaciones a Google, envías el conjunto actual completo. No debes cambiar los valores de un paquete de habitación individual para marcar uno que ya está disponible como no disponible. Cualquier conjunto de paquetes que se encuentre en el mensaje de transacción más reciente reemplaza el conjunto actual.

Por ejemplo, existen los paquetes A, B, C y D. Primero, envía un mensaje que defina el conjunto de paquetes de habitaciones A, B, C y D. Más adelante, si el paquete B se agota, vuelve a enviar todo el conjunto con los paquetes A, C y D. Si todos los paquetes de habitaciones se agotaron, envía un conjunto vacío de paquetes de habitaciones.

Ajustes de precio

Para cambiar el precio de un paquete de habitaciones, establece el elemento <Baserate> nuevo en el elemento <Result>.

Cada vez que actualizas el bloque <Result> de una sala o itinerario en tus mensajes de transacción, debes incluir un conjunto completo de paquetes de habitaciones disponibles para cada <Result>. Google reemplaza el conjunto existente de paquetes de habitaciones con el conjunto nuevo. Si no incluyes ningún paquete de habitación en <Result>, Google quitará todos los paquetes de habitaciones de esa habitación o itinerario.

Actualizaciones de metadatos

Actualizas los metadatos del paquete de habitaciones con una respuesta a una <Query> de Google.

Respondes a un mensaje de consulta con un mensaje de transacción que define los metadatos del paquete y de la habitación para los hoteles especificados. Para obtener más información, consulta Mensajes de consulta.