क्वेरी और हिंट के लिए एक्सएमएल रेफ़रंस

इस सेक्शन में, Google के एक्सएमएल पर आधारित सुझाव के अनुरोध वाले मैसेज, सुझाव के जवाब वाले मैसेज, और क्वेरी वाले मैसेज के बारे में जानकारी दी गई है.

<Hint> (हिंट रिस्पॉन्स मैसेज)

यह हिंट रिस्पॉन्स मैसेज का रूट एलिमेंट होता है. सुझाव वाले जवाब के मैसेज यह बताते हैं कि किस होटल या यात्रा कार्यक्रम के कॉम्बिनेशन की कीमत फिर से तय की जानी चाहिए. ये Google से मिले जवाब का अनुरोध करने वाले मैसेज के जवाब हैं.

सुझाव वाले जवाब के मैसेज में, सिर्फ़ उन होटलों के बारे में जानकारी होनी चाहिए जिनके किराये में बदलाव हुआ है. यह बदलाव, तब से होना चाहिए, जब Google को आपके सर्वर से सुझाव वाला जवाब मिला था.

सुझाव के जवाब वाले मैसेज में, यह तय करने के लिए इनमें से किसी एक तरीके का इस्तेमाल किया जाता है कि Google को किन होटलों और यात्रा योजनाओं के लिए फिर से कीमत तय करनी चाहिए:

  • यात्रा की सटीक योजनाएं: इसमें चेक-इन की तारीख और ठहरने की अवधि शामिल होती है.

  • चेक-इन करने की तारीख की सीमाएं: इससे चेक-इन करने की तारीखों की सीमा के बारे में पता चलता है. यह सीमा, चेक-इन करने की पहली तारीख से शुरू होकर चेक-इन करने की आखिरी तारीख पर खत्म होती है.

  • तय सीमा में ठहरने की सुविधा (या तय सीमा में यात्रा कार्यक्रम)

इनमें से हर तरीके के लिए, हिंट रिस्पॉन्स मैसेज का सिंटैक्स अलग-अलग होता है.

ज़्यादा जानकारी के लिए, जवाब के बारे में जानकारी देने वाले मैसेज देखें.

सिंटैक्स

<Hint> एलिमेंट अलग-अलग सिंटैक्स का इस्तेमाल करता है. यह सिंटैक्स, 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>

चेक-इन करने की सीमाएं

यहां, जवाब के तौर पर दिए गए मैसेज में चेक-इन की रेंज के लिए सिंटैक्स दिखाया गया है:

<!-- 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. यह जानकारी देने पर, इसे <Query> के ज़रिए भेजे गए मैसेज में hintId एट्रिब्यूट के तौर पर शामिल किया जाता है. ये मैसेज, इस <Hint> के आधार पर भेजे जाते हैं.

चाइल्ड एलीमेंट

<Hint> एलिमेंट में ये चाइल्ड एलिमेंट होते हैं:

चाइल्ड एलिमेंट ज़रूरी है? टाइप जवाब में दी गई हिंट का टाइप ब्यौरा
<CheckInDate> Required Date सटीक यात्रा योजनाएं यात्रा की योजना के लिए चेक-इन करने की तारीख.
<FirstDate> Required Date चेक-इन की रेंज और रेंज वाली यात्रा की योजनाएं चेक-इन की तारीख की सीमा या तारीख की सीमा के हिसाब से ठहरने के बारे में जानकारी देने वाले मैसेज के लिए, तारीख की सीमा की पहली तारीख. तारीखें शामिल हैं.
<Item> Required Object सभी अपडेट किए जाने वाले होटल/यात्रा की योजना के लिए कंटेनर.
<LastDate> Required* Date चेक-इन की रेंज और रेंज वाली यात्रा की योजनाएं

चेक-इन की तारीख की सीमा या ठहरने की अवधि की सीमा के लिए, तारीख की सीमा की आखिरी तारीख. यह तारीख, ठहरने की अवधि के बारे में जानकारी देने वाले मैसेज में दिखती है. तारीखें शामिल हैं.

* रेंज के हिसाब से ठहरने की अवधि के लिए, यह एलिमेंट इस्तेमाल करना ज़रूरी नहीं है.

<LengthOfStay> Required integer सटीक यात्रा योजनाएं यात्रा की अवधि, जिसे धनात्मक पूर्णांक के तौर पर दिखाया जाता है.
<Property> Required string सभी

होटल का आईडी. इसके लिए, होटल की सूची में इस्तेमाल किए गए आईडी का ही इस्तेमाल किया जाता है. एक <Item> ब्लॉक में, <Property> एलिमेंट की संख्या तय करने के लिए, हिंट रिस्पॉन्स मैसेज का टाइप तय किया जाता है:

  • यात्रा की सटीक योजनाएं: ज़्यादा से ज़्यादा 100 होटल.
  • चेक-इन की सीमाएं: अगर आपने <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 को प्रॉपर्टी 12345 और 67890 के लिए, 3 जुलाई से 6 जुलाई के बीच की सभी यात्राओं की जानकारी मिलती है:

<!-- 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 को आपके सर्वर से कीमत में बदलाव की जानकारी मिलने के बाद से बदलाव हुआ है.

अगर किराये में कोई बदलाव होता है, तो Google एक <Query> भेजता है. इससे, बताए गए होटलों और यात्रा की योजनाओं के लिए, किराये का अपडेट किया गया डेटा मिलता है.

ज़्यादा जानकारी के लिए, सुझाव के अनुरोध वाले मैसेज देखें.

सिंटैक्स

<HintRequest> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

सिंटैक्स

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

विशेषताएं

<HintRequest> एलिमेंट में कोई एट्रिब्यूट नहीं है.

चाइल्ड एलीमेंट

<HintRequest> एलिमेंट में ये चाइल्ड एलिमेंट होते हैं:

चाइल्ड एलिमेंट टाइप ब्यौरा
<LastFetchTime> DateTime पिछली बार जब Google को, हिंट के अनुरोध वाले मैसेज का हिंट रिस्पॉन्स मैसेज मिला था.

अगर यह समय, आपके सर्वर पर कीमतों को पिछली बार अपडेट किए गए समय से पहले का है, तो आपको हिंट रिस्पॉन्स मैसेज के साथ जवाब देना चाहिए. इसमें यह जानकारी होनी चाहिए कि किन होटलों की कीमतें बदली हैं.

अगर हाल ही में फ़ेच पूरा नहीं हुआ है, तो इसे तय इंटरवल की वैल्यू पर सेट किया जाएगा, ताकि बड़े बैकलॉग से जुड़ी ज़्यादा गंभीर समस्याओं से बचा जा सके. फ़िलहाल, तय किए गए इंटरवल की वैल्यू 1,000 सेकंड है. हालांकि, इसमें बदलाव हो सकता है.

ज़्यादा जानकारी के लिए, जवाब के बारे में जानकारी देने वाले मैसेज देखें.

उदाहरण

यहां हिंट का अनुरोध करने वाले मैसेज का उदाहरण दिया गया है:

हिंट का अनुरोध करने वाला मैसेज

यहां हिंट के अनुरोध वाले मैसेज का उदाहरण दिया गया है:

<?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 के अनुरोध होते हैं. ये अनुरोध, कीमत या मेटाडेटा अपडेट करने के लिए होते हैं. इनका इस्तेमाल, Pull और Changed, दोनों तरह के डिलिवरी मोड के साथ किया जाता है.

किराये से जुड़ी क्वेरी के मैसेज

किराया क्वेरी के मैसेज में, प्रॉपर्टी और यात्रा की योजना के उन कॉम्बिनेशन के बारे में बताया जाता है जिनके लिए आपको किराया देना है.

जब आपके सर्वर को कीमत क्वेरी मैसेज मिलता है, तो उसे <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 एट्रिब्यूट के साथ क्वेरी भेजनी हैं, तो अपने टेक्निकल खाता मैनेजर (टीएएम) से संपर्क करें.

चाइल्ड एलीमेंट

<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 यात्रा की उन योजनाओं के लिए खत्म होने की तारीख जिन पर किराया लागू होता है. इस एलिमेंट का इस्तेमाल सिर्फ़ चेक-इन की तारीख की सीमा के हिसाब से किराये की जानकारी पाने के लिए की गई क्वेरी के लिए किया जाता है. इन क्वेरी का इस्तेमाल Pull + Hints के साथ किया जाता है.
<Nights> Pricing integer किसी खास यात्रा कार्यक्रम के लिए रातों की संख्या. यह संख्या 30 से ज़्यादा नहीं होनी चाहिए.
<PropertyList> Pricing Object

उन होटल के लिए एक या इससे ज़्यादा आईडी जिनके किराये को अपडेट करना है.

हर होटल को <Property> एलिमेंट में तय करें. यह वैल्यू एक स्ट्रिंग होती है. यह आपकी होटल सूची में मौजूद होटल आईडी से मेल खाती है. उदाहरण के लिए:

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

उदाहरण

किराये से जुड़ी क्वेरी

यहां दिया गया उदाहरण, किराये की जानकारी के लिए क्वेरी वाला मैसेज दिखाता है. इसमें 23 मई, 2023 से तीन रातों तक के लिए उपलब्ध होटलों के किराये की जानकारी अपडेट करने का अनुरोध किया गया है:

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

मौजूदा कीमत से जुड़ी क्वेरी

इस उदाहरण में, मौजूदा किराया पता करने के लिए की गई क्वेरी दिखाई गई है. इसके जवाब के लिए 500 मिलीसेकंड की समयसीमा तय की गई है:

<?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">: इससे यह पता चलता है कि मेहमानों में बच्चे कौन-कौन हैं. आम तौर पर, इनकी उम्र 0 से 17 साल होती है. साथ ही, इसमें हर बच्चे की उम्र भी शामिल की जा सकती है.

हालांकि, <OccupancyDetails> के साथ क्वेरी करना ज़रूरी नहीं है, लेकिन इससे लेन-देन का मैसेज मिलना चाहिए. इसमें हर <Occupancy> के लिए, सही रूम बंडल तय किए गए हों. अगर रूम बंडल उपलब्ध नहीं हैं, तो हमारा सुझाव है कि आप <OccupancyDetails> एलिमेंट तय करें.

ध्यान दें: ऐसा हो सकता है कि <OccupancyDetails> हमेशा किसी क्वेरी में न दिखे. ऐसे मामलों में, आपको यह मान लेना चाहिए कि सभी मेहमान वयस्क हैं.

<UserCountry> Pricing string

इससे, उपयोगकर्ता के देश के हिसाब से किराये फ़िल्टर किए जाते हैं. इसकी वैल्यू, दो अक्षरों वाला देश कोड होता है. जैसे, अमेरिका के लिए "US" या क्षेत्र का कोड. जैसे, "यूरोप" के लिए "EU".

<UserCountry> के साथ की गई क्वेरी के जवाब में, लेन-देन का मैसेज दिखना चाहिए. इसमें क्वेरी किए गए देश के लिए, <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>