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 características de tarifas (servicios adicionales que incluyen una tarifa y condiciones de venta) para los usuarios más allá del precio estándar.

Flujo de trabajo y conceptos clave

Con los paquetes de habitación, 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 descuento para un solo inquilino adulto. El segundo es un tipo de habitación diferente que está disponible para hasta tres ocupantes adultos. El tercero es otro tipo de habitación dentro de la misma propiedad. El cuarto es un paquete "premium" de la habitación base, que puede incluir comodidades como desayuno incluido o una salida posterior.

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

La visualización de los paquetes de habitaciones y las 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 habitación

Defines 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 habitación o la función de tarifa, o actualizar el precio o la disponibilidad del paquete de habitación.

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

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

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

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

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

Metadatos del paquete de habitación

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

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

El uso de los elementos <RoomData> y <PackageData> puede reducir significativamente el tamaño de tu lista de hoteles y tu 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 se suelen repetir para cada itinerario. Puedes usar los elementos <RoomData> y <PackageData> para definir este tipo de datos una vez. Luego, los datos del paquete de habitación específicos de itinerarios se combinan con las definiciones de habitación y paquete almacenadas para mostrárselos al usuario final.

Google hace coincidir los metadatos con los datos específicos del itinerario para renderizar el contenido de los anuncios. Se realiza un procesamiento especial para combinar los nombres y las descripciones de los elementos <RoomData> y <PackageData>, lo que permite que la habitación física se describa en <RoomData> y que las funciones de calificación y los detalles del paquete estén en <PackageData>.

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

Lineamientos relacionados con las fotos

Cuando envíes fotos de las habitaciones, estos son algunos lineamientos que debes seguir para asegurarte de que tus fotos se muestren a los usuarios:

  • Envía fotos de cada tipo de habitación, incluidas las de habitaciones accesibles (por ejemplo, habitaciones accesibles designadas con varios accesorios de baño, como ducha integrada).

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

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

    También es útil capturar fotos del escritorio, la cocina, las cafeteras y teteras, y las características distintivas de la habitación.

  • Evita tomar fotos de personas y propiedades, por ejemplo, de comodidades exteriores o de propiedades, turismo o turismo, y comida.

  • Evita los primeros planos de objetos, como primeros planos de copas.

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

  • Proporciona fotos estándar horizontales (horizontales) con un campo visual amplio. Evita las fotos distorsionadas y de ojo de pez. Captura 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.

Prioridad de los datos

Los datos del paquete de habitación se recopilan de todas las fuentes y se combinan, mediante reglas de prioridad, para generar los datos finales de un hotel, itinerario y paquete de habitación determinados. El orden es el siguiente, desde la prioridad más baja hasta la más alta:

  1. Datos de socios (valor más bajo)
  2. Datos de la propiedad
  3. <RoomData>, donde <RoomID> coincide con <RoomID> en el bloque <RoomBundle>
  4. <PackageData>, donde <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 habitación, usa un elemento <RoomBundle> en un mensaje Transaction para cada combinación de paquete o itinerario. El elemento <RoomBundle> debe estar dentro del elemento <Result>. A continuación, se ofrece un código de muestra para dos elementos <RoomBundle>. Ten en cuenta que, en este ejemplo, los dos elementos <RoomBundle> hacen referencia a los metadatos de habitación y paquete mediante <RoomID> y <PackageID>.

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

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 nombres y otra información descriptiva en los metadatos.

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

Los siguientes elementos son opcionales en los paquetes de habitación:

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

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

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

Define los metadatos de habitaciones y paquetes

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

Los metadatos de habitaciones y paquetes se definen en un mensaje de transacción que está separado de los datos de precios y disponibilidad. Cuando defines estos datos con anticipación, las actualizaciones de precios no necesitan incluir información repetitiva, como descripciones, URLs de fotos, comodidades y otros datos sobre todos los itinerarios y las habitaciones o paquetes.

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

En el mensaje Transaction, estableces un ID de paquete y un ID de habitación en cada bloque al que luego haces referencia en tus bloques <Result> de actualizaciones de precios.

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

Google recomienda que definas los metadatos durante la configuración inicial. Después de definir previamente los metadatos, solo necesitas hacer referencia a los valores <RoomID> y <PackageID> en tus actualizaciones de precios, en lugar de incluir toda esa información de nuevo. Google usa esos IDs 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 tus mensajes de transacción.

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

A continuación, se muestra el método recomendado y más eficiente para definir metadatos y 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 defines paquetes de habitaciones, debes comprender la diferencia entre ocupación y capacidad:

Ocupación
Indica la cantidad de huéspedes a los que está destinado un paquete de habitación. Por ejemplo, el “Paquete de luna de miel” tiene una ocupación de dos. Para establecer el valor de la ocupación de un paquete, usa el elemento secundario <Occupancy> de los elementos <PackageData> o <RoomBundle>.
Capacidad
Es la cantidad máxima de personas a las que puede acomodar físicamente una habitación. La capacidad de una habitación siempre es igual o superior a la ocupación. Por ejemplo, la “Suite de luna de miel” 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 se establece el precio de un paquete de habitación, se debe proporcionar el precio correspondiente a 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 de ese paquete debe ser para dos personas. No puedes establecer <Occupancy> como cuatro huéspedes y establecer el precio del paquete para dos huéspedes.

Habitaciones compartidas

También puedes usar la ocupación y la capacidad en los paquetes de habitaciones para establecer precios de alojamientos compartidos, por ejemplo, un hostal. Por ejemplo, para establecer un precio por persona en un dormitorio con 8 camas, debes establecer Ocupación en 1 y Capacidad en 8, y, luego, identificarlo como tal en el nombre <RoomData>. Consulta este 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 habitación

Los paquetes de habitaciones son diferentes de los precios de hoteles en cuanto a 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 determinados, quita el elemento <RoomBundle> del bloque <Result> en el mensaje de transacción.

Los paquetes de habitaciones de tus feeds de datos se consideran un conjunto, cuyo número puede variar entre 0 y decenas de ellos. Cuando envías paquetes de habitaciones a Google, se envía el conjunto completo actual. No se cambian los valores de un paquete de habitación individual para marcar como no disponible otro que antes estaba disponible. Cualquier conjunto de paquetes que se encuentre en el mensaje de transacción más reciente reemplaza el conjunto actual.

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

Ajustes de precio

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

Cada vez que actualizas el bloque <Result> de una sala de reuniones o un 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 por el nuevo conjunto. Si no incluyes paquetes de habitaciones en <Result>, Google quitará todos los paquetes de esa habitación o itinerario.

Actualizaciones de metadatos

Actualizas los metadatos del paquete de habitación con una respuesta a un <Query> de Google.

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