本指南說明如何使用微資料和導覽屬性標記網站,讓 Google 的價格準確度檢索器自動瀏覽預訂漏斗,並驗證房價。
如要查看所有可用結構化資料屬性 (包括細列的稅金、費用和房型詳細資料) 的完整技術規格,請參閱飯店價格結構化資料參考資料。
1. 實作導覽 (data-nav-*)
使用自訂 data-nav-* HTML 屬性註解互動式元素,並宣告漏斗階段,讓檢索器能夠遍歷預訂流程。
1.1 頁面頂端階段聲明 (data-nav-stage)
預訂漏斗中顯示房價的每個頁面,都應在 <body> 代碼或主要包裝函式代碼 (例如 <div>、<section> 或 <main>) 中宣告階段。這會告知檢索器目前處於預訂流程的哪個階段,並協助日後排解問題。
data-nav-stage(建議):宣告有效的漏斗階段。雖然並非必要,但指定名稱 (例如"landing"、"room-selection"、"checkout"、"ready-for-payment") 有助於在驗證期間識別有效階段。
1.2 最終階段指標 (data-nav-stage-final)
在顯示價格的最後一頁,也就是使用者輸入個人或付款資訊之前,請在網頁頂端容器中加入最終階段旗標和階段聲明 (例如 data-nav-stage="ready-for-payment")。
data-nav-stage-final(選用):在付款前,於最終價格頁面將"true"設為data-nav-stage-final="true"。這會向檢索器指出此頁面是最終頁面,且可擷取價格以進行驗證。這個頁面必須包含微資料標記的價格結構。
1.3 關鍵路徑互動屬性
在中間頁面中,標記可讓使用者在預訂關鍵路徑中前進的互動元素 (按鈕或連結)。如果同一網頁需要執行多項動作,請指定執行順序。在嘗試擷取最終頁面的價格前,檢索器會依指定順序執行。
| 屬性 | 必要值 | 目的 |
|---|---|---|
data-nav-criticalpath |
"true" |
標示檢索器必須點選才能繼續的必要按鈕/連結。 |
data-nav-interactiontype |
"CLICK" |
宣告必須點按才能繼續流程。 |
data-nav-interactionorder |
"1"、"2"、... |
如果同一網頁需要執行多項動作,請宣告執行順序。 |
最簡單的導覽範例
<button data-nav-criticalpath="true"
data-nav-interactiontype="CLICK"
data-nav-interactionorder="1">
Continue
</button>
2. 價格聲明 (微資料)
在預訂漏斗的最終可存取頁面 (輸入個人或付款資訊前),使用微資料標記標記價格方案 (一個價格方案)。頁面只能標記一項方案,指出檢索器擷取的房價,對應使用者在前往你網站前,於 Google 上選取的房價。如要進一步瞭解如何定義到達網頁參數,請參閱變數和條件。
Google 完全支援飯店價格結構化資料參考資料中的完整階層 (包括細列的基本房價、個別稅金、費用和房型詳細資料),同時也接受簡化的結構化資料樹狀結構,方便你在網頁上標記飯店價格。
如要提供可訂房的房價,必須提供住宿總價。如果行程或房型無法預訂或已售完,請在 makesOffer 下方宣告 https://schema.org/SoldOut,但不要提供 priceSpecification:
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer">
<meta itemprop="availability" content="https://schema.org/SoldOut"/>
Sold Out
</div>
詳情請參閱availability 屬性規格。
2.1 簡化的結構化資料樹狀結構
為簡化預訂頁面上的標記,您只需要宣告根飯店和預訂容器、入住日期 (YYYY-MM-DD)、入住人數,以及包含總入住價格的單一方案:
Hotel / LodgingReservation (Root Container)
├── identifier [Meta/Attribute] Hotel ID
├── name [Visible text] Hotel Name
├── checkinTime / checkoutTime [Visible text with YYYY-MM-DD in content="..."] Stay Dates
├── numAdults / numChildren [Visible text] Occupancy
└── makesOffer (Offer)
└── priceSpecification (CompoundPriceSpecification)
├── priceCurrency [ISO Code, such as "USD"] Currency
└── price [Visible text] Total Stay Price (Taxes & Fees Included)
2.2 重要顯示規則
如要確保系統能正確擷取價格,請在標記 HTML 時遵守下列顯示規則:
- 必須顯示住宿總價:使用
itemprop="price"直接在頁面上標記顯示的價格數字。請勿使用隱藏中繼資料 (<meta>) 或屬性值 (value="..."或content="...") 做為價格數字。 - 機器可讀取的住宿日期:盡可能在網頁上標記可公開顯示的住宿日期。如有需要,您可以在
<span>元素上使用content="..."屬性,在顯示可見日期 (例如<span itemprop="checkinTime" content="2026-08-10">August 10, 2026</span>) 時提供標準YYYY-MM-DD格式。 - 非顯示欄位:未直接顯示在網頁上的欄位 (例如飯店 ID 或幣別代碼) 可以使用
<meta>標記或content="..."屬性。
3. 範例
下列端對端範例說明如何使用導覽屬性和微資料,為漏斗中間步驟和最終結帳頁面加上標記。
範例 1:含有可點選按鈕的中介網頁
以下程式碼片段顯示中繼房型選擇頁面 (room-selection),其中標記了單一重要路徑動作按鈕,可推進流程:
<body data-nav-stage="room-selection">
<!-- Main page content -->
<button class="btn-continue"
data-nav-criticalpath="true"
data-nav-interactiontype="CLICK"
data-nav-interactionorder="1">
Book This Room
</button>
</body>
範例 2:最終價格頁面,含有階段指標和最少的微資料
以下程式碼片段顯示付款前的最後一頁 (ready-for-payment),其中 data-nav-stage-final="true" 是在包裝函式中宣告,且權威住宿價格會清楚顯示:
<body data-nav-stage="ready-for-payment" data-nav-stage-final="true">
<!-- Root Container: Co-Typed Hotel & LodgingReservation -->
<div itemscope itemtype="https://schema.org/Hotel https://schema.org/LodgingReservation">
<!-- Hotel Identifier (Can be hidden meta tag) -->
<meta itemprop="identifier" content="grand-view-001" />
<h1 itemprop="name">Grand View Hotel</h1>
<!-- Visible Stay Dates & Occupancy -->
<p>
Check-in: <span itemprop="checkinTime" content="2026-08-10">Aug 10, 2026</span> |
Check-out: <span itemprop="checkoutTime" content="2026-08-15">Aug 15, 2026</span> |
Guests: <span itemprop="numAdults">2</span> Adults, <span itemprop="numChildren">1</span> Child
</p>
<!-- Single Minimal Rate Offer -->
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer">
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<p class="summary-total">
Total Stay Price (Taxes & Fees Included):
<!-- 3-letter ISO Currency Code (can use content="" for hiding the 3-letter currency code while displaying a symbol) -->
<span itemprop="priceCurrency" content="EUR">€</span>
<!-- VISIBLE TOTAL STAY PRICE (Directly wrapped, no hidden attributes) -->
<span itemprop="price">650.00</span>
</p>
</div>
</div>
</div>
</body>
4. 驗證導入狀態
部署變更前,請先測試標記和導覽標記,確保檢索器能順利驗證價格資料。
4.1 驗證價格和微資料結構
你可以使用 Schema.org 驗證工具或 Google 複合式搜尋結果測試,檢查從網頁網址或 HTML 內容擷取的微資料。根據飯店價格結構化資料參考資料中的規格,驗證擷取的欄位,並確認 itemprop="price" 元素是網頁上顯示的項目。
4.2 驗證導覽
如要驗證代碼,請在 Google Chrome 中開啟「瀏覽器開發人員工具」,方法是按一下滑鼠右鍵並選取「檢查」 (或按下 F12),檢查 HTML DOM。
確認您的實作方式符合下列導覽規定:
- 宣告頁面頂端階段:預訂流程中的每個頁面都會在
<body>或根包裝函式標記中包含data-nav-stage="...",最終價格頁面則會包含data-nav-stage-final="true"。 - 完成重要路徑:中繼頁面的互動元素 (按鈕或連結) 標示為
data-nav-criticalpath="true"、data-nav-interactiontype和data-nav-interactionorder。如果有多個動作,請確認訂單號碼設定正確無誤。
4.3 驗證曝光度和標記品質
確認微資料符合所有結構和顯示規定 (詳情請參閱簡化結構化資料樹狀結構和重要顯示規則):
- 嚴格的階層:請確保標記遵循必要的巢狀結構順序 (簡化樹狀結構或完整的結構化資料參考規格)。如果元素順序有誤或巢狀結構不正確,檢索器可能會略過這些元素。
- 顯示價格:
itemprop="price"直接包裝顯示價格 數字,不含隱藏屬性或<meta>標記。 - 機器可讀的住宿日期:
checkinTime和checkoutTime包含標準YYYY-MM-DD(可選用content="..."屬性)。 - 直接元素標記:所有可見屬性 (飯店名稱、住宿日期、入住人數) 都會包裝可見的網頁文字。