जवाब के बारे में हिंट देने वाले मैसेज

जब 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>

Create <Transaction>

इसके बाद, आपसे यह उम्मीद की जाती है कि आप इस तरह के ठहरने के लिए, होटल के किराये में हुए अपडेट के साथ <Transaction> बनाएं:

5/20/23 - 5/23/23

चेक इन करने की तारीख की सीमाओं के लिए अनुरोध और जवाब का फ़्लो

हिंट का जवाब देने वाले मैसेज में, चेक इन करने की तारीखों की सीमा तय की जा सकती है. यह सीमा, चेक इन करने की पहली तारीख से शुरू होकर, चेक इन करने की आखिरी तारीख तक हो सकती है. जब 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>

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

इस उदाहरण में, पांच रातों तक ठहरने की अवधि का इस्तेमाल किया गया है. डिफ़ॉल्ट रूप से, ठहरने की कुल अवधि 30 दिन है.

ठहरने की अवधि की सीमाओं के लिए अनुरोध और जवाब का फ़्लो

हिंट का जवाब देने वाले मैसेज में, तारीखों की ऐसी सीमा शामिल की जा सकती है जिनमें बदलाव हुआ है. इससे 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>

Create <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, हर पुल क्वेरी को ज़्यादा से ज़्यादा 10,000 होटल-यात्रा कार्यक्रम के जोड़े (एक होटल, चेक इन करने की तारीख, और ठहरने की कुल अवधि) के कॉम्बिनेशन तक सीमित रखता है. ठहरने की अवधि की सीमा के लिए, कॉम्बिनेशन की संख्या का हिसाब लगाने के लिए, ट्रैपेज़ॉइड फ़ॉर्मूले का इस्तेमाल किया जाता है. इससे, ठहरने की अवधि की सीमाओं से जुड़ी क्वेरी के लिए, होटल-यात्रा कार्यक्रम के जोड़े के कॉम्बिनेशन की संख्या का हिसाब लगाया जाता है:

$$ \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> के बीच के दिनों की संख्या. इसमें ये दोनों तारीखें भी शामिल हैं. (तारीख की सीमा = LastDate - FirstDate + 1).
  • LOS: हिंट में अनुरोध की गई, ठहरने की ज़्यादा से ज़्यादा अवधि. उदाहरण के लिए, <AffectedNights>14</AffectedNights>.
  • \(N_{\text{hotel_batch_size}}\): क्वेरी बैच में शामिल प्रॉपर्टी की संख्या. इसे hotel_batch_size के ज़रिए कॉन्फ़िगर किया जाता है.

अगर किसी हिंट में 10,000 से ज़्यादा आइटम शामिल हों, तो क्या होता है?

अगर कैलकुलेट किए गए आइटम की संख्या 10,000 से ज़्यादा होती है, तो 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>
  • प्रॉपर्टी के बैच के साइज़ को संतुलित रखें: अगर आपको 14 या उससे ज़्यादा रातों तक ठहरने की अवधि के साथ, तारीख की बड़ी विंडो (जैसे, 180 से 365 दिन) अपडेट करनी हैं, तो Google के अपने टेक्निकल खाता मैनेजर से, hotel_batch_size को कम वैल्यू पर सेट करने के लिए कहें. इससे हिंट को हिस्सों में बांटने से रोका जा सकेगा.
  • हिंट को सीमित रखें: Google को किराये में हुए बदलावों के बारे में सूचना देते समय, <FirstDate> और <LastDate> की सीमाओं को, तारीख के उन इंटरवल तक सीमित रखें जहां किराये में असल में बदलाव हुआ है. पूरे कैलेंडर साल की जानकारी न भेजें.
  • अगर आपकी हिंट में तारीख की बड़ी सीमाएं शामिल हैं: पक्का करें कि आपका पार्सर, <FirstDate> और <LastDate> वाले ब्लॉक में या को स्वीकार करे. इससे पुल के अनुरोधों को पूरा करने के लिए, तारीख की सीमाओं वाली कई तरह की क्वेरी का इस्तेमाल किया जा सकेगा.