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) para los usuarios más allá de un precio estándar.

Conceptos clave y flujo de trabajo

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

Ejemplos

En las siguientes imágenes, se muestran ejemplos de paquetes de habitaciones en computadoras y dispositivos móviles:

Paquetes de habitaciones con imágenes

Este ejemplo es la versión para dispositivos móviles de los paquetes de Room, que consta de todos los diferentes tipos de habitaciones para la cantidad requerida de ocupantes y sus respectivas imágenes de habitaciones.

Nota: Los paquetes de habitaciones sin imágenes se reemplazan por una imagen de marcador de posición de cama.

Calificar funciones

En las siguientes imágenes, se muestran ejemplos de atributos de tarifa:

La aparició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 habitación 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 habitaciones o la función de tarifas, o actualizar los precios o la disponibilidad del paquete de habitaciones.

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 habitación y paquete. 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 de los paquetes de habitaciones con el elemento <RoomBundle> en un <Result> para cada combinación de paquete o itinerario. Para obtener más información, consulta Cómo definir 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 paquetes de habitaciones y se pueden quitar cuando se usan con paquetes de habitaciones. Si implementas paquetes de Room con una cuenta activa, sigue estos pasos:

  1. Incluye la tarifa, los impuestos y otras tarifas de la habitación base en <Result> y agrega un paquete de habitaciones que coincida con el paquete de habitaciones 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, 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 los metadatos del paquete de habitación. Luego, puedes hacer referencia a estos metadatos en tus 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 el feed de precios de hoteles, ya que disminuye 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 habitaciones específicos de itinerarios se combinan con las definiciones almacenadas de la habitación y el paquete para mostrárselos al usuario final.

Google busca coincidencias entre tus metadatos y tus datos específicos del itinerario para renderizar el contenido de tus 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 las habitaciones accesibles, por ejemplo, las designadas como accesibles con varios accesorios de baño, como duchas accesibles.

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

  • Las fotos deben ser de la habitación en sí, 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 tomar fotos del escritorio, la cocina, las cafeteras y las distintas características 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 los de cristalería.

  • 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 horizontales (estándares) con un campo visual amplio. Evita las fotos distorsionadas y con efecto 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, de menor a mayor prioridad:

  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>, en el 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 de los paquetes de habitaciones, usa un elemento <RoomBundle> en un mensaje de 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 propiedad o combinación de itinerarios. 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 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 detalles, 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 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 la habitación y del paquete

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.

Debes definir los metadatos de habitaciones y paquetes 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 de transacción, estableces un ID de paquete y un ID de habitación en cada bloque al que luego harás referencia en tus bloques <Result> de actualizaciones de precios.

Si cambian los datos de la habitación y el paquete (por ejemplo, si agregas un tipo de habitación nuevo 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 con 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 definas los paquetes de habitaciones, debes comprender la diferencia entre la ocupación y la capacidad:

Ocupación
Es la cantidad de huéspedes a los que está destinado un paquete de habitaciones. Por ejemplo, el “Paquete de luna de miel” tiene una ocupación de dos personas. 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 estableces el precio de un paquete para dos huéspedes. Establece el valor de la capacidad de un paquete con el elemento secundario <Capacity> del elemento <RoomData>.

Cuando establezcas el precio de un paquete de habitaciones, debes indicar el precio de la cantidad de invitados para 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 con habitaciones compartidas, por ejemplo, un hostal. A modo de ejemplo, para establecer un precio por persona para una habitación compartida que tiene 8 camas, debes establecer la ocupación en 1 y la capacidad en 8, y así identificarla en el nombre <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 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, debes establecer 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, envías el conjunto completo y 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 habitaciones, envía un conjunto vacío de paquetes de habitaciones.

Ajustes de precios

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 habitación 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 Room por el nuevo. Si no incluyes ningún paquete de habitaciones en <Result>, Google quitará todos los paquetes de habitaciones para esa habitación o itinerario.

Actualizaciones de metadatos

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

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