Questa pagina fornisce un riferimento per aggiungere markup di dati strutturati ai dati sui prezzi dei tuoi hotel.
Panoramica
I dati strutturati relativi ai prezzi degli hotel vengono utilizzati per spiegare, convalidare e mostrare nel dettaglio i prezzi elencati sul tuo sito web, indipendentemente dall'interfaccia utente. Sono inclusi anche i campi relativi a prezzo base, tariffe, camere, commissioni e tasse e
Google consiglia ai partner di annotare le proprie pagine web con dati strutturati standardizzati, leggibili dalle macchine per i crawler, forniti da schema.org, per ottenere in modo accurato i prezzi dalle tue pagine web.
Ciò consente di scalare le convalide dell'accuratezza del prezzo migliorando l'affidabilità dei crawler. Il vantaggio per te è un aumento del numero di convalide di accuratezza del prezzo e la possibilità di eseguire direttamente il debug dei problemi di accuratezza del prezzo, nonché di avere un punteggio di accuratezza del prezzo coerente.
Se non li hai mai utilizzati, scopri di più su vocabolario e formato dei dati strutturati.
Google Hotels consiglia il formato JSON-LD
per annotare le pagine web. Per scoprire di più sugli altri formati accettati, consulta la sezione Formati supportati. Questa documentazione fornisce contenuti di riferimento dettagliati specifici per l'implementazione dei dati strutturati in Hotel.
I dati strutturati Hotel
vengono utilizzati per annotare i campi specifici degli hotel nella tua
pagina web. I dati strutturati Hotel
hanno le seguenti proprietà:
Proprietà
name
eaddress
I dati strutturati HotelRoom
vengono utilizzati per annotare i campi specifici delle stanze nella
tua pagina web.
I dati strutturati HotelRoom
hanno le seguenti proprietà:
Proprietà
bed
eoccupancy
Proprietà
HotelRoom priceSpecification
Dati strutturati per hotel
Proprietà name
e address
Le proprietà name
e address
vengono utilizzate per annotare il nome e la posizione dell'hotel. Di seguito sono riportate le proprietà name
e 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."
},
Sintassi
Le proprietà name
e address
utilizzano la seguente sintassi:
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"]
...
}
}
Proprietà
Di seguito sono riportate le proprietà name
e address
:
Proprietà | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
Hotel.name | Required | string | Il nome dell'hotel |
Hotel.identifier | Required | string | L'ID hotel dei partner. L'identificatore deve essere una stringa univoca per hotel e deve corrispondere esattamente alla stringa utilizzata nel feed del prezzo. |
Hotel.address | Optional | PostalAddress | L'indirizzo o la località dell'hotel. |
Esempi
Nome e indirizzo
Di seguito è riportato un esempio base di aggiunta delle annotazioni name
e 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
struttura
Le annotazioni makesOffer
vengono utilizzate per
eseguire il markup degli itinerari di hotel.
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"availability": "https://schema.org/InStock",
...
}
Sintassi
La proprietà makesOffer
utilizza la seguente sintassi:
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": { ... }
}
}
Proprietà
Di seguito sono riportate le proprietà makesOffer
:
Proprietà | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
makesOffer | Required | Offer and LodgingReservation | Le offerte di hotel per l'itinerario.
La proprietà |
LodgingReservation.checkinTime | Required | DateTime | L'orario del check-in nel fuso orario dell'utente. Se il fuso orario non è indicato, viene preso in considerazione quello dell'hotel. |
LodgingReservation.checkoutTime | Required | DateTime | L'orario del check-out nel fuso orario dell'utente. Se il fuso orario non è indicato, viene preso in considerazione quello dell'hotel. |
Esempio
makesOffer
Di seguito è riportato un esempio base per annotare le offerte relative ai tuoi hotel. Puoi specificare più offerte per un itinerario, ma devi specificare prima la tariffa mostrata da Google seguita dalle altre. L'importo del prezzo specificato include tutte le imposte applicabili.
{
"@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
struttura
Questa proprietà viene utilizzata per annotare le informazioni sui prezzi dell'hotel o delle camere. Per annotare i prezzi e le tasse, sono necessarie due proprietà aggiuntive. Utilizza CompoundPriceSpecification per specificare le informazioni totali sui prezzi, come tariffa di base, tasse e sconti.
Utilizza UnitPriceSpecification per specificare imposte aggiuntive o tipi di addebiti speciali, ad esempio ResortFee
, GenericTax
e ServiceFee
. La proprietà priceSpecification
è abbinata alla proprietà Offer
.
{
...
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": "float",
"priceCurrency": "currency"
},
...
]
}
}
Sintassi
La proprietà Hotel priceSpecification
utilizza la seguente sintassi:
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"
}
]
}
}
}
Microdati
<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>
Proprietà
Di seguito sono riportate le proprietà hotel priceSpecification
:
Proprietà | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
Hotel.Offer.priceSpecification.price | Required | float | Il prezzo totale, incluse tasse e commissioni per l'hotel. La tariffa Google deve sempre essere annotata nella pagina di destinazione insieme ai dettagli completi della tariffa. L'annotazione dei dettagli delle tariffe ti consente di completare i controlli di accuratezza del prezzo. Google accetta sia i prezzi a livello di hotel sia quelli a livello di camera. |
Hotel.Offer.priceSpecification.priceCurrency | Required | currency | Un codice valuta di tre lettere per il prezzo specificato. Esempio: "USD"
. |
Hotel.Offer.priceSpecification.priceComponent | Optional | UnitPriceSpecification[] | La suddivisione del prezzo totale, incluse tasse e commissioni per l'hotel. Esistono due tipi di dati strutturati per i prezzi:
Devi impostare i valori nella proprietà |
Hotel.Offer.priceSpecification.priceComponent. potentialAction | Optional | PayAction | Il punto di pagamento dell'hotel.I flussi di pagamento dell'hotel includono i prezzi che vengono addebitati al momento del check-out sul sito di prenotazione e in hotel durante il check-in. Devi utilizzare la proprietà Google supporta le due impostazioni seguenti per il destinatario di
|
Esempi
Esempi JSON-LD
Prezzo
Di seguito è riportato un esempio base di aggiunta di dati strutturati per i prezzi alla tua
pagina web. Nella proprietà makesOffer
possono essere incluse più offerte a livello di hotel.
I tipi PostalAddress
come addressCountry
, postalCode
, streetAddress
e altri campi sono obbligatori se scegli di specificare la proprietà address
. La tariffa visualizzata da Google deve essere elencata per prima nella
proprietà makesOffer
. L'importo del prezzo specificato include tutte le imposte applicabili.
{
"@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"
}
},
...
]
}
Prezzo dettagliato
Di seguito è riportato un esempio della proprietà priceSpecification
con la
ripartizione dei prezzi. L'aliquota di base, le tasse come le tasse generiche e lo sconto, vengono definite utilizzando il componente UnitPriceSpecification
. Ricordati di impostare il campo priceComponentType
con i valori corrispondenti al componente UnitPriceSpecification
.
Il prezzo totale per la durata del soggiorno deve essere specificato nella
proprietà CompoundPriceSpecification
. La suddivisione del prezzo deve essere
specificata nella proprietà 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 di pagamento
Di seguito è riportato un esempio di specifica potentialAction
in cui viene utilizzato
il tipo di destinatario PayAction
.
Il prezzo totale del pacchetto è di 1170 $e il sito web online addebita una parte del prezzo totale, ovvero 1150 $al momento della prenotazione specificata utilizzando il "@type": "OnlineBusiness"
e l'utente deve pagare i 20 $rimanenti al momento del check-in in hotel specificato utilizzando @type": "Hotel"
.
Devi specificare il componente potentialAction
per suddividere
il pagamento al momento della prenotazione e in hotel. Se non è specificato,
payAction
interpreta il pagamento al momento della prenotazione come
metodo di pagamento predefinito.
{
"@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": { ... }
}
}
}
]
}
}
}
Esempio di microdati
Prezzo dettagliato
Di seguito è riportato un esempio della proprietà priceSpecification
con la
ripartizione dei prezzi. L'aliquota di base, le tasse come le tasse generiche e lo sconto, vengono definite utilizzando il componente UnitPriceSpecification
. Ricordati di impostare la proprietà name
con i valori corrispondenti al componente UnitPriceSpecification
.
Il prezzo totale per la durata del soggiorno deve essere specificato nella
proprietà CompoundPriceSpecification
. La suddivisione del prezzo deve essere
specificata nella proprietà 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
struttura
Questa proprietà viene utilizzata per annotare le norme sui rimborsi dei commercianti negli itinerari.
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"refundType": "https://schema.org/FullRefund",
"merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
"restockingFee": 0
}
Sintassi
La sintassi di hasMerchantReturnPolicy
è la seguente:
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
}
}
}
Proprietà
Di seguito è riportata la proprietà hasMerchantReturnPolicy
:
Attributo | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
Offer.hasMerchantReturnPolicy | Optional | MerchantReturnPolicy | Le norme sui rimborsi dei commercianti. I partner devono utilizzare Se |
Esempio
Norme sui resi
Di seguito è riportato un esempio base di dati strutturati per un hotel con i dettagli della camera e il prezzo totale, tasse e commissioni. Questo esempio indica un soggiorno
che può essere annullato senza addebiti fino alle 23:00 (UTC) del
18 dicembre 2023. I partner devono utilizzare "MerchantReturnPolicy.restockingFee"
per indicare le norme sull'annullamento che non rimborsano l'intero importo del soggiorno. Il valore predefinito di restockingFee
è 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
struttura
Questa proprietà può essere utilizzata per annotare i programmi a premi forniti per i clienti abbonati agli hotel.
"eligibleCustomerType": "RewardsMember",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency"
}
Sintassi
La proprietà eligibleCustomerType
ha la seguente sintassi:
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": { ... }
}
}
Proprietà
Di seguito è riportata la proprietà eligibleCustomerType
:
Attributo | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
Offer.eligibleCustomerType | Optional | BusinessEntityType | I programmi fedeltà o i premi per i membri offerti ai clienti. Molte pagine di hotel mostrano le tariffe per i membri insieme a quelle pubbliche, per incoraggiare gli utenti a iscriversi ai loro programmi fedeltà. Le tariffe limitate a determinati segmenti di pubblico, ad esempio quelle per i membri, possono essere specificate impostando la proprietàOffer.eligibleCustomerType . |
Esempi
Tariffe per i membri
Di seguito è riportato un esempio di base di prezzi per i membri o di specifiche di tariffe limitate per i programmi fedeltà. Il cliente è un "membro premio" dell'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"
}
]
}
}
}
Tariffe normali e per membri
Questo è un esempio di annotazioni dei prezzi delle tariffe normali e per i membri. I prezzi per i soci sono indicati per primi seguiti dalle tariffe normali.
{
"@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"
}
]
}
}
]
}
Dati strutturati HotelRoom
offers
struttura
Le annotazioni offers
vengono utilizzate per il markup dei tuoi itinerari relativi alle stanze. Devi usare la proprietà offers
per la specifica 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": {...}
}
Sintassi
La proprietà offers
ha la seguente sintassi:
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",
...
}
}
}
Proprietà
Di seguito sono riportate le proprietà offers
:
Proprietà | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
offers | Required | Offer and LodgingReservation | La specifica del prezzo della camera per l'itinerario. La proprietà |
LodgingReservation.checkinTime | Required | DateTime | L'orario del check-in nel fuso orario dell'utente. Se il fuso orario non è indicato, viene preso in considerazione quello dell'hotel. |
LodgingReservation.checkoutTime | Required | DateTime | L'orario del check-out nel fuso orario dell'utente. Se il fuso orario non è indicato, viene preso in considerazione quello dell'hotel. |
Esempio
offerte
Di seguito è riportato un esempio di base per specificare offers
nella proprietà 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"
}
}
}
Proprietà bed
e occupancy
La proprietà bed
viene utilizzata per annotare la tipologia di letto e il numero di letti disponibili nella camera. La proprietà occupancy
viene utilizzata per annotare il numero
di ospiti nella camera. Le proprietà bed
e occupancy
possono essere specificate utilizzando
la proprietà 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"
}
}
Sintassi
La sintassi delle proprietà bed
e occupancy
è la seguente:
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"
},
...
}
}
}
}
Le proprietà bed
e occupancy
possono essere impostate solo utilizzando la proprietà HotelRoom
. Informazioni specifiche sulle camere, incluse le tariffe a livello di camera, possono essere incluse
nella proprietà Hotel
tramite la proprietà containsPlace
. Fai riferimento all'esempio di specifica Hotel
e HotelRoom
.
Proprietà
Di seguito sono riportate le proprietà bed
e occupancy
:
Proprietà | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
HotelRoom.bed | Optional (Recommended) | bed | Il tipo di letti inclusi nella sistemazione e il numero di persone nella camera. I valori supportati sono:
|
HotelRoom.occupancy | Optional (Recommended) | QuantitativeValue | Il numero di ospiti nella camera d'albergo. Il tipo di numero di persone è
Il numero di persone è una proprietà esplicita di
|
containsPlace | Optional (Recommended) | LocationFeatureSpecification | Viene utilizzato per annotare le tariffe a livello di camera associate a camere specifiche. Può essere utilizzato anche per specificare i comfort della camera. Scopri di più su come utilizzare |
Esempi
HotelRoom
Di seguito è riportato un esempio base di letti e numero di persone per una specifica della camera.
{
"@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 e camera d'albergo
Di seguito è riportato un esempio di annotazione delle proprietà Hotel
e HotelRoom
insieme a bed
, occupancy
e 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
struttura
La specifica dei prezzi delle camere è simile a quella dei prezzi dell'hotel.La differenza è che i prezzi delle camere vengono specificati utilizzando la proprietà Product.offers
anziché la proprietà Hotel.makesOffer
.
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": {
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": "float",
"priceCurrency": "currency"
}
...
}
Sintassi
La proprietà priceSpecification
per le camere d'hotel ha la seguente sintassi:
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"
}
]
}
}
}
Proprietà
Di seguito sono riportate le proprietà HotelRoom priceSpecification
:
Proprietà | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
Hotel.Offer.priceSpecification.price | Required | float | Il prezzo per camera, incluse tasse e commissioni per l'attributo La tariffa Google deve sempre essere annotata nella pagina di destinazione insieme ai dettagli completi della tariffa. L'annotazione dei dettagli delle tariffe ti consente di completare i controlli di accuratezza del prezzo. Google accetta sia i prezzi a livello di hotel sia quelli a livello di camera. |
Hotel.Offer.priceSpecification.priceCurrency | Required | currency | Un codice valuta di tre lettere per il prezzo specificato. Esempio: "USD"
. |
Hotel.Offer.priceSpecification.priceComponent | Optional | UnitPriceSpecification[] | La suddivisione del prezzo totale, incluse tasse e commissioni per la camera
d'albergo e il numero di persone con offerte collegate a
|
Esempi
Prezzo totale della camera
Di seguito è riportato un esempio base di definizione del prezzo totale per la durata del soggiorno e del prezzo per persona.
{
"@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"
}
},
...
}
Analisi del prezzo della camera
Di seguito è riportato un esempio di prezzo per camera o piano. La suddivisione dei prezzi
è definita per la tipologia di camera, ad esempio Deluxe
, e bed
e occupancy
,
ad esempio KING
e SINGLE
letti e una capienza di 2 persone.
{
"@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
struttura
Questa proprietà viene utilizzata per annotare i servizi specifici delle tariffe forniti nell'hotel
o nella camera, ad esempio opzioni di pasto e servizio di ritiro e riconsegna dell'auto. Puoi annotare
includesObject
nella proprietà Hotel
o HotelRoom
.
{
"includesObject": [
{
"@type": "TypeAndQuantityNode",
"typeOfGood": {
"@type": "Service",
"name": "Valet"
}
},
{
"@type": "TypeAndQuantityNode",
"amountOfThisGood": "float",
"unitText": "currency",
"typeOfGood": {
"@type": "FoodService",
"name": "MealCredit"
}
}
]
}
Sintassi
L'elemento includesObject
ha la seguente sintassi per i servizi specifici delle tariffe
disponibili nella camera:
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"
}
}
]
}
}
Proprietà
includesObject
ha la seguente proprietà:
Attributo | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
Offer.includesObject | Optional | TypeAndQuantityNode | I servizi forniti nell'hotel o nella camera. Le funzionalità specifiche per le tariffe sono incluse nella
proprietà Le funzionalità specifiche della tariffa possono essere incluse anche nelle offerte di livello base oppure possono essere specificate come componenti aggiuntivi a un prezzo aggiuntivo.
|
Esempio
Servizi
Di seguito è riportato un esempio base di funzionalità specifiche per le tariffe per i servizi di parcheggio
e ristorazione. Le funzionalità specifiche della tariffa devono essere specificate con la
proprietà "Offer.includesObject"
. Il campo del nome su "TypeAndQuantityNode.typeOfGood"
deve essere utilizzato per indicare il tipo di servizio.
{
"@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
struttura
La proprietà offer.availability
viene utilizzata per annotare gli itinerari esauriti per le camere d'albergo.
"offers": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"availability": "https://schema.org/SoldOut"
}
Sintassi
La proprietà availability
ha la seguente sintassi:
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"
}
}
Proprietà
Di seguito sono riportate le proprietà availability
:
Attributo | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
Offer.availability | Optional | ItemAvailability | La disponibilità dell'hotel o della camera. Le tariffe vengono estratte da
Un'offerta senza Non è necessario specificare |
Esempio
Disponibilità
Di seguito è riportato un esempio base per mostrare la indisponibilità di una camera di hotel. Devi includere il tipo di letto, il numero di letti e i dettagli sul numero di persone per la camera specificata.
{
"@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
struttura
I servizi possono essere specificati nel tipo Hotel
o HotelRoom
utilizzando la
proprietà amenityFeature
. Devi utilizzare la proprietà containsPlace
per specificare i
servizi forniti per la camera.
{
"@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
}
]
}
}
Sintassi
Le proprietà amenityFeature
e containsPlace
hanno la seguente
sintassi:
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"
}
}
}
Servizi
I seguenti comfort sono consentiti e definiti nella proprietà name
.
Attributo | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
amenityFeature.AC | Optional | boolean | Indica se la proprietà è dotata di aria condizionata. |
amenityFeature.AirportShuttle | Optional | boolean | Indica se l'host fornisce il servizio di trasporto da e per l'aeroporto o altri terminal. |
amenityFeature.Balcony | Optional | boolean | Se l'alloggio ha un balcone. |
amenityFeature.BeachAccess | Optional | boolean | Indica se la proprietà ha accesso a una spiaggia pubblica nelle vicinanze. |
amenityFeature.ChildFriendly | Optional | boolean | Indica se la proprietà è adatta ai bambini. |
amenityFeature.Crib | Optional | boolean | Indica se la proprietà fornisce una culla. |
amenityFeature.Elevator | Optional | boolean | Indica se la proprietà è dotata di ascensore. |
amenityFeature.FirePlace | Optional | boolean | Se l'alloggio è dotato di caminetto. |
amenityFeature.FreeBreakfast | Optional | boolean | Indica se la colazione è inclusa nel prezzo per tutti gli ospiti. Utilizza le funzionalità delle tariffe per indicare se la colazione è inclusa solo per piani tariffari specifici. |
amenityFeature.GymFitnessEquipment | Optional | boolean | Indica se la proprietà dispone di una palestra o di attrezzature per il fitness. |
amenityFeature.Heating | Optional | boolean | Se l'alloggio è dotato di riscaldamento. |
amenityFeature.HotTub | Optional | boolean | Indica se la proprietà è dotata di vasca idromassaggio. |
amenityFeature.InstantBookable | Optional | boolean | Indica se la proprietà è prenotabile immediatamente tramite la procedura di pagamento. L'alternativa è attendere l'approvazione. |
amenityFeature.IroningBoard | Optional | boolean | Indica se la proprietà è dotata di ferro e asse da stiro. |
amenityFeature.Kitchen | Optional | boolean | Se l'alloggio include una cucina. |
amenityFeature.Microwave | Optional | boolean | Indica se nella struttura è disponibile un forno a microonde. |
amenityFeature.OpenAirBath(Hotels only) | Optional | boolean | Indica se l'alloggio ha una vasca all'aperto annessa. Se specificato a livello di camera, il bagno deve essere privato solo per gli occupanti delle camere. |
amenityFeature.OutdoorGrill | Optional | boolean | Indica se la proprietà ha una griglia per barbecue. |
amenityFeature.OvenStove | Optional | boolean | Indica se la struttura dispone di una stufa. |
amenityFeature.Patio | Optional | boolean | Indica se la proprietà è dotata di un patio. |
amenityFeature.Pool | Optional | boolean | Indica se l'alloggio è dotato di piscina. |
amenityFeature.PrivateBeachAccess | Optional | boolean | Indica se la proprietà ha accesso dedicato a una spiaggia non pubblica. |
amenityFeature.SelfCheckinCheckout | Optional | boolean | Indica se la proprietà supporta il check-in e il check-out self-service. |
amenityFeature.WasherDryer | Optional | boolean | Indica se l'alloggio dispone di elettrodomestici per il bucato. |
amenityFeature.Wifi | Optional | boolean | Indica se la proprietà dispone di Wi-Fi. |
amenityFeature.Smoking | Optional | boolean | Indica se nella struttura è consentito fumare. |
amenityFeature.InternetType | Optional | Enum | Il tipo di connessione a internet disponibile nella proprietà. I valori supportati sono:
|
amenityFeature.ParkingType | Optional | Enum | Il tipo di parcheggio disponibile nella proprietà. I valori supportati sono:
|
amenityFeature.PoolType | Optional | Enum | Il tipo di piscina disponibile nella proprietà. I valori supportati sono:
|
amenityFeature.RoomStyle | Optional | Enum | Indica se la camera è in stile giapponese. I valori supportati sono:
|
amenityFeature.LicenseNum | Required | string | Numero di licenza dell'attività che deve essere mostrato nella proprietà in determinate regioni del mondo. Può essere ripetuto e, se esistono più licenze, consigliamo di aggiungere il proprietario o l'autorità della licenza. Ad esempio, |
Proprietà
Di seguito sono riportate le proprietà amenityFeature
:
Proprietà | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
amenityFeature | Optional | LocationFeatureSpecification | I servizi forniti nell'hotel o nella camera. Può essere specificato utilizzando la proprietà I servizi possono essere specificati a livello di |
containsPlace | Optional | LocationFeatureSpecification | I servizi forniti nell'hotel o nella camera a tutti gli ospiti. Può
essere specificato utilizzando
|
Esempio
Servizi nell'hotel e nella camera
Ecco un esempio di hotel con piscina aperta dalle 10:00 alle 22:00 e senza palestra in struttura. Questa camera è per non fumatori e dispone di 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"
}
}
}
}