Giá phòng có điều kiện

Giá phòng có điều kiện là một loại quy tắc giá cho phép bạn cung cấp nhiều mức giá cho các hành trình, dựa trên các tiêu chí như thiết bị, quốc gia của người dùng hoặc việc người dùng đã đăng nhập vào Google hay chưa.

Khi bạn có nhiều giá phòng công khai hoặc giá có điều kiện cho một hành trình hoặc Gói dịch vụ phòng, người dùng sẽ thấy giá thấp nhất. Google luôn chọn mức giá đủ điều kiện thấp nhất cho người dùng.

Tổng quan

Giá phòng có điều kiện sẽ xuất hiện trong những nơi đặt giá tiêu chuẩn và chỉ cho những người dùng có nội dung tìm kiếm đáp ứng các tiêu chí về giá phòng có điều kiện được liên kết. Các tiêu chí này có thể dựa trên những yếu tố sau:

Để bật giá phòng có điều kiện, hãy sửa đổi những mục sau:

Giá phòng có điều kiện theo thiết bị

Giá theo thiết bị là giá khách sạn mà chỉ người dùng trên một thiết bị cụ thể mới có thể nhìn thấy và đặt phòng được, chẳng hạn như thiết bị di động, máy tính bảng hoặc máy tính. Mức giá do các đối tác của Google cung cấp và người dùng cuối có thể xem và đặt phòng với cùng mức giá dành riêng cho thiết bị trên trang web của đối tác.

fenced_rates

Giá phòng có điều kiện theo quốc gia

Giá phòng dành riêng cho từng quốc gia là giá phòng khách sạn mà chỉ những người dùng đang tìm kiếm khách sạn ở một quốc gia cụ thể mới có thể nhìn thấy và đặt phòng được. Google xác định quốc gia bằng địa chỉ IP của người dùng cuối. Mức giá do các đối tác của Google cung cấp và người dùng cuối có thể xem và đặt phòng với mức giá bằng với mức giá dành riêng cho từng quốc gia trên trang web của họ dành riêng cho quốc gia của đối tác.

Giá phòng có điều kiện theo ngôn ngữ

Giá phòng theo ngôn ngữ chỉ hiển thị cho những người dùng đang tìm khách sạn trong khi sử dụng một chế độ cài đặt ngôn ngữ cụ thể trên Google. Điều kiện cho từng ngôn ngữ cụ thể được xác định bằng phần tử <LanguageCode>.

Giá phòng có điều kiện áp dụng cho số lượng mẫu đã cắt giảm

Giá phòng có điều kiện bị cắt giảm chỉ được hiển thị cho một nhóm nhỏ người dùng được chọn ngẫu nhiên trong số tất cả người dùng đủ điều kiện. Tốc độ lấy mẫu được xác định bằng phần tử <MaxUsersPercent> và được tính theo công thức sau:

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

Giá phòng có điều kiện cho người dùng đã đăng nhập

Giá phòng sau khi đăng nhập chỉ được giới thiệu cho những người dùng đã đăng nhập bằng Tài khoản Google. Các đối tác của Google sẽ cung cấp mức giá và người dùng có thể xem cũng như đặt phòng với mức giá đó trên trang web của chính đối tác. Giá phòng đăng nhập được xác định bằng phần tử <UserSignedIn>.

Vì Google luôn chọn giá đủ điều kiện thấp nhất, nên nếu giá phòng có điều kiện cao hơn giá đặt ở cấp <Result>, thì giá phòng có điều kiện sẽ không bao giờ được chọn. Để tránh tình trạng này, hãy xoá mức giá ở cấp <Result> và điều chỉnh tất cả các mức giá. Ngoài ra, hãy hỏi Người quản lý tài khoản hỗ trợ kỹ thuật về việc sử dụng quy tắc giá mặc định đối với các mức giá đặt ở cấp <Result>.

Tạo tệp XML về quy tắc giá

Quy tắc giá cho giá phòng có điều kiện được xác định bằng tệp XML về quy tắc giá. Để biết thêm thông tin, hãy xem Tài liệu tham khảo XML về quy tắc giá.

Cập nhật nguồn cấp dữ liệu giá

Giá phòng có điều kiện được đặt bằng phần tử trong thông báo Giao dịch.

Bạn cũng có thể dùng phần tử <Rate> làm nhiều phần tử con của <Rates> trong phần tử <RoomBundle> hoặc <Result>. Để dùng giá trị này làm giá phòng có điều kiện, bạn phải đặt giá trị của thuộc tính rate_rule_id sao cho khớp với mã quy tắc giá mà bạn đã xác định trong tệp XML về quy tắc giá.

Nếu bạn không có giá cho phòng hai người theo mặc định, hãy đặt phần tử con <Baserate> của thông báo <Result> thành -1. Mọi <Rates> có điều kiện được gửi đến Google trong trường hợp này đều sẽ được coi là hợp lệ.

Ví dụ

Cơ sở + có điều kiện

Ví dụ sau đây thể hiện một thông báo Giao dịch chứa giá cơ sở và giá phòng có điều kiện:

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

Gói dịch vụ phòng đơn

Ví dụ sau đây thể hiện một thông báo Giao dịch có chứa một mức giá duy nhất trong <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>

Nhiều RoomBundle (gói dịch vụ phòng)

Ví dụ sau đây cho thấy một thông báo Giao dịch có chứa nhiều mức giá trong <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>

Không có phòng hai người công cộng

Ví dụ sau đây thể hiện một thông báo Giao dịch có chứa giá phòng có điều kiện không có giá cho phòng hai người công khai:

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

Cập nhật tệp trang đích

Để đảm bảo rằng người dùng cuối đủ điều kiện có thể đặt phòng theo mức giá chiết khấu thông qua một đường liên kết sâu, hãy sửa đổi tệp Trang đích của bạn. Bạn cũng có thể cần triển khai thêm trên trang web đặt phòng để đăng và đáp ứng đúng mức giá đã chiết khấu.

Chúng tôi mong các đối tác sẽ đáp ứng mức giá trên đường liên kết sâu của giá phòng có điều kiện.

Trong một đường liên kết sâu linh động, bạn có thể thêm quy tắc giá theo tên (thuộc tính id của phần tử <RateRule>) bằng biến RATE-RULE-ID.

Ví dụ sau đây sẽ thêm mã quy tắc giá:

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)

Tệp Trang đích cũng hỗ trợ lệnh IF-RATE-RULE-ID cho phép bạn xác định các phần của URL theo điều kiện, dựa trên việc có tồn tại quy tắc giá hay không:

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)

Ví dụ này chọn một trong hai trang đích, tuỳ thuộc vào việc bạn có đặt mã quy tắc giá hay không.

Để biết thêm thông tin, hãy xem bài viết Sử dụng biến và điều kiện.