ক্যোয়ারী বার্তা

কোয়েরি মেসেজ হলো মূল্য বা মেটাডেটা আপডেটের জন্য গুগলের পক্ষ থেকে পাঠানো অনুরোধ। এগুলো পুল এবং চেঞ্জড প্রাইসিং উভয় ডেলিভারি মোডের সাথেই ব্যবহৃত হয়।

কোয়েরি মেসেজের মূল উপাদান হলো <Query>

কোয়েরি বার্তার গঠন বার্তার প্রকারের উপর নির্ভর করে:

  • মূল্য নির্ধারণ: গুগল নির্দিষ্ট হোটেলগুলোর মূল্য হালনাগাদ করার অনুরোধ জানিয়ে একটি কোয়েরি বার্তা পাঠায়।

  • মেটাডেটা: গুগল একটি কোয়েরি মেসেজ পাঠায়, যার মাধ্যমে নির্দিষ্ট হোটেলগুলোর রুম এবং প্যাকেজ সম্পর্কিত তথ্য জানতে চাওয়া হয়।

প্রাথমিক কনফিগারেশনের সময় আপনি সেই এন্ডপয়েন্টটি নির্ধারণ করেন যা গুগল কোয়েরি মেসেজ এবং লাইভ প্রাইসিং কোয়েরির জন্য ব্যবহার করবে। আরও তথ্যের জন্য, আপনার টেকনিক্যাল অ্যাকাউন্ট ম্যানেজারের (TAM) সাথে যোগাযোগ করুন।

Google একটি HTTP POST অনুরোধ হিসাবে একটি কোয়েরি বার্তা পাঠায়, যেখানে Content-Type হেডারটি "application/xml" এবং User-Agent হেডারটি Google-HotelAdsPrices হিসাবে সেট করা থাকে। Google-TravelAds-Live এর মাধ্যমে প্রাইস এন্ডপয়েন্ট ইন্টিগ্রেশনের ম্যানুয়াল পরীক্ষার সময় এই নিয়মের ব্যতিক্রম ঘটে। সেই নমুনা কোয়েরিগুলিতে User-Agent হেডারটি থাকতেও পারে বা নাও থাকতে পারে।

কোয়েরি মেসেজের বিস্তারিত ফরম্যাটিং কোয়েরি এক্সএমএল রেফারেন্স- এ পাওয়া যাবে।

মূল্য নির্ধারণ সংক্রান্ত জিজ্ঞাসার বার্তা

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

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

আরও তথ্যের জন্য, মূল্য তালিকা দেখুন।

তিন ধরনের বিশেষ কোয়েরি মেসেজ রয়েছে:

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

  2. কনটেক্সট সহ: এটি চালু করা থাকলে, গুগল আপনাকে পাঠানো প্রতিটি কোয়েরিতে ব্যবহারকারীর প্রাসঙ্গিক সুপারিশ অন্তর্ভুক্ত থাকে এবং এই সুপারিশগুলো সেইসব সাধারণ ব্যবহারকারীদের প্রতিফলিত করে, যারা নির্দিষ্ট প্রপার্টি বা ভ্রমণপথের সংমিশ্রণ অনুসন্ধান করেন। এই সুপারিশগুলো অনুসরণ করলে আপনার প্রতিক্রিয়ার কার্যকারিতা বাড়তে পারে।

  3. মেটাডেটা: এটি নির্দিষ্ট প্রপার্টিগুলোর রুম এবং প্যাকেজ সম্পর্কিত বিস্তারিত তথ্যের জন্য একটি অনুরোধ।

লাইভ মূল্য অনুসন্ধান

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

সমস্ত লাইভ প্রাইসিং কোয়েরি অনুরোধের একটি প্রতিক্রিয়া সময়সীমা থাকে, যা সাধারণত ৪০০০ মিলিসেকেন্ড পর্যন্ত হয়। এই সীমাটি লাইভ প্রাইসিং কোয়েরি অনুরোধে নির্দিষ্ট করা থাকে। যদি নির্দিষ্ট সময়সীমার মধ্যে প্রতিক্রিয়া প্রদান করা না যায়, তবে নির্দিষ্ট সুযোগটির জন্য অংশগ্রহণ করা সম্ভব হয় না। তবে, আমরা তবুও একটি মূল্য প্রদান করার পরামর্শ দিই, যাতে এটি ক্যাশ করে ভবিষ্যতের সুযোগগুলির জন্য ব্যবহার করা যায়। প্রতিক্রিয়ার জন্য সংযোগটি দশ মিনিটের জন্য অথবা পার্টনারের কনফিগারেশনে নির্দিষ্ট করা সময় পর্যন্ত খোলা থাকে।

লাইভ প্রাইসিং কোয়েরিগুলোও প্রাসঙ্গিক এবং নিম্নলিখিত প্যারামিটারগুলোর জন্য মূল্য পুনরুদ্ধার করতে পারে: ব্যবহারকারীর দেশ, ডিভাইসের ধরন, অকুপেন্সি (অতিথির সংখ্যা), এবং সেই অতিথিরা প্রাপ্তবয়স্ক নাকি শিশু। লাইভ প্রাইসিং কোয়েরির মাধ্যমে, আপনি গ্রাহকের অনুসন্ধানের সাথে মেলে এমন আরও হালনাগাদ মূল্য প্রদর্শন করতে পারেন।

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

লাইভ প্রাইসিং কোয়েরি ব্যবহারের নিয়মাবলী

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

  • অনুরোধ করা তারিখটি ডিফল্ট তারিখ নয়।

দ্রষ্টব্য: ডিফল্ট তারিখগুলো লাইভ প্রাইসিং কোয়েরির জন্য উপযুক্ত নয়। লাইভ প্রাইসিং কোয়েরি শুধুমাত্র নন-ডিফল্ট তারিখগুলোর জন্যই অনুরোধ করা হয়।

গুগল সাধারণত লাইভ প্রাইসিং-এর ফলাফল ক্যাশ করে রাখে, যাতে একই হোটেল বা ভ্রমণসূচী নিয়ে পুনরায় অনুসন্ধান করা না হয়। এটি একক হোটেল বা ভ্রমণসূচীর সমন্বয়ের পাশাপাশি একাধিক হোটেল বা একক ভ্রমণসূচীর সমন্বয়ও অনুরোধ করতে পারে।

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

কনটেক্সট কোয়েরিগুলির সাথে

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

আপনি যদি ‘With Context’ কোয়েরি পেতে আগ্রহী হন, তাহলে আপনার টেকনিক্যাল অ্যাকাউন্ট ম্যানেজারের (TAM) সাথে যোগাযোগ করুন। তিনি নিশ্চিত করতে পারবেন যে আপনি এই ধরনের বার্তা পাওয়ার জন্য প্রস্তুত কিনা এবং তারপর আপনাকে কোয়েরিতে ইউজার কনটেক্সট পাঠানো শুরু করার জন্য কনফিগারেশনে প্রয়োজনীয় পরিবর্তন করে দেবেন।

মেটাডেটা কোয়েরি বার্তা

মেটাডেটা কোয়েরি মেসেজগুলোতে নির্দিষ্ট প্রপার্টিগুলোর রুম এবং প্যাকেজ সম্পর্কিত তথ্য থাকে।

যখন আপনি একটি মেটাডেটা কোয়েরি বার্তা পাবেন, তখন আপনাকে একটি <Transaction> বার্তা দিয়ে উত্তর দিতে হবে, যেখানে <Result> এলিমেন্টের মধ্যে অনুরোধ করা প্রপার্টিগুলোর মূল্য উল্লেখ থাকবে।

আরও তথ্যের জন্য, রুম এবং প্যাকেজ মেটাডেটা নির্ধারণ দেখুন।

কোয়েরি বার্তার উদাহরণ

এই বিভাগে মূল্য নির্ধারণ সংক্রান্ত কোয়েরি বার্তা এবং একটি মেটাডেটা কোয়েরি বার্তার কয়েকটি উদাহরণ দেখানো হয়েছে। অতিরিক্ত উদাহরণ কোয়েরি এক্সএমএল রেফারেন্স- এ পাওয়া যাবে।

নমুনা ভ্রমণসূচী

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

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

এই উদাহরণটি প্রতিটি হোটেলের জন্য মূল্য হালনাগাদের অনুরোধ করে:

5/23/18 - 6/26/18

লাইভ প্রাইসিং কোয়েরির উদাহরণ

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

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<!-- Note that the latencySensitive attribute is not present by default but can
     be configured to be displayed, on request, by Google. This attribute is only
     displayed for a Live Pricing Query request -->
  <Checkin>2023-05-23</Checkin>
  <Nights>2</Nights>
  <DeadlineMs>500</DeadlineMs>
<!-- The deadline represents the timeframe by which a response will need to be
     received by. This element is only displayed for a Live Pricing Query request -->
  <PropertyList>
    <Property>6781291</Property>
  </PropertyList>
<!-- Note that Context tags are potentially repeatable -->
  <Context>
<!-- The total number of guests occupying the room (adults+children) -->
    <Occupancy>3</Occupancy>
    <OccupancyDetails>
      <NumAdults>2</NumAdults>
<!-- In this example one of the 3 guests is a 5yr old child -->
      <Children>
        <Child age="5"/>
      </Children>
    </OccupancyDetails>
<!-- The user was located in the US when this search was made -->
    <UserCountry>US</UserCountry>
<!-- The user was searching from a mobile device at the time of search -->
    <UserDevice>mobile</UserDevice>
  </Context>
</Query>

এই উদাহরণটিতে একটিমাত্র হোটেলের মূল্য জানতে চাওয়া হয়েছে:

6/23/23 - 6/25/23

এই কোয়েরির একটি নমুনা ট্রানজ্যাকশন মেসেজ রেসপন্স প্রাইসিং অ্যান্ড রুম ইনভেন্টরি (ট্রানজ্যাকশন) এক্সএমএল রেফারেন্স- এ পাওয়া যাবে।

কনটেক্সট কোয়েরির উদাহরণ সহ

নিচে With Context কোয়েরির কিছু উদাহরণ দেওয়া হলো:

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

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

দখলদারিত্ব সহ প্রসঙ্গ ব্যবহার করে অনুসন্ধান করুন

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>2025-07-10</Checkin>
  <Nights>2</Nights>
  <PropertyContextList>
    <PropertyContext>
      <Property>8675309</Property>
      <Context>
        <UserCountry>US</UserCountry>
      </Context>
      <Occupancy>3</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
        <Children>
          <Child age="7"/>
        </Children>
      </OccupancyDetails>
    </PropertyContext>
    <PropertyContext>
      <Property>8675310</Property>
      <Context>
        <UserCountry>GB</UserCountry>
      </Context>
      <Occupancy>1</Occupancy>
      <OccupancyDetails>
        <NumAdults>1</NumAdults>
      </OccupancyDetails>
    </PropertyContext>
  </PropertyContextList>
</Query>

কনটেক্সট কোয়েরি শুধুমাত্র ব্যবহারকারীর দেশের প্রেক্ষাপট নির্দিষ্ট করে। ভবিষ্যতে, এই ধরনের কোয়েরিতে ব্যবহারকারীর ডিভাইসও নির্দিষ্ট করা হতে পারে।

চেক-ইন তারিখের পরিসর

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

নিম্নলিখিত উদাহরণটি চেক-ইন তারিখের পরিসরের জন্য একটি মূল্য নির্ধারণ <Query> বার্তা দেখায়:

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

এই উদাহরণটি নিম্নলিখিত থাকার ব্যবস্থাগুলির জন্য (প্রতিটি হোটেলের জন্য) মূল্যের হালনাগাদ অনুরোধ করে:

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

রেঞ্জড স্টে

নিম্নলিখিত উদাহরণটি রেঞ্জড স্টে-এর জন্য একটি প্রাইসিং <Query> মেসেজ দেখায়:

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

এই উদাহরণটি প্রতিটি হোটেলের জন্য মূল্য হালনাগাদের অনুরোধ করে:

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

এছাড়াও সেইসব থাকার ব্যবস্থা যা প্রদত্ত রাতের আগে শুরু হয়েছিল (কিন্তু সেই রাতটিকে অন্তর্ভুক্ত করে):

5/20/23 - 5/23/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

মেটাডেটা কোয়েরি বার্তা

নিম্নলিখিত উদাহরণটি একটি <Query> বার্তা দেখায় যা একাধিক প্রপার্টির রুম এবং প্যাকেজ তথ্যের মেটাডেটা আপডেটের অনুরোধ করে:

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

এই ধরনের কোয়েরি বার্তার উত্তরে আপনি একটি ট্রানজ্যাকশন বার্তা পাঠান, যা রুম এবং প্যাকেজ মেটাডেটা নির্ধারণ করে। আরও তথ্যের জন্য, রুম এবং প্যাকেজ মেটাডেটা নির্ধারণ দেখুন।