الأسعار المشروطة

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

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

نظرة عامة

تظهر الأسعار المشروطة في خانات التسعير العادية، ولا تظهر إلا للمستخدمين الذين تستوفي عمليات بحثهم معايير السعر المشروط المرتبط. يمكن أن تستند هذه المعايير إلى ما يلي:

لتفعيل الأسعار المشروطة، عدِّل ما يلي:

الأسعار المشروطة الخاصة بالجهاز

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

fenced_rates

الأسعار المشروطة الخاصة بالبلد

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

الأسعار المشروطة بلغات معيّنة

لا تظهر الأسعار الخاصة بكل لغة إلا للمستخدمين الذين يبحثون عن فنادق مع استخدام إعدادات لغة معيّنة في Google. يتم تحديد الشروط الخاصة باللغة باستخدام العنصر <LanguageCode>.

الأسعار المشروطة المستندة إلى عيّنات منخفضة

لا تظهر الأسعار الشرطية المستندة إلى عيّنات إلا لمجموعة فرعية عشوائية من جميع المستخدمين المؤهَّلين. يتم تحديد معدّل أخذ العينات باستخدام العنصر <MaxUsersPercent>، ويُحتسب باستخدام ما يلي:

MaxUsersPercent = (number of users selected to view rate)/(total eligible users)

الأسعار المشروطة عند تسجيل الدخول

لا تظهر معدلات تسجيل الدخول إلا للمستخدمين الذين سجّلوا الدخول باستخدام حساب Google. يقدّم شركاء Google الأسعار، ويمكن للمستخدمين الاطّلاع عليها وحجزها على الموقع الإلكتروني الخاص بالشريك. يتم تحديد معدّلات تسجيل الدخول باستخدام العنصر <UserSignedIn>.

بما أنّ Google تختار دائمًا أدنى سعر مؤهّل، إذا كان السعر المشروط أعلى من السعر المحدَّد على مستوى <Result>، لن يتم اختيار السعر المشروط مطلقًا. لتجنُّب ذلك، عليك إزالة السعر على مستوى <Result> وضمان جميع الأسعار. يمكنك بدلاً من ذلك التواصل مع المدير التقني للحسابات حول استخدام قاعدة معدّلة تلقائية للأسعار المحدَّدة على مستوى <Result>.

إنشاء ملف XML لقواعد الأسعار

يتم تحديد قواعد الأسعار للأسعار المشروطة باستخدام ملف XML لقواعد الأسعار. لمزيد من المعلومات، يُرجى الاطّلاع على مرجع XML لقواعد التقييم.

تعديل خلاصة الأسعار

يتم تحديد الأسعار المشروطة باستخدام العنصر في رسالة المعاملة.

يمكن أيضًا استخدام العنصر <Rate> كعناصر ثانوية متعددة لـ <Rates> ضمن العنصرَين <RoomBundle> أو <Result>. ولاستخدامه كسعر مشروط، عليك ضبط قيمة السمة rate_rule_id لتتطابق مع رقم تعريف قاعدة السعر الذي حدّدته في ملف XML لقواعد الأسعار.

إذا لم يكن لديك معدّل تلقائي للإشغال المزدوج العام، اضبط العنصر الفرعي <Baserate> لرسالة <Result> على -1. في هذه الحالة، تُعتبر أي علامة <Rates> شرطية يتم إرسالها إلى Google صالحة.

أمثلة

القاعدة + الشرطية

يعرض المثال التالي رسالة معاملة تحتوي على سعر أساسي وسعر مشروط:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>1</Nights>

    <Baserate currency="USD">200.00</Baserate>
    <Tax currency="USD">20.00</Tax>
    <OtherFees currency="USD">1.00</OtherFees>

    <Rates>
      <!-- The rate_rule_id is required when using conditional rates -->
      <Rate rate_rule_id="mobile">
        <!-- Override base rate and taxes for conditional rates -->
        <Baserate currency="USD">180.00</Baserate>
        <Tax currency="USD">18.00</Tax>
        <!-- NOTE: OtherFees is inherited from the above setting -->
        <Custom1>ratecode123</Custom1>
      </Rate>
    </Rates>

  </Result>
</Transaction>

غرفة RoomBundle فردية

يعرض المثال التالي رسالة معاملة تحتوي على سعر واحد ضمن <RoomBundle>:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>2</Nights>

    <Baserate currency="USD">300.00</Baserate>
    <Tax currency="USD">30.00</Tax>
    <OtherFees currency="USD">2.00</OtherFees>

    <RoomBundle>
      <RoomID>single</RoomID>
      <Baserate currency="USD">300.00</Baserate>
      <Tax currency="USD">30.00</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
    </RoomBundle>

    <RoomBundle>
      <RoomID>3</RoomID>  <!-- Links to data in metadata -->
      <RatePlanID>basic</RatePlanID>
      <Baserate currency="USD">275.00</Baserate>
      <Tax currency="USD">27.50</Tax>
      <ChargeCurrency>web</ChargeCurrency>
      <BreakfastIncluded>1</BreakfastIncluded>

      <Rates>
        <Rate rate_rule_id="mobile">
          <Baserate currency="USD">269.00</Baserate>
          <Tax currency="USD">2.69</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
        </Rates>
      </Rates>

    </RoomBundle>
  </Result>
</Transaction>

العديد من مجموعات RoomBundle

يعرض المثال التالي رسالة معاملة تتضمّن أسعارًا متعددة ضمن <RoomBundle>:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>2</Nights>
    <!-- When Google receives new room bundle information for an itinerary, all
    previous room bundle pricing is dropped from Google's cache. Thus, if you
    want to delete a specific room bundle from Google's cache, you may do so
    by simply not providing that specific room bundle in subsequent transaction
    messages. -->
    <RoomBundle>
     ...
      <!-- RoomID is required, PackageID is recommended. -->
      <RoomID>5</RoomID>
      <PackageID>ABC</PackageID>
      <!-- Baserate is required. -->
      <Baserate currency="USD">275.00</Baserate>
      <Tax currency="USD">27.50</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>5-ABC</RatePlanID>

      <!-- Occupancy is mandatory for RoomBundle elements. -->
      <!-- Elements below will get inherited to nested rate elements. -->
      <Occupancy>2</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
      </OccupancyDetails>
      <InternetIncluded>1</InternetIncluded>


      <!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
      <ChargeCurrency>web</ChargeCurrency>
      <Custom1>ratebasic</Custom1>
      <!-- Neither rate overrides Custom2. -->
      <Custom2>ratebasic</Custom2>

      <Rates>
        <Rate rate_rule_id="mobile">
          <Baserate currency="USD">258.33</Baserate>
          <Tax currency="USD">25.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <!-- The value below overrides ChargeCurrency from roombundle. -->
          <ChargeCurrency>hotel</ChargeCurrency>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode321</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </Rate>
        <Rate rate_rule_id="us_or_gb">
          <Baserate currency="USD">268.33</Baserate>
          <Tax currency="USD">26.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode432</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>

لا يمكن الإقامة المزدوجة عامة

يوضّح المثال التالي رسالة معاملة تحتوي على سعر مشروط بدون معدّل إشغال مزدوج علني:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">

  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>1</Nights>

    <!-- <Unavailable/> should not be specified when available nested rates
    exist. -->
    <Baserate currency="USD">-1</Baserate>
    <Tax currency="USD">0</Tax>
    <OtherFees currency="USD">0</OtherFees>

    <Rates>
      <!-- The rate_rule_id is required when using conditional rates. -->
      <Rate rate_rule_id="mobile">
        <Baserate currency="USD">180.00</Baserate>
        <Tax currency="USD">18.00</Tax>
        <OtherFees currency="USD">1.00</OtherFees>
        <Custom1>ratecode123</Custom1>
      </Rate>
    </Rates>

  </Result>
</Transaction>

تعديل ملف الصفحة المقصودة

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

نتوقّع من الشركاء الالتزام بالسعر المعروض في الرابط لصفحة في التطبيق للسعر المشروط.

في الرابط الديناميكي لصفحة في التطبيق، يمكنك تضمين قاعدة السعر من خلال اسمها، وهي السمة id للعنصر <RateRule>، مع المتغيّر RATE-RULE-ID.

يضيف المثال التالي رقم تعريف قاعدة الأسعار:

https://bookingsite.com/landing.do?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)&currency=(USER-CURRENCY)&prid=(RATE-RULE-ID)

يتوافق ملف "الصفحة المقصودة" أيضًا مع التوجيه IF-RATE-RULE-ID الذي يتيح لك تحديد أجزاء من عنوان URL بشكل مشروط، استنادًا إلى ما إذا كانت قاعدة السعر متوفّرة:

https://bookingsite.com/(IF-RATE-RULE-ID)privatelanding.do(RATE-RULE-ID)(ELSE)landing.do(ENDIF)?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)&currency=(USER-CURRENCY)

يختار هذا المثال من بين صفحتين مقصودتين، استنادًا إلى ما إذا تم ضبط رقم تعريف قاعدة السعر.

لمزيد من المعلومات، راجع استخدام المتغيرات والشروط.