このページでは、ホテルの料金データに構造化データ マークアップを追加するためのリファレンスを提供します。
概要
ホテル料金の構造化データは、ウェブサイトに掲載されているホテル料金をユーザー インターフェースに関係なく詳細に説明、検証、表示するために使用されます。これには、基本料金、料金、客室、手数料、税金、料金設定関連のフィールドも含まれます。
Google は、パートナー様がウェブページから正確に価格をスクレイピングできるよう、schema.org が提供する、クローラーが読み取れる標準化された構造化データでウェブページにアノテーションを付けることを推奨しています。
これにより、クローラーの信頼性を高めて、価格精度の検証をスケーリングできます。このメリットは、料金精度検証の回数が増え、料金精度の問題を直接デバッグできるようになること、また、料金精度スコアが一定になることです。
構造化データを初めて使用する場合は、構造化データの語彙と形式をご覧ください。
Google ホテルでは、ウェブページにアノテーションを付けるために 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
ホテル特典にアノテーションを付ける基本的な例を次に示します。旅程に複数の料金を指定できますが、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 を使用する必要があります。UnitPriceSpecification を使用して、ResortFee、GenericTax、ServiceFee などの追加の税金や特別な種類の料金を指定します。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 の例
価格
以下は、ウェブページに価格の構造化データを追加する基本的な例です。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 | ユーザーのタイムゾーンでのチェックアウト時間。タイムゾーンが指定されていない場合は、ホテルのタイムゾーンが使用されます。 |
例
offers
以下は、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 | これは、特定の客室に関連付けられた客室レベルの料金にアノテーションを付けるために使用されます。客室のアメニティを指定するためにも使用できます。
amenityFeature プロパティで |
例
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
以下は、bed、occupancy、priceSpecification とともに Hotel プロパティと HotelRoom プロパティにアノテーションを付ける例です。
{
"@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[] | ホテル客室の税金と手数料を含む合計料金の内訳と、
|
例
合計宿泊料金
次の例は、宿泊日数と定員あたりの料金の合計金額を定義する基本的な例です。
{
"@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"
}
},
...
}
宿泊料金の内訳
以下は、部屋またはプランごとの料金の例です。料金の内訳は、Deluxe ルームなどの客室タイプ、KING ベッドや SINGLE ベッドなどの bed タイプと occupancy タイプ、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"
}
}
}
}