نرخ های مشروط

نرخ‌های مشروط نوعی قانون نرخ‌گذاری هستند که به شما امکان می‌دهند بر اساس معیارهایی مانند دستگاه کاربر، کشور یا اینکه آیا کاربر در گوگل وارد شده است یا خیر، نرخ‌های متفاوتی برای برنامه‌های سفر ارائه دهید.

وقتی بیش از یک نرخ عمومی یا مشروط برای یک برنامه سفر یا بسته اتاق دارید، کاربر کمترین نرخ را مشاهده خواهد کرد. گوگل همیشه کمترین نرخ واجد شرایط را برای کاربر انتخاب می‌کند.

نمای کلی

نرخ‌های مشروط در بازه‌های قیمت‌گذاری استاندارد قابل مشاهده هستند و فقط به کاربرانی نشان داده می‌شوند که جستجوهای آنها معیارهای نرخ مشروط مرتبط را برآورده می‌کند. این معیارها می‌توانند بر اساس موارد زیر باشند:

برای فعال کردن نرخ‌های شرطی، موارد زیر را تغییر دهید:

  • فایل XML قوانین نرخ : شرایطی را که نرخ‌های شرطی در آنها اعمال می‌شوند، تعریف کنید.

  • فید قیمت : از عنصر <Rate> در پیام تراکنش برای تنظیم نرخ‌ها استفاده کنید.

  • فایل صفحه فرود : مقادیر خاص قانون نرخ را به لینک‌های عمیق خود اضافه کنید.

نرخ‌های شرطی مختص دستگاه

نرخ‌های ویژه دستگاه، نرخ‌های هتلی هستند که فقط توسط کاربران در یک دستگاه خاص مانند موبایل، تبلت یا دسکتاپ قابل مشاهده و رزرو هستند. این نرخ‌ها توسط شرکای گوگل ارائه می‌شوند و کاربران نهایی می‌توانند همان نرخ‌های ویژه دستگاه را در سایت شریک مشاهده و رزرو کنند.

نرخ‌های حصارکشی شده

نرخ‌های مشروط خاص کشور

نرخ‌های ویژه هر کشور، نرخ‌های هتلی هستند که فقط توسط کاربرانی که به دنبال هتل از یک کشور خاص هستند، قابل مشاهده و رزرو هستند. گوگل با استفاده از آدرس IP کاربر نهایی، کشور را تعیین می‌کند. این نرخ‌ها توسط شرکای گوگل ارائه می‌شوند و کاربران نهایی می‌توانند همان نرخ‌های ویژه هر کشور را در سایت ویژه هر کشور شریک مشاهده و رزرو کنند.

نرخ‌های شرطی مختص زبان

نرخ‌های خاص هر زبان فقط برای کاربرانی که در جستجوی هتل‌ها هستند و از تنظیمات زبان خاصی در گوگل استفاده می‌کنند، قابل مشاهده است. شرایط خاص هر زبان با استفاده از عنصر <LanguageCode> تعریف می‌شوند.

زبان در پیام‌های درخواست کوئری‌های With Context مشخص نشده است. بنابراین، اگر <LanguageCode> را در قوانین نرخ خود مشخص کنید، پاسخ With Context باید شامل تمام نرخ‌های مربوط به زبان خاص باشد.

نرخ‌های شرطی نمونه‌برداری‌شده کوچک‌شده

نرخ‌های مشروط نمونه‌برداری کاهشی فقط برای زیرمجموعه‌ای تصادفی از تمام کاربران واجد شرایط قابل مشاهده هستند. نرخ نمونه‌برداری با استفاده از عنصر <MaxUsersPercent> تعریف و با استفاده از روش زیر محاسبه می‌شود:

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

نرخ‌های مشروط ثبت‌شده

نرخ‌های ورود فقط برای کاربرانی که با حساب گوگل وارد سیستم شده‌اند قابل مشاهده است. شرکای گوگل این نرخ‌ها را ارائه می‌دهند و کاربران می‌توانند نرخ‌ها را در سایت خود شریک مشاهده و رزرو کنند. نرخ‌های ورود با استفاده از عنصر <UserSignedIn> تعریف می‌شوند.

Since Google always selects the lowest eligible rate, if a conditional rate is higher than the price set at the <Result> level, the conditional rate will never be selected. To avoid this, remove the rate at the <Result> level and condition all rates. Alternatively, ask your Technical Account Manager about using a default rate rule for prices set at the <Result> level.

ایجاد یک فایل XML از قوانین نرخ‌گذاری

قوانین نرخ برای نرخ‌های شرطی با استفاده از یک فایل XML قوانین نرخ تعریف می‌شوند. برای اطلاعات بیشتر، به مرجع XML قوانین نرخ مراجعه کنید.

فید قیمت خود را به‌روزرسانی کنید

نرخ‌های شرطی با استفاده از عنصر موجود در پیام تراکنش تنظیم می‌شوند.

عنصر <Rate> همچنین می‌تواند به عنوان چندین عنصر فرزند <Rates> در داخل عناصر <RoomBundle> یا <Result> استفاده شود. برای استفاده از آن به عنوان یک نرخ شرطی، باید مقدار ویژگی rate_rule_id را با شناسه قانون نرخ که در فایل XML قوانین نرخ تعریف کرده‌اید، مطابقت دهید.

اگر نرخ اشغال مضاعف عمومی پیش‌فرض ندارید، عنصر فرزند <Baserate> از پیام <Result> را روی -1 تنظیم کنید. هر <Rates> شرطی که در این حالت به گوگل ارسال شود، معتبر در نظر گرفته خواهد شد.

مثال‌ها

پایه + شرطی

مثال زیر یک پیام تراکنش را نشان می‌دهد که شامل یک نرخ پایه و یک نرخ شرطی است:

<?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> است:

<?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 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>

عدم استفاده از اتاق‌های دو تخته عمومی

مثال زیر یک پیام تراکنش را نشان می‌دهد که حاوی نرخ مشروط بدون نرخ اشغال مضاعف عمومی است :

<?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)

این مثال بسته به اینکه آیا شناسه قانون نرخ تنظیم شده است یا خیر، بین دو صفحه فرود یکی را انتخاب می‌کند.

برای اطلاعات بیشتر، به بخش «استفاده از متغیرها و شرط‌ها» مراجعه کنید.