প্রশ্ন & ইঙ্গিত XML রেফারেন্স

এই বিভাগটি গুগল এক্সএমএল-ভিত্তিক ইঙ্গিত অনুরোধ বার্তা , ইঙ্গিত প্রতিক্রিয়া বার্তা এবং কোয়েরি বার্তাগুলির জন্য একটি রেফারেন্স প্রদান করে।

<Hint> (ইঙ্গিত প্রতিক্রিয়া বার্তা)

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

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

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

  • সঠিক ভ্রমণপথ : চেক-ইনের তারিখ এবং থাকার সময়কালের সংমিশ্রণ।

  • চেক-ইন তারিখের পরিসর : প্রথম চেক-ইন তারিখ থেকে শুরু করে শেষ চেক-ইন তারিখ দিয়ে শেষ হওয়া চেক-ইন তারিখের একটি পরিসর নির্দিষ্ট করে।

  • রেঞ্জড স্টে (অথবা রেঞ্জড ভ্রমণপথ )

এই প্রতিটি পদ্ধতির জন্য Hint Response বার্তার জন্য আলাদা সিনট্যাক্স প্রয়োজন।

আরও তথ্যের জন্য, ইঙ্গিত প্রতিক্রিয়া বার্তাগুলি দেখুন।

বাক্য গঠন

<Hint> এলিমেন্টটি Hint Response বার্তার ধরণের উপর নির্ভর করে বিভিন্ন সিনট্যাক্স ব্যবহার করে:

সঠিক ভ্রমণপথ

একটি Hint Response বার্তায় সঠিক ভ্রমণপথের সিনট্যাক্সটি নিম্নলিখিতভাবে দেখানো হয়েছে:

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

চেক-ইন রেঞ্জ

নিম্নলিখিতটি একটি Hint Response বার্তায় চেক-ইন রেঞ্জের সিনট্যাক্স দেখায়:

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

রেঞ্জড স্টে

নিম্নলিখিতটি একটি Hint Response বার্তায় ranged stays এর সিনট্যাক্স দেখায়:

<!-- 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> এলিমেন্টের জন্য একটি কন্টেইনার।

উদাহরণ

সঠিক ভ্রমণপথ

নিম্নলিখিত উদাহরণটি একটি একক বৈশিষ্ট্যের জন্য একাধিক ভ্রমণপথ সংজ্ঞায়িত করে একটি Hint Response বার্তা:

<!-- 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 একটি <Query> পাঠায় যা নির্দেশিত হোটেল এবং ভ্রমণপথের জন্য আপডেট করা মূল্যের ডেটা নিয়ে আসে।

আরও তথ্যের জন্য, Hint Request Messages দেখুন।

বাক্য গঠন

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

বাক্য গঠন

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

গুণাবলী

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

শিশু উপাদান

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

শিশু উপাদান আদর্শ বিবরণ
<LastFetchTime> DateTime শেষবার যখন গুগল একটি ইঙ্গিত অনুরোধ বার্তার একটি ইঙ্গিত প্রতিক্রিয়া বার্তা পেতে সফল হয়েছিল।

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

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

আরও তথ্যের জন্য, Hint Response Messages দেখুন।

উদাহরণ

নিম্নলিখিত উদাহরণে একটি Hint Request বার্তা দেখানো হয়েছে:

ইঙ্গিত অনুরোধ বার্তা

নিম্নলিখিত উদাহরণে একটি Hint Request বার্তা দেখানো হয়েছে:

<?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 বার্তা পায়, তখন অংশীদারদের <Result> উপাদানগুলিতে অনুরোধ করা মূল্যের তথ্য ধারণকারী একটি <Transaction> বার্তা দিয়ে সাড়া দেওয়া উচিত।

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

    • একক দখলের জন্য প্রসঙ্গ অনুসন্ধান সহ

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

    • প্রসঙ্গ সহ পরিবর্তিত মূল্য (পূর্বে পুল উইথ হিন্টস)

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

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

    • প্রসঙ্গ সহ লাইভ মূল্য নির্ধারণের প্রশ্ন

      Context-এর সাথে লাইভ প্রাইসিং কোয়েরিতে ডিফল্টভাবে মার্জেবল অ্যাট্রিবিউট আচরণ থাকে, তাই এই অ্যাট্রিবিউট সেট করার প্রয়োজন নেই। আপনাকে শুধুমাত্র 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 QuerylatencySensitive অ্যাট্রিবিউট সহ Google কে কোয়েরি পাঠাতে, আপনার টেকনিক্যাল অ্যাকাউন্ট ম্যানেজার (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> এর জন্য উপযুক্ত Room Bundles সংজ্ঞায়িত করে একটি লেনদেন বার্তা আসা উচিত, তবে যদি Room Bundles অনুপলব্ধ থাকে তবে <Occupancy> উপাদানটি নির্দিষ্ট করার পরামর্শ দেওয়া হচ্ছে।

দ্রষ্টব্য: <Occupancy> সবসময় একটি কোয়েরিতে উপস্থিত নাও হতে পারে। এই ধরনের ক্ষেত্রে, আপনার সমস্ত দখলের দাম ফেরত দেওয়া উচিত।

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

বাধ্যতামূলক না হলেও, <OccupancyDetails> সাথে কোয়েরির ফলে প্রতিটি <Occupancy> এর জন্য উপযুক্ত Room Bundles সংজ্ঞায়িত করে একটি লেনদেন বার্তা আসা উচিত, তবে যদি Room Bundles অনুপলব্ধ থাকে তবে <OccupancyDetails> উপাদানটি নির্দিষ্ট করার পরামর্শ দেওয়া হচ্ছে।

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

<UserCountry> Pricing string

ব্যবহারকারী যে দেশে অবস্থিত সেই দেশ অনুসারে রেট ফিল্টার করে। মানটি হল একটি 2-অক্ষরের দেশের কোড যেমন মার্কিন যুক্তরাষ্ট্রের জন্য "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>