হিন্ট রেসপন্স মেসেজ

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

দাম পরিবর্তন করার প্রসেসের ওভারভিউ পেতে, দাম সংক্রান্ত ওভারভিউ দেখুন।

বেছে নেওয়া হোটেল ও সেগুলির ভ্রমণসূচীর দাম আবার নির্ধারণ করতে হিন্ট রেসপন্স মেসেজ নিম্নলিখিত পদ্ধতি ব্যবহার করে:

হিন্ট রেসপন্স মেসেজের রুট এলিমেন্ট হল <Hint>। আপনি এক বা একাধিক <Item> এলিমেন্ট ব্যবহার করে হোটেল বা ভ্রমণসূচী আপডেট করার অনুরোধ করেন। একটি হিন্ট রেসপন্স মেসেজ যেকোনও সংখ্যক <Item> এলিমেন্ট নির্ধারণ করতে পারে।

প্রতিটি হিন্ট রেসপন্স মেসেজে প্রতিটি <Item>-এর জন্য কমপক্ষে একটি <Property> এলিমেন্ট উল্লেখ করতে হবে। <Property> হোটেল তালিকা-এর মতো একই আইডি ব্যবহার করে হোটেল শনাক্ত করে। ডিফল্ট হিসেবে, আপনি প্রতিটি <Item> ব্লকের জন্য একটি হোটেল আইডি উল্লেখ করেন। তবে, আপনি যদি দাম পরিবর্তন করার জন্য চেক-ইন তারিখের রেঞ্জ বা রেঞ্জড স্টে ব্যবহার করেন, তাহলে আইটেম ব্লকে একাধিক হোটেল দেখানোর জন্য Google-কে নির্দেশ দিতে পারেন।

সঠিক ভ্রমণসূচী সংক্রান্ত অনুরোধ ও উত্তর দেওয়ার ফ্লো

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

পার্টনারের উত্তর

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

<Hint>
  <Item>
    <Property>12345</Property>
    <Stay>
      <CheckInDate>2023-05-20</CheckInDate>
      <LengthOfStay>3</LengthOfStay>
    </Stay>
  </Item>
</Hint>

Google-এর উত্তর

Google আপনার হিন্ট রেসপন্স মেসেজের উত্তরে <Query> পাঠায় যা নিম্নলিখিত মেসেজের মতো:

<Query>
  <Checkin>2023-05-20</Checkin>
  <Nights>3</Nights>
  <PropertyList>
    <Property>12345</Property>
  </PropertyList>
</Query>

<Transaction> তৈরি করুন

তারপর, আপনাকে নিম্নলিখিত থাকার জন্য হোটেলের দামের আপডেট সহ একটি <Transaction> তৈরি করতে হবে:

5/20/23 - 5/23/23

চেক-ইন করার তারিখের রেঞ্জ সংক্রান্ত অনুরোধ ও উত্তর দেওয়ার ফ্লো

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

পার্টনারের রেঞ্জ করা তারিখ

হিন্ট রেসপন্স মেসেজের নিম্নলিখিত উদাহরণে চেক-ইন করার জন্য তারিখের রেঞ্জ সহ একটি প্রপার্টি উল্লেখ করা হয়েছে:

<Hint>
  <Item>
    <Property>12345</Property>
    <FirstDate>2023-05-20</FirstDate>
    <LastDate>2023-05-23</LastDate>
  </Item>
</Hint>

Google-এর উত্তর

Google এই হিন্ট রেসপন্স মেসেজের উত্তর <Query> দিয়ে দেয়, যা নিম্নলিখিত মেসেজের মতো:

<Query>
  <FirstDate>2023-05-20</FirstDate>
  <LastDate>2023-05-23</LastDate>
  <Nights>5</Nights>
  <PropertyList>
    <Property>12345</Property>
  </PropertyList>
</Query>

<Transaction> তৈরি করুন

তারপর, আপনাকে দামের আপডেট সহ <Transaction> তৈরি করতে হবে যেখানে ওই হোটেলে নিম্নলিখিত থাকার ব্যবস্থা থাকবে:

5/20/23 - 5/21/23
5/20/23 - 5/22/23
5/20/23 - 5/23/23
5/20/23 - 5/24/23
5/20/23 - 5/25/23

5/21/23 - 5/22/23
5/21/23 - 5/23/23
5/21/23 - 5/24/23
5/21/23 - 5/25/23
5/21/23 - 5/26/23

5/22/23 - 5/23/23
5/22/23 - 5/24/23
5/22/23 - 5/25/23
5/22/23 - 5/26/23
5/22/23 - 5/27/23

এই উদাহরণে মোট কত রাত থাকবেন তা ৫ রাত হিসেবে দেখানো হয়েছে। ডিফল্ট হিসেবে থাকার সময়সীমা হল ৩০ দিন।

রেঞ্জড স্টে সংক্রান্ত অনুরোধ ও উত্তর দেওয়ার ফ্লো

হিন্ট রেসপন্স মেসেজে পরিবর্তিত তারিখের রেঞ্জ অন্তর্ভুক্ত থাকতে পারে। এটি Google-কে জানায় যে এইসব তারিখের মধ্যে কোনও তারিখে প্রভাবিত হওয়া যেকোনও ভ্রমণসূচী ফেচ করতে হবে। ভ্রমণসূচীর প্রকৃত সেটটি তারিখের পরিবর্তন এবং থাকার সর্বাধিক সময়সীমা, উভয় সেটের উপর ভিত্তি করে আনা হয়।

পার্টনারের রেঞ্জড স্টে

নিম্নলিখিত উদাহরণে হিন্ট রেসপন্স মেসেজ রেঞ্জড স্টে ব্যবহার করে:

<Hint>
  <Item>
    <Property>12345</Property>
    <StaysIncludingRange>
      <FirstDate>2023-05-20</FirstDate>
      <LastDate>2023-05-23</LastDate>
    </StaysIncludingRange>
  </Item>
</Hint>

Google-এর উত্তর

Google আপনার হিন্ট রেসপন্স মেসেজের উত্তরে <Query> পাঠায় যা নিম্নলিখিত মেসেজের মতো:

<Query>
  <FirstDate>2023-05-20</FirstDate>
  <LastDate>2023-05-23</LastDate>
  <AffectedNights>3</AffectedNights>
  <PropertyList>
    <Property>12345</Property>
    <Property>67891</Property>
  </PropertyList>
</Query>

<Transaction> তৈরি করুন

তারপর, নিম্নলিখিত থাকার জন্য হোটেলের দামের আপডেট সহ আপনাকে একটি <Transaction> তৈরি করতে হবে:

5/17/23 - 5/20/23

5/18/23 - 5/20/23
5/18/23 - 5/21/23

5/19/23 - 5/20/23
5/19/23 - 5/21/23
5/19/23 - 5/22/23

5/20/23 - 5/21/23
5/20/23 - 5/22/23
5/20/23 - 5/23/23

5/21/23 - 5/22/23
5/21/23 - 5/23/23
5/21/23 - 5/24/23

5/22/23 - 5/23/23
5/22/23 - 5/24/23
5/22/23 - 5/25/23

5/23/23 - 5/24/23
5/23/23 - 5/25/23
5/23/23 - 5/26/23

রেঞ্জড স্টে: ব্যাচিংয়ের সীমা ও কোয়েরি স্প্লিট করা

Google প্রতিটি পুল কোয়েরি সর্বাধিক ১০,০০০ হোটেল-ভ্রমণসূচী পেয়ার (একটি হোটেল, চেক-ইন করার তারিখ এবং মোট কত রাত থাকবেন) কম্বিনেশনে সীমাবদ্ধ করে। রেঞ্জড স্টে হিন্টের জন্য, রেঞ্জড স্টে কোয়েরির ক্ষেত্রে হোটেল-ভ্রমণসূচী পেয়ার কম্বিনেশনের সংখ্যা গণনা করতে ট্র্যাপিজয়েড ফর্মুলা ব্যবহার করে কম্বিনেশনের সংখ্যা গণনা করা হয়:

$$ \text{Total Items} = \left( \text{Date Span} \times \text{LOS} + \frac{\text{LOS} \times (\text{LOS} + 1)}{2} \right) \times N_{\text{hotel_batch_size}} $$

যেখানে:

  • Date Span: <FirstDate> এবং <LastDate>-এর মধ্যে অন্তর্ভুক্ত দিনের সংখ্যা (তারিখের ব্যাপ্তি = শেষতারিখ - প্রথমতারিখ + ১)।
  • LOS: হিন্টে অনুরোধ করা মোট কত রাত থাকবেন তার সর্বোচ্চ সংখ্যা (যেমন, <AffectedNights>14</AffectedNights>)।
  • \(N_{\text{hotel_batch_size}}\): কোয়েরি ব্যাচে অন্তর্ভুক্ত প্রপার্টির সংখ্যা (hotel_batch_size-এর মাধ্যমে কনফিগার করা)।

কোনও হিন্ট ১০,০০০ আইটেম ছাড়িয়ে গেলে কী হয়?

হিসেব করা আইটেম ১০,০০০-এর বেশি হলে, Google অটোমেটিক কোয়েরি ওয়ার্কলোড ভাগ করে দেয়:

  1. প্রাথমিক চেষ্টা (রেঞ্জড স্টে): আপনার রেঞ্জের শুরু কভার করে এমন একটি ছোট তারিখের উইন্ডো <AffectedNights> ব্যবহার করে পাঠানো হয়।
  2. প্রথম ফলব্যাক (যদি কাজ করে - চেক-ইন রেঞ্জ): আমরা <Nights> (নিচের কোয়েরি) ব্যবহার করে চেক-ইন তারিখের রেঞ্জ কোয়েরি হিসেবে আপনার তারিখের রেঞ্জের ছোট রিমাইন্ডার পাঠানোর চেষ্টা করব।
  3. ফাইনাল ফলব্যাক (সঠিক ভ্রমণসূচী): আমরা কোয়েরি সেটকে স্বতন্ত্র সঠিক ভ্রমণসূচীতে প্রসারিত করার জন্য ফলব্যাক করব।
<!-- Example: Remainder batch dispatched after a split -->
<Query>
  <FirstDate>2026-10-01</FirstDate>
  <LastDate>2026-10-31</LastDate>
  <Nights>14</Nights>
  <PropertyList>
    <Property>12345</Property>
  </PropertyList>
</Query>
  • প্রপার্টি ব্যাচের সাইজ ব্যালেন্স করে রাখুন: আপনি যদি ১৪+ রাতের থাকার দৈর্ঘ্যের সাথে বড় তারিখের উইন্ডো (যেমন ১৮০ থেকে ৩৬৫ দিন) আপডেট করেন, তাহলে আপনার Google টেকনিক্যাল অ্যাকাউন্ট ম্যানেজারকে আপনার hotel_batch_size কম ভ্যালুতে সেট করতে বলুন যাতে হিন্ট ট্রিগার স্প্লিট হওয়া থেকে আটকানো যায়।
  • স্কোপ হিন্ট টাইটলি: Google-কে দামের পরিবর্তন সম্পর্কে জানানোর সময়, পুরো ক্যালেন্ডার বছর পাঠানোর পরিবর্তে, <FirstDate> এবং <LastDate> স্প্যানকে নির্দিষ্ট তারিখের ব্যবধানে সীমাবদ্ধ করুন যেখানে রেট আসলে পরিবর্তিত হয়েছে।
  • আপনার হিন্ট যদি বড় তারিখের রেঞ্জ কভার করে: আপনার পার্সার যাতে বা -এর মধ্যে ব্লক গ্রহণ করে তা নিশ্চিত করুন, যার মধ্যে <FirstDate> এবং <LastDate> থাকে, যাতে পুল অনুরোধ পূরণ করার জন্য একাধিক রেঞ্জের কোয়েরি টাইপ ব্যবহার করা যায়।