Référence pour les données structurées sur les prix des hôtels

Cette page fournit une référence pour ajouter des balises de données structurées aux données tarifaires de vos hôtels.

Présentation

Les données structurées sur les prix des hôtels sont utilisées pour expliquer, valider et afficher en détail les prix des hôtels listés sur votre site Web, quelle que soit l'interface utilisateur. Cela inclut également le prix de base, les tarifs, les chambres, les frais et taxes, ainsi que les champs liés aux prix.

Google recommande aux partenaires d'annoter leurs pages Web avec des données structurées standardisées et lisibles par les robots d'exploration. Ces données sont fournies par schema.org et permettent d'extraire précisément les prix de vos pages Web.

Cela permet de faire évoluer les validations de la précision des prix en améliorant la fiabilité des robots d'exploration. Vous bénéficierez ainsi d'un plus grand nombre de validations de la précision des prix, de la possibilité de déboguer directement les problèmes de précision des prix et d'un taux de précision des prix cohérent.

Si vous découvrez les données structurées, consultez Vocabulaire et format des données structurées.

Google Hôtels recommande le format JSON-LD pour annoter vos pages Web. Pour en savoir plus sur les autres formats acceptés, consultez Formats acceptés. Cette documentation fournit des informations de référence détaillées sur l'implémentation des données structurées dans les hôtels.

Les données structurées Hotel permettent d'annoter les champs spécifiques aux hôtels sur votre page Web. Les données structurées Hotel présentent les propriétés suivantes :

Les données structurées HotelRoom permettent d'annoter les champs spécifiques aux chambres sur votre page Web.

Les données structurées HotelRoom présentent les propriétés suivantes :

Données structurées d'hôtel

Propriétés name et address

Les propriétés name et address sont utilisées pour annoter le nom et l'emplacement de l'hôtel. Voici les propriétés name et 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."
    },

Syntaxe

Les propriétés name et address utilisent la syntaxe suivante :

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"]
    ...
  }
}

Propriétés

Voici les propriétés name et address :

Propriété Obligatoire ? Type Description
Hotel.name Required string Nom de l'hôtel
Hotel.identifier Required string

Identifiant d'hôtel du partenaire.

L'identifiant doit être une chaîne unique par hôtel et doit correspondre exactement à la chaîne utilisée dans le flux de prix.

Hotel.address Optional PostalAddress Adresse ou emplacement de l'hôtel.

Exemples

Nom et adresse

Voici un exemple de base d'ajout d'annotations name et 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 établissement

Les annotations makesOffer sont utilisées pour marquer vos séjours d'hôtels.

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

Syntaxe

La propriété makesOffer utilise la syntaxe suivante :

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": { ... }
  }
}

Propriétés

Voici les propriétés makesOffer :

Propriété Obligatoire ? Type Description
makesOffer Required Offer and LodgingReservation

Offre(s) d'hôtel pour le séjour en question.

La propriété makesOffer peut contenir un tableau d'offres.

LodgingReservation.checkinTime Required DateTime

Heure d'arrivée dans le fuseau horaire de l'utilisateur. Si votre fuseau horaire n'est pas mentionné, celui de l'hôtel est pris en compte.

LodgingReservation.checkoutTime Required DateTime

Heure de départ dans le fuseau horaire de l'utilisateur. Si votre fuseau horaire n'est pas mentionné, celui de l'hôtel est pris en compte.

Exemple

makesOffer

Voici un exemple de base pour annoter vos offres d'hôtel. Vous pouvez spécifier plusieurs offres pour un itinéraire, mais vous devez d'abord indiquer le tarif affiché sur Google, puis les autres tarifs. Le montant du prix indiqué inclut toutes les taxes applicables.

{
  "@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 établissement

Cette propriété permet d'annoter les informations tarifaires de votre hôtel ou de vos chambres d'hôtel. Deux propriétés supplémentaires sont requises pour annoter vos prix et vos taxes. Vous devez utiliser CompoundPriceSpecification pour spécifier les informations tarifaires totales, telles que le tarif de base, les taxes et les remises. Utilisez UnitPriceSpecification pour spécifier des taxes supplémentaires ou des types de frais spéciaux tels que ResortFee, GenericTax et ServiceFee. La propriété priceSpecification est associée à la propriété Offer.

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

Syntaxe

La propriété Hotel priceSpecification utilise la syntaxe suivante :

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"
        }
      ]
    }
  }
}

Microdonnées

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

Propriétés

Voici les propriétés hotel priceSpecification :

Propriété Obligatoire ? Type Description
Hotel.Offer.priceSpecification.price Required float

Prix total de l'hôtel, taxes et frais inclus.

Le tarif Google doit toujours être indiqué sur votre page de destination, ainsi que tous les détails le concernant. Annoter les détails des tarifs vous permet de vérifier l'exactitude des prix. Google accepte les prix au niveau de l'hôtel et de la chambre.

Hotel.Offer.priceSpecification.priceCurrency Required currency Code à trois lettres de la devise du prix spécifié. Exemple : "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

Répartition du prix total, y compris les taxes et les frais de l'hôtel. Il existe deux types de données structurées sur les prix :

  • CompoundPriceSpecification fournit des détails sur les prix, y compris les suivants :

    • Tarif de base : prix de base par nuit

    • Taxes par séjour : prix par nuit avec les taxes.

    • Frais par occupant : prix par nuit et par occupant.

    • Remise : montant de la déduction.

  • UnitPriceSpecification permet de spécifier le type de frais. Vous devez inclure les valeurs PriceComponentTypeEnumeration pour spécifier les frais supplémentaires.

    Les valeurs pour PriceComponentTypeEnumeration sont les suivantes :

    • Discount : remise générique sur le prix.

    • ResortFee : il s'agit de frais supplémentaires à régler à l'hôtel. Cela peut varier en fonction du type d'établissement.

    • GenericTax : il s'agit d'une taxe diverse supplémentaire.

    • ServiceFee : il s'agit de frais supplémentaires facturés par le canal de réservation.

    • TransferFee : il s'agit de frais obligatoires de facto pour le transport vers l'hôtel, collectés par l'hôtel ou le canal de réservation.

Vous devez définir les valeurs dans la propriété priceComponentType . Toutes les valeurs sont obligatoires si vous choisissez d'inclure UnitPriceSpecification. Elles doivent être spécifiées dans la propriété UnitPriceSpecification.

Hotel.Offer.priceSpecification.priceComponent. potentialAction Optional PayAction

Point de paiement de l'hôtel.Les flux de paiement de l'hôtel incluent les prix facturés au moment du paiement sur le site de réservation et à l'hôtel lors de l'enregistrement.

Vous devez utiliser la propriété potentialAction , qui est associée au champ "recipient" de PayAction, pour indiquer le point de paiement. Pour en savoir plus sur la propriété recipient, consultez PayAction.

Google accepte les deux paramètres suivants pour le destinataire de PayAction :

  • recipient.@type = "OnlineBusiness" fait référence au paiement collecté au moment de la réservation par le marchand en ligne. Il s'agit du paramètre par défaut si potentialAction n'est pas spécifié.

  • recipient.@type = "Hotel" fait référence au paiement collecté à l'hôtel.

Exemples

Exemples JSON-LD

Prix

Voici un exemple de base d'ajout de données structurées sur les prix à votre page Web. Plusieurs offres au niveau de l'hôtel peuvent être incluses dans la propriété makesOffer.

Les types PostalAddress tels que addressCountry, postalCode, streetAddress et d'autres champs sont obligatoires si vous choisissez de spécifier la propriété address. Le taux affiché sur Google doit être indiqué en premier dans la propriété makesOffer. Le montant du prix spécifié inclut toutes les taxes applicables.

{
  "@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"
      }
    },
    ...
  ]
}

Détails du prix

Voici un exemple de propriété priceSpecification avec le détail du prix. Le taux de base, les taxes (comme la taxe générique) et la remise sont définis à l'aide du composant UnitPriceSpecification. N'oubliez pas de définir le champ priceComponentType avec les valeurs correspondant au composant UnitPriceSpecification.

Le prix total du séjour doit être indiqué dans la propriété CompoundPriceSpecification. Le détail du prix doit être spécifié dans la propriété 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"
        }
      ]
    }
  }
}

Point de paiement

Voici un exemple de spécification potentialAction utilisant le type de destinataire de PayAction.

Le prix total du forfait est de 1 170 $. Le site Web facture une partie du prix total, soit 1 150 $, au moment de la réservation, comme indiqué à l'aide de "@type": "OnlineBusiness". L'utilisateur doit payer les 20 $restants au moment de l'enregistrement à l'hôtel, comme indiqué à l'aide de @type": "Hotel".

Vous devez spécifier le composant potentialAction pour répartir le paiement au moment de la réservation et à l'hôtel. Si aucune méthode n'est spécifiée, payAction interprète le paiement au moment de la réservation comme méthode de paiement par défaut.

{
  "@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": { ... }
            }
          }
        }
      ]
    }
  }
}

Exemple de microdonnées

Détails du prix

Voici un exemple de propriété priceSpecification avec le détail du prix. Le taux de base, les taxes (comme la taxe générique) et la remise sont définis à l'aide du composant UnitPriceSpecification. N'oubliez pas de définir la propriété name avec les valeurs correspondant au composant UnitPriceSpecification.

Le prix total du séjour doit être indiqué dans la propriété CompoundPriceSpecification. Le détail du prix doit être spécifié dans la propriété 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 établissement

Cette propriété permet d'annoter les conditions de remboursement du marchand dans les itinéraires.

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

Syntaxe

hasMerchantReturnPolicy utilise la syntaxe suivante :

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

Propriété

Voici la propriété hasMerchantReturnPolicy :

Attribut Obligatoire ? Type Description
Offer.hasMerchantReturnPolicy Optional MerchantReturnPolicy

Conditions de remboursement du marchand. Les partenaires doivent utiliser MerchantReturnPolicy.restockingFee pour indiquer les conditions d'annulation qui ne remboursent pas le montant total du séjour.

Si hasMerchantReturnPolicy n'est pas spécifié ou est laissé vide, le montant est considéré comme non remboursable. Vous pouvez spécifier la règle de non-remboursement à l'aide de la propriété returnPolicyCategory: MerchantReturnNotPermitted.

Exemple

Conditions de retour

Voici un exemple de base de données structurées pour un hôtel avec des informations sur les chambres et le prix total incluant les taxes et les frais. Cet exemple indique un séjour qui peut être annulé sans frais jusqu'à 23h (UTC) le 18 décembre 2023. Les partenaires doivent utiliser "MerchantReturnPolicy.restockingFee" pour indiquer les conditions d'annulation qui ne remboursent pas le montant total du séjour. La valeur par défaut de restockingFee est de 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 établissement

Cette propriété peut être utilisée pour annoter les programmes de récompenses proposés aux clients membres d'hôtels.

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

Syntaxe

La propriété eligibleCustomerType utilise la syntaxe suivante :

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": { ... }
  }
}

Propriété

Voici la propriété eligibleCustomerType :

Attribut Obligatoire ? Type Description
Offer.eligibleCustomerType Optional BusinessEntityType

Programmes de fidélité ou récompenses proposées aux clients.

De nombreuses pages d'hôtels affichent des tarifs réservés aux membres ainsi que des tarifs publics pour inciter les utilisateurs à s'inscrire à leurs programmes de fidélité. Les tarifs réservés à certaines audiences, comme les tarifs pour les membres, peuvent être spécifiés en définissant la propriété Offer.eligibleCustomerType.

Exemples

Tarifs pour les membres

Voici un exemple de base de spécification de prix réservés aux membres ou de tarifs avec restriction pour les programmes de fidélité. Le client est membre du programme de fidélité de l'hôtel.

{
  "@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"
        }
      ]
    }
  }
}

Tarifs pour les membres et tarifs standards

Voici un exemple d'annotations de prix standard et de prix réservés aux membres. Le prix réservé aux membres est indiqué en premier, suivi des tarifs standards.

{
  "@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"
          }
        ]
      }
    }
  ]
}

Données structurées HotelRoom

offers établissement

Les annotations offers permettent de baliser vos itinéraires de chambres. Vous devez utiliser la propriété offers pour la spécification 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": {...}
}

Syntaxe

La propriété offers utilise la syntaxe suivante :

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",
      ...
    }
  }
}

Propriétés

Voici les propriétés offers :

Propriété Obligatoire ? Type Description
offers Required Offer and LodgingReservation

Spécification du prix de la chambre pour le séjour en question.

La propriété offers peut contenir un tableau d'offres.

LodgingReservation.checkinTime Required DateTime

Heure d'arrivée dans le fuseau horaire de l'utilisateur. Si votre fuseau horaire n'est pas mentionné, celui de l'hôtel est pris en compte.

LodgingReservation.checkoutTime Required DateTime

Heure de départ dans le fuseau horaire de l'utilisateur. Si votre fuseau horaire n'est pas mentionné, celui de l'hôtel est pris en compte.

Exemple

Pixel

Voici un exemple de base pour spécifier offers dans la propriété HotelRoom.

{
  "@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"
    }
  }
}

Propriétés bed et occupancy

La propriété bed permet d'annoter le type et le nombre de lits disponibles dans la chambre. La propriété occupancy permet d'annoter le nombre de personnes dans la chambre. Les propriétés bed et occupancy peuvent être spécifiées à l'aide de la propriété 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"
  }
}

Syntaxe

Les propriétés bed et occupancy ont la syntaxe suivante :

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"
        },
        ...
      }
    }
  }
}

Les propriétés bed et occupancy ne peuvent être définies qu'à l'aide de la propriété HotelRoom. Les informations spécifiques aux chambres, y compris les tarifs au niveau des chambres, peuvent être incluses dans la propriété Hotel via la propriété containsPlace. Consultez l'exemple de spécification Hotel et HotelRoom.

Propriétés

Voici les propriétés bed et occupancy :

Propriété Obligatoire ? Type Description
HotelRoom.bed Optional (Recommended) bed

Type de lit(s) inclus dans l'hébergement et nombre d'occupants dans la chambre.

Les valeurs acceptées sont les suivantes :

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

Nombre de personnes dans la chambre d'hôtel. Le type d'occupation est QuantitativeValue.

L'occupation est une propriété explicite de HotelRoom, et non d'un Offer spécifique. Les tarifs ne doivent être tagués que pour l'occupation demandée.

containsPlace Optional (Recommended) LocationFeatureSpecification

Elle permet d'annoter les tarifs au niveau des chambres associés à des chambres spécifiques. Il peut également être utilisé pour spécifier les équipements de la chambre.

Découvrez comment utiliser containsPlace dans la propriété amenityFeature.

Exemples

HotelRoom

Voici un exemple de base de lits et d'occupations pour une spécification de chambre.

{
  "@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"
    }
  }
}

Hôtel et HotelRoom

Voici un exemple d'annotation des propriétés Hotel et HotelRoom avec bed, occupancy et 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 établissement

La spécification du prix d'une chambre d'hôtel est semblable à celle du prix d'un hôtel.La différence réside dans le fait que les prix des chambres sont spécifiés à l'aide de la propriété Product.offers au lieu de la propriété Hotel.makesOffer.

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

Syntaxe

La propriété priceSpecification pour les chambres d'hôtel a la syntaxe suivante :

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"
        }
      ]
    }
  }
}

Propriétés

Voici les propriétés HotelRoom priceSpecification :

Propriété Obligatoire ? Type Description
Hotel.Offer.priceSpecification.price Required float

Prix par chambre, taxes et frais inclus, pour le Product.

Le tarif Google doit toujours être indiqué sur votre page de destination, ainsi que tous les détails le concernant. Annoter les détails des tarifs vous permet de vérifier l'exactitude des prix. Google accepte les prix au niveau de l'hôtel et de la chambre.

Hotel.Offer.priceSpecification.priceCurrency Required currency Code à trois lettres de la devise du prix spécifié. Exemple : "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

Répartition du prix total, y compris les taxes et les frais pour la chambre d'hôtel et l'occupation avec les offres associées à HotelRoom et Product. Il existe deux types de données structurées sur les prix :

  • CompoundPriceSpecification fournit des détails sur les prix, y compris les suivants :

    • Tarif de base : prix de base par nuit

    • Taxes par séjour : prix par nuit avec les taxes.

    • Frais par occupant : prix par nuit et par occupant.

      occupancy est une propriété explicite de HotelRoom, et non d'un Offer spécifique. Les tarifs ne doivent être tagués que pour l'occupation demandée.

    • Remise : montant de la déduction.

  • UnitPriceSpecification permet de spécifier le type de frais. Vous devez inclure les valeurs PriceComponentTypeEnumeration pour spécifier les frais supplémentaires.

    Les valeurs pour PriceComponentTypeEnumeration sont les suivantes :

    • Discount : remise générique sur le prix.

    • ResortFee : il s'agit de frais supplémentaires à régler à l'hôtel. Cela peut varier en fonction du type d'établissement.

    • GenericTax : il s'agit d'une taxe diverse supplémentaire.

    • ServiceFee : il s'agit de frais supplémentaires facturés par le canal de réservation.

    Vous devez définir les valeurs dans la propriété name de UnitPriceSpecification. Toutes les valeurs sont obligatoires si vous choisissez d'inclure la répartition des prix. Elles doivent être spécifiées dans le composant UnitPriceSpecification.

Exemples

Prix total de la chambre

Voici un exemple de base de définition du prix total pour la durée du séjour et du prix par occupation.

{
  "@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"
    }
  },
  ...
}

Détails du prix de la chambre

Voici un exemple de prix par chambre ou par forfait. La répartition du prix est définie pour un type de chambre, comme une chambre Deluxe, et pour un type bed et occupancy, comme KING et SINGLE lits, avec une occupation de deux personnes.

{
  "@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 établissement

Cette propriété permet d'annoter les services spécifiques aux tarifs proposés dans l'hôtel ou la chambre, tels que les options de repas et le service de voiturier. Vous pouvez annoter includesObject dans la propriété Hotel ou HotelRoom.

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

Syntaxe

includesObject utilise la syntaxe suivante pour les services spécifiques aux tarifs disponibles dans la chambre :

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"
        }
      }
    ]
  }
}

Propriété

includesObject présente la propriété suivante :

Attribut Obligatoire ? Type Description
Offer.includesObject Optional TypeAndQuantityNode

Services proposés dans l'hôtel ou la chambre

Les fonctionnalités spécifiques aux tarifs sont incluses dans la propriété includesObject. Le champ "Nom" sur "TypeAndQuantityNode.typeOfGood" doit être utilisé pour indiquer le type de service, comme un service de voiturier ou de restauration.

Des fonctionnalités spécifiques aux tarifs peuvent également être incluses dans les offres de base ou spécifiées en tant que modules complémentaires moyennant un supplément.

includesObject nécessite une valeur de type TypeAndQuantityNode comme suit :

  • BreakfastIncluded
  • DinnerIncluded
  • Valet
  • MealCredit

Exemple

Services

Voici un exemple de base de caractéristiques tarifaires pour les services de voiturier et de restauration. Les caractéristiques spécifiques aux tarifs doivent être spécifiées avec la propriété "Offer.includesObject". Le champ "name" (nom) sur "TypeAndQuantityNode.typeOfGood" doit être utilisé pour indiquer le type de service.

{
  "@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 établissement

La propriété offer.availability permet d'annoter les itinéraires complets pour les chambres d'hôtel.

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

Syntaxe

La propriété availability utilise la syntaxe suivante :

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

Propriété

Voici les propriétés availability :

Attribut Obligatoire ? Type Description
Offer.availability Optional ItemAvailability

Disponibilité de l'hôtel ou de la chambre.

Les tarifs sont extraits de schema.org/Offer et les informations sur les tarifs ne sont pas créées à l'aide de schema.org/Hotel ni de schema.org/HotelRoom. Cela signifie que même les séjours complets doivent comporter une offre.

Une offre sans priceSpecification est considérée comme indisponible. Les offres non disponibles doivent être spécifiées comme "Offer.availability= https://schema.org/SoldOut".

Offer.availability n'a pas besoin d'être spécifié si l'offre est annotée avec un priceSpecification. valide.

Exemple

Disponibilité

Voici un exemple de base pour illustrer l'indisponibilité d'une chambre d'hôtel. Vous devez inclure le type de lit, le nombre de lits et les informations sur l'occupation pour la chambre spécifiée.

{
  "@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 établissement

Vous pouvez spécifier les services de type Hotel ou HotelRoom à l'aide de la propriété amenityFeature. Vous devez utiliser la propriété containsPlace pour spécifier les équipements fournis dans la chambre.

{
  "@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
      }
    ]
  }
}

Syntaxe

Les propriétés amenityFeature et containsPlace ont la syntaxe suivante :

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

Services

Les services suivants sont autorisés et définis dans la propriété name.

Attribut Obligatoire ? Type Description
amenityFeature.AC Optional boolean Indique si l'établissement est climatisé.
amenityFeature.AirportShuttle Optional boolean Indique si l'hôte assure le transport depuis et vers l'aéroport ou d'autres terminaux.
amenityFeature.Balcony Optional boolean Indique si l'hébergement dispose d'un balcon.
amenityFeature.BeachAccess Optional boolean Indique si l'établissement est proche d'une plage publique.
amenityFeature.ChildFriendly Optional boolean Indique si l'établissement est adapté aux enfants.
amenityFeature.Crib Optional boolean Indique si l'établissement fournit un berceau.
amenityFeature.Elevator Optional boolean Indique si l'établissement dispose d'un ascenseur.
amenityFeature.FirePlace Optional boolean Indique si l'hébergement est doté d'une cheminée.
amenityFeature.FreeBreakfast Optional boolean Indique si l'établissement propose un petit-déjeuner gratuit à tous les clients. Utilisez les fonctionnalités tarifaires pour indiquer si le petit-déjeuner est inclus uniquement pour certains forfaits.
amenityFeature.GymFitnessEquipment Optional boolean Indique si l'établissement dispose d'une salle de sport ou d'équipements de fitness.
amenityFeature.Heating Optional boolean Indique si l'hébergement dispose du chauffage.
amenityFeature.HotTub Optional boolean Indique si l'établissement dispose d'un bain à remous.
amenityFeature.InstantBookable Optional boolean Indique si l'établissement peut être réservé instantanément durant le processus de paiement. L'alternative est l'attente d'approbation.
amenityFeature.IroningBoard Optional boolean Indique si l'établissement propose des planches à repasser.
amenityFeature.Kitchen Optional boolean Indique si l'hébergement est équipé d'une cuisine.
amenityFeature.Microwave Optional boolean Indique si un four à micro-ondes est disponible dans l'hébergement.
amenityFeature.OpenAirBath(Hotels only) Optional boolean Indique si l'hébergement dispose d'un bain en plein air. Si elle est spécifiée au niveau de la chambre, la salle de bain doit être réservée aux occupants de la chambre.
amenityFeature.OutdoorGrill Optional boolean Indique si l'établissement est doté d'un barbecue.
amenityFeature.OvenStove Optional boolean Indique si l'établissement est équipé d'une cuisinière.
amenityFeature.Patio Optional boolean Indique si l'établissement possède un patio.
amenityFeature.Pool Optional boolean Indique si l'hébergement dispose d'une piscine.
amenityFeature.PrivateBeachAccess Optional boolean Indique si l'établissement dispose d'un accès dédié à une plage non publique.
amenityFeature.SelfCheckinCheckout Optional boolean Indique si l'établissement accepte l'arrivée et le départ autonomes.
amenityFeature.WasherDryer Optional boolean Indique si l'hébergement est équipé d'appareils de buanderie.
amenityFeature.Wifi Optional boolean Indique si l'établissement dispose du Wi-Fi.
amenityFeature.Smoking Optional boolean Indique si l'hébergement autorise les fumeurs.
amenityFeature.InternetType Optional Enum

Type d'Internet disponible dans l'établissement.

Voici les valeurs possibles :

  • FREE
  • PAID
  • NONE
amenityFeature.ParkingType Optional Enum

Type de stationnement disponible dans l'établissement.

Voici les valeurs possibles :

  • FREE
  • PAID
  • NONE
amenityFeature.PoolType Optional Enum

Type de piscine disponible dans l'établissement.

Voici les valeurs possibles :

  • INDOOR
  • OUTDOOR
  • NONE
amenityFeature.RoomStyle Optional Enum

Indique si la chambre est de style japonais.

Voici les valeurs possibles :

  • WESTERN
  • JAPANESE
  • JAPANESE_WESTERN
amenityFeature.LicenseNum Required string

Numéro de licence de l'établissement qui doit être indiqué pour les établissements de certaines régions du monde. Il peut être répété et, si plusieurs licences existent, il est recommandé d'ajouter le propriétaire ou l'autorité de la licence. Par exemple : "Paris: 123456ABC"

Propriétés

Voici les propriétés amenityFeature :

Propriété Obligatoire ? Type Description
amenityFeature Optional LocationFeatureSpecification

Équipements fournis dans l'hôtel ou la chambre. Vous pouvez le spécifier à l'aide de la propriété amenityFeature . Les équipements doivent être disponibles pour tous les clients de l'hôtel, quelle que soit la politique tarifaire sélectionnée. amenityFeature est spécifié à l'aide de la valeur de la propriété LocationFeatureSpecification.

Les équipements peuvent être spécifiés au niveau Hotel ou HotelRoom.

containsPlace Optional LocationFeatureSpecification

Équipements fournis dans l'hôtel ou la chambre à tous les clients. Il peut être spécifié à l'aide de amenityFeature . Les équipements doivent être disponibles pour tous les clients dans la chambre d'hôtel, quel que soit le forfait sélectionné.

Hotel.containsPlace.amenityFeature sont les services proposés dans l'hôtel.

HotelRoom.containsPlace.amenityFeature sont les équipements fournis dans la chambre.

Exemple

Équipements de l'hôtel et de la chambre

Voici un exemple d'hôtel avec une piscine ouverte de 10h à 22h et sans salle de sport. La chambre d'hôtel est non-fumeur et dispose d'un 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"
      }
    }
  }
}