Riferimento ai dati strutturati relativi ai prezzi degli hotel

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

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

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à makesOffer può contenere un array di offerte.

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:

  • CompoundPriceSpecification fornisce suddivisioni dei prezzi che includono quanto segue:

    • Tariffa di base: il prezzo di base per notte.

    • Tasse a soggiorno: il prezzo per notte, tasse incluse.

    • Addebiti per persona: il prezzo per notte per persona.

    • 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: si tratta di un costo aggiuntivo da pagare in hotel. Può variare in base al tipo di alloggio.

    • GenericTax: si tratta di un'imposta variegata aggiuntiva.

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

    • TransferFee: si tratta di una tariffa obbligatoria di fatto obbligatoria per il trasporto verso l'hotel, riscossa dall'hotel o dal canale di prenotazione.

Devi impostare i valori nella proprietà priceComponentType . Tutti i valori sono obbligatori se scegli di includere UnitPriceSpecification e deve essere specificato nella proprietà UnitPriceSpecification.

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à potentialAction abbinata al campo "recipient" di PayAction per indicare il punto di pagamento. Consulta la pagina PayAction per scoprire di più sulla proprietà recipient.

Google supporta le due impostazioni seguenti 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 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 MerchantReturnPolicy.restockingFee per indicare le norme relative all'annullamento che non rimborsano l'intero importo per la durata del soggiorno.

Se hasMerchantReturnPolicy non viene specificato o viene lasciato vuoto si presume che l'importo non sia rimborsabile. Puoi specificare le norme non rimborsabili utilizzando la proprietà returnPolicyCategory: MerchantReturnNotPermitted.

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à offers può contenere un array di offerte.

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:

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

Il numero di ospiti nella camera d'albergo. Il tipo di numero di persone è QuantitativeValue.

Il numero di persone è una proprietà esplicita di HotelRoom, non per uno specifico Offer. Le tariffe devono essere taggate solo per il numero di persone richiesto.

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 containsPlace nella proprietà amenityFeature.

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

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 HotelRoom e Product. Esistono due tipi di dati strutturati per i prezzi:

  • CompoundPriceSpecification fornisce suddivisioni dei prezzi che includono quanto segue:

    • Tariffa di base: il prezzo di base per notte.

    • Tasse a soggiorno: il prezzo per notte, tasse incluse.

    • Addebiti per persona: il prezzo per notte per persona.

      occupancy è una proprietà esplicita di HotelRoom, non per una Offer specifica. Le tariffe devono essere taggate solo per il numero di persone richiesto.

    • 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: si tratta di un costo aggiuntivo da pagare in hotel. Può variare in base al tipo di alloggio.

    • GenericTax: si tratta di un'imposta variegata aggiuntiva.

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

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

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à includesObject. Il campo del nome su "TypeAndQuantityNode.typeOfGood" deve essere utilizzato per indicare il tipo di servizio, ad esempio ritiro e riconsegna dell'auto o servizio pasti.

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.

includesObject richiede un valore di tipo TypeAndQuantityNode come segue:

  • BreakfastIncluded
  • DinnerIncluded
  • Valet
  • MealCredit

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 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 viene considerata non disponibile. Le offerte non disponibili devono essere specificate come "Offer.availability= https://schema.org/SoldOut".

Non è necessario specificare Offer.availability se l'offerta è annotata con un valore priceSpecification. valido

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:

  • 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 camera è in stile giapponese.

I valori supportati sono:

  • WESTERN
  • JAPANESE
  • JAPANESE_WESTERN
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, "Paris: 123456ABC"

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à amenityFeature . I servizi devono essere disponibili per tutti gli ospiti indipendentemente dal piano tariffario selezionato. amenityFeature viene specificato utilizzando il valore della proprietà LocationFeatureSpecification.

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

containsPlace Optional LocationFeatureSpecification

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

Hotel.containsPlace.amenityFeature sono i comfort offerti dall'hotel.

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

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