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

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

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

نظرة عامة

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

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

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

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

fenced_rates

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

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

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

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

لم يتم تحديد اللغة في رسائل طلبات استعلامات "مع السياق". لذلك، إذا حدّدت <LanguageCode> في قواعد الأسعار، يجب أن يتضمّن الردّ With Context جميع الأسعار ذات الصلة الخاصة باللغة.

معدّلات مشروطة تم تقليل عدد عيّناتها

لا تظهر الأسعار الشرطية التي تم تقليل دقتها إلا لمجموعة فرعية عشوائية من جميع المستخدمين المؤهّلين. يتم تحديد معدّل أخذ العيّنات باستخدام العنصر <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 في هذه الحالة صالحًا.

أمثلة

الأساس + الشرط

يعرض المثال التالي رسالة 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>

    <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>
      </Rate>
    </Rates>

  </Result>
</Transaction>

RoomBundle single

يعرض المثال التالي رسالة معاملة تتضمّن سعرًا واحدًا ضمن <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 multiple

يعرض المثال التالي رسالة معاملة تحتوي على أسعار متعددة ضمن <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 and it should be within 50 characters in length for optimal
      performance. 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>

      <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>
        </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>
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>

لا تتوفّر غرف لشخصين

يعرض المثال التالي رسالة 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)

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

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