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á giú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ị của người dùng, quốc gia hoặc xem người dùng đã đăng nhập vào Google hay chưa.

Khi bạn có nhiều mức giá công khai hoặc mứ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ẽ nhìn thấy giá thấp nhất. Google luôn chọn kết quả thấp nhất giá đủ điều kiện cho người dùng.

Tổng quan

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

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

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

Giá phòng theo thiết bị cụ thể là giá khách sạn chỉ có thể nhìn thấy và đặt trước được bởi người dùng trên một thiết bị cụ thể, chẳng hạn như thiết bị di động, máy tính bảng hoặc máy tính. Giá là do đối tác của Google cung cấp, đồng thời người dùng cuối có thể xem và đặt trước mức giá theo thiết bị cụ thể 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 theo từng quốc gia là giá khách sạn chỉ có thể nhìn thấy và cho đặt phòng bởi những người dùng đang tìm khách sạn tại một quốc gia cụ thể. Điều khoản xác định quốc gia bằng địa chỉ IP của người dùng cuối. Các mức giá được cung cấp của đối tác của Google và người dùng cuối có thể xem và đặt phòng cho cùng một quốc gia trên trang web dành riêng cho từng quốc gia của đối tác.

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

Giá phòng theo từng ngôn ngữ chỉ được giới thiệu cho những người dùng đang tìm khách sạn khi sử dụng một chế độ cài đặt ngôn ngữ cụ thể trong Google. Ngôn ngữ cụ thể các điều kiện đượ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 được giảm tần suất lấy mẫu chỉ hiển thị cho một nhóm nhỏ được chọn ngẫu nhiên người dùng đủ điều kiện. Tốc độ lấy mẫu được xác định bằng <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

Mức giá cho người dùng đã đăng nhập chỉ hiển thị cho những người dùng đã đăng nhập bằng tài khoản Google tài khoản. Đối tác của Google cung cấp giá và người dùng có thể xem và đặt phòng mức giá trên trang web của đối tác. Giá cho người dùng đã đăng nhập được xác định bằng Phần tử <UserSignedIn>.

Vì Google luôn chọn mức giá thấp nhất đủ điều kiện, nếu giá phòng có điều kiện cao hơn giá được đặt ở cấp <Result>, giá phòng có điều kiện sẽ không bao giờ được chọn. Để tránh điều này, hãy xoá tại <Result> và điều kiện cho tất cả mức giá. Ngoài ra, hãy hỏi Nhà 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 cho các mức giá được đặ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á. Cho để biết thêm thông tin, hãy xem Quy tắc giá XML Tệp đối chiếu.

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

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

Phần tử <Rate> cũng có thể được dùng làm nhiều phần tử con của <Rates> trong các phần tử <RoomBundle> hoặc <Result>. Để sử dụng làm câu lệnh có điều kiện giá, bạn phải đặt giá trị của thuộc tính rate_rule_id để so 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á mặc định cho phòng hai người công khai, hãy đặt <Baserate> phần tử con của thông báo <Result> gửi đến -1. Bất kỳ điều kiện nào <Rates> được gửi đến Google trong trường hợp này sẽ được coi là hợp lệ.

Ví dụ

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

Ví dụ sau đây cho thấy một thông báo Giao dịch chứa cơ sở giá 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 Room đơn lẻ

Ví dụ sau đây thể hiện một thông báo Giao dịch có chứa một thông báo dưới <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 nhiều

Ví dụ sau đây thể hiện một Thông báo giao dịch chứa nhiều mức giá dưới <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ó mứ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 của bạn

Để đảm bảo người dùng cuối đủ điều kiện có thể đặt phòng ở mức giá chiết khấu thông qua một hãy sửa đổi Trang đích của bạn tệp. Cách triển khai bổ sung cũng có thể cần thiết trên trang web đặt chỗ để hiển thị đúng cách và đáp ứng mức giá chiết khấu.

Chúng tôi mong các đối tác sẽ tuân thủ mức giá trong đườ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>, với 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 quy tắc giá tồn tại:

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 giữa hai trang đích, tuỳ thuộc vào việc giá đã đặt mã quy tắc.

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