Esta página fornece uma referência para adicionar marcações de dados estruturados aos dados de preços dos seus hotéis.
Visão geral
Os dados estruturados de preço de hotéis são usados para explicar, validar e mostrar em detalhes os preços listados no seu site, independente da interface do usuário. Isso também inclui preço base, tarifas, quartos, taxas e tributos e campos relacionados a preços.
O Google recomenda que os parceiros anotem as páginas da Web com dados estruturados padronizados que podem ser lidos por máquinas para rastreadores, fornecidos pelo schema.org, para extrair preços com precisão das páginas da Web.
Isso permite dimensionar as validações de precisão do preço, melhorando a confiabilidade dos rastreadores. O benefício para você é um aumento no número de validações do nível de precisão do preço e a capacidade de depurar problemas de nível de precisão do preço diretamente, além de ter uma pontuação consistente.
Se você não sabe muito sobre o assunto, confira Vocabulário e formato de dados estruturados.
O Google Hotéis recomenda o formato JSON-LD para anotar suas páginas da Web. Consulte Formatos aceitos para saber mais sobre outros formatos aceitáveis. Esta documentação oferece
conteúdo de referência detalhado específico para a implementação de dados estruturados em hotéis.
Os dados estruturados Hotel são usados para anotar campos específicos do hotel na sua página da Web. Os dados estruturados Hotel têm as seguintes propriedades:
Propriedades
nameeaddressPropriedade
makesOfferPropriedade
Hotel priceSpecificationPropriedade
hasMerchantReturnPolicyPropriedade
eligibleCustomerType
Os dados estruturados HotelRoom são usados para anotar campos específicos do quarto na
página da Web.
Os dados estruturados HotelRoom têm as seguintes propriedades:
Propriedade
offersPropriedades
bedeoccupancyPropriedade
HotelRoom priceSpecificationPropriedade
includesObjectPropriedade
availabilityPropriedade
amenityFeature
Dados estruturados de hotéis
Propriedades name e address
As propriedades name e address são usadas para anotar o nome e a localização do hotel. Confira as propriedades 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."
},
Sintaxe
As propriedades name e address usam a seguinte sintaxe:
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"]
...
}
}
Propriedades
Confira as propriedades name e address:
| Propriedade | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
| Hotel.name | Required | string | O nome do hotel |
| Hotel.identifier | Required | string | O ID do hotel dos parceiros. O identificador precisa ser uma string exclusiva por hotel e corresponder exatamente à string usada no feed de preços. |
| Hotel.address | Optional | PostalAddress | O endereço ou local do hotel. |
Exemplos
Nome e endereço
Confira a seguir um exemplo básico de como adicionar anotações 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"
}
}
}
Propriedade makesOffer
As anotações makesOffer são usadas para marcar
seus itinerários de hotel.
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"availability": "https://schema.org/InStock",
...
}
Sintaxe
A propriedade makesOffer usa a seguinte sintaxe:
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": { ... }
}
}
Propriedades
Estas são as propriedades makesOffer:
| Propriedade | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
| makesOffer | Required | Offer and LodgingReservation | As ofertas de hotel para o itinerário especificado.
A propriedade |
| LodgingReservation.checkinTime | Required | DateTime | O horário de check-in no fuso horário do usuário. Se o seu fuso horário não for mencionado, vamos considerar o do hotel. |
| LodgingReservation.checkoutTime | Required | DateTime | O horário de check-out no fuso horário do usuário. Se o seu fuso horário não for mencionado, vamos considerar o do hotel. |
Exemplo
makesOffer
Confira abaixo um exemplo básico para anotar suas ofertas de hotel. É possível especificar várias ofertas para um itinerário, mas primeiro especifique a taxa mostrada pelo Google, seguida por outras taxas. O valor do preço especificado inclui todos os tributos aplicáveis.
{
"@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"
}
}
]
}
Propriedade Hotel priceSpecification
Essa propriedade é usada para anotar informações de preços do seu hotel ou dos quartos dele. Há duas propriedades adicionais necessárias para anotar seus preços e tributos. Use CompoundPriceSpecification
para especificar as informações de preços totais, como taxa básica, tributos e descontos.
Use UnitPriceSpecification
para especificar tributos adicionais ou tipos especiais de cobranças
como ResortFee, GenericTax e ServiceFee. A propriedade priceSpecification
é agrupada com a propriedade Offer.
{
...
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": "float",
"priceCurrency": "currency"
},
...
]
}
}
Sintaxe
A propriedade Hotel priceSpecification usa a seguinte sintaxe:
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"
}
]
}
}
}
Microdados
<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>
Propriedades
Estas são as propriedades hotel priceSpecification:
| Propriedade | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
| Hotel.Offer.priceSpecification.price | Required | float | O preço total, incluindo tributos e taxas do hotel. A tarifa do Google precisa sempre ser anotada na página de destino junto com os detalhes completos da tarifa. Ao anotar os detalhes da tarifa, você pode concluir verificações de precisão de preços. O Google aceita preços no nível do hotel e do quarto. |
| Hotel.Offer.priceSpecification.priceCurrency | Required | currency | Um código de moeda de três letras para o preço especificado. Por exemplo: "USD"
. |
| Hotel.Offer.priceSpecification.priceComponent | Optional | UnitPriceSpecification[] | O detalhamento do preço total, incluindo tributos e taxas do hotel. Há dois tipos de dados estruturados de preço:
É preciso definir os valores na propriedade |
| Hotel.Offer.priceSpecification.priceComponent. potentialAction | Optional | PayAction | O ponto de pagamento do hotel.Os fluxos de pagamento do hotel incluem preços que são cobrados durante o horário de check-out no site de reservas e no hotel durante o check-in. Use a propriedade O Google oferece suporte às duas configurações a seguir para o destinatário de
|
Exemplos
Exemplos de JSON-LD
Preço
Confira um exemplo básico de como adicionar dados estruturados de preço à sua página da Web. Várias ofertas no nível do hotel podem ser incluídas na propriedade makesOffer.
Tipos de PostalAddress, como addressCountry, postalCode, streetAddress e outros campos, são obrigatórios se você especificar a propriedade address. A taxa exibida pelo Google precisa ser listada primeiro na propriedade
makesOffer. O valor especificado inclui todos os tributos aplicáveis.
{
"@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"
}
},
...
]
}
Detalhamento do preço
Confira a seguir um exemplo da propriedade priceSpecification com o detalhamento de preços. A taxa básica, os tributos, como tributo genérico e desconto, são definidos usando o componente UnitPriceSpecification. Lembre-se de definir o campo priceComponentType com os valores correspondentes ao componente UnitPriceSpecification.
O preço total da estadia precisa ser especificado na propriedade
CompoundPriceSpecification. O detalhamento de preços precisa ser especificado na propriedade 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"
}
]
}
}
}
Ponto de pagamento
Confira um exemplo de especificação potentialAction usando o tipo de destinatário do
PayAction.
O preço total do pacote é de US $1.170, e o site on-line cobra parte do preço total, que é de US $1.150 no momento da reserva especificado usando "@type": "OnlineBusiness". O usuário precisa pagar os US $20 restantes no momento do check-in no hotel, que é especificado usando @type": "Hotel".
É necessário especificar o componente potentialAction para detalhar o
pagamento no momento da reserva e no hotel. Se não for especificado, payAction vai interpretar o pagamento no momento da reserva como a forma de pagamento padrão.
{
"@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": { ... }
}
}
}
]
}
}
}
Exemplo de microdados
Detalhamento do preço
Confira a seguir um exemplo da propriedade priceSpecification com o detalhamento de preços. A taxa básica, os tributos, como tributo genérico e desconto, são definidos usando o componente UnitPriceSpecification. Não se esqueça de definir a propriedade
name com os valores correspondentes ao
componente UnitPriceSpecification.
O preço total da estadia precisa ser especificado na propriedade
CompoundPriceSpecification. O detalhamento de preços precisa ser especificado na propriedade 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>
Propriedade hasMerchantReturnPolicy
Essa propriedade é usada para anotar a política de reembolso do comerciante nos itinerários.
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"refundType": "https://schema.org/FullRefund",
"merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
"restockingFee": 0
}
Sintaxe
O hasMerchantReturnPolicy tem a seguinte sintaxe:
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
}
}
}
Propriedade
Esta é a propriedade hasMerchantReturnPolicy:
| Atributo | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
| Offer.hasMerchantReturnPolicy | Optional | MerchantReturnPolicy | A política de reembolso da loja. Os parceiros precisam usar
Se |
Exemplo
Política de devolução
Confira um exemplo básico de dados estruturados para um hotel com detalhes do quarto e preço total com tributos e taxas. Este exemplo indica uma estadia
que pode ser cancelada sem custos até as 23h (UTC) de
18 de dezembro de 2023. Os parceiros precisam usar
"MerchantReturnPolicy.restockingFee" para indicar políticas de cancelamento
que não reembolsam o valor total da estadia. O padrão de 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
}
}
}
Propriedade eligibleCustomerType
Essa propriedade pode ser usada para anotar os programas de fidelidade oferecidos aos clientes associados a hotéis.
"eligibleCustomerType": "RewardsMember",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency"
}
Sintaxe
A propriedade eligibleCustomerType tem a seguinte sintaxe:
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": { ... }
}
}
Propriedade
Esta é a propriedade eligibleCustomerType:
| Atributo | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
| Offer.eligibleCustomerType | Optional | BusinessEntityType | Os programas de fidelidade ou as recompensas oferecidas aos clientes. Muitas páginas de hotéis mostram as tarifas para membros junto com as tarifas públicas para incentivar os usuários a se inscreverem nos programas de fidelidade. As tarifas restritas a públicos-alvo específicos, como as de membros, podem ser especificadas definindo a propriedadeOffer.eligibleCustomerType. |
Exemplos
Preços para membros
Confira a seguir um exemplo básico de especificação de preços para membros ou de tarifa restrita para programas de fidelidade. O cliente é um "membro do programa de fidelidade" do 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"
}
]
}
}
}
Tarifas para membros e regulares
Este é um exemplo de anotações de preços de tarifa regular e para membros. Os preços para membros são listados primeiro, seguidos das tarifas normais.
{
"@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"
}
]
}
}
]
}
Dados estruturados de HotelRoom
Propriedade offers
As anotações offers são usadas para marcar seus itinerários
de quarto. Use a propriedade offers para a especificação 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": {...}
}
Sintaxe
A propriedade offers tem a seguinte sintaxe:
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",
...
}
}
}
Propriedades
Estas são as propriedades offers:
| Propriedade | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
| offers | Required | Offer and LodgingReservation | A especificação de preço do quarto para o itinerário especificado. A propriedade |
| LodgingReservation.checkinTime | Required | DateTime | O horário de check-in no fuso horário do usuário. Se o seu fuso horário não for mencionado, vamos considerar o do hotel. |
| LodgingReservation.checkoutTime | Required | DateTime | O horário de check-out no fuso horário do usuário. Se o seu fuso horário não for mencionado, vamos considerar o do hotel. |
Exemplo
ofertas
Confira abaixo um exemplo básico para especificar offers na propriedade 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"
}
}
}
Propriedades bed e occupancy
A propriedade bed é usada para anotar o tipo e o número de camas disponíveis no quarto. A propriedade occupancy é usada para anotar o número de hóspedes no quarto. As propriedades bed e occupancy podem ser especificadas usando a propriedade 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"
}
}
Sintaxe
As propriedades bed e occupancy têm a seguinte sintaxe:
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"
},
...
}
}
}
}
As propriedades bed e occupancy só podem ser definidas usando a propriedade HotelRoom. Informações específicas do quarto, incluindo tarifas no nível do quarto, podem ser incluídas
na propriedade Hotel pela propriedade containsPlace. Consulte o
exemplo de especificação Hotel e HotelRoom.
Propriedades
Confira as propriedades bed e occupancy:
| Propriedade | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
| HotelRoom.bed | Optional (Recommended) | bed | O tipo de cama(s) incluídas na acomodação e o número de ocupantes no quarto. Os valores compatíveis são:
|
| HotelRoom.occupancy | Optional (Recommended) | QuantitativeValue | O número de hóspedes no quarto do hotel. O tipo de ocupação é um
A ocupação é uma propriedade explícita de |
| containsPlace | Optional (Recommended) | LocationFeatureSpecification | Ela é usada para anotar as diárias no nível do quarto associadas a quartos específicos. Também pode ser usado para especificar as comodidades do quarto. Saiba como usar |
Exemplos
HotelRoom
Confira a seguir um exemplo básico de camas e ocupações para uma especificação de quarto.
{
"@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
Confira abaixo um exemplo de como anotar as propriedades Hotel e HotelRoom
junto com 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"
}
}
}
}
Propriedade HotelRoom priceSpecification
A especificação de preço de quarto de hotel é semelhante à de hotel.A diferença é que os preços de quartos são especificados usando a propriedade Product.offers em vez de Hotel.makesOffer.
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": {
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": "float",
"priceCurrency": "currency"
}
...
}
Sintaxe
A propriedade priceSpecification para quartos de hotel tem a seguinte sintaxe:
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"
}
]
}
}
}
Propriedades
Estas são as propriedades HotelRoom priceSpecification:
| Propriedade | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
| Hotel.Offer.priceSpecification.price | Required | float | O preço por quarto, incluindo tributos e taxas para o
A tarifa do Google precisa sempre ser anotada na página de destino junto com os detalhes completos da tarifa. Ao anotar os detalhes da tarifa, você pode concluir verificações de precisão de preços. O Google aceita preços no nível do hotel e do quarto. |
| Hotel.Offer.priceSpecification.priceCurrency | Required | currency | Um código de moeda de três letras para o preço especificado. Por exemplo: "USD"
. |
| Hotel.Offer.priceSpecification.priceComponent | Optional | UnitPriceSpecification[] | O detalhamento do preço total, incluindo tributos e taxas do quarto de hotel e da ocupação com ofertas vinculadas a
|
Exemplos
Preço total do quarto
Confira a seguir um exemplo básico de como definir o preço total para a duração da estadia e o preço por ocupação.
{
"@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"
}
},
...
}
Detalhamento do preço do quarto
Confira um exemplo de preço por quarto ou plano. O detalhamento de preços é definido para o tipo de quarto, como quarto Deluxe, e o tipo bed e occupancy, como camas KING e SINGLE, e uma ocupação de dois hóspedes.
{
"@context": "https://schema.org",
"@type": ["HotelRoom", "Product"],
"name": "Deluxe Room King, 1 Single Bed",
"identifier": "hotel-room-id-1234",
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "rate-plan-id-of-member-rate",
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"bed": [
{
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "KING"
},
{
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "SINGLE"
}
],
"occupancy": {
"@type": "QuantitativeValue",
"value": 2
},
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "Base rate",
"price": 1150,
"priceCurrency": "USD"
},
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": 172.74,
"priceCurrency": "USD",
"priceComponentType": "GenericTax"
},
{
"@type": "UnitPriceSpecification",
"name": "Discount",
"price": -100,
"priceCurrency": "USD",
"priceComponentType": "Discount"
}
]
}
}
}
Propriedade includesObject
Essa propriedade é usada para anotar serviços específicos de tarifas oferecidos no hotel ou no quarto, como opções de refeições e serviço de manobrista. É possível anotar
includesObject na propriedade Hotel ou HotelRoom.
{
"includesObject": [
{
"@type": "TypeAndQuantityNode",
"typeOfGood": {
"@type": "Service",
"name": "Valet"
}
},
{
"@type": "TypeAndQuantityNode",
"amountOfThisGood": "float",
"unitText": "currency",
"typeOfGood": {
"@type": "FoodService",
"name": "MealCredit"
}
}
]
}
Sintaxe
O includesObject tem a seguinte sintaxe para serviços específicos de tarifa
disponíveis no quarto:
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"
}
}
]
}
}
Propriedade
O includesObject tem a seguinte propriedade:
| Atributo | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
| Offer.includesObject | Optional | TypeAndQuantityNode | Os serviços oferecidos no hotel ou no quarto. Os recursos específicos da taxa estão incluídos na propriedade Recursos específicos de tarifas também podem ser incluídos em ofertas de nível básico ou especificados como complementos por um preço adicional. O
|
Exemplo
Serviços
Confira a seguir um exemplo básico de recursos específicos de taxa para manobrista e serviços de alimentação. Os recursos específicos da taxa precisam ser especificados com a propriedade "Offer.includesObject". O campo "name" em
"TypeAndQuantityNode.typeOfGood" deve ser usado para indicar o tipo de
serviço.
{
"@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"
}
}
]
}
}
Propriedade availability
A propriedade offer.availability é usada para anotar os itinerários esgotados
para os quartos de hotel.
"offers": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"availability": "https://schema.org/SoldOut"
}
Sintaxe
A propriedade availability tem a seguinte sintaxe:
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"
}
}
Propriedade
A seguir, a propriedade availability:
| Atributo | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
| Offer.availability | Optional | ItemAvailability | A disponibilidade do hotel ou do quarto. As taxas são extraídas do
Uma oferta sem um Não é necessário especificar |
Exemplo
Disponibilidade
Confira a seguir um exemplo básico para mostrar a indisponibilidade de quartos de hotel. Inclua o tipo e o número de camas e os detalhes de ocupação do quarto especificado.
{
"@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": {...}
}
}
Propriedade amenityFeature
As comodidades podem ser especificadas no tipo Hotel ou HotelRoom usando a propriedade amenityFeature. Use a propriedade containsPlace para especificar
as comodidades oferecidas no quarto.
{
"@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
}
]
}
}
Sintaxe
As propriedades amenityFeature e containsPlace têm a seguinte sintaxe:
JSON-LD
{
"@context": "https://schema.org",
"@type": "Hotel",
...
"amenityFeature": {
"@type": "LocationFeatureSpecification",
"name": "HotTub",
"hoursAvailable": {
"@type": "OpeningHoursSpecification",
"opens": "HH:mm:ss",
"closes": "HH:mm:ss"
}
},
"containsPlace": {
"@type": "HotelRoom",
"amenityFeature": {
"@type": "LocationFeatureSpecification",
"name": "Minibar",
"value": "boolean"
}
}
}
Comodidades
As seguintes comodidades são permitidas e definidas na propriedade name.
| Atributo | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
| amenityFeature.AC | Optional | boolean | Se a propriedade tem ar condicionado. |
| amenityFeature.AirportShuttle | Optional | boolean | Se o anfitrião oferece transporte de e para o aeroporto ou outros terminais. |
| amenityFeature.Balcony | Optional | boolean | Se a acomodação tem sacada. |
| amenityFeature.BeachAccess | Optional | boolean | Se a propriedade tem acesso a uma praia pública próxima. |
| amenityFeature.ChildFriendly | Optional | boolean | Se a propriedade é adequada para crianças. |
| amenityFeature.Crib | Optional | boolean | Se a propriedade oferece um berço. |
| amenityFeature.Elevator | Optional | boolean | Se a propriedade tem elevador. |
| amenityFeature.FirePlace | Optional | boolean | Se a acomodação tem lareira. |
| amenityFeature.FreeBreakfast | Optional | boolean | Se a propriedade oferece café da manhã incluído para todos os hóspedes. Use recursos de tarifa para indicar se o café da manhã está incluído apenas em planos de tarifas específicos. |
| amenityFeature.GymFitnessEquipment | Optional | boolean | Se a propriedade tem academia ou equipamentos de ginástica. |
| amenityFeature.Heating | Optional | boolean | Se a acomodação tem aquecimento. |
| amenityFeature.HotTub | Optional | boolean | Se a propriedade tem banheira de hidromassagem. |
| amenityFeature.InstantBookable | Optional | boolean | Se a propriedade pode ser reservada instantaneamente pelo processo de finalização da compra. A alternativa é aguardar aprovação. |
| amenityFeature.IroningBoard | Optional | boolean | Se a propriedade tem tábuas de passar disponíveis. |
| amenityFeature.Kitchen | Optional | boolean | Se a acomodação tem cozinha. |
| amenityFeature.Microwave | Optional | boolean | Se a acomodação tem um micro-ondas disponível. |
| amenityFeature.OpenAirBath(Hotels only) | Optional | boolean | Se a acomodação tem uma banheira ao ar livre. Se especificado no nível do quarto, o banheiro será privativo apenas para os ocupantes do quarto. |
| amenityFeature.OutdoorGrill | Optional | boolean | Se a propriedade tem uma churrasqueira. |
| amenityFeature.OvenStove | Optional | boolean | Se a propriedade tem um fogão. |
| amenityFeature.Patio | Optional | boolean | Se a propriedade tem um terraço. |
| amenityFeature.Pool | Optional | boolean | Se a acomodação tem piscina. |
| amenityFeature.PrivateBeachAccess | Optional | boolean | Se a propriedade tem acesso exclusivo a uma praia não pública. |
| amenityFeature.SelfCheckinCheckout | Optional | boolean | Indica se a propriedade aceita self check-in e check-out. |
| amenityFeature.WasherDryer | Optional | boolean | Se a acomodação tem eletrodomésticos de lavanderia. |
| amenityFeature.Wifi | Optional | boolean | Se a propriedade tem Wi-Fi. |
| amenityFeature.Smoking | Optional | boolean | Se o estabelecimento permite fumar. |
| amenityFeature.InternetType | Optional | Enum | O tipo de Internet disponível na propriedade. Os valores compatíveis são:
|
| amenityFeature.ParkingType | Optional | Enum | O tipo de estacionamento disponível na propriedade. Os valores compatíveis são:
|
| amenityFeature.PoolType | Optional | Enum | O tipo de piscina disponível na propriedade. Os valores compatíveis são:
|
| amenityFeature.RoomStyle | Optional | Enum | Indica se o quarto tem um design de estilo japonês. Os valores compatíveis são:
|
| amenityFeature.LicenseNum | Required | string | Número da licença da empresa que será exibido na propriedade
em determinadas regiões do mundo. Ele pode ser repetido e, se houver várias licenças, recomendamos adicionar o proprietário ou a autoridade da licença. Por exemplo, |
Propriedades
Estas são as propriedades amenityFeature:
| Propriedade | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
| amenityFeature | Optional | LocationFeatureSpecification | As comodidades oferecidas no hotel ou no quarto. Ele pode ser especificado usando a propriedade As comodidades podem ser especificadas no nível |
| containsPlace | Optional | LocationFeatureSpecification | As comodidades oferecidas no hotel ou no quarto para todos os hóspedes. Ele
pode ser especificado usando o
|
Exemplo
Comodidades no hotel e no quarto
Este é um exemplo de um hotel com piscina aberta das 10h às 22h e sem academia disponível na propriedade. O quarto de hotel é para não fumantes e tem frigobar.
{
"@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"
}
}
}
}