Riferimento sui dati strutturati dei prezzi degli hotel

Questa pagina fornisce un riferimento per aggiungere markup dei dati strutturati ai dati sui prezzi degli hotel.

Panoramica

I dati strutturati dei prezzi degli hotel vengono utilizzati per spiegare, convalidare e visualizzare in dettaglio i prezzi degli hotel elencati sul tuo sito web, indipendentemente dall'interfaccia utente. Sono inclusi anche prezzo base, tariffe, camere, commissioni e tasse e campi correlati ai prezzi.

Google consiglia ai partner di annotare le proprie pagine web con dati strutturati standardizzati leggibili automaticamente per i crawler, forniti da schema.org, per estrarre con precisione i prezzi dalle 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 dell'accuratezza del prezzo e la possibilità di eseguire il debug dei problemi di accuratezza del prezzo direttamente, nonché di avere un punteggio di accuratezza del prezzo coerente.

Se non li hai mai utilizzati, scopri di più sul vocabolario e sul formato dei dati strutturati.

Google Hotels consiglia il formato JSON-LD per annotare le tue pagine web. Consulta la sezione Formati supportati per scoprire di più sugli altri formati accettabili. Questa documentazione fornisce contenuti di riferimento dettagliati specifici per l'implementazione dei dati strutturati in Hotels.

I dati strutturati Hotel vengono utilizzati per annotare i campi specifici dell'hotel nella tua pagina web. I dati strutturati Hotel hanno le seguenti proprietà:

I dati strutturati di HotelRoom vengono utilizzati per annotare i campi specifici della camera nella tua pagina web.

I dati strutturati HotelRoom hanno le seguenti proprietà:

Dati strutturati dell'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à 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 dei prezzi.

Hotel.address Optional PostalAddress L'indirizzo o la posizione dell'hotel.

Esempi

Nome e indirizzo

Di seguito è riportato un esempio di 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 contrassegnare gli itinerari dell'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à Obbligatorio? Tipo Descrizione
makesOffer Required Offer and LodgingReservation

L'offerta o le offerte dell'hotel per un determinato itinerario.

La proprietà makesOffer può contenere un array di offerte.

LodgingReservation.checkinTime Required DateTime

L'ora del check-in nel fuso orario dell'utente. Se il tuo fuso orario non è menzionato, viene preso in considerazione il fuso orario dell'hotel.

LodgingReservation.checkoutTime Required DateTime

L'ora di check-out nel fuso orario dell'utente. Se il tuo fuso orario non è menzionato, viene considerato il fuso orario dell'hotel.

Esempio

makesOffer

Di seguito è riportato un esempio di base per annotare le offerte per hotel. Puoi specificare più offerte per un itinerario, ma devi specificare prima la tariffa visualizzata da Google e poi le altre tariffe. L'importo del prezzo specificato include tutte le tasse 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 del tuo hotel o delle tue camere d'albergo. Sono necessarie due proprietà aggiuntive per annotare prezzi e tasse. Devi utilizzare CompoundPriceSpecification per specificare le informazioni sul prezzo totale, come la tariffa base, le tasse e gli sconti. Utilizza UnitPriceSpecification per specificare tasse aggiuntive o tipi speciali di addebiti come ResortFee, GenericTax e ServiceFee. La proprietà priceSpecification è raggruppata con la 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à Obbligatorio? Tipo Descrizione
Hotel.Offer.priceSpecification.price Required float

Il prezzo totale, incluse tasse e commissioni, dell'hotel.

La tariffa Google deve sempre essere annotata nella pagina di destinazione insieme ai dettagli completi della tariffa. L'annotazione dei dettagli della tariffa ti consente di completare i controlli di accuratezza del prezzo. Google accetta prezzi a livello di hotel e di camera.

Hotel.Offer.priceSpecification.priceCurrency Required currency Un codice valuta di tre lettere per il prezzo specificato. Ad es. "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

Il prezzo totale dettagliato, incluse tasse e commissioni per l'hotel. Esistono due tipi di dati strutturati relativi al prezzo:

  • CompoundPriceSpecification fornisce i dettagli dei prezzi per includere quanto segue:

    • Tariffa di base: il prezzo base per notte

    • Tasse per soggiorno: il prezzo per notte con tasse.

    • Tariffe per occupante: il prezzo per notte per occupante.

    • Sconto: l'importo della detrazione.

  • UnitPriceSpecification viene utilizzato per specificare il tipo di addebiti. Devi includere i valori PriceComponentTypeEnumeration per specificare i costi aggiuntivi.

    I valori per PriceComponentTypeEnumeration sono:

    • Discount: lo sconto generico sul prezzo.

    • ResortFee: è un addebito aggiuntivo da pagare in hotel. Può variare in base al tipo di struttura ricettiva.

    • GenericTax: Si tratta di un'imposta varia aggiuntiva.

    • ServiceFee: è un costo aggiuntivo addebitato dal canale di prenotazione.

    • TransferFee: È una commissione obbligatoria di fatto per il trasporto all'hotel, riscossa dall'hotel o dal canale di prenotazione.

Devi impostare i valori nella proprietà priceComponentType . Se scegli di includere UnitPriceSpecification, tutti i valori sono obbligatori e devono essere specificati nella proprietà UnitPriceSpecification.

Hotel.Offer.priceSpecification.priceComponent. potentialAction Optional PayAction

Il punto di pagamento dell'hotel.I flussi di pagamento dell'hotel includono prezzi addebitati al momento del check-out sul sito di prenotazione e presso l'hotel al momento del check-in.

Devi utilizzare la proprietà potentialAction , inclusa nel campo "recipient" di PayAction, per indicare il punto di pagamento. Fai riferimento a PayAction per scoprire di più sulla proprietà recipient.

Google supporta le seguenti due impostazioni per il destinatario di PayAction:

  • recipient.@type = "OnlineBusiness" si riferisce al pagamento riscosso al momento della prenotazione dal commerciante online. Questa è l'impostazione predefinita se potentialAction non è specificato.

  • recipient.@type = "Hotel" si riferisce al pagamento riscosso in hotel.

Esempi

Esempi JSON-LD

Prezzo

Di seguito è riportato un esempio di base di aggiunta di dati strutturati relativi al prezzo alla tua pagina web. È possibile includere più offerte a livello di hotel nella proprietà makesOffer.

I tipi di 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 tasse 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 suddivisione del prezzo. La tariffa base, le tasse come la tassa generica e lo sconto sono definiti utilizzando il componente UnitPriceSpecification. Ricorda 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 nell'utilizzo del tipo di destinatario di 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 "@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 suddivisione del prezzo. La tariffa base, le tasse come la tassa generica e lo sconto sono definiti utilizzando il componente UnitPriceSpecification. Ricorda 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 del commerciante 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

hasMerchantReturnPolicy 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]",
    "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 Obbligatorio? Tipo Descrizione
Offer.hasMerchantReturnPolicy Optional MerchantReturnPolicy

Le norme sui rimborsi del commerciante. I partner devono utilizzare MerchantReturnPolicy.restockingFee per indicare le norme di cancellazione che non rimborsano l'intero importo per la durata del soggiorno.

Se hasMerchantReturnPolicy non è specificato o è lasciato vuoto, si presume che l'importo non sia rimborsabile. Puoi specificare la normativa non rimborsabile utilizzando la proprietà returnPolicyCategory: MerchantReturnNotPermitted.

Esempio

Norme sui resi

Di seguito è riportato un esempio di base di dati strutturati per un hotel con dettagli della camera e prezzo totale con 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 di cancellazione che non prevedono il rimborso dell'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 fedeltà forniti per i clienti con abbonamento all'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 Obbligatorio? Tipo Descrizione
Offer.eligibleCustomerType Optional BusinessEntityType

I programmi fedeltà o i premi per i membri offerti ai clienti.

Molte pagine degli 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 segmenti di pubblico particolari, come le tariffe per i membri, possono essere specificate impostando la proprietà Offer.eligibleCustomerType.

Esempi

Tariffe per i membri

Di seguito è riportato un esempio di base di specifica dei prezzi per i membri o delle tariffe con limitazioni per i programmi fedeltà. Il cliente è un "membro del programma a premi" 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 per i membri e standard

Questo è un esempio di annotazioni dei prezzi delle tariffe regolari e per i membri. I prezzi per gli abbonati sono elencati per primi, seguiti dalle tariffe standard.

{
  "@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 contrassegnare gli itinerari delle camere. Devi utilizzare 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à Obbligatorio? Tipo Descrizione
offers Required Offer and LodgingReservation

La specifica del prezzo della camera per l'itinerario specificato.

La proprietà offers può contenere un array di offerte.

LodgingReservation.checkinTime Required DateTime

L'ora del check-in nel fuso orario dell'utente. Se il tuo fuso orario non è menzionato, viene preso in considerazione il fuso orario dell'hotel.

LodgingReservation.checkoutTime Required DateTime

L'ora di check-out nel fuso orario dell'utente. Se il tuo fuso orario non è menzionato, viene considerato il fuso orario dell'hotel.

Esempio

Pixel

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

bed e occupancy

La proprietà bed viene utilizzata per annotare il tipo 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

Le proprietà bed e occupancy hanno la seguente sintassi:

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. Le informazioni specifiche per la camera, 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à Obbligatorio? Tipo Descrizione
HotelRoom.bed Optional (Recommended) bed

Il tipo di letto o letti inclusi nella sistemazione e il numero di occupanti nella camera.

I valori supportati sono:

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

Il numero di ospiti nella camera d'hotel. Il tipo di occupazione è QuantitativeValue.

L'occupazione è una proprietà esplicita di HotelRoom, non di un Offer specifico. Le tariffe devono essere taggate solo per l'occupazione richiesta.

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 servizi in camera.

Scopri di più su come utilizzare containsPlace nella proprietà amenityFeature.

Esempi

HotelRoom

Di seguito è riportato un esempio di base di letti e occupazioni per una specifica di 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 HotelRoom

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 del prezzo della camera d'hotel è simile a quella del prezzo 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'albergo 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à Obbligatorio? Tipo Descrizione
Hotel.Offer.priceSpecification.price Required float

Il prezzo per camera, incluse tasse e commissioni per il Product.

La tariffa Google deve sempre essere annotata nella pagina di destinazione insieme ai dettagli completi della tariffa. L'annotazione dei dettagli della tariffa ti consente di completare i controlli di accuratezza del prezzo. Google accetta prezzi a livello di hotel e di camera.

Hotel.Offer.priceSpecification.priceCurrency Required currency Un codice valuta di tre lettere per il prezzo specificato. Ad es. "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

Il prezzo totale dettagliato, incluse tasse e commissioni per la camera dell'hotel e l'occupazione con offerte collegate a HotelRoom e Product. Esistono due tipi di dati strutturati relativi al prezzo:

  • CompoundPriceSpecification fornisce i dettagli dei prezzi per includere quanto segue:

    • Tariffa di base: il prezzo base per notte

    • Tasse per soggiorno: il prezzo per notte con tasse.

    • Tariffe per occupante: il prezzo per notte per occupante.

      occupancy è una proprietà esplicita di HotelRoom, non di un Offer specifico. Le tariffe devono essere taggate solo per l'occupazione richiesta.

    • Sconto: l'importo della detrazione.

  • UnitPriceSpecification viene utilizzato per specificare il tipo di addebiti. Devi includere i valori PriceComponentTypeEnumeration per specificare i costi aggiuntivi.

    I valori per PriceComponentTypeEnumeration sono:

    • Discount: lo sconto generico sul prezzo.

    • ResortFee: è un addebito aggiuntivo da pagare in hotel. Può variare in base al tipo di struttura ricettiva.

    • GenericTax: Si tratta di un'imposta varia aggiuntiva.

    • ServiceFee: è una commissione aggiuntiva addebitata dal canale di prenotazione.

    Devi impostare i valori nella proprietà name di UnitPriceSpecification. Se scegli di includere la suddivisione del prezzo, tutti i valori sono obbligatori e devono essere specificati nel componente UnitPriceSpecification.

Esempi

Prezzo totale della camera

Di seguito è riportato un esempio di base di definizione del prezzo totale per la durata del soggiorno e del prezzo per occupazione.

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

Prezzo dettagliato della camera

Di seguito è riportato un esempio di prezzo per camera o piano. La suddivisione del prezzo è definita per il tipo di camera, ad esempio la camera Deluxe, e per il tipo bed e occupancy, ad esempio letti KING e SINGLE e un'occupazione di 2 ospiti.

{
  "@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 per la tariffa forniti nell'hotel o nella camera, come le opzioni per i pasti e il servizio di parcheggio e riconsegna 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

includesObject ha la seguente sintassi per i servizi specifici per la tariffa 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 Obbligatorio? Tipo Descrizione
Offer.includesObject Optional TypeAndQuantityNode

I servizi forniti nell'hotel o nella camera.

Le funzionalità specifiche per la tariffa sono incluse nella proprietà includesObject. Il campo del nome su "TypeAndQuantityNode.typeOfGood" deve essere utilizzato per indicare il tipo di servizio, ad esempio servizio di parcheggio e riconsegna auto o servizio di ristorazione.

Le funzionalità specifiche della tariffa possono essere incluse anche nelle offerte di livello base o possono essere specificate come componenti aggiuntivi a un prezzo aggiuntivo.

includesObject richiede un valore di tipo TypeAndQuantityNode come segue:

  • BreakfastIncluded
  • DinnerIncluded
  • Valet
  • MealCredit

Esempio

Servizi

Di seguito è riportato un esempio di base di funzionalità specifiche per le tariffe per il servizio di parcheggio con ritiro e consegna e per i servizi di ristorazione. Le funzionalità specifiche della tariffa devono essere specificate con la proprietà "Offer.includesObject". Il campo Nome in "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'hotel.

"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 è riportata la proprietà availability:

Attributo Obbligatorio? Tipo Descrizione
Offer.availability Optional ItemAvailability

La disponibilità dell'hotel o della camera.

Le tariffe vengono estratte da schema.org/Offer e le informazioni sulle tariffe non vengono create utilizzando schema.org/Hotel o schema.org/HotelRoom. Ciò significa che anche gli itinerari esauriti devono avere un'offerta.

Un'offerta senza priceSpecification è considerata non disponibile. Le offerte non disponibili devono essere specificate come "Offer.availability= https://schema.org/SoldOut".

Offer.availability non deve essere specificato se l'offerta è annotata con un priceSpecification. valido.

Esempio

Disponibilità

Di seguito è riportato un esempio di base per mostrare l'indisponibilità di una camera d'hotel. Devi includere il tipo di letto, il numero di letti e i dettagli di occupazione 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 nella 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"
    }
  }
}

Comfort

I seguenti servizi sono consentiti e definiti nella proprietà name.

Attributo Obbligatorio? Tipo Descrizione
amenityFeature.AC Optional boolean Indica se la proprietà è dotata di aria condizionata.
amenityFeature.AirportShuttle Optional boolean Indica se l'host offre un servizio di trasporto da e per l'aeroporto o altri terminal.
amenityFeature.Balcony Optional boolean Indica se l'alloggio è dotato di 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 Indica se l'alloggio è dotato di camino.
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à ha una palestra o qualsiasi attrezzatura per il fitness.
amenityFeature.Heating Optional boolean Indica 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à può essere prenotata istantaneamente 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 Indica se l'alloggio è dotato di cucina.
amenityFeature.Microwave Optional boolean Indica se l'alloggio è dotato di forno a microonde.
amenityFeature.OpenAirBath(Hotels only) Optional boolean Indica se l'alloggio dispone di una vasca all'aperto. Se specificato a livello di camera, il bagno deve essere privato solo per gli occupanti della camera.
amenityFeature.OutdoorGrill Optional boolean Indica se la proprietà ha una griglia per barbecue.
amenityFeature.OvenStove Optional boolean Indica se la proprietà è dotata di fornello.
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 self check-in e il self check-out.
amenityFeature.WasherDryer Optional boolean Indica se l'alloggio è dotato di lavatrice/asciugatrice.
amenityFeature.Wifi Optional boolean Indica se la proprietà è dotata di Wi-Fi.
amenityFeature.Smoking Optional boolean Indica se l'alloggio consente di fumare.
amenityFeature.InternetType Optional Enum

Il tipo di connessione a internet disponibile nella proprietà.

I valori supportati sono:

  • FREE
  • PAID
  • NONE
amenityFeature.ParkingType Optional Enum

Il tipo di parcheggio disponibile nella proprietà.

I valori supportati sono:

  • FREE
  • PAID
  • NONE
amenityFeature.PoolType Optional Enum

Il tipo di piscina disponibile nella proprietà.

I valori supportati sono:

  • INDOOR
  • OUTDOOR
  • NONE
amenityFeature.RoomStyle Optional Enum

Indica se la stanza è progettata in stile giapponese.

I valori supportati sono:

  • WESTERN
  • JAPANESE
  • JAPANESE_WESTERN
amenityFeature.LicenseNum Required string

Numero di licenza dell'attività da mostrare sulla proprietà in alcune regioni del mondo. Può essere ripetuto e, se esistono più licenze, è consigliabile aggiungere il proprietario o l'autorità della licenza. Ad esempio, "Paris: 123456ABC"

Proprietà

Di seguito sono riportate le proprietà amenityFeature:

Proprietà Obbligatorio? Tipo Descrizione
amenityFeature Optional LocationFeatureSpecification

I servizi forniti nell'hotel o nella camera. Può essere specificato utilizzando la proprietà amenityFeature . I servizi devono essere disponibili per tutti gli ospiti dell'hotel, indipendentemente dal piano tariffario selezionato. amenityFeature viene specificato utilizzando il valore della proprietà LocationFeatureSpecification.

I servizi possono essere specificati a livello di Hotel o HotelRoom.

containsPlace Optional LocationFeatureSpecification

I servizi forniti nell'hotel o nella camera a tutti gli ospiti dell'hotel. Può essere specificato utilizzando amenityFeature . I servizi devono essere disponibili per tutti gli ospiti nella camera d'hotel, indipendentemente dal piano tariffario selezionato.

Hotel.containsPlace.amenityFeature sono i servizi forniti nell'hotel.

HotelRoom.containsPlace.amenityFeature sono i servizi forniti nella camera.

Esempio

Servizi dell'hotel e della camera

Di seguito è riportato un esempio di hotel con piscina aperta dalle 10:00 alle 22:00 e senza palestra disponibile nella struttura. La camera d'hotel è non fumatori e dispone di 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"
      }
    }
  }
}