Referencia de datos estructurados de precios de hoteles

En esta página, se proporciona una referencia para agregar lenguaje de marcado de datos estructurados a las propiedades datos de precios.

Descripción general

Los datos estructurados de precios de hoteles se usan para explicar, validar y mostrar en detalle los precios de hoteles que aparecen en tu sitio web, independientemente de la interfaz de usuario. Esta también incluye el precio base, las tarifas, las habitaciones, las tarifas y campos relacionados con impuestos y precios.

Google recomienda que los socios anoten sus páginas web con Datos estructurados que los rastreadores pueden leer automáticamente proporcionado por schema.org, para recopilar precios con precisión de tus páginas web.

Esto permite escalar las validaciones de precisión del precio mejorando la la confiabilidad de los rastreadores. El beneficio es un aumento en la cantidad de Validaciones de precisión del precio y capacidad de depurar problemas de precisión del precio de forma directa y tener una puntuación de precisión del precio coherente.

Si aún no estás familiarizado con los datos estructurados, obtén más información sobre el vocabulario de datos estructurados y formato.

Hoteles de Google recomienda el formato JSON-LD para anotar tus páginas web. Consulta Formatos admitidos para obtener más información sobre otros formatos aceptables. En esta documentación, se proporciona contenido de referencia detallado específico para la implementación de datos estructurados en hoteles.

Los datos estructurados de Hotel se usan para anotar los campos específicos del hotel en tu página web. Los datos estructurados de Hotel tienen las siguientes propiedades:

Los datos estructurados de HotelRoom se usan para anotar campos específicos de salas en tu página web.

Los datos estructurados de HotelRoom tienen las siguientes propiedades:

Datos estructurados del hotel

Propiedades name y address

Las propiedades name y address se usan para anotar el nombre del hotel y ubicación. Las siguientes son las propiedades name y address:

  "@type": "Hotel",
    "name": "hotel-name",
    "identifier": "hotel-id-1234",
    "address": {
      "@type": "PostalAddress",
      "addressCountry": "XX",
      "addressLocality": "City Name",
      "addressRegion": "State Name",
      "postalCode": "01234",
      "streetAddress": "1234 Main St."
    },

Sintaxis

Las propiedades name y address usan la siguiente sintaxis:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "hotel-name",
  "identifier": "hotel-id-1234",
  "address": {
    "@type": "PostalAddress",
    "addressCountry": "XX",
    "addressLocality": "City Name",
    "addressRegion": "State Name",
    "postalCode": "01234",
    "streetAddress": "1234 Main St."
  },
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"]
    ...
  }
}

Propiedades

Las siguientes son las propiedades name y address:

Propiedad ¿Obligatorio? Tipo Descripción
Hotel.name Required string El nombre del hotel
Hotel.identifier Required string

Los socios ID de hotel.

El identificador debe ser una cadena única por hotel y debe coincidir exactamente con la cadena que se usa en el feed de precios.

Hotel.address Optional PostalAddress Indica la dirección o ubicación del hotel.

Ejemplos

Nombre y dirección

El siguiente es un ejemplo básico de cómo agregar las anotaciones name y address:

{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Mountain Hotel",
"identifier": "hotel-id-1234",
"address": {
  "@type": "PostalAddress",
  "addressCountry": "AT",
  "addressLocality": "Innsbruck",
  "addressRegion": "Tyrol",
  "postalCode": "6020",
  "streetAddress": "Technikerstrasse 21"
},
"makesOffer": {
  "@type": ["Offer", "LodgingReservation"],
  "checkinTime": "2023-03-10 15:00:00",
  "checkoutTime": "2023-03-16 10:00:00",
  "priceSpecification": {
    "@type": "CompoundPriceSpecification",
    "price": 1222.74,
    "priceCurrency": "USD"
  }
}
}

makesOffer propiedad

Las anotaciones makesOffer se usan para el lenguaje de marcado los itinerarios de tu hotel.

  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/InStock",
    ...
  }

Sintaxis

La propiedad makesOffer usa la siguiente sintaxis:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "hotel-name",
  "identifier": "hotel-id-1234",
  "address": { ... },
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/InStock",
    "priceSpecification": { ... }
  }
}

Propiedades

Las siguientes son las propiedades de makesOffer:

Propiedad ¿Obligatorio? Tipo Descripción
makesOffer Required Offer and LodgingReservation

Son las ofertas de hoteles para el itinerario determinado.

La propiedad makesOffer puede contener un array de ofertas.

LodgingReservation.checkinTime Required DateTime

Indica la hora de entrada en la zona horaria del usuario. Si tu zona horaria no es se menciona, entonces, se considera la zona horaria del hotel.

LodgingReservation.checkoutTime Required DateTime

Indica la hora de salida en la zona horaria del usuario. Si tu zona horaria no es se menciona, entonces, se considera la zona horaria del hotel.

Ejemplo

makesOffer

El siguiente es un ejemplo básico para anotar tus ofertas de hoteles. Puedes especificar varias ofertas para un itinerario, pero debes especificar la Es la tasa que muestra Google primero seguida de otras tarifas. El importe del precio especificado incluye todos los impuestos aplicables.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "Mountain Hotel",
  "identifier": "hotel-id-1234",
  "address": { ... },
  "makesOffer": [
    {
      "@type": ["Offer", "LodgingReservation"],
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1222.74,
        "priceCurrency": "USD"
      }
    },
    {
      "@type": ["Offer", "LodgingReservation"],
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1200.74,
        "priceCurrency": "USD"
      }
    }
  ]
}

Hotel priceSpecification propiedad

Esta propiedad se usa para anotar la información de precios de tu hotel o hotel salas de reuniones. Hay dos propiedades adicionales que se requieren para anotar tus impuestos y precios. Debes usar CompoundPriceSpecification para especificar la información de los precios totales, como la tarifa base, los impuestos y los descuentos. Cómo usar UnitPriceSpecification para especificar impuestos adicionales o tipos de cargos especiales como ResortFee, GenericTax y ServiceFee. priceSpecification se incluye con la propiedad Offer.

  {
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": "float",
          "priceCurrency": "currency"
        },
        ...
      ]
    }
  }

Sintaxis

La propiedad Hotel priceSpecification usa la siguiente sintaxis:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  ...
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "",
          "price": "float",
          "priceCurrency": "currency"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": "float",
          "priceCurrency": "currency",
          "priceComponentType": "GenericTax",
          "potentialAction": {
            "@type": "https://schema.org/PayAction",
            "recipient": {
              "@type": "OnlineBusiness",
              "name": "name-of-the-business"
            }
          }
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "Discount",
          "price": "float",
          "priceCurrency": "currency",
          "priceComponentType": "Discount"
        }
      ]
    }
  }
}

Microdatos

  <div itemscope itemtype="https://schema.org/Hotel">
    <meta itemprop="name" content="hotel-name"/>
    ...
    <div itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation" itemprop="makesOffer">
      ...
      <div itemscope itemtype="https://schema.org/CompoundPriceSpecification" itemprop="priceSpecification">
        <meta itemprop="price" content="float"/>
        <meta itemprop="priceCurrency" content="currency"/>
        <div itemscope itemtype="https://schema.org/UnitPriceSpecification" itemprop="priceComponent">
          <meta itemprop="name" content=""/>
          <meta itemprop="price" content="float"/>
          <meta itemprop="priceCurrency" content="currency"/>
        </div>
        <div itemscope itemtype="https://schema.org/UnitPriceSpecification" itemprop="priceComponent">
          <meta itemprop="name" content="GenericTax" />
          <meta itemprop="price" content="float"/>
          <meta itemprop="priceCurrency" content="currency"/>
          <meta itemprop="priceComponentType" content="GenericTax"/>
        </div>
        <div itemscope itemtype="https://schema.org/UnitPriceSpecification" itemprop="priceComponent">
          <meta itemprop="name" content="Discount"/>
          <meta itemprop="price" content="float"/>
          <meta itemprop="priceCurrency" content="currency"/>
          <meta itemprop="priceComponentType" content="Discount"/>
        </div>
      </div>
    </div>
  </div>

Propiedades

Las siguientes son las propiedades de hotel priceSpecification:

Propiedad ¿Obligatorio? Tipo Descripción
Hotel.Offer.priceSpecification.price Required float

Es el precio total del hotel con impuestos y tarifas incluidos.

La tarifa de Google siempre debe anotarse en la página de destino, junto con los detalles completos de tu tarifa. Los detalles de tasa de anotación te permiten completar Verificaciones de precisión del precio. Google acepta el nivel de hotel y de habitación precios.

Hotel.Offer.priceSpecification.priceCurrency Required currency Es un código de moneda de tres letras para el precio especificado. P. ej., "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

El desglose del precio total del hotel con impuestos y tarifas incluidos. Existen dos tipos de datos estructurados de precios:

  • CompoundPriceSpecification proporciona desgloses del precio para incluyen lo siguiente:

    • Tarifa base: el precio básico por noche

    • Impuestos por estadía: Es el precio por noche con impuestos.

    • Cargos por ocupación: El precio por noche por ocupación.

    • Descuento: Es el importe de la deducción.

  • UnitPriceSpecification se usa para especificar el tipo de cargos. Debes incluir PriceComponentTypeEnumeration para especificar cargos adicionales.

    Los valores de PriceComponentTypeEnumeration son los siguientes:

    • Discount: Es el descuento genérico para el precio.

    • ResortFee: Es un cargo adicional que se debe se pagará en el hotel. Puede variar según el tipo de alojamiento propiedad.

    • GenericTax: Es un elemento misceláneo adicional impuestos.

    • ServiceFee: Es una tarifa adicional que se cobrado por el canal de reservas.

    • TransferFee: Es una tarifa obligatoria de facto para transporte al hotel, recopilados por el hotel o por la reserva canal.

Debes establecer los valores en la propiedad priceComponentType . Todos los valores son obligatorios si decide incluir UnitPriceSpecification y debe especificarse en el UnitPriceSpecification.

Hotel.Offer.priceSpecification.priceComponent. potentialAction Optional PayAction

El punto de pago del hotel (los flujos de pago del hotel incluyen precios) que se cobran a la hora de salida en el sitio de reservas y en el hotel durante el registro de entrada.

Debes usar la propiedad potentialAction , que se empaqueta con el elemento PayAction. “recipient” para indicar el punto de pago. Consulta PayAction para obtener más información más información sobre la propiedad recipient.

Google admite los siguientes dos parámetros de configuración para PayAction destinatario:

  • recipient.@type = "OnlineBusiness" hace referencia al pago recopilados en el momento de la reserva por el comercio en línea. Este es el la configuración predeterminada si no se especifica potentialAction.

  • recipient.@type = "Hotel" hace referencia al pago que se recopilan en el hotel.

Ejemplos

Ejemplos de JSON-LD

Precio

El siguiente es un ejemplo básico de cómo agregar datos estructurados de precios a tu página web. Puedes incluir múltiples ofertas a nivel del hotel en el makesOffer.

Los tipos PostalAddress, como addressCountry, postalCode, streetAddress y otros campos son obligatorios si eliges especificar la propiedad address. La tarifa que se muestra en Google debe aparecer primero en la makesOffer. El importe del precio especificado incluye todos los valores impuestos.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "address": {
    "@type": "PostalAddress",
    "addressCountry": "AT",
    "addressLocality": "Innsbruck",
    "addressRegion": "Tyrol",
    "postalCode": "6020",
    "streetAddress": "Technikerstrasse 21"
  },
  "makesOffer": [
    {
      "@type": ["Offer", "LodgingReservation"],
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1222.74,
        "priceCurrency": "USD"
      }
    },
    {
      "@type": ["Offer", "LodgingReservation"],
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1200.74,
        "priceCurrency": "USD"
      }
    },
    ...
  ]
}

Desglose de precios

El siguiente es un ejemplo de la propiedad priceSpecification con la el desglose del precio. La tarifa base, los impuestos (como el impuesto genérico y el descuento) se se define con el componente UnitPriceSpecification. Recuerda establecer priceComponentType con los valores correspondientes a El componente UnitPriceSpecification.

El precio total por la duración de la estadía debe especificarse en el CompoundPriceSpecification. El desglose del precio debe ser especificadas en la propiedad priceComponent.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "address": {...},
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "",
          "price": 1150,
          "priceCurrency": "USD"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": 172.74,
          "priceCurrency": "USD",
          "priceComponentType": "GenericTax"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "Discount",
          "price": -100,
          "priceCurrency": "USD",
          "priceComponentType": "Discount"
        }
      ]
    }
  }
}

Punto de pago

El siguiente es un ejemplo de especificación de potentialAction para usar Tipo de destinatario de PayAction.

El precio total del paquete es de USD 1,170 y el sitio web en línea cobra una parte del precio total, que es de $1150 en el momento de la reserva especificado usando el valor "@type": "OnlineBusiness" y el usuario debe pagar los USD 20 restantes a la hora de entrada en el hotel que se especifica usando el @type": "Hotel"

Debes especificar el componente potentialAction para realizar el desglose. el pago en el momento de la reserva y en el hotel. Si no se especifica, payAction interpreta que el pago en el momento de la reserva es el predeterminado. forma de pago.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00]",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1170,
      "priceCurrency": "USD",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "price": 1150,
          "priceCurrency": "USD",
          "potentialAction": {
            "@type": "https://schema.org/PayAction",
            "recipient": {
              "@type": "OnlineBusiness",
              "name": "myonlinebusiness"
            }
          }
        },
        {
          "@type": "UnitPriceSpecification",
          "price": 20,
          "priceCurrency": "USD",
          "potentialAction": {
            "@type": "https://schema.org/PayAction",
            "recipient": {
              "@type": "Hotel",
              "name": "The Langham, Boston",
              "address": { ... }
            }
          }
        }
      ]
    }
  }
}

Ejemplo de microdatos

Desglose de precios

El siguiente es un ejemplo de la propiedad priceSpecification con la el desglose del precio. La tarifa base, los impuestos (como el impuesto genérico y el descuento) se se define con el componente UnitPriceSpecification. Recuerda establecer name por los valores correspondientes a El componente UnitPriceSpecification.

El precio total por la duración de la estadía debe especificarse en el CompoundPriceSpecification. El desglose del precio debe ser especificadas en la propiedad priceComponent.

<div itemscope itemtype="https://schema.org/Hotel">
  <meta itemprop="name" content="ACME Hotel"/>
  <meta itemprop="identifier" content="hotel-id-1234"/>
  <div itemscope itemtype="https://schema.org/PostalAddress" itemprop="address">
    <meta itemprop="addressCountry" content="US" />
    <meta itemprop="addressLocality" content="Mountain View" />
    <meta itemprop="addressRegion" content="Santa Clara" />
    <meta itemprop="postalCode" content="94040" />
    <meta itemprop="streetAddress" content="123 Main street" />
  </div>
  <div itemscope itemtype="https://schema.org/Offer   https://schema.org/LodgingReservation"  itemprop="makesOffer">
    <meta itemprop="checkinTime" content="2023-03-10 15:00:00" />
    <meta itemprop="checkoutTime" content="2023-03-16 10:00:00"/>
    <div itemscope itemtype="https://schema.org/CompoundPriceSpecification"   itemprop="priceSpecification">
    <meta itemprop="price" content="1222.74" />
    <meta itemprop="priceCurrency" content="USD" />
      <div itemscope itemtype="https://schema.org/UnitPriceSpecification"    itemprop="priceComponent">
        <meta itemprop="name" content="" />
        <meta itemprop="price" content="1150" />
        <meta itemprop="priceCurrency" content="USD" />
      </div>
      <div itemscope itemtype="https://schema.org/UnitPriceSpecification"  itemprop="priceComponent">
        <meta itemprop="name" content="GenericTax" />
        <meta itemprop="price" content="172.74" />
        <meta itemprop="priceCurrency" content="USD" />
        <meta itemprop="priceComponentType" content="GenericTax" />
      </div>
      <div itemscope itemtype="https://schema.org/UnitPriceSpecification"   itemprop="priceComponent">
        <meta itemprop="name" content="Discount" />
        <meta itemprop="price" content="-100" />
        <meta itemprop="priceCurrency" content="USD" />
        <meta itemprop="priceComponentType" content="Discount" />
      </div>
    </div>
  </div>
</div>

hasMerchantReturnPolicy propiedad

Esta propiedad se usa para anotar la política de reembolso de comercios en los itinerarios.

    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "refundType": "https://schema.org/FullRefund",
      "merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
      "restockingFee": 0
    }

Sintaxis

hasMerchantReturnPolicy tiene la siguiente sintaxis:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  ...
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "priceSpecification": { ... },
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "refundType": "https://schema.org/FullRefund",
      "merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
      "restockingFee": 0
    }
  }
}

Propiedad

La siguiente es la propiedad hasMerchantReturnPolicy:

Atributo ¿Es obligatorio? Tipo Descripción
Offer.hasMerchantReturnPolicy Optional MerchantReturnPolicy

La política de reembolso de los comercios Los socios deben usar MerchantReturnPolicy.restockingFee para indicar las políticas de cancelación que no reembolsan el importe total de la duración de la estadía.

Si no se especifica hasMerchantReturnPolicy o se deja vacío se asume que este importe no es reembolsable. Puedes especificar política no reembolsable mediante la propiedad returnPolicyCategory: MerchantReturnNotPermitted.

Ejemplo

Política de devoluciones

El siguiente es un ejemplo básico de datos estructurados para un hotel con habitación detalles y el precio total con impuestos y tarifas. Este ejemplo denota una estadía que se puede cancelar sin cargo hasta las 11 p.m. (UTC) del 18 de diciembre de 2023. Los socios deben usar "MerchantReturnPolicy.restockingFee" para indicar las políticas de cancelación que no reembolsen el importe total de la estadía. Los valores predeterminados de restockingFee a $0.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "description": "Beautiful resort in the outskirts of the city",
  "address": {...},
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-12-15 16:00:00",
    "checkoutTime": "2023-12-20 11:00:00",
    "priceSpecification": {...},
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "refundType": "https://schema.org/FullRefund",
      "merchantReturnDays": "2023-12-18 23:00:00",
      "restockingFee": 0
    }
  }
}

eligibleCustomerType propiedad

Esta propiedad se puede usar para anotar los programas de recompensas que se proporcionan para el hotel para los clientes con membresías.

"eligibleCustomerType": "RewardsMember",
"priceSpecification": {
    "@type": "CompoundPriceSpecification",
    "price": "float",
    "priceCurrency": "currency"
 }

Sintaxis

La propiedad eligibleCustomerType tiene la siguiente sintaxis:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  ...
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "eligibleCustomerType": "RewardsMember",
    "priceSpecification": { ... }
  }
}

Propiedad

La siguiente es la propiedad eligibleCustomerType:

Atributo ¿Es obligatorio? Tipo Descripción
Offer.eligibleCustomerType Optional BusinessEntityType

Los programas de lealtad o las recompensas para miembros que se ofrecen clientes.

Muchas páginas de hoteles muestran las tarifas para miembros junto con las tarifas públicas, para alentar a los usuarios a registrarse en sus programas de lealtad. Tarifas restringidas para públicos particulares, como tarifas para miembros, se pueden especificar la propiedad Offer.eligibleCustomerType

Ejemplos

Tarifas para miembros

El siguiente es un ejemplo básico de precios para miembros o tarifas protegidas especificación para los programas de lealtad. El cliente es un "miembro de las recompensas". de el hotel.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "address": {...},
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "name": "RewardsMember",
    "checkinTime": "2023-12-15 16:00:00",
    "checkoutTime": "2023-12-20 11:00:00",
    "eligibleCustomerType": "RewardsMember",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1342.74,
      "priceCurrency": "USD",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "Base rate",
          "price": 1069.98,
          "priceCurrency": "USD"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": 172.74,
          "priceCurrency": "currency"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "ResortFee",
          "price": 100,
          "priceCurrency": "USD"
        }
      ]
    }
  }
}

Miembro y tarifas habituales

Este es un ejemplo de las anotaciones de precios de tarifas regulares y para miembros. El Los precios para miembros aparecen primero, seguidos de las tarifas regulares.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "address": {...},
  "makesOffer": [
    {
      "@type": ["Offer", "LodgingReservation"],
      "name": "RewardsMember",
      "checkinTime": "2023-12-15 16:00:00",
      "checkoutTime": "2023-12-20 11:00:00",
      "eligibleCustomerType": "RewardsMember",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1342.74,
        "priceCurrency": "USD",
        "priceComponent": [
          {
            "@type": "UnitPriceSpecification",
            "name": "Base rate",
            "price": 1069.98,
            "priceCurrency": "USD"
          },
          {
            "@type": "UnitPriceSpecification",
            "name": "GenericTax",
            "price": 172.74,
            "priceCurrency": "currency"
          },
          {
            "@type": "UnitPriceSpecification",
            "name": "ResortFee",
            "price": 100,
            "priceCurrency": "USD"
          }
        ]
      }
    },
    {
      "@type": ["Offer", "LodgingReservation"],
      "name": "regularRate",
      "checkinTime": "2023-12-15 16:00:00",
      "checkoutTime": "2023-12-20 11:00:00",
      "priceSpecification": {
        "price": 1572.24,
        "priceCurrency": "USD",
        "priceComponent": [
          {
            "@type": "UnitPriceSpecification",
            "name": "Base rate",
            "price": 1369.98,
            "priceCurrency": "USD"
          },
          {
            "@type": "UnitPriceSpecification",
            "name": "GenericTax",
            "price": 202.26,
            "priceCurrency": "currency"
          },
          {
            "@type": "UnitPriceSpecification",
            "name": "ResortFee",
            "price": 100,
            "priceCurrency": "USD"
          }
        ]
      }
    }
  ]
}

Datos estructurados de HotelRoom

offers propiedad

Las anotaciones offers se usan para marcar tu sala itinerarios. Debes usar la propiedad offers para la especificación de HotelRoom.

"offers": {
  "@type": ["Offer", "LodgingReservation"],
  "identifier": "hotel-room-id-1234",
  "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
  "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
  "priceSpecification": {...}
}

Sintaxis

La propiedad offers tiene la siguiente sintaxis:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "HotelRoom",
  "identifier": "hotel-room-id-1234",
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      ...
    }
  }
}

Propiedades

Las siguientes son las propiedades de offers:

Propiedad ¿Obligatorio? Tipo Descripción
offers Required Offer and LodgingReservation

Es la especificación de precio de la habitación para el itinerario determinado.

La propiedad offers puede contener un array de para todas las plataformas de Google.

LodgingReservation.checkinTime Required DateTime

Indica la hora de entrada en la zona horaria del usuario. Si tu zona horaria no es se menciona, entonces, se considera la zona horaria del hotel.

LodgingReservation.checkoutTime Required DateTime

Indica la hora de salida en la zona horaria del usuario. Si tu zona horaria no es se menciona, entonces, se considera la zona horaria del hotel.

Ejemplo

ofertas

El siguiente es un ejemplo básico para especificar offers en HotelRoom propiedad.

{
  "@context": "https://schema.org",
  "@type": "HotelRoom",
  "identifier": "hotel-room-id-1234",
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "identifier": "rate-plan-id-of-member-rate",
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD"
    }
  }
}

Propiedad bed y occupancy

La propiedad bed se usa para anotar el tipo de cama y la cantidad de camas. disponibles en la sala. La propiedad occupancy se usa para anotar el número. de invitados en la sala. Las propiedades bed y occupancy pueden especificarse la propiedad HotelRoom.

"@type": "Hotel",
"identifier": "hotel-id-1234",
"containsPlace": {
    "@type": ["HotelRoom", "Product"],
    "identifier": "hotel-room-id",
  "bed": {
    "@type": "BedDetails",
    "numberOfBeds": "integer",
    "typeOfBed": "KING"
  },
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": "integer"
  }
}

Sintaxis

Las propiedades bed y occupancy tienen la siguiente sintaxis:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "hotel-name",
  "identifier": "hotel-id-1234",
  "containsPlace": {
    "@type": ["HotelRoom", "Product"],
    "name": "room-name",
    "identifier": "hotel-room-id-1234",
    "bed": {
      "@type": "BedDetails",
      "numberOfBeds": "integer",
      "typeOfBed": "KING"
    },
    "occupancy": {
      "@type": "QuantitativeValue",
      "value": "integer"
    },
    "offers": {
      "@type": ["Offer", "LodgingReservation"],
      "identifier": "rate-plan-id-of-member-rate",
      "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
      "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": "float",
        "priceCurrency": "currency",
        "priceComponent": {
          "@type": "UnitPriceSpecification",
          "name": "",
          "price": "float",
          "priceCurrency": "currency"
        },
        ...
      }
    }
  }
}

Las propiedades bed y occupancy solo se pueden configurar con HotelRoom propiedad. Se puede incluir información específica de las habitaciones, como tarifas a nivel de habitación. a la propiedad Hotel a través de la propiedad containsPlace. Consulta las Ejemplo de especificación Hotel y HotelRoom.

Propiedades

Las siguientes son las propiedades bed y occupancy:

Propiedad ¿Obligatorio? Tipo Descripción
HotelRoom.bed Optional (Recommended) bed

El tipo de cama incluida en el alojamiento y la cantidad de ocupantes en la habitación.

Los valores admitidos son los siguientes:

  • CALIFORNIA_KING
  • KING
  • QUEEN
  • FULL
  • DOUBLE
  • SEMI_DOUBLE
  • SINGLE
HotelRoom.occupancy Optional (Recommended) QuantitativeValue

Es la cantidad de huéspedes en la habitación del hotel. El tipo de ocupación es un QuantitativeValue

La ocupación es una propiedad explícita de HotelRoom, no para un Offer específico. Solo se deben etiquetar las tarifas de la ocupación solicitada.

containsPlace Optional (Recommended) LocationFeatureSpecification

Se usa para anotar las tarifas a nivel de las habitaciones asociadas con determinados salas de reuniones. También se puede usar para especificar las comodidades de la habitación.

Más información para usar containsPlace en amenityFeature.

Ejemplos

HotelRoom

El siguiente es un ejemplo básico de las camas y la ocupación de una habitación especificación.

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room, 1 King Bed",
  "identifier": "hotel-room-id-1234",
  "bed": [
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "KING"
    },
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "SINGLE"
    }
  ],
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": 2
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "identifier": "rate-plan-id-of-member-rate",
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD"
    }
  }
}

Hotel y HotelRoom

El siguiente es un ejemplo de anotación de Hotel y HotelRoom junto con bed, occupancy y priceSpecification.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "hotel-name",
  "identifier": "hotel-id-1234",
  "containsPlace": {
    "@type": ["HotelRoom", "Product"],
    "name": "Deluxe Room, 1 King Bed",
    "identifier": "hotel-room-id",
    "bed": {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "KING"
    },
    "occupancy": {
      "@type": "QuantitativeValue",
      "value": 2
    },
    "amenityFeature": {
      "@type": "LocationFeatureSpecification",
      "name": "Minibar",
      "value": true
    },
    "offers": {
      "@type": ["Offer", "LodgingReservation"],
      "identifier": "rate-plan-id-of-member-rate",
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1222.74,
        "priceCurrency": "USD"
      }
    }
  }
}

HotelRoom priceSpecification propiedad

Las especificaciones del precio de la habitación del hotel son similares a las del precio. La diferencia es que los precios de las habitaciones se especifican con la propiedad Product.offers. en lugar de la propiedad Hotel.makesOffer.

"priceSpecification": {
  "@type": "CompoundPriceSpecification",
  "price": "float",
  "priceCurrency": "currency",
  "priceComponent": {
    "@type": "UnitPriceSpecification",
    "name": "GenericTax",
    "price": "float",
    "priceCurrency": "currency"
  }
  ...
}

Sintaxis

La propiedad priceSpecification para habitaciones de hotel tiene la siguiente sintaxis:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  ...
  "bed": {
    "@type": "BedDetails",
    "numberOfBeds": "integer",
    "typeOfBed": "KING"
  },
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": "integer"
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "",
          "price": "float",
          "priceCurrency": "currency"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": "float",
          "priceCurrency": "currency",
          "priceComponentType": "GenericTax"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "Discount",
          "price": "float",
          "priceCurrency": "currency",
          "priceComponentType": "Discount"
        }
      ]
    }
  }
}

Propiedades

Las siguientes son las propiedades de HotelRoom priceSpecification:

Propiedad ¿Obligatorio? Tipo Descripción
Hotel.Offer.priceSpecification.price Required float

El precio por habitación con impuestos y tarifas incluidos Product

La tarifa de Google siempre debe anotarse en la página de destino, junto con los detalles completos de tu tarifa. Los detalles de tasa de anotación te permiten completar Verificaciones de precisión del precio. Google acepta el nivel de hotel y de habitación precios.

Hotel.Offer.priceSpecification.priceCurrency Required currency Es un código de moneda de tres letras para el precio especificado. P. ej., "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

El desglose del precio total del hotel con impuestos y tarifas incluidos la habitación y la ocupación con ofertas vinculadas a HotelRoom y Product Existen dos tipos de datos estructurados de precios:

  • CompoundPriceSpecification proporciona desgloses del precio para incluyen lo siguiente:

    • Tarifa base: el precio básico por noche

    • Impuestos por estadía: Es el precio por noche con impuestos.

    • Cargos por ocupación: El precio por noche por ocupación.

      occupancy es una propiedad explícita de HotelRoom, no para un Offer específico. Solo se deben etiquetar las tarifas correspondientes a las y la ocupación.

    • Descuento: Es el importe de la deducción.

  • UnitPriceSpecification se usa para especificar el tipo de cargos. Debes incluir PriceComponentTypeEnumeration para especificar cargos adicionales.

    Los valores de PriceComponentTypeEnumeration son los siguientes:

    • Discount: Es el descuento genérico para el precio.

    • ResortFee: Es un cargo adicional que se debe se pagará en el hotel. Puede variar según el tipo de alojamiento propiedad.

    • GenericTax: Es un elemento misceláneo adicional impuestos.

    • ServiceFee: Es una tarifa adicional que se cobrado por el canal de reservas.

    Debes establecer los valores en name propiedad de UnitPriceSpecification. Todos los valores tienen obligatorio si decides incluir un desglose de precios y debe especificadas en el componente UnitPriceSpecification.

Ejemplos

Precio total de la habitación

El siguiente es un ejemplo básico para definir el precio total por la longitud de la estadía y el precio por ocupación.

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room King, 1 Single Bed",
  "identifier": "hotel-room-id-1234",
  "bed": [
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "KING"
    },
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "SINGLE"
    }
  ],
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": 2
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1232.74,
      "priceCurrency": "USD"
    }
  },
  ...
}

Desglose del precio de la habitación

El siguiente es un ejemplo de precio por habitación o plan. Desglose del precio se define para el tipo de habitación, como Deluxe, y bed y occupancy tipo, como camas KING y SINGLE y una capacidad de 2 huéspedes.

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room King, 1 Single Bed",
  "identifier": "hotel-room-id-1234",
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "identifier": "rate-plan-id-of-member-rate",
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "bed": [
      {
        "@type": "BedDetails",
        "numberOfBeds": 1,
        "typeOfBed": "KING"
      },
      {
        "@type": "BedDetails",
        "numberOfBeds": 1,
        "typeOfBed": "SINGLE"
      }
    ],
    "occupancy": {
      "@type": "QuantitativeValue",
      "value": 2
    },
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "Base rate",
          "price": 1150,
          "priceCurrency": "USD"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": 172.74,
          "priceCurrency": "USD",
          "priceComponentType": "GenericTax"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "Discount",
          "price": -100,
          "priceCurrency": "USD",
          "priceComponentType": "Discount"
        }
      ]
    }
  }
}

includesObject propiedad

Esta propiedad se usa para anotar los servicios de tarifas específicas que se proporcionan en el hotel o a la habitación, como opciones de comida y servicio de valet. Puedes agregar anotaciones includesObject en la propiedad Hotel o HotelRoom.

{
  "includesObject": [
    {
      "@type": "TypeAndQuantityNode",
      "typeOfGood": {
        "@type": "Service",
        "name": "Valet"
      }
    },
    {
      "@type": "TypeAndQuantityNode",
      "amountOfThisGood": "float",
      "unitText": "currency",
      "typeOfGood": {
        "@type": "FoodService",
        "name": "MealCredit"
      }
    }
  ]
}

Sintaxis

includesObject tiene la siguiente sintaxis para los servicios de tarifas específicas. disponibles en la sala:

JSON-LD

{
  "@context": "https://schema.org",
  ...
  "@type": ["HotelRoom", "Product"],
  ...
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency"
    },
    "includesObject": [
      {
        "@type": "TypeAndQuantityNode",
        "typeOfGood": {
          "@type": "Service",
          "name": "Valet"
        }
      },
      {
        "@type": "TypeAndQuantityNode",
        "amountOfThisGood": "float",
        "unitText": "currency",
        "typeOfGood": {
          "@type": "FoodService",
          "name": "MealCredit"
        }
      }
    ]
  }
}

Propiedad

includesObject tiene la siguiente propiedad:

Atributo ¿Es obligatorio? Tipo Descripción
Offer.includesObject Optional TypeAndQuantityNode

Son los servicios que se proporcionan en el hotel o la habitación.

Las funciones de tarifas específicas se incluyen includesObject. El campo de nombre de Se debe usar "TypeAndQuantityNode.typeOfGood" para indicar el tipo de servicio, como el servicio de estacionamiento o de comida.

Las funciones específicas de la tarifa también pueden incluirse en las ofertas de nivel básico. o pueden especificarse como complementos por un precio adicional.

includesObject requiere un valor de tipo TypeAndQuantityNode de la siguiente manera:

  • BreakfastIncluded
  • DinnerIncluded
  • Valet
  • MealCredit

Ejemplo

Servicios

El siguiente es un ejemplo básico de funciones con tarifas específicas para el servicio de estacionamiento y servicios de comida. Las funciones específicas para cada velocidad deben especificarse con el "Offer.includesObject". El campo de nombre de Se debe usar "TypeAndQuantityNode.typeOfGood" para indicar el tipo de servicio.

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room, 1 King Bed",
  "identifier": "hotel-room-id-1234",
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "identifier": "rate-plan-id-of-member-rate",
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD"
    },
    "includesObject": [
      {
        "@type": "TypeAndQuantityNode",
        "typeOfGood": {
          "@type": "Service",
          "name": "Valet"
        }
      },
      {
        "@type": "TypeAndQuantityNode",
        "amountOfThisGood": 50,
        "unitText": "USD",
        "typeOfGood": {
          "@type": "FoodService",
          "name": "MealCredit"
        }
      }
    ]
  }
}

availability propiedad

La propiedad offer.availability se usa para anotar los itinerarios agotados. por las habitaciones del hotel.

"offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/SoldOut"
}

Sintaxis

La propiedad availability tiene la siguiente sintaxis:

JSON-LD

{
  "@context": "https://schema.org",
  ...
  "@type": ["HotelRoom", "Product"],
  "name": "room-type",
  "identifier": "hotel-room-id-1234",
  "bed": {
    "@type": "BedDetails",
    "numberOfBeds": "integer",
    "typeOfBed": "KING"
  },
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": "integer"
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/SoldOut"
  }
}

Propiedad

La siguiente es la propiedad availability:

Atributo ¿Es obligatorio? Tipo Descripción
Offer.availability Optional ItemAvailability

Indica la disponibilidad del hotel o la habitación.

Las tarifas se extraen de schema.org/Offer y no se crea la información de las tarifas usando schema.org/Hotel o schema.org/HotelRoom Esto significa que incluso los itinerarios agotados deben tener una oferta.

Una oferta sin un priceSpecification se considera de la siguiente manera: disponible. Las ofertas no disponibles se deben especificar como "Offer.availability= https://schema.org/SoldOut"

No es necesario que Offer.availability se especifica si la oferta tiene una anotación priceSpecification.

Ejemplo

Disponibilidad

El siguiente es un ejemplo básico para mostrar la falta de disponibilidad de habitaciones de hotel. Tú debe incluir el tipo de cama, la cantidad de camas y los detalles de ocupación para la habitación especificada.

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room, 1 King Bed",
  "identifier": "hotel-room-id-1234",
  "bed": [
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "KING"
    },
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "SINGLE"
    }
  ],
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": 2
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "availability": "https://schema.org/SoldOut",
    "priceSpecification": {...}
  }
}

amenityFeature propiedad

Los servicios pueden especificarse en el tipo Hotel o HotelRoom con el propiedad amenityFeature. Debes usar la propiedad containsPlace para especificar adicionales que se ofrecen en la habitación.

{
  "@type": "Hotel",
  "amenityFeature": [
    {
      "@type": "LocationFeatureSpecification",
      "name": "HotTub",
      "hoursAvailable": {
        "@type": "OpeningHoursSpecification",
        "opens": "HH:mm:ss",
        "closes": "HH:mm:ss"
      }
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "GymFitnessEquipment",
      "value": "boolean"
    }
  ],
  "containsPlace": {
    "@type": "HotelRoom",
    "amenityFeature": [
      {
        "@type": "LocationFeatureSpecification",
        "name": "Minibar",
        "value": true
      },
      {
        "@type": "LocationFeatureSpecification",
        "name": "Smoking",
        "value": false
      }
    ]
  }
}

Sintaxis

Las propiedades amenityFeature y containsPlace tienen lo siguiente: sintaxis:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  ...
  "amenityFeature": {
    "@type": "LocationFeatureSpecification",
    "name": "HotTub",
    "hoursAvailable": {
      "@type": "OpeningHoursSpecification",
      "opens": "HH:mm:ss",
      "closes": "HH:mm:ss"
    }
  },
  "containsPlace": {
    "@type": "HotelRoom",
    "amenityFeature": {
      "@type": "LocationFeatureSpecification",
      "name": "Minibar",
      "value": "boolean"
    }
  }
}

Comodidades

Las siguientes comodidades se permiten y definen en la propiedad name.

Atributo ¿Es obligatorio? Tipo Descripción
amenityFeature.AC Optional boolean Si la propiedad tiene aire acondicionado.
amenityFeature.AirportShuttle Optional boolean Si el anfitrión ofrece transporte desde y hacia el aeropuerto otras terminales.
amenityFeature.Balcony Optional boolean Indica si la alojamiento tiene balcón.
amenityFeature.BeachAccess Optional boolean Si la propiedad tiene acceso a una playa pública cercana.
amenityFeature.ChildFriendly Optional boolean Si la propiedad es apta para niños.
amenityFeature.Crib Optional boolean Si la propiedad proporciona una cuna.
amenityFeature.Elevator Optional boolean Si la propiedad tiene ascensor.
amenityFeature.FirePlace Optional boolean Si la alojamiento tiene chimenea.
amenityFeature.FreeBreakfast Optional boolean Si la propiedad tiene desayuno incluido para todos los huéspedes. Usa funciones de tarifa para indicar si el desayuno está incluido solo para una tarifa específica de los planes de negocios de los socios.
amenityFeature.GymFitnessEquipment Optional boolean Si la propiedad tiene un gimnasio o cualquier equipo de entrenamiento
amenityFeature.Heating Optional boolean Indica si la alojamiento tiene calefacción.
amenityFeature.HotTub Optional boolean Si la propiedad tiene jacuzzi.
amenityFeature.InstantBookable Optional boolean Si la propiedad se puede reservar al instante a través de la confirmación de la compra el proceso de administración de recursos. La alternativa es esperar la aprobación.
amenityFeature.IroningBoard Optional boolean Si la propiedad dispone de tabla de planchar.
amenityFeature.Kitchen Optional boolean Indica si el alojamiento tiene cocina.
amenityFeature.Microwave Optional boolean Si el alojamiento tiene un microondas disponible
amenityFeature.OpenAirBath(Hotels only) Optional boolean Indica si el alojamiento tiene un baño al aire libre conectado. Si se especifica a nivel de la habitación, el baño debe ser privado solo para los ocupantes.
amenityFeature.OutdoorGrill Optional boolean Si la propiedad tiene parrilla.
amenityFeature.OvenStove Optional boolean Si la propiedad tiene una estufa.
amenityFeature.Patio Optional boolean Si la propiedad tiene patio.
amenityFeature.Pool Optional boolean Indica si el alojamiento tiene piscina.
amenityFeature.PrivateBeachAccess Optional boolean Si la propiedad tiene acceso exclusivo a una playa privada.
amenityFeature.SelfCheckinCheckout Optional boolean Si la propiedad admite registro de entrada y salida de autoservicio.
amenityFeature.WasherDryer Optional boolean Si la alojamiento tiene electrodomésticos de lavandería
amenityFeature.Wifi Optional boolean Indica si la propiedad cuenta con Wi-Fi.
amenityFeature.Smoking Optional boolean Si en el alojamiento se permite fumar
amenityFeature.InternetType Optional Enum

El tipo de Internet disponible en la propiedad.

Los valores admitidos son los que se detallan a continuación:

  • FREE
  • PAID
  • NONE
amenityFeature.ParkingType Optional Enum

El tipo de estacionamiento disponible en la propiedad.

Los valores admitidos son los que se detallan a continuación:

  • FREE
  • PAID
  • NONE
amenityFeature.PoolType Optional Enum

El tipo de piscina disponible en la propiedad.

Los valores admitidos son los que se detallan a continuación:

  • INDOOR
  • OUTDOOR
  • NONE
amenityFeature.RoomStyle Optional Enum

Indica si la habitación tiene un diseño de estilo japonés.

Los valores admitidos son los que se detallan a continuación:

  • WESTERN
  • JAPANESE
  • JAPANESE_WESTERN
amenityFeature.LicenseNum Required string

Número de licencia de la empresa que se mostrará en la propiedad en ciertas regiones del mundo. Se puede repetir y, si hay varios existen licencias, se recomienda agregar al propietario o la autoridad del la licencia. Por ejemplo, "Paris: 123456ABC"

Propiedades

Las siguientes son las propiedades de amenityFeature:

Propiedad ¿Obligatorio? Tipo Descripción
amenityFeature Optional LocationFeatureSpecification

Las comodidades que se proporcionan en el hotel o la habitación Se puede especificar con la propiedad amenityFeature Las comodidades deben tener las siguientes características: está disponible para todos los huéspedes del hotel, independientemente del plan de tarifas seleccionado. amenityFeature se especifica con el Valor de la propiedad LocationFeatureSpecification.

Las comodidades se pueden especificar en Hotel o HotelRoom.

containsPlace Optional LocationFeatureSpecification

Las comodidades que se proporcionan en el hotel o la habitación a todos los huéspedes del hotel. Integra se puede especificar con el amenityFeature . Los servicios deben Estar disponible para todos los huéspedes de la habitación del hotel, independientemente de la tarifa seleccionada de recuperación ante desastres.

Hotel.containsPlace.amenityFeature son los servicios que se proporcionan en el hotel.

HotelRoom.containsPlace.amenityFeature son los servicios que se ofrece en la sala.

Ejemplo

Comodidades del hotel y la habitación

El siguiente es un ejemplo de un hotel con una piscina abierta de 10 a.m. a 10 p.m. y no hay un gimnasio disponible en la propiedad. No se permite fumar en la habitación del hotel y tiene minibar.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "address": { ... },
  "amenityFeature": [
    {
      "@type": "LocationFeatureSpecification",
      "name": "HotTub",
      "hoursAvailable": {
        "@type": "OpeningHoursSpecification",
        "opens": "10:00:00",
        "closes": "22:00:00"
      }
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "GymFitnessEquipment",
      "value": false
    }
  ],
  "containsPlace": {
    "@type": "HotelRoom",
    "amenityFeature": [
      {
        "@type": "LocationFeatureSpecification",
        "name": "Minibar",
        "value": true
      },
      {
        "@type": "LocationFeatureSpecification",
        "name": "Smoking",
        "value": false
      }
    ],
    "offers": {
      "@type": ["Offer", "LodgingReservation"],
      "identifier": "rate-plan-id-of-member-rate",
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1222.74,
        "priceCurrency": "USD"
      }
    }
  }
}