يوضّح هذا الدليل كيفية وضع علامات على موقعك الإلكتروني باستخدام البيانات الجزئية وسمات التنقّل لكي يتمكّن زاحف دقة الأسعار من Google من التنقّل تلقائيًا في مسار الحجز والتحقّق من صحة أسعار غرفك.
للاطّلاع على المواصفات الفنية الكاملة لجميع سمات البيانات المنظَّمة المتاحة (بما في ذلك الضرائب والرسوم وتفاصيل الغرف المفصّلة)، راجِع مرجع البيانات المنظَّمة لأسعار الفنادق.
1. تنفيذ التنقّل (data-nav-*)
استخدِم سمات HTML المخصّصة data-nav-* لإضافة تعليقات توضيحية إلى العناصر التفاعلية وتحديد مراحل مسار الحجز لكي يتمكّن الزاحف من التنقّل في مسار الحجز.
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 تتيح بشكلٍ كامل التسلسل الهرمي الكامل في مرجع البيانات المنظَّمة لأسعار الفنادق (بما في ذلك الأسعار الأساسية المفصّلة والضرائب والرسوم وتفاصيل الغرف الفردية)، تقبل Google أيضًا شجرة بيانات منظَّمة مبسطة لتسهيل وضع علامات على أسعار الفنادق في صفحات الويب.
يجب تحديد السعر الإجمالي للإقامة للأسعار المتاحة. إذا لم يكن برنامج الرحلة أو الغرفة متاحًا أو تم بيعهما، حدِّد https://schema.org/SoldOut ضِمن makesOffer بدون priceSpecification:
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer">
<meta itemprop="availability" content="https://schema.org/SoldOut"/>
Sold Out
</div>
لمزيد من المعلومات، راجِع مواصفات السمة
availabilityproperty.
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="...") لرقم السعر. - تواريخ الإقامة التي يمكن للآلة قراءتها: ضَع علامة على تواريخ الإقامة المرئية على الصفحة قدر الإمكان. إذا لزم الأمر، يمكنك استخدام السمة
content="..."في عناصر<span>لتقديم تنسيقYYYY-MM-DDقياسي أثناء عرض التاريخ المرئي (على سبيل المثال،<span itemprop="checkinTime" content="2026-08-10">August 10, 2026</span>). - الحقول غير المرئية: يمكن للحقول التي لا تظهر مباشرةً على الصفحة
(مثل رقم تعريف الفندق أو رمز العملة) استخدام علامات
<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
لفحص البيانات الجزئية المستخرَجة من عنوان URL لصفحتك أو محتوى HTML. تحقَّق
من الحقول المستخرَجة مقارنةً بالمواصفات في
مرجع البيانات المنظَّمة لأسعار الفنادق،
وتأكَّد من أنّ عنصر itemprop="price" هو عنصر مرئي على الصفحة.
4.2 التحقّق من التنقّل
للتحقّق من صحة العلامات، افتح أدوات مطوّري البرامج في المتصفّح في Google Chrome من خلال النقر بزر الماوس الأيمن على صفحة الويب واختيار فحص (أو الضغط على F12) لفحص HTML DOM.
تأكَّد من أنّ عملية التنفيذ تستوفي متطلبات التنقّل التالية:
- تم تحديد المرحلة في أعلى الصفحة: تتضمّن كل صفحة في مسار الحجز
data-nav-stage="..."`data-nav-stage="..."` في علامة<body>`<body>` أو علامة الغلاف الجذرية، وتتضمّن صفحة السعر النهائيdata-nav-stage-final="true"`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="..."). - وضع علامات على العناصر مباشرةً: يغلّف كل من الخصائص المرئية (اسم الفندق وتواريخ الإقامة والإشغال) النص المرئي للصفحة.