কোয়েরি ও ইঙ্গিত XML রেফারেন্স

এই বিভাগে Google XML-ভিত্তিক হিন্ট রিকোয়েস্ট মেসেজ, হিন্ট রেসপন্স মেসেজ এবং কোয়েরি মেসেজ-এর রেফারেন্স দেওয়া হয়েছে।

<Hint> (হিন্ট রেসপন্স মেসেজ)

হিন্ট রেসপন্স মেসেজের রুট এলিমেন্ট। হিন্ট রেসপন্স মেসেজ কোন হোটেল বা ভ্রমণসূচীর কম্বিনেশনের দাম আবার নির্ধারণ করতে হবে তা নির্দিষ্ট করে। এগুলি হল Google-এর থেকে পাওয়া হিন্ট রিকোয়েস্ট মেসেজের উত্তরে আপনার পাঠানো মেসেজ।

হিন্ট রেসপন্স মেসেজে শুধুমাত্র সেইসব হোটেলের উল্লেখ করা উচিত যেগুলির দাম Google আপনার সার্ভার থেকে শেষবার সফল হিন্ট রেসপন্স পাওয়ার পর থেকে পরিবর্তিত হয়েছে।

কোন হোটেল এবং ভ্রমণসূচীর দাম Google-এর আবার নির্ধারণ করা উচিত তা নির্দিষ্ট করতে হিন্ট রেসপন্স মেসেজ নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে:

  • সঠিক ভ্রমণসূচী: চেক-ইন করার তারিখ ও মোট কত রাত থাকবেন তার কম্বিনেশন।

  • চেক-ইন করার তারিখের রেঞ্জ: চেক-ইন করার তারিখের রেঞ্জ নির্দিষ্ট করে, প্রথম চেক-ইন করার তারিখ থেকে শুরু করে শেষ চেক-ইন করার তারিখ পর্যন্ত।

  • রেঞ্জড স্টে (বা রেঞ্জড ভ্রমণসূচী)

এই প্রতিটি পদ্ধতির জন্য হিন্ট রেসপন্স মেসেজে আলাদা সিনট্যাক্স প্রয়োজন।

আরও তথ্যের জন্য, হিন্ট রেসপন্স মেসেজ দেখুন।

সিন্ট্যাক্স

<Hint> এলিমেন্ট, হিন্ট রেসপন্স মেসেজের ধরনের উপর নির্ভর করে, আলাদা সিনট্যাক্স ব্যবহার করে

সঠিক ভ্রমণসূচী

নিচে হিন্ট রেসপন্স মেসেজে সঠিক ভ্রমণসূচীর সিনট্যাক্স দেখানো হয়েছে:

<!-- Exact Itinerary Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <Property>hotel_ID</Property>
    ...
    <Stay>
      <CheckInDate>checkin_date</CheckInDate>
      <LengthOfStay>number_of_nights</LengthOfStay>
    </Stay>
  </Item>
  ...
</Hint>

চেক-ইন রেঞ্জ

নিচে হিন্ট রেসপন্স মেসেজে চেক-ইন রেঞ্জের সিনট্যাক্স দেখানো হয়েছে:

<!-- Check-in Ranges Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <!-- At least one is required -->
    <Property>hotel_ID</Property>
    [...]

    <!-- Required -->
    <FirstDate>first_checkin_date</FirstDate>
    <!-- Required -->
    <LastDate>last_checkin_date</LastDate>
  </Item>
  ...
</Hint>

রেঞ্জ করা থাকার জায়গা

হিন্ট রেসপন্স মেসেজে রেঞ্জড স্টে-র সিনট্যাক্স নিচে দেখানো হল:

<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <!-- At least one is required -->
    <Property>1458700</Property>
    <Property>5418701</Property>
    <StaysIncludingRange>
      <!-- Required -->
      <FirstDate>2025-04-28</FirstDate>
      <!-- Optional -->
      <LastDate>2025-04-29</LastDate>
    </StaysIncludingRange>
  </Item>
  ...
</Hint>

অ্যাট্রিবিউট

<Hint> এলিমেন্টে একটি ঐচ্ছিক অ্যাট্রিবিউট আছে: id। এটি প্রদান করা হলে, এই <Hint>-এর উপর ভিত্তি করে পাঠানো <Query> মেসেজে hintId অ্যাট্রিবিউট হিসেবে অন্তর্ভুক্ত করা হয়।

চাইল্ড এলিমেন্ট

<Hint> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:

চাইল্ড এলিমেন্ট প্রয়োজনীয়? ধরন হিন্ট উত্তরের ধরন বিবরণ
<CheckInDate> Required Date সঠিক ভ্রমণসূচী ভ্রমণসূচীর জন্য চেক-ইন করার তারিখ।
<FirstDate> Required Date চেক-ইন রেঞ্জ ও রেঞ্জড ভ্রমণসূচি চেক-ইন রেঞ্জ বা রেঞ্জড স্টে হিন্ট রেসপন্স মেসেজের জন্য তারিখের রেঞ্জের প্রথম তারিখ। তারিখ অন্তর্ভুক্ত করা হয়েছে।
<Item> Required Object সব হোটেল/ভ্রমণসূচী আপডেট করার জন্য একটি কন্টেনার।
<LastDate> Required* Date চেক-ইন রেঞ্জ ও রেঞ্জড ভ্রমণসূচি

চেক-ইন রেঞ্জ বা রেঞ্জড স্টে হিন্ট রেসপন্স মেসেজের জন্য তারিখের রেঞ্জের শেষ তারিখ। তারিখ অন্তর্ভুক্ত করা হয়েছে।

* রেঞ্জড স্টে-এর জন্য এই এলিমেন্টটি ঐচ্ছিক।

<LengthOfStay> Required integer সঠিক ভ্রমণসূচী ভ্রমণসূচীর জন্য রাতের সংখ্যা, যা পজিটিভ ইন্টিজার হিসেবে প্রকাশ করা হয়।
<Property> Required string সব

হোটেল তালিকা-এর মতো একই আইডি ব্যবহার করে হোটেলের আইডি। আপনি একটি <Item> ব্লকে কতগুলি <Property> এলিমেন্ট নির্দিষ্ট করতে পারবেন তা হিন্ট রেসপন্স মেসেজের ধরন দ্বারা নির্ধারিত হয়:

  • সঠিক ভ্রমণসূচী: সর্বাধিক ১০০টি হোটেল।
  • চেক-ইন রেঞ্জ: আপনি <QueryControl> মেসেজে <MultipleItineraries> থেকে "checkin_range" সেট করলে একাধিক।
  • রেঞ্জ করা থাকার সময়: আপনি নিজের <QueryControl> মেসেজে <MultipleItineraries> থেকে "affected_dates" সেট করলে একাধিক।
<Stay> Required Object সঠিক ভ্রমণসূচী সঠিক ভ্রমণসূচী হিন্ট রেসপন্স মেসেজে <CheckinDate> এবং <LengthOfStay> এলিমেন্টের জন্য একটি কন্টেনার। প্রতিটি <Item>-এ শুধুমাত্র একটি <Stay> থাকতে পারে।
<StaysIncludingRange> Required Object রেঞ্জ ভ্রমণসূচী রেঞ্জড স্টে হিন্ট রেসপন্স মেসেজে <FirstDate> এবং <LastDate> এলিমেন্টের জন্য একটি কন্টেনার।

উদাহরণ

সঠিক ভ্রমণসূচী

নিম্নলিখিত উদাহরণে একটি প্রপার্টির জন্য একাধিক ভ্রমণসূচী সংজ্ঞায়িত করা হয়েছে একটি হিন্ট রেসপন্স মেসেজ:

<!-- Exact Itinerary Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <Property>12345</Property>
    <Stay>
      <CheckInDate>2018-07-03</CheckInDate>
      <LengthOfStay>3</LengthOfStay>
    </Stay>
  </Item>
  <Item>
    <Property>12345</Property>
    <Stay>
      <CheckInDate>2018-07-03</CheckInDate>
      <LengthOfStay>4</LengthOfStay>
    </Stay>
  </Item>
</Hint>

চেক-ইন রেঞ্জ

নিম্নলিখিত উদাহরণে এমন দুটি হোটেলের কথা উল্লেখ করা হয়েছে যেগুলির দাম পরিবর্তন হয়েছে এবং আবার ফেচ করতে হবে। Google ৩ জুলাই থেকে ৬ জুলাইয়ের মধ্যে প্রপার্টি ১২৩৪৫ এবং ৬৭৮৯০-এর জন্য সব ভ্রমণসূচী পায়:

<!-- Check-in Ranges Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <Property>12345</Property>
    <Property>67890</Property>
    <FirstDate>2018-07-03</FirstDate>
    <LastDate>2018-07-06</LastDate>
  </Item>
</Hint>

রেঞ্জ করা থাকার জায়গা

নিম্নলিখিত উদাহরণে রেঞ্জড স্টে-এর দুটি আলাদা ব্যবহার দেখানো হয়েছে, একটি রাতের রেঞ্জের জন্য এবং অন্যটি একটি রাতের জন্য:

<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <!-- Google fetches prices for all itineraries (first and last date are set) -->
  <Item>
    <Property>12345</Property>
    <StaysIncludingRange>
      <FirstDate>2018-07-03</FirstDate>
      <LastDate>2018-07-06</LastDate>
    </StaysIncludingRange>
  </Item>

  <!-- Google fetches prices for a single night (first date only) -->
  <Item>
    <Property>67890</Property>
    <StaysIncludingRange>
      <FirstDate>2018-07-03</FirstDate>
    </StaysIncludingRange>
  </Item>
</Hint>

এইসব উদাহরণের প্রতিটির জন্য, Google <Query> দিয়ে উত্তর দেয় এবং আপনাকে তখন <Transaction> দিয়ে উত্তর দিতে হবে যাতে নির্দিষ্ট হোটেল/ভ্রমণসূচীর জন্য দাম সংক্রান্ত আপডেট অন্তর্ভুক্ত থাকে।

<HintRequest>

হিন্ট রিকোয়েস্ট মেসেজের রুট এলিমেন্ট। Google আপনার সার্ভারে একটি হিন্ট রিকোয়েস্ট মেসেজ পাঠায় এবং এমন একটি উত্তর আশা করে যা হোটেল এবং ভ্রমণসূচী নির্দিষ্ট করে যার দাম Google শেষবার আপনার সার্ভার থেকে সফল হিন্ট উত্তর পাওয়ার পর থেকে পরিবর্তিত হয়েছে।

দামে কোনও পরিবর্তন হলে, Google একটি <Query> পাঠায় যা উল্লেখ করা হোটেল ও ভ্রমণসূচীর জন্য আপডেট করা দামের ডেটা নিয়ে আসে।

আরও তথ্যের জন্য, হিন্ট রিকোয়েস্ট মেসেজ দেখুন।

সিন্ট্যাক্স

<HintRequest> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিন্ট্যাক্স

<?xml version="1.0" encoding="UTF-8"?>
<HintRequest>
  <LastFetchTime>last_fetch_time</LastFetchTime>
</HintRequest>

অ্যাট্রিবিউট

<HintRequest> এলিমেন্টে কোনও অ্যাট্রিবিউট নেই।

চাইল্ড এলিমেন্ট

<HintRequest> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:

চাইল্ড এলিমেন্ট ধরন বিবরণ
<LastFetchTime> DateTime শেষবার Google যখন হিন্ট রিকোয়েস্ট মেসেজের জন্য হিন্ট রেসপন্স মেসেজ পেতে সফল হয়েছিল।

এই সময়টি আপনার সার্ভারে শেষবার দাম আপডেট করার সময়ের আগের হলে, কোন কোন হোটেলের দাম পরিবর্তিত হয়েছে তা উল্লেখ করে আপনাকে হিন্ট রেসপন্স মেসেজ পাঠাতে হবে।

সম্প্রতি কোনও ডেটা ফেচ করা না হয়ে থাকলে, এটি একটি নির্দিষ্ট ব্যবধানের ভ্যালুতে সেট করা হবে (যাতে ব্যাকলগের পরিমাণ অনেক বেশি হয়ে যাওয়ার মতো গুরুতর সমস্যা এড়ানো যায়)। বর্তমানে নির্দিষ্ট ইন্টারভ্যালের ভ্যালু হল ১০০০ সেকেন্ড, তবে এটি পরিবর্তন হতে পারে।

আরও তথ্যের জন্য, হিন্ট রেসপন্স মেসেজ দেখুন।

উদাহরণ

নিচের উদাহরণে একটি হিন্ট রিকোয়েস্ট মেসেজ দেখানো হয়েছে:

হিন্ট রিকোয়েস্ট মেসেজ

নিম্নলিখিত উদাহরণে হিন্ট রিকোয়েস্ট মেসেজ দেখানো হয়েছে:

<?xml version="1.0" encoding="UTF-8"?>
<HintRequest id="ABCDEF" timestamp="2018-06-07T16:20:00Z">
  <LastFetchTime>2018-03-25T00:04:09Z</LastFetchTime>
</HintRequest>

<Query>

Query মেসেজের রুট এলিমেন্ট। Queryটি মেসেজ হল দাম বা মেটাডেটা আপডেট করার জন্য Google-এর তরফ থেকে করা অনুরোধ। এগুলি পুল এবং দাম পরিবর্তন করা হয়েছে (পুল উইথ হিন্ট নামে পরিচিত) ডেলিভারি মোড, দুটির সাথেই ব্যবহার করা হয়।

দাম সংক্রান্ত কোয়েরি মেসেজ

প্রাইসিং কোয়েরি মেসেজ প্রপার্টি ও ভ্রমণসূচীর কম্বিনেশন নির্দিষ্ট করে যার জন্য আপনি দাম প্রদান করেন।

আপনার সার্ভার দাম সংক্রান্ত কোয়েরি মেসেজ পেলে, সেটির উত্তরে <Transaction> মেসেজ পাঠানো উচিত যাতে অনুরোধ করা দাম সংক্রান্ত তথ্য থাকে।

আরও তথ্যের জন্য, দাম সংক্রান্ত ওভারভিউ দেখুন।

Query মেসেজের তিন ধরনের বিশেষ প্রকার আছে:

  • রিয়েল-টাইম দাম: Google কোনও ব্যবহারকারীর নির্দিষ্ট অনুরোধের উত্তর দেয়, রিয়েল-টাইম দামের আপডেট জানতে চায়। পার্টনাররা Live pricing query মেসেজ পেলে, তাদের <Transaction> মেসেজ দিয়ে উত্তর দিতে হবে, যেখানে <Result> এলিমেন্টে অনুরোধ করা দাম সংক্রান্ত তথ্য থাকবে।

  • প্রাসঙ্গিক দামের সাথে: Google ঐতিহাসিকভাবে জনপ্রিয় প্রসঙ্গের উপর ভিত্তি করে তার দামের ক্যাশে আপডেট করে। আপনি With Context query মেসেজ পেলে, <Transaction> মেসেজ দিয়ে উত্তর দেওয়া উচিত যাতে <Result> এলিমেন্টে অনুরোধ করা দাম সংক্রান্ত তথ্য থাকে।

    • একক অকুপেন্সির জন্য কনটেক্সট কোয়েরি সহ

      'প্রসঙ্গ সহ' কোয়েরির উত্তরে রেট দেওয়ার সময়, আপনাকে শুধুমাত্র নির্দিষ্ট প্রসঙ্গের সাথে সম্পর্কিত রেট পাঠাতে হবে। বেস রেট অকুপেন্সির জন্য কমপক্ষে ২ জন অকুপ্যান্ট প্রয়োজন, তাই বেস রেটে একজন অকুপ্যান্টের তথ্য পাস করা হলে, সেটি উপেক্ষা করা হবে এবং ডবল অকুপেন্সি হিসেবেই বিবেচনা করা হবে। এই ক্ষেত্রে, আপনাকে বেস রেট অনুপলভ্য হিসেবে পাস করতে হবে এবং সিঙ্গেল অকুপেন্সির মধ্যে নেস্টেড রেট ব্যবহার করতে হবে। প্রাসঙ্গিক উত্তর সহ উদাহরণ দেখুন। আপনি প্রসঙ্গ সহ পরিবর্তিত মূল্য ব্যবহার করে mergeable অ্যাট্রিবিউট "true"-এ সেট করার মাধ্যমে রেট মার্জ করতে পারবেন। আরও জানুন।

    • কন্টেক্সট সহ পরিবর্তিত মূল্য (আগে পুল উইথ হিন্ট নামে পরিচিত ছিল)

      আপনি যখন প্রসঙ্গ কোয়েরি সহ দাম পরিবর্তন করা হয়েছে (পুল উইথ হিন্ট নামে পরিচিত)-এর উত্তরে <Transaction> মেসেজ পাঠান, তখন Google এটিকে কোনও নির্দিষ্ট হোটেল বা ভ্রমণসূচীর জন্য দাম ও উপলভ্যতার তথ্যের সম্পূর্ণ প্রতিস্থাপন হিসেবে বিবেচনা করে এবং সমস্ত প্রসঙ্গ-নির্দিষ্ট রেট উত্তর থেকে বাদ দেওয়া হয় এবং ক্যাশে থেকে সরানো হয়।

      ওভাররাইট করা আটকাতে, আপনাকে <Transaction> মেসেজের <Result> এলিমেন্টের মধ্যে mergeable অ্যাট্রিবিউটকে "true"-এ সেট করতে হবে। Google, উত্তরে প্রদত্ত প্রসঙ্গের জন্য বিদ্যমান ক্যাশে করা রেটের সাথে রেট যোগ করে। আপনি যদি মার্জ করা যায় এমন অ্যাট্রিবিউট ব্যবহার না করেন, তাহলে আপনাকে অবশ্যই উত্তরে সমস্ত প্রযোজ্য প্রসঙ্গের জন্য সমস্ত রেট পাঠাতে হবে।

    • প্রসঙ্গ সহ রিয়েল-টাইম দাম সংক্রান্ত কোয়েরি

      ডিফল্ট হিসেবে, প্রসঙ্গ সহ রিয়েল-টাইম দামের কোয়েরিতে মার্জ করা যায় এমন অ্যাট্রিবিউট থাকে, তাই এই অ্যাট্রিবিউট সেট করার প্রয়োজন নেই। অন্যান্য সব প্রসঙ্গ একই থাকলে, Google-এর অনুরোধ করা নির্দিষ্ট প্রসঙ্গের জন্য আপনাকে শুধু রেট পাঠাতে হবে। অন্যান্য প্রসঙ্গ পরিবর্তন হলে, আপনাকে অবশ্যই সেইসব প্রসঙ্গের জন্য পরিবর্তনগুলি স্পষ্টভাবে পাঠাতে হবে; অন্যথায়, নতুন রেট Google-এর ক্যাশে আপডেট করা হবে না।

  • মেটাডেটা: Google নির্দিষ্ট হোটেলের রুম ও রুম বান্ডেলের জন্য মেটাডেটা আপডেট করার অনুরোধ করে। আপনি Metadata Query মেসেজ পেলে, আপনাকে <Transaction> মেসেজের মাধ্যমে উত্তর দিতে হবে, যেখানে <PropertyDataSet> এলিমেন্টে রুম ও রুম বান্ডেল সম্পর্কে ডেটা উল্লেখ করা থাকবে। আরও তথ্যের জন্য, রুম বান্ডেল মেটাডেটা দেখুন।

সিন্ট্যাক্স

<Query> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

দাম সম্পর্কিত কোয়েরি

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>YYYY-MM-DD</Checkin>
  <Nights>number_of_nights</Nights>
  <PropertyList>
    <Property>hotel_id</Property>
    ...
  </PropertyList>
</Query>

রিয়েল-টাইম দাম

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true_or_false">
  <Checkin>YYYY-MM-DD</Checkin>
  <Nights>number_of_nights</Nights>
  <!-- Only for Check-in Date Range pricing queries (Changed Pricing) -->
  <FirstDate>YYYY-MM-DD</FirstDate>
  <LastDate>YYYY-MM-DD</LastDate>
  <!-- Only for Ranged Stay pricing queries (Changed Pricing) -->
  <AffectedNights>number_of_nights</AffectedNights>
  <PropertyList>
    <Property>hotel_id</Property>
    ...
  </PropertyList>
  <!-- See documentation below for <Context> -->
  <Context>
   ...
  </Context>
</Query>

প্রসঙ্গ কোয়েরি সহ

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>YYYY-MM-DD</Checkin>
  <Nights>number_of_nights</Nights>
  <!-- Only for Check-in Date Range pricing queries (Changed Pricing) -->
  <FirstDate>YYYY-MM-DD</FirstDate>
  <LastDate>YYYY-MM-DD</LastDate>
  <!-- Only for Ranged Stay pricing queries (Changed Pricing) -->
  <AffectedNights>number_of_nights</AffectedNights>
  <PropertyContextList>
    <PropertyContext>
      <Property>hotel_id</Property>
      ...
      <!-- See documentation below for <Context> -->
      <Context>
      ...
      </Context>
    </PropertyContext>
  </PropertyContextList>
</Query>

মেটাডেটা

<HotelInfoProperties>
  <Property>property_ID</Property>
  ...
</HotelInfoProperties>

অ্যাট্রিবিউট

<Query> এলিমেন্টে একটি অ্যাট্রিবিউট থাকতে পারে: latencySensitive।

latencySensitive অ্যাট্রিবিউটটি ঐচ্ছিক। এটি প্রদান করা হলে এবং true-এ সেট করা হলে, এটি ইঙ্গিত করে যে কোয়েরিটি হল একটি Live Pricing Query। Google-এর মাধ্যমে latencySensitive অ্যাট্রিবিউট সহ কোয়েরি পাঠাতে, আপনার টেকনিক্যাল অ্যাকাউন্ট ম্যানেজারের (TAM) সাথে যোগাযোগ করুন।

চাইল্ড এলিমেন্ট

<Query> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:

চাইল্ড এলিমেন্ট কোয়েরির ধরন ধরন বিবরণ
<AffectedNights> Pricing integer একটি রেঞ্জড স্টে-এর জন্য রাতের সংখ্যা। এই এলিমেন্টটি শুধুমাত্র পরিবর্তিত দামের সাথে ব্যবহৃত রেঞ্জড স্টে দামের কোয়েরির জন্য ব্যবহার করা হয়।
<Checkin> Pricing Date নির্দিষ্ট দাম পরিবর্তনের তারিখ।
<Context> Pricing (Live Pricing Queries only) <Context> লাইভ প্রাইসিং কোয়েরির জন্য, নির্দিষ্ট প্যারামিটার উল্লেখ করে যার অধীনে কোয়েরি করা হয়। চাইল্ড এলিমেন্টের মধ্যে এগুলি পড়ে:
  • <Occupancy>: অতিথিদের মোট সংখ্যা
  • <OccupancyDetails>: অতিথির ধরন, যেমন প্রাপ্তবয়স্ক বা বাচ্চা
  • <UserCountry>: ব্যবহারকারী যে দেশে আছেন
  • <UserDevice>: হোটেল সার্চ করার জন্য অতিথি যে ধরনের ডিভাইস ব্যবহার করেছেন, যেমন "mobile," "tablet," অথবা "desktop."

<Context> এলিমেন্ট একটি অনুরোধে একাধিকবার থাকতে পারে, যার ফলে বিভিন্ন ধরনের অকুপেন্সির জন্য কোয়েরি করা যায়। চাইল্ড এলিমেন্ট, সিনট্যাক্স ও উদাহরণের তালিকার জন্য <Context> দেখুন।

<FirstDate> Pricing Date ভ্রমণসূচীর রেঞ্জের শুরুর তারিখ, যার উপর দাম প্রযোজ্য। এই এলিমেন্টটি শুধুমাত্র চেক-ইন করার তারিখের রেঞ্জ সংক্রান্ত দামের কোয়েরির জন্য ব্যবহার করা হয় যা পরিবর্তিত দামের সাথে ব্যবহার করা হয়।
<HotelInfoProperties> Metadata string এক বা একাধিক প্রপার্টি যার জন্য Google, মেটাডেটা Query মেসেজে রুম ও রুম বান্ডেলের আপডেট করা মেটাডেটা চায়। এই এলিমেন্টে এক বা একাধিক <Property> এলিমেন্ট থাকতে পারে যা হোটেল প্রপার্টি আইডি নির্দিষ্ট করে।
<LastDate> Pricing Date ভ্রমণসূচীর রেঞ্জের শেষ তারিখ, যার উপর দাম প্রযোজ্য। এই এলিমেন্টটি শুধুমাত্র চেক-ইন তারিখের রেঞ্জ অনুযায়ী দামের কোয়েরির জন্য ব্যবহার করা হয় যা পুল + হিন্টস-এর সাথে ব্যবহার করা হয়।
<Nights> Pricing integer কোনও নির্দিষ্ট ভ্রমণসূচীর জন্য রাতের সংখ্যা, ৩০ পর্যন্ত।
<PropertyList> Pricing Object

হোটেলের এক বা একাধিক আইডি যার জন্য দাম আপডেট করতে হবে।

<Property> এলিমেন্টে প্রতিটি হোটেলকে সংজ্ঞায়িত করুন। ভ্যালু হল একটি স্ট্রিং যা আপনার হোটেল তালিকা-তে থাকা হোটেল আইডির সাথে ম্যাচ করে। যেমন:

<PropertyList>
  <Property>pid1</Property>
  <Property>pid2</Property>
</PropertyList>

উদাহরণ

দাম সংক্রান্ত কোয়েরি

নিম্নলিখিত উদাহরণে দাম সংক্রান্ত কোয়েরি মেসেজ দেখানো হয়েছে যা এক সেট হোটেলের জন্য দামের আপডেট অনুরোধ করে, ৩ রাতের জন্য উপলভ্য এবং ২৩ মে, ২০২৩ থেকে শুরু:

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>2023-05-23</Checkin>
  <Nights>3</Nights>
  <PropertyList>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </PropertyList>
</Query>

লাইভ প্রাইসিং কোয়েরি

নিম্নলিখিত উদাহরণে ৫০০ মিলিসেকেন্ডের রেসপন্স টাইম সীমা সহ রিয়েল-টাইম দাম সংক্রান্ত কোয়েরি দেখানো হয়েছে:

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
  <Checkin>2017-06-07</Checkin>
  <Nights>5</Nights>
  <DeadlineMs>500</DeadlineMs>
  <PropertyList>
    <Property>8675309</Property>
  </PropertyList>
  <Context>
    <Occupancy>4</Occupancy>
    <OccupancyDetails>
      <NumAdults>2</NumAdults>
      <Children>
        <Child age="8"/>
        <Child age="5"/>
      </Children>
    </OccupancyDetails>
    <UserCountry>US</UserCountry>
    <UserDevice>mobile</UserDevice>
  </Context>
</Query>

প্রাসঙ্গিক কোয়েরি সহ

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>2023-05-23</Checkin>
  <Nights>2</Nights>
  <PropertyContextList>
    <PropertyContext>
      <Property>8675309</Property>
      <!-- In the future, device might be specified -->
      <Context><UserCountry>US</UserCountry></Context>
      <Context><UserCountry>GB</UserCountry></Context>
    </PropertyContext>
    <PropertyContext>
      <Property>8675310</Property>
      <Property>8675311</Property>
      <Context><UserCountry>CA</UserCountry></Context>
    </PropertyContext>
  </PropertyContextList>
</Query>

প্রসঙ্গ সহ উত্তর

নিচের উদাহরণে দেখানো হয়েছে যে কীভাবে একজন ব্যক্তির জন্য বেস রেট unavailable(-1) সেট করতে হয় এবং <Occupancy> এলিমেন্টে রেট নেস্ট করতে হয়।

<?xml version="1.0" encoding="UTF-8"
<Transaction id="Wtdj8QoQIWcAAbaTGlIAAAC4" timestamp="2025-11-19T18:36:48Z">
<Result>
  <Property>6781291</Property>
  <Checkin>2026-01-15</Checkin>
  <Nights>1</Nights>
  <!-- Base rate is set to -1 to indicate unavailability for the default (2-person) occupancy -->
  <Baserate currency="USD">-1</Baserate>
  <Tax currency="USD">0</Tax>
  <OtherFees currency="USD">0</OtherFees>
  <Rates>
    <!-- Nested Rate for Single Occupancy -->
    <Rate rate_rule_id="rule-951">
      <Occupancy>1</Occupancy>
      <OccupancyDetails>
        <NumAdults>1</NumAdults>
      </OccupancyDetails>
      <Baserate currency="USD">150.00</Baserate>
      <Tax currency="USD">15.00</Tax>
      <OtherFees currency="USD">5.00</OtherFees>
    </Rate>
  <!-- Other nested rates for different occupancies or room types could be included here if available -->
  </Rates>
</Result>
</Transaction>

মেটাডেটা কোয়েরি

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <HotelInfoProperties>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </HotelInfoProperties>
</Query>

রেঞ্জড স্টে এবং চেক-ইন তারিখের রেঞ্জ সহ অতিরিক্ত উদাহরণের জন্য মূল্যের কোয়েরি, Query মেসেজের উদাহরণ দেখুন।

<Context>

<Context> এলিমেন্ট Live pricing query-এর তথ্য বর্ণনা করে, যার মধ্যে অতিথির সংখ্যা ও ধরন, ব্যবহারকারীর দেশ ও ব্যবহারকারীর ডিভাইস অন্তর্ভুক্ত।

একাধিক <Context> কখনই বিভিন্ন ব্যবহারকারীর দেশ বা ব্যবহারকারীর ডিভাইসের সাথে ব্যবহার করা হবে না। একাধিক <Context> ব্যবহার করে একাধিক অকুপেন্সি কোয়েরি করা হলে, সংশ্লিষ্ট প্রপার্টি বা ভ্রমণসূচীর জন্য অতিরিক্ত রুম বান্ডেল হিসেবে প্রতিটি অকুপেন্সির মূল্য প্রদান করুন। প্রতিটি প্রপার্টি বা ভ্রমণসূচীতে একাধিক অকুপেন্সির জন্য দাম সহ একটি <Result> ব্লক থাকতে হবে।

<Context> কোয়েরির উত্তরের বিবরণ দেখতে, <OccupancyDetails> দেখুন।

সিন্ট্যাক্স

<Context> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিন্ট্যাক্স

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true_or_false">
  <Checkin>date</Checkin>
  <Nights>number_of_nights</Nights>
  <DeadlineMs>number_of_milliseconds</DeadlineMs>
  <PropertyList>
    <Property>property_ID</Property>
  </PropertyList>
  <Context>
    <Occupancy>total_number_of_guests</Occupancy>
    <OccupancyDetails>
      <NumAdults>number_of_adults</NumAdults>
      <Children>
        <Child age=age_of_one_child_guest/>
        <Child age=age_of_one_child_guest/>
      </Children>
    </OccupancyDetails>
    <UserCountry>end_user_country</UserCountry>
    <UserDevice>user_device_type</UserDevice>
  </Context>
</Query>

চাইল্ড এলিমেন্ট

<Context> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:

চাইল্ড এলিমেন্ট কোয়েরির ধরন ধরন বিবরণ
<Occupancy> Pricing integer অতিথির মোট সংখ্যা নির্দিষ্ট করে।

বাধ্যতামূলক না হলেও, <Occupancy> সহ কোয়েরির ফলে প্রতিটি <Occupancy>-এর জন্য নির্দিষ্ট করা উপযুক্ত রুম বান্ডেল সহ ট্রানজ্যাকশন মেসেজ পাওয়া উচিত, তবে রুম বান্ডেল উপলভ্য না থাকলে, আপনাকে <Occupancy> এলিমেন্ট নির্দিষ্ট করার সাজেশন দেওয়া হয়।

মনে রাখবেন:<Occupancy> সব সময় কোয়েরিতে দেখা নাও যেতে পারে। এই ধরনের ক্ষেত্রে, আপনাকে সব ধরনের অকুপেন্সির দাম দেখাতে হবে।

<OccupancyDetails> Pricing Object <Occupancy>-এর পরে আসে। অতিথিদের ধরন অনুযায়ী নির্দিষ্ট করে, যার মধ্যে আছে:
  • <NumAdults>: প্রাপ্তবয়স্ক অতিথির সংখ্যা
  • <Children> এবং <Child="age">: কোন কোন অতিথি শিশু (সাধারণত ০-১৭ বছর বয়স) তা উল্লেখ করে এবং বিকল্প হিসেবে প্রতিটি শিশুর বয়স অন্তর্ভুক্ত করে।

বাধ্যতামূলক না হলেও, <OccupancyDetails>-এর সাথে করা কোয়েরির ফলাফল হিসেবে এমন ট্রানজ্যাকশন মেসেজ দেখানো উচিত যাতে প্রতিটি <Occupancy>-এর জন্য উপযুক্ত রুম বান্ডেল উল্লেখ করা থাকে, তবে রুম বান্ডেল উপলভ্য না থাকলে, আপনাকে <OccupancyDetails> এলিমেন্ট উল্লেখ করার সাজেশন দেওয়া হয়।

মনে রাখবেন: <OccupancyDetails> সব সময় কোয়েরিতে দেখা নাও যেতে পারে। এই ধরনের ক্ষেত্রে, আপনাকে ধরে নিতে হবে যে সব অতিথি প্রাপ্তবয়স্ক।

<UserCountry> Pricing string

ব্যবহারকারী যে দেশে থাকেন সেই দেশ অনুযায়ী রেট ফিল্টার করে। এই ভ্যালু হল ২-অক্ষরের দেশের কোড, যেমন মার্কিন যুক্তরাষ্ট্রের জন্য "US", অথবা অঞ্চলের কোড, যেমন "ইউরোপ"-এর জন্য "EU"।

<UserCountry> উল্লেখ করা কোয়েরির ফলাফল হিসেবে কোয়েরি করা দেশের জন্য উপযুক্ত <Rates> ব্লক উল্লেখ করা ট্রানজ্যাকশন মেসেজ পাওয়া যাবে।

<UserDevice> Pricing string

ব্যবহারকারী যে ধরনের ডিভাইস থেকে সার্চ করছেন সেই অনুযায়ী রেট ফিল্টার করে। সম্ভাব্য মান:

  • mobile
  • desktop
  • tablet

<UserDevice> উল্লেখ করা কোয়েরির ফলাফল হিসেবে কোয়েরি করা ডিভাইসের ধরনের জন্য উপযুক্ত <Rates> ব্লক উল্লেখ করা ট্রানজ্যাকশন মেসেজ দেখাতে হবে।

উদাহরণ

থাকার ব্যবস্থা

নিম্নলিখিত উদাহরণে <Context>-এর মধ্যে <Occupancy>-এর জন্য রিয়েল-টাইম দামের কোয়েরি দেখানো হয়েছে। লাইভ মূল্যের কোয়েরি ৩ জন প্রাপ্তবয়স্ক অতিথির জন্য।

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
  <Checkin>2017-06-07</Checkin>
  <Nights>4</Nights>
  <DeadlineMs>500</DeadlineMs>
  <PropertyList>
    <Property>45617</Property>
  </PropertyList>
  <Context>
    <Occupancy>3</Occupancy>
    <UserCountry>US</UserCountry>
    <UserDevice>mobile</UserDevice>
  </Context>
</Query>

অকুপেন্সি সংক্রান্ত বিবরণ

নিম্নলিখিত উদাহরণে <Context>-এর মধ্যে <OccupancyDetails> সহ রিয়েল-টাইম দামের কোয়েরি দেখানো হয়েছে। লাইভ মূল্যের কোয়েরি ৪ জন অতিথির জন্য, যার মধ্যে ২ জন শিশু এবং মার্কিন যুক্তরাষ্ট্রের কোনও অতিথি মোবাইল ডিভাইস থেকে বুকিং করলে যে রেট প্রযোজ্য হবে তা জানতে চাওয়া হয়েছে:

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
  <Checkin>2017-06-07</Checkin>
  <Nights>5</Nights>
  <DeadlineMs>500</DeadlineMs>
  <PropertyList>
    <Property>8675309</Property>
  </PropertyList>
  <Context>
    <Occupancy>4</Occupancy>
    <OccupancyDetails>
      <NumAdults>2</NumAdults>
      <Children>
        <Child age="4"/>
        <Child age="12"/>
      </Children>
    </OccupancyDetails>
    <UserCountry>US</UserCountry>
    <UserDevice>mobile</UserDevice>
  </Context>
</Query>

একাধিক প্রসঙ্গ

নিচের উদাহরণে দেখানো হয়েছে যে কীভাবে লাইভ মূল্যের কোয়েরিতে অতিরিক্ত <Context> এলিমেন্ট ব্যবহার করা হয়।

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
  <Checkin>2017-06-07</Checkin>
  <Nights>4</Nights>
  <DeadlineMs>500</DeadlineMs>
  <PropertyList>
    <Property>45617</Property>
  </PropertyList>
  <Context>
    <Occupancy>3</Occupancy>
    <UserCountry>US</UserCountry>
    <UserDevice>mobile</UserDevice>
  </Context>
  <Context>
    <Occupancy>6</Occupancy>
    <OccupancyDetails>
      <NumAdults>4</NumAdults>
      <Children>
        <Child age="6"/>
        <Child age="10"/>
      </Children>
    </OccupancyDetails>
    <UserCountry>US</UserCountry>
    <UserDevice>mobile</UserDevice>
  </Context>
</Query>