باقات الغرف

تسمح لك حِزم الغرف بتحديد أنواع متعددة من الغرف لفندق واحد أو دمج برنامج رحلة في الغرفة مع ميزات الأسعار، وهي الخدمات الإضافية التي تُقدَّم مع سعر وحالتها، للمستخدمين أكثر من السعر العادي.

المفاهيم الرئيسية وسير العمل

من خلال حِزم الغرف، يمكنك تقديم مجموعات إضافية من أنواع الغرف الفعلية مع حِزم خدمات مختلفة.

توضِّح الصورة التالية أمثلة على مجموعات الغرف:

في هذا المثال، الباقة الأولى هي الغرفة الأساسية، مع خصم لشخص واحد فقط في الغرفة. والآخر هو نوع مختلف من الغرف المتاحة لما يصل إلى 3 أشخاص بالغين. والثالث هو نوع آخر من الغرف في الموقع نفسه. والرابعة هي حزمة "مدفوعة" للغرفة الأساسية التي قد تشمل وسائل راحة مثل وجبة فطور مجانية أو إتمام الدفع لاحقًا.

توضّح الصور التالية أمثلة على ميزات الأسعار:

إنّ عرض حِزم الغرف وميزات الأسعار في نتائج البحث يخضع لإجراءات الاختيار نفسها المتّبعة في أسعار الغرف العادية.

حِزم الغرف

عليك تحديد حِزم الغرف وميزات السعر في رسائل المعاملات. إنّ العنصر الجذر لرسالة "المعاملة" هو <Transaction>.

تعتمد بنية رسالة "المعاملة" على ما تفعله: تحديد البيانات الوصفية حول ميزة "حزمة الغرفة" أو ميزة "السعر" أو تحديث سعر حزمة الغرفة أو مدى توفّرها.

البيانات الوصفية
تحديد حِزمة الغرف وتقييم البيانات الوصفية للميزات باستخدام <PackageData> في عنصر <PropertyDataSet> لمزيد من المعلومات، يُرجى الاطّلاع على تحديد البيانات الوصفية للغرفة والحزمة. تستخدم حِزم الغرف عناصر <RoomData> الحالية لوصف أوصاف الغرف.
السعر ومدى التوفّر
تحديد أسعار حِزم الغرف ومدى توفّرها مع العنصر <RoomBundle> في <Result> لكل مجموعة حزمات/برنامج رحلة ولمزيد من المعلومات، اطّلِع على تحديد الأسعار ومدى التوفّر.

إنّ سعر الغرفة الأساسية والضرائب والرسوم الأخرى إلزامية بموجب <Result> في حال عدم استخدامها مع حِزم الغرفة، ويمكن إزالتها عند استخدامها مع حِزم الغرفة. إذا كنت تنفِّذ "حِزم الغرف" باستخدام حساب مباشر، اتّبِع الخطوات التالية:

  1. تضمين السعر الأساسي للغرفة والضرائب والرسوم الأخرى التي تقلّ عن <Result>، وإضافة حزمة غرفة واحدة تتطابق مع حزمة الغرفة الأساسية

  2. إذا لزم الأمر، حدِّد حِزم غرف إضافية ضمن مجموعة <Result> نفسها لأنواع الغرف الأخرى في ذلك الموقع أو حِزم خدمات مختلفة.

  3. بعد إطلاق "حزمة الغرفة"، عليك إزالة سعر الغرفة الأساسية والضرائب والرسوم الأخرى.

البيانات الوصفية لحزمة الغرفة

عند تحديد حِزم الغرف وميزات السعر، يمكنك عادةً تحديد الوصف والخدمات الإضافية التي يشملها السعر وغيرها من المعلومات حول حِزمة الغرفة مسبقًا. تُعرف هذه المعلومات باسم البيانات الوصفية لحزمة الغرفة. بعد ذلك، تتم الإشارة إلى هذه البيانات الوصفية في تحديثات الأسعار، ولكن لا تضمّنها في رسائل تعديل الأسعار.

عند تحديد "حِزم الغرف"، يُرجى استخدام عناصر <RoomData> الحالية لأوصاف الغرف المادي وعناصر <PackageData> لميزات السعر والبنود التي لا تشكّل جزءًا من وصف الغرفة.

يمكن أن يؤدي استخدام العنصرين <RoomData> و<PackageData> إلى تقليل حجم قائمة الفنادق وخلاصة أسعار الفنادق بشكل كبير لأنّه يقلّل من حجم البيانات المتكررة التي يتم إرسالها في رسائل المعاملات.

على سبيل المثال، تكرّر البيانات مثل اسم الغرفة ووصفها لكل برنامج رحلة. يمكنك استخدام عناصر <RoomData> و<PackageData> لتحديد هذا النوع من البيانات مرة واحدة. ويتم بعد ذلك دمج بيانات "حزمة الغرف" الخاصة ببرنامج الرحلة مع تعريفات الغرف وحزمات التخزين المخزَّنة للعرض على المستخدم النهائي.

تُطابق Google البيانات الوصفية مع البيانات الخاصة ببرنامج رحلتك لعرض محتوى إعلاناتك. هناك معالجة خاصة لدمج الأسماء والأوصاف من العنصرين <RoomData> و<PackageData>، ما يسمح بوصف الغرفة الفعلية في <RoomData> وتقييم الميزات وتفاصيل الحزمة في <PackageData>.

في حال تحديد كل من بيانات الغرفة وبيانات الحزمة لغرفة واحدة أو "حزمة غرف" سضمّ Google كلاً من هذه العناصر في مخرجات الإعلانات مفصولة بواصلة.

إرشادات متعلقة بالصور

عند إرسال صور غرف، إليك بعض الإرشادات التي يجب اتّباعها للتأكّد من عرض صورك للمستخدمين:

  • أرسِل صورًا لكل نوع غرفة، بما في ذلك صور غرف يمكن الوصول إليها، مثل الغرف المحدّدة التي يمكن الوصول إليها والمزوّدة بتركيبات مختلفة للحمّامات، مثل حمّامات مزوّدة برؤوس دُش.

  • أدرِج أربع صور على الأقل للغرفة وصورة واحدة على الأقل للحمّام.

  • يجب أن تكون الصور من الغرفة نفسها بدلاً من الموقع. وتُعدّ أهم الصور هي السرير والغرفة بأكملها والحمام

    ومن المفيد أيضًا التقاط صور للمكتب والمطبخ وآلات لتحضير الشاي والقهوة وميزات خاصة بالغرفة.

  • تجنَّب صور الأشخاص والممتلكات، على سبيل المثال، التصميم الخارجي أو وسائل الراحة للفنادق، والمعالم السياحية/السياحة، والطعام.

  • تجنَّب تصوير لقطات مقرَّبة لعناصر، مثل اللقطات المقرّبة للدلالات.

  • تجنَّب استخدام علامة تجارية وعلامات تجارية، مع أنّ مستلزمات النظافة الشخصية المصنّفة أو تلك التي تحمل العلامة التجارية يُسمح بتضمينها في صورة تلتقط مساحة الحمّام بالكامل. وينبغي ألا تحتوي الصور على مربّعات نصية ضخمة أو شعارات أو علامات مائية.

  • توفير صور عادية وأفقية (أفقية) مع مجال رؤية عريض، وتجنُّب عين السمكة والصور المشوّهة التقِط الصور بأعلى دقة لتحسين الترتيب. لا تحتاج إلى إرسال الصورة نفسها بدرجات دقة مختلفة.

أولوية البيانات

يتم جمع بيانات "حزمة الغرف" من جميع المصادر ويتم دمجها باستخدام قواعد الأولوية، للحصول على البيانات النهائية لفندق وبرنامج رحلة وحزمة غرف معيّنة. ويكون الترتيب على النحو التالي، من الأدنى إلى الأعلى أولوية:

  1. (الأدنى) من بيانات الشركاء
  2. بيانات الموقع
  3. <RoomData>، حيث يتطابق <RoomID> مع <RoomID> في مجموعة <RoomBundle>
  4. <PackageData>، حيث يتطابق <PackageID> مع <PackageID> في مجموعة <RoomBundle>
  5. (الأعلى) <RoomBundle>

تحديد السعر ومدى التوفّر

لتحديد أسعار حِزمة الغرفة ومدى توفّرها، يمكنك استخدام عنصر <RoomBundle> في رسالة معاملة لكل مجموعة حزم أو برنامج رحلة. يجب أن يكون العنصر <RoomBundle> داخل العنصر <Result>. نعرض أدناه رمزًا نموذجيًا لعنصرَين من عناصر <RoomBundle>. يُرجى العِلم أنّ في هذا المثال، يشير العنصران <RoomBundle> إلى البيانات الوصفية للغرفة والحزمة باستخدام <RoomID> و<PackageID>.

في كل <Result>، تستبدل المجموعة المضمّنة في "حِزم الغرف" المجموعة الحالية لهذه المجموعة من المواقع أو برنامج الرحلة. إذا لم تحدّد أيًا من حزمات الغرف أو أسعارها في العنصر <Result>، ستتم إزالة كل مجموعات الغرف ولا تظهر سوى الغرفة الأساسية لهذا الفندق أو برنامج الرحلة في نتائج البحث.

احرص على استخدام عناصر مثل <Name> لجعل حِزم الغرف أكثر جاذبية للعملاء المحتملين، وتأكَّد من أنها تتطابق مع الصفحة المقصودة للفندق. في هذا المثال، يمكنك تحديد الأسماء والمعلومات الوصفية الأخرى في البيانات الوصفية.

<RatePlanID> هو اختياري ويمثّل المعرّف الفريد لتركيبة الغرفة والحزمة. ننصح بشدة باستخدام RatePlanID كمتغيّر لإنشاء عنوان URL للصفحة المقصودة الديناميكية (المعروفة سابقًا باسم "نقطة البيع"). لمعرفة التفاصيل، يُرجى الاطّلاع على استخدام المتغيّرات والشروط.

العناصر التالية اختيارية في "حِزم الغرف":

<Baserate>
<Tax>
<OtherFees>
<RoomID>
<PackageID>
<Occupancy>
<OccupancyDetails>

وعند تنفيذ حزمة غرفة في حساب مباشر، عليك إزالة <Baserate> بعد تفعيل حزمة الغرفة.

<Result>
  <!-- Note: When using Room Bundles, the top level result price is no
       longer necessary. -->
  <Property>180054</Property>
  <Checkin>2017-10-07</Checkin>
  <Nights>2</Nights>
  <!-- Base Room Bundle -->
  <RoomBundle>
    <RoomID>060773</RoomID>
    <PackageID>P54321</PackageID>
    <Baserate currency="USD">199.99</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <!-- RatePlanID is optional and represents the unique identifier for a
    room and package data combination. We strongly recommend using RatePlanID
    as a variable to build your dynamic landing page (formerly Point of Sale)
    URL. For details, see Using Variables and Conditions. -->
    <RatePlanID>060773-P54321</RatePlanID>
  </RoomBundle>
  <!-- Premium Room Bundle -->
  <RoomBundle>
    <RoomID>436233</RoomID>
    <PackageID>P12345</PackageID>
    <!-- Price for 4 ("occupancy") -->
    <Baserate currency="USD">298.88</Baserate>
    <Tax currency="USD">42.12</Tax>
    <OtherFees currency="USD">10.00</OtherFees>
    <RatePlanID>436233-P12345</RatePlanID>
  </RoomBundle>
</Result>

تحديد البيانات الوصفية للغرفة والحزمة

لتحديد البيانات الوصفية لحزمة الغرفة، استخدم العناصر <PackageData> و<RoomData> داخل العنصر <PropertyDataSet> في رسالة المعاملة.

يمكنك تحديد البيانات الوصفية للغرفة والحزمة في رسالة "معاملة" منفصلة عن بيانات الأسعار ومدى التوفُّر. من خلال تحديد هذه البيانات مسبقًا، لا تحتاج تعديلات الأسعار إلى تضمين معلومات متكررة، مثل الأوصاف وعناوين URL للصور ووسائل الراحة، وبيانات أخرى عن كل غرفة أو حزمة أو برنامج رحلة.

تخزّن Google البيانات الوصفية نيابةً عنك وتدرجها في إعلاناتك عند عرضها. يمكنك تعديل البيانات الوصفية للغرفة والحزمة في أي وقت من خلال إضافة رسالة معاملة جديدة.

في رسالة "المعاملة"، يمكنك تحديد رقم تعريف الحزمة ورقم تعريف الغرفة لكل كتلة تتم الإشارة إليها بعد ذلك في مجموعات تعديلات <Result> الخاصة بالأسعار.

في حال تغيير بيانات الغرفة والحزمة، على سبيل المثال، في حال إضافة نوع غرفة جديد في أحد المواقع، أرسِل رسالة "معاملة" جديدة تحتوي على البيانات المُحدَّثة للغرفة والحزمة، ستستبدل Google البيانات الوصفية الحالية للغرفة أو الحزمة مع البيانات الجديدة.

تنصحك Google بتحديد البيانات الوصفية أثناء الإعداد الأولي. بعد تحديد البيانات الوصفية، ما عليك سوى الإشارة إلى القيمتَين <RoomID> و<PackageID> في تعديلات الأسعار بدلاً من تضمين كل هذه المعلومات مجددًا. تستخدم Google أرقام التعريف هذه لمطابقة الغرف وحِزم الغرف بالبيانات الوصفية المخزَّنة. يمكن أن يؤدي ذلك إلى تقليل حجم رسائل "المعاملات" بشكل عام إلى حد كبير.

بما أنّ أسعار الغرف أو برامج الرحلات تتغيّر كثيرًا بشكل أكبر من أوصاف الغرف أو الحزم، فإنّ تحديد البيانات الوصفية مرة واحدة ثم الإشارة إليها يشكّل استخدامًا أكثر فعالية لرسائل المعاملات. بالإضافة إلى ذلك، يمكن التخلّص من الأخطاء، مثل عدم تطابق أوصاف الغرف، باستخدام البيانات الوصفية بدلاً من تحديد البيانات مضمّنة.

في ما يلي الطريقة الأكثر كفاءة وفعالية لتحديد البيانات الوصفية والأسعار بشكل منفصل:

<!-- Efficient method of defining Room Bundles -->
<!----- Occupancy of 2 and 4 example ------>

<Transaction timestamp="2019-04-18T16:20:00-04:00" id="12345678">
  <!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
  <!-- Note: Once defined it does not have to be repeated for future Transaction Messages. -->
  <!--       PropertyDataSets can also be defined and sent in their own Transaction Message -->
  <!--       separately from pricing. Google can be configured to pull just PropertyDataSets -->
  <!--       once per day (or on a predefined frequency). -->
  <PropertyDataSet>
    <Property>180054</Property>
    <!-- Can be reused by multiple Room Bundles -->
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Queen Room - Non-Smoking" language="en"/>
        <Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <!-- Room can accommodate 4, but bundle is for 2 -->
      <Capacity>4</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/imageQueen.jpg</URL>
        <Caption>
          <Text text="A bright and breezy way to enjoy your mornin'
            cuppa tea." language="en"/>
          <Text text="Une façon lumineuse et aérée pour profiter
            de votre journée tasse de thé." language="fr"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <RoomData>
      <RoomID>436233</RoomID>
      <Name>
        <Text text="Premium King Room - Non-Smoking" language="en"/>
        <Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <!-- Room can accommodate 4 and bundle is for 4 -->
      <Capacity>4</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/imageKing.jpg</URL>
        <Caption>
          <Text text="A bright and breezy way to enjoy your mornin'
            cuppa tea." language="en"/>
          <Text text="Une façon lumineuse et aérée pour profiter
            de votre journée tasse de thé." language="fr"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <!-- Can be reused by multiple Room Bundles -->
    <PackageData>
      <PackageID>P54321</PackageID>
      <Occupancy>2</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="7"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
    <PackageData>
      <PackageID>P12345</PackageID>
      <Occupancy>4</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="1"
           refundable_until_time="18:00:00"/>
      <BreakfastIncluded/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
  </PropertyDataSet>

    <!-- Efficient method of defining Room Bundles -->
    <!-- Part 2: Reference RoomData and PackageData through ID -->
  <Result>
    <Property>180054</Property>
    <Checkin>2017-10-07</Checkin>
    <Nights>2</Nights>

    <!-- Base Room Bundle -->
    <RoomBundle>
      <RoomID>060773</RoomID>
      <PackageID>P54321</PackageID>
      <Baserate currency="USD">199.99</Baserate>
      <Tax currency="USD">25.12</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <!-- RatePlanID is optional and represents the unique identifier for a
      room and package data combination. We strongly recommend using RatePlanID
      as a variable to build your dynamic landing page (formerly Point of Sale)
      URL. For details, see Using Variables and Conditions. -->
      <RatePlanID>060773-P54321</RatePlanID>
    </RoomBundle>
    <!-- Premium Room Bundle -->
    <RoomBundle>
      <RoomID>436233</RoomID>
      <PackageID>P12345</PackageID>
      <!-- Price for 4 ("occupancy") -->
      <Baserate currency="USD">298.88</Baserate>
      <Tax currency="USD">42.12</Tax>
      <OtherFees currency="USD">10.00</OtherFees>
      <RatePlanID>060773-P12345</RatePlanID>
    </RoomBundle>
    <!-- Continue providing all available RoomBundle rates under matched
         property for any other occupancies -->
  </Result>
</Transaction>

الإشغال والسعة

عند تحديد مجموعات الغرف، عليك فهم الفرق بين الإشغال والسعة:

تواجد الأفراد في المنزل
عدد النزلاء الذين تريد استخدام مجموعة غرف لهم. على سبيل المثال، "باقة Honeymoon" هي مشغولة لشخصين. يمكنك تحديد قيمة إشغال الحزمة باستخدام العنصر الفرعي للعنصر <PackageData> أو <RoomBundle>.<Occupancy>
السعة
الحد الأقصى لعدد الأشخاص الذين يمكن لأي غرفة استيعابهم فعليًا. وتكون سعة الغرفة دائمًا مساوية أو أعلى من الإشغال. على سبيل المثال، تبلغ سعة "جناح العسل" في فندقك ستة أشخاص كحد أقصى، ولكن يمكنك تسعير باقة لشخصَين. يمكنك تحديد قيمة سعة الحزمة باستخدام العنصر الثانوي للعنصر <RoomData> <Capacity>.

عند تسعير حِزمة غرفة، يجب تقديم السعر لعدد النزلاء الذي تهدف إلى إنشاء الحزمة (القيمة المحددة في عنصر <Occupancy> للحزمة). إذا تم ضبط <Occupancy> على قيمتَين، يجب أن يكون السعر الوارد في تلك الحزمة لشخصَين. لا يمكنك ضبط الأسعار بين <Occupancy> وأربعة مدعوّين، وتحديد سعر الحزمة لشخصَين.

الغرف المشتركة

يمكنك أيضًا استخدام الإشغال والسعة في حِزم الغرف لتحديد أسعار أماكن الإقامة للغرف المشتركة، مثل النُزل. على سبيل المثال، لتحديد سعر لشخص واحد في غرفة مشتركة فيها 8 أسرّة، يجب ضبط الإشغال على 1 والسعة على 8 وتحديده على هذا النحو في الاسم <RoomData>. راجع المثال.

تحديث حِزم الغرف

يوضّح هذا القسم طريقة إزالة حِزمة غرفة لم تعُد متاحة وكيفية تعديل سعر إحدى حِزم الغرف الحالية.

إزالة حزمة الغرف

تختلف حِزم الغرف عن أسعار الفنادق في طريقة إزالتها.

لإزالة تركيبة غرفة أو برنامج رحلة من المستودع، عليك ضبط <Baserate> للعنصر <Result> على -1. لإزالة حزمة غرفة لغرفة أو برنامج رحلة معيّن، أزِل العنصر <RoomBundle> من العنصر <Result> في رسالة "المعاملة".

تُعتبر حِزم الغرف في خلاصات البيانات مجموعة على أنّها تتألّف من 0 إلى عشرات. عند إرسال مجموعات الغرف إلى Google، يتم إرسال المجموعة الحالية الكاملة لا يمكنك تغيير قيم حِزمة غرفة فردية لوضع علامة على مجموعة متاحة سابقًا على أنها غير متاحة. أيًا كانت مجموعة الحِزم في أحدث رسالة معاملات، تحلّ محلّ المجموعة الحالية.

على سبيل المثال، هناك مجموعات "أ" و"ب" و"ج" و"د". يجب أن ترسل أولاً رسالة تُحدّد مجموعة حِزم الغرف "أ" و"ب" و"ج" و"د". لاحقًا، إذا نفدت المجموعة "ب"، عليك إعادة إرسال المجموعة بأكملها مع الحِزم "أ" و"ج" و"د". في حال نفاد جميع مجموعات الغرف، أرسِل مجموعة فارغة من مجموعات الغرف.

تعديلات الأسعار

لتغيير سعر حزمة غرف، يجب ضبط <Baserate> الجديدة في العنصر <Result>.

في كل مرة يتم فيها تعديل حظر <Result> للغرفة/البرنامج التجريبي في رسائل المعاملات، يجب تضمين مجموعة كاملة من حِزم الغرف المتاحة لكل <Result>. وتستبدل Google المجموعة الحالية من حزم الغرف بالمجموعة الجديدة. في حال عدم تضمين أي من "حِزم الغرف" في <Result>، ستزيل Google كل مجموعات الغرف في تلك الغرفة أو برنامج الرحلة.

تعديلات البيانات الوصفية

يتم تعديل البيانات الوصفية لحِزمة الغرفة من خلال الردّ على <Query> من Google.

يمكنك الردّ على رسالة طلب البحث برسالة رسالة تحدّد الغرفة والبيانات الوصفية للحزمة للفنادق المحدّدة. لمزيد من المعلومات، يمكنك الاطّلاع على رسائل طلبات البحث.