نرخ‌های شرطی

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

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

نمای کلی

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

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

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

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

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

نرخ‌های شرطی ویژه دستگاه

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

fenced_rates

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

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

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

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

زبان در پیام‌های درخواست With Context queries مشخص نشده است. بنابراین، اگر <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>
      </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>

بدون اتاق دونفره عمومی

نمونه زیر «پیام تراکنش» حاوی نرخ شرطی بدون نرخ عمومی اتاق دونفره را نشان می‌دهد:

<?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 نیز پشتیبانی می‌کند که به شما امکان می‌دهد بخش‌هایی از نشانی وب را به‌صورت شرطی تعریف کنید، براساس اینکه آیا قانون نرخ وجود دارد یا نه:

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)

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

برای اطلاعات بیشتر، استفاده از متغیرها و شرایط را ببینید.