このページでは、ホテルの料金データに構造化データのマークアップを追加するためのリファレンスを紹介します。
概要
ホテル料金構造化データは、ユーザー インターフェースに関係なく、ウェブサイトに記載されているホテル料金の詳細について説明、検証、表示するために使用されます。これには、基本料金、料金、客室、料金、税金、料金に関連するフィールドも含まれます。
Google では、ウェブページから料金を正確に取得するため、クローラーが機械で読み取り可能な標準構造化データ(schema.org 提供)を使用してウェブページにアノテーションを付けることをパートナー様におすすめしています。
これにより、クローラーの信頼性が向上し、料金精度の検証がスケーリングされます。これには、料金精度検証の回数が増えること、料金精度の問題を直接デバッグできること、料金精度スコアが一貫していることなどのメリットがあります。
構造化データを初めて使用する場合は、構造化データの語彙と形式をご覧ください。
ウェブページにアノテーションを付けるには JSON-LD
形式を使用することをおすすめします。他の使用可能な形式について詳しくは、サポートされている形式をご覧ください。このドキュメントでは、ホテルでの構造化データの実装に固有のリファレンス コンテンツについて詳しく説明します。
Hotel
構造化データは、ウェブページ内のホテル固有のフィールドにアノテーションを付けるために使用されます。Hotel
構造化データには次のプロパティがあります。
name
プロパティとaddress
プロパティmakesOffer
プロパティHotel priceSpecification
プロパティhasMerchantReturnPolicy
プロパティeligibleCustomerType
プロパティ
HotelRoom
構造化データは、ウェブページ内の客室固有のフィールドにアノテーションを付けるために使用されます。
HotelRoom
構造化データには次のプロパティがあります。
offers
プロパティbed
およびoccupancy
プロパティincludesObject
プロパティavailability
プロパティamenityFeature
プロパティ
ホテルの構造化データ
name
プロパティと address
プロパティ
name
プロパティと address
プロパティは、ホテルの名前と場所にアノテーションを付けるために使用されます。name
プロパティと 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."
},
構文
name
プロパティと address
プロパティでは、次の構文を使用します。
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"]
...
}
}
プロパティ
name
プロパティと address
プロパティは次のとおりです。
プロパティ | 必須 / 任意 | タイプ | 説明 |
---|---|---|---|
Hotel.name | Required | string | ホテルの名前 |
Hotel.identifier | Required | string | パートナーのホテル ID。 識別子はホテルごとに一意の文字列で、料金フィードで使用される文字列と完全に一致している必要があります。 |
Hotel.address | Optional | PostalAddress | ホテルの住所または場所。 |
例
名前と住所
name
アノテーションと 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
件の宿泊施設
makesOffer
アノテーションは、ホテル宿泊プランのマークアップに使用されます。
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"availability": "https://schema.org/InStock",
...
}
構文
makesOffer
プロパティの構文は次のとおりです。
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": { ... }
}
}
プロパティ
makesOffer
プロパティは次のとおりです。
プロパティ | 必須 / 任意 | タイプ | 説明 |
---|---|---|---|
makesOffer | Required | Offer and LodgingReservation | 指定された宿泊プランのホテル特典。
|
LodgingReservation.checkinTime | Required | DateTime | ユーザーのタイムゾーンでのチェックイン時間。タイムゾーンが指定されていない場合、ホテルのタイムゾーンが考慮されます。 |
LodgingReservation.checkoutTime | Required | DateTime | ユーザーのタイムゾーンでのチェックアウト時間。タイムゾーンが指定されていない場合、ホテルのタイムゾーンが考慮されます。 |
例
makesOffer
以下は、ホテルの特典にアノテーションを付ける基本的な例です。1 つの旅行プランに複数のオファーを指定できますが、最初に Google に表示される料金を指定し、次に他の料金を指定する必要があります。指定された価格には、適用されるすべての税金が含まれます。
{
"@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
件の宿泊施設
このプロパティは、ホテルやホテルの客室の料金情報にアノテーションを付けるために使用されます。価格と税金にアノテーションを付けるには、さらに 2 つのプロパティが必要です。CompoundPriceSpecification を使用して、基本料金、税金、割引などの合計料金情報を指定する必要があります。追加の税金や特別なタイプの料金(ResortFee
、GenericTax
、ServiceFee
など)を指定するには、UnitPriceSpecification を使用します。priceSpecification
プロパティは、Offer
プロパティとバンドルされています。
{
...
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": "float",
"priceCurrency": "currency"
},
...
]
}
}
構文
Hotel priceSpecification
プロパティの構文は次のとおりです。
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"
}
]
}
}
}
microdata
<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>
プロパティ
hotel priceSpecification
プロパティは次のとおりです。
プロパティ | 必須 / 任意 | タイプ | 説明 |
---|---|---|---|
Hotel.Offer.priceSpecification.price | Required | float | ホテルの税金と手数料を含む合計金額。 ランディング ページには、Google の料金とすべての料金の詳細が必ず明記されます。料金の詳細にアノテーションを付けると、料金精度の確認を完了できます。Google では、ホテルレベルと客室レベルの料金の両方を使用できます。 |
Hotel.Offer.priceSpecification.priceCurrency | Required | currency | 指定された価格の 3 文字の通貨コード。(例: "USD"
)。 |
Hotel.Offer.priceSpecification.priceComponent | Optional | UnitPriceSpecification[] | ホテルの税金と手数料を含む合計料金の内訳。 価格の構造化データには次の 2 種類があります。
|
Hotel.Offer.priceSpecification.priceComponent. potentialAction | Optional | PayAction | ホテルの支払いフローには、予約サイトでのチェックアウト時間およびチェックイン時にホテルで請求される料金が含まれます。 決済場所を示すには、 Google では、
|
例
JSON-LD の例
Price
ウェブページに価格構造化データを追加する基本的な例を次に示します。makesOffer
プロパティには、複数のホテルレベルの特典を含めることができます。
address
プロパティを指定する場合、addressCountry
、postalCode
、streetAddress
などの PostalAddress
型とその他のフィールドは必須です。Google が表示する料金は、makesOffer
プロパティの先頭に配置します。指定された価格には、該当するすべての税金が含まれます。
{
"@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"
}
},
...
]
}
価格の詳細
以下に、priceSpecification
プロパティと価格内訳の例を示します。基本料金、一般的な税金や割引などの税金は、UnitPriceSpecification
コンポーネントを使用して定義します。priceComponentType
フィールドには、UnitPriceSpecification
コンポーネントに対応する値を必ず設定します。
滞在日数の合計料金は、CompoundPriceSpecification
プロパティで指定する必要があります。価格内訳は 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"
}
]
}
}
}
決済ポイント
PayAction
の受信者タイプを使用する potentialAction
仕様の例を次に示します。
パッケージの合計金額は $1,170 で、オンライン ウェブサイトは合計料金の一部("@type": "OnlineBusiness"
を使用して予約時に $1,150)を請求し、ユーザーは @type": "Hotel"
で指定されたホテルでチェックイン時に残りの $20 を支払う必要があります。
予約時とホテルで支払いを分類するには、potentialAction
コンポーネントを指定する必要があります。指定されていない場合、payAction
は予約時の支払いをデフォルトのお支払い方法と解釈します。
{
"@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": { ... }
}
}
}
]
}
}
}
microdata の例
価格の詳細
以下に、priceSpecification
プロパティと価格内訳の例を示します。基本料金、一般的な税金や割引などの税金は、UnitPriceSpecification
コンポーネントを使用して定義します。name
プロパティには、必ず UnitPriceSpecification
コンポーネントに対応する値を設定してください。
滞在日数の合計料金は、CompoundPriceSpecification
プロパティで指定する必要があります。価格内訳は 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
件の宿泊施設
このプロパティは、旅行プランの販売者の払い戻しポリシーにアノテーションを付けるために使用されます。
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"refundType": "https://schema.org/FullRefund",
"merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
"restockingFee": 0
}
構文
hasMerchantReturnPolicy
の構文は次のとおりです。
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
}
}
}
プロパティ
hasMerchantReturnPolicy
プロパティは次のとおりです。
属性 | 必須かどうか | タイプ | 説明 |
---|---|---|---|
Offer.hasMerchantReturnPolicy | Optional | MerchantReturnPolicy | 販売者の払い戻しポリシー。パートナーは
|
例
返品に関するポリシー
客室の詳細と合計料金(税、サービス料込み)を含む、ホテルの構造化データの基本的な例を以下に示します。この例では、2023 年 12 月 18 日午後 11 時(UTC)まで料金なしでキャンセルできる宿泊を指定しています。パートナーは "MerchantReturnPolicy.restockingFee"
を使用して、宿泊料金の全額が払い戻されないキャンセル ポリシーを示す必要があります。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
件の宿泊施設
このプロパティは、ホテルの会員向けの特典プログラムにアノテーションを付けるために使用できます。
"eligibleCustomerType": "RewardsMember",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency"
}
構文
eligibleCustomerType
プロパティの構文は次のとおりです。
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": { ... }
}
}
プロパティ
eligibleCustomerType
プロパティは次のとおりです。
属性 | 必須かどうか | タイプ | 説明 |
---|---|---|---|
Offer.eligibleCustomerType | Optional | BusinessEntityType | 顧客に提供されるポイント プログラムまたはメンバー特典。 多くのホテルのページでは、メンバー料金と公開料金を表示して、ユーザーにポイント プログラムへの登録を促しています。メンバー料金など、特定のオーディエンスに限定された料金を指定するには、Offer.eligibleCustomerType プロパティを設定します。 |
例
メンバー料金
以下は、ポイント プログラムのメンバー料金または限定料金の仕様の基本的な例です。この顧客はホテルの「特典メンバー」です。
{
"@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"
}
]
}
}
}
メンバー料金と通常料金
これは、通常価格とメンバー料金の両方のアノテーションの例です。メンバー価格が最初に記載され、その後に通常価格が続きます。
{
"@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"
}
]
}
}
]
}
HotelRoom の構造化データ
offers
件の宿泊施設
offers
アノテーションは、客室宿泊プランをマークアップするために使用します。HotelRoom
仕様には offers
プロパティを使用する必要があります。
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "hotel-room-id-1234",
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"priceSpecification": {...}
}
構文
offers
プロパティの構文は次のとおりです。
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",
...
}
}
}
プロパティ
offers
プロパティは次のとおりです。
プロパティ | 必須 / 任意 | タイプ | 説明 |
---|---|---|---|
offers | Required | Offer and LodgingReservation | 所定の旅行プランの客室料金の仕様。
|
LodgingReservation.checkinTime | Required | DateTime | ユーザーのタイムゾーンでのチェックイン時間。タイムゾーンが指定されていない場合、ホテルのタイムゾーンが考慮されます。 |
LodgingReservation.checkoutTime | Required | DateTime | ユーザーのタイムゾーンでのチェックアウト時間。タイムゾーンが指定されていない場合、ホテルのタイムゾーンが考慮されます。 |
例
表示
HotelRoom
プロパティで offers
を指定する基本的な例を次に示します。
{
"@context": "https://schema.org",
"@type": "HotelRoom",
"identifier": "hotel-room-id-1234",
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "rate-plan-id-of-member-rate",
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD"
}
}
}
bed
プロパティと occupancy
プロパティ
bed
プロパティは、客室のベッドタイプとベッド数にアノテーションを付けるために使用されます。occupancy
プロパティは、客室の宿泊客数にアノテーションを付けるために使用されます。bed
プロパティと occupancy
プロパティは、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"
}
}
構文
bed
プロパティと occupancy
プロパティの構文は次のとおりです。
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"
},
...
}
}
}
}
bed
プロパティと occupancy
プロパティは、HotelRoom
プロパティを使用する場合のみ設定できます。客室レベルの料金など、客室固有の情報は、containsPlace
プロパティを使用して Hotel
プロパティに指定できます。Hotel
と HotelRoom
の仕様例をご覧ください。
プロパティ
bed
プロパティと occupancy
プロパティは次のとおりです。
プロパティ | 必須 / 任意 | タイプ | 説明 |
---|---|---|---|
HotelRoom.bed | Optional (Recommended) | bed | 宿泊施設に含まれるベッドの種類と客室の宿泊人数。 サポートされている値は次の通りです。
|
HotelRoom.occupancy | Optional (Recommended) | QuantitativeValue | ホテルの客室の宿泊客数。宿泊人数のタイプは 占有率は |
containsPlace | Optional (Recommended) | LocationFeatureSpecification | 特定の客室に関連付けられた客室レベルの料金にアノテーションを付けるために使用されます。客室の設備を指定するためにも使用できます。
|
例
HotelRoom
以下は、客室仕様におけるベッドと占有率の基本的な例です。
{
"@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 と HotelRoom
次の例では、Hotel
プロパティと HotelRoom
プロパティに、bed
、occupancy
、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
件の宿泊施設
ホテルの客室料金の仕様は、ホテルの料金の仕様と似ています。違いは、客室料金は Hotel.makesOffer
プロパティではなく Product.offers
プロパティを使用して指定されるという点です。
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": {
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": "float",
"priceCurrency": "currency"
}
...
}
構文
ホテルの客室の priceSpecification
プロパティの構文は次のとおりです。
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"
}
]
}
}
}
プロパティ
HotelRoom priceSpecification
プロパティは次のとおりです。
プロパティ | 必須 / 任意 | タイプ | 説明 |
---|---|---|---|
Hotel.Offer.priceSpecification.price | Required | float |
ランディング ページには、Google の料金とすべての料金の詳細が必ず明記されます。料金の詳細にアノテーションを付けると、料金精度の確認を完了できます。Google では、ホテルレベルと客室レベルの料金の両方を使用できます。 |
Hotel.Offer.priceSpecification.priceCurrency | Required | currency | 指定された価格の 3 文字の通貨コード。(例: "USD"
)。 |
Hotel.Offer.priceSpecification.priceComponent | Optional | UnitPriceSpecification[] |
|
例
客室料金の合計金額
以下は、滞在日数の合計料金と 1 人あたりの料金を定義する基本的な例です。
{
"@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"
}
},
...
}
客室料金の内訳
以下は、1 部屋または 1 つのプランあたりの料金の例です。料金内訳は、客室タイプ(Deluxe
の部屋など)、bed
および occupancy
タイプ(KING
、SINGLE
のベッドなど)、定員 2 名に対して定義されます。
{
"@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
件の宿泊施設
このプロパティは、食事のオプションや係員サービスなど、ホテルや客室で提供される料金固有のサービスにアノテーションを付けるために使用されます。includesObject
には、Hotel
または HotelRoom
のいずれかのプロパティでアノテーションを付けることができます。
{
"includesObject": [
{
"@type": "TypeAndQuantityNode",
"typeOfGood": {
"@type": "Service",
"name": "Valet"
}
},
{
"@type": "TypeAndQuantityNode",
"amountOfThisGood": "float",
"unitText": "currency",
"typeOfGood": {
"@type": "FoodService",
"name": "MealCredit"
}
}
]
}
構文
includesObject
には、客室内で利用できる料金固有のサービスに対して次の構文があります。
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"
}
}
]
}
}
プロパティ
includesObject
には次のプロパティがあります。
属性 | 必須かどうか | タイプ | 説明 |
---|---|---|---|
Offer.includesObject | Optional | TypeAndQuantityNode | ホテルや客室で提供されるサービス。 料金固有の機能は 料金固有の機能は、基本レベルの特典に含めることも、追加料金でアドオンとして指定することもできます。
|
例
サービス
以下は、バレー パーキングとフードサービスの料金固有の機能の基本的な例です。料金固有の特徴は、"Offer.includesObject"
プロパティで指定する必要があります。"TypeAndQuantityNode.typeOfGood"
の name フィールドは、サービスのタイプを示すために使用します。
{
"@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
件の宿泊施設
offer.availability
プロパティは、ホテルの客室の完売した旅行プランにアノテーションを付けるために使用されます。
"offers": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"availability": "https://schema.org/SoldOut"
}
構文
availability
プロパティの構文は次のとおりです。
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"
}
}
プロパティ
availability
プロパティは次のとおりです。
属性 | 必須かどうか | タイプ | 説明 |
---|---|---|---|
Offer.availability | Optional | ItemAvailability | ホテルや部屋の空室状況。 料金は
クーポンに有効な |
例
可用性
以下は、ホテルの空室状況を示す基本的な例です。指定された部屋のベッドタイプ、ベッド数、利用人数の詳細を含める必要があります。
{
"@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
件の宿泊施設
設備は、amenityFeature
プロパティを使用して Hotel
または HotelRoom
タイプで指定できます。containsPlace
プロパティを使用して、客室のアメニティ情報を指定する必要があります。
{
"@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
}
]
}
}
構文
amenityFeature
プロパティと containsPlace
プロパティの構文は次のとおりです。
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"
}
}
}
設備
name
プロパティで許可され、定義されている設備は以下のとおりです。
属性 | 必須かどうか | タイプ | 説明 |
---|---|---|---|
amenityFeature.AC | Optional | boolean | 宿泊施設にエアコンがあるかどうか。 |
amenityFeature.AirportShuttle | Optional | boolean | ホストが空港やその他のターミナルとの間の移動手段を提供しているかどうか。 |
amenityFeature.Balcony | Optional | boolean | 宿泊施設にバルコニーがあるかどうか。 |
amenityFeature.BeachAccess | Optional | boolean | 宿泊施設の近くに公共のビーチがあるかどうか。 |
amenityFeature.ChildFriendly | Optional | boolean | 宿泊施設がお子様に適しているかどうか。 |
amenityFeature.Crib | Optional | boolean | 宿泊施設にベビーベッドが用意されているかどうか。 |
amenityFeature.Elevator | Optional | boolean | 宿泊施設にエレベーターがあるかどうか。 |
amenityFeature.FirePlace | Optional | boolean | 宿泊施設に暖炉があるかどうか。 |
amenityFeature.FreeBreakfast | Optional | boolean | 宿泊施設の宿泊者全員分の朝食が無料かどうか。料金プランを使用して、特定の料金プランにのみ朝食が含まれるかどうかを指定します。 |
amenityFeature.GymFitnessEquipment | Optional | boolean | 宿泊施設にジムやフィットネス設備があるかどうか。 |
amenityFeature.Heating | Optional | boolean | 宿泊施設に暖房があるかどうか。 |
amenityFeature.HotTub | Optional | boolean | 宿泊施設に温水浴槽があるかどうか。 |
amenityFeature.InstantBookable | Optional | boolean | 宿泊施設の決済手続きが即時予約可能かどうか。代替手段は承認待ちです。 |
amenityFeature.IroningBoard | Optional | boolean | 宿泊施設でアイロン台を利用できるかどうか。 |
amenityFeature.Kitchen | Optional | boolean | 宿泊施設にキッチンがあるかどうか。 |
amenityFeature.Microwave | Optional | boolean | 宿泊施設で電子レンジを利用できるかどうか。 |
amenityFeature.OpenAirBath(Hotels only) | Optional | boolean | 宿泊施設に露天風呂が付いているかどうか。客室レベルで指定する場合、浴室は入居者専用にする必要があります。 |
amenityFeature.OutdoorGrill | Optional | boolean | 宿泊施設にグリルがあるかどうか。 |
amenityFeature.OvenStove | Optional | boolean | 宿泊施設にストーブがあるかどうか。 |
amenityFeature.Patio | Optional | boolean | 宿泊施設にテラスがあるかどうか。 |
amenityFeature.Pool | Optional | boolean | 宿泊施設にプールがあるかどうか。 |
amenityFeature.PrivateBeachAccess | Optional | boolean | 宿泊施設に専用のプライベート ビーチがあるかどうか。 |
amenityFeature.SelfCheckinCheckout | Optional | boolean | 宿泊施設がセルフ チェックイン / チェックアウトに対応しているかどうか。 |
amenityFeature.WasherDryer | Optional | boolean | 宿泊施設に洗濯機があるかどうか。 |
amenityFeature.Wifi | Optional | boolean | 宿泊施設で Wi-Fi が利用できるかどうか。 |
amenityFeature.Smoking | Optional | boolean | 宿泊施設で喫煙が許可されているかどうか。 |
amenityFeature.InternetType | Optional | Enum | 宿泊施設で利用できるインターネットの種類。 サポートされている値は次のとおりです。
|
amenityFeature.ParkingType | Optional | Enum | 宿泊施設で利用できる駐車場の種類。 サポートされている値は次のとおりです。
|
amenityFeature.PoolType | Optional | Enum | 宿泊施設で利用できるプールの種類。 サポートされている値は次のとおりです。
|
amenityFeature.RoomStyle | Optional | Enum | 客室が和風デザインかどうかを示します。 サポートされている値は次のとおりです。
|
amenityFeature.LicenseNum | Required | string | 世界の特定の地域で施設に表示されるビジネスの営業許可番号。これは繰り返すことができます。複数のライセンスが存在する場合は、ライセンスの所有者または権限を追加することをおすすめします。例: |
プロパティ
amenityFeature
プロパティは次のとおりです。
プロパティ | 必須 / 任意 | タイプ | 説明 |
---|---|---|---|
amenityFeature | Optional | LocationFeatureSpecification | ホテルや客室で提供される設備。これは、 設備は |
containsPlace | Optional | LocationFeatureSpecification | ホテルまたは客室で宿泊客全員に提供される設備。これは、
|
例
ホテルと客室の設備
以下は、プールが午前 10 時から午後 10 時まで営業していて、ジムが利用できない場合の例です。全室禁煙。ミニバーあり。
{
"@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"
}
}
}
}