הפניית XML לשאילתות & רמזים

בקטע הזה מופיע מידע על הודעות בקשה לרמז, הודעות תגובה לרמז והודעות שאילתה מבוססות-XML של Google.

<Hint> (הודעת Hint Response)

רכיב הבסיס של הודעת Hint Response. הודעות תגובה עם רמזים מציינות אילו שילובים של מלונות או של תוכניות נסיעה צריך לתמחר מחדש. הן התשובה שלכם לבקשת רמז מ-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>

שהיות עם טווח תאריכים

בדוגמה הבאה מוצג התחביר של שהיות בטווח מסוים בהודעת Hint Response (תשובה עם רמז):

<!-- 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. אם מספקים את הערך הזה, הוא נכלל כמאפיין hintId בהודעות שנשלחות על סמך <Hint>.<Query>

רכיבי צאצא

הרכיב <Hint> כולל את רכיבי הבן הבאים:

רכיב צאצא חובה? סוג סוג התגובה לרמז תיאור
<CheckInDate> Required Date מסלולי נסיעה מדויקים תאריך הצ'ק-אין של תוכנית הנסיעה.
<FirstDate> Required Date טווחים של צ'ק-אין ומסלולי נסיעה עם טווחים התאריך הראשון בטווח התאריכים של טווח הצ'ק-אין או של הודעת תשובה עם רמז לגבי שהייה בטווח תאריכים. התאריכים כוללים את היום הראשון והיום האחרון.
<Item> Required Object הכול קונטיינר של המלון או תוכנית הנסיעה שרוצים לעדכן.
<LastDate> Required* Date טווחים של צ'ק-אין ומסלולי נסיעה עם טווחים

התאריך האחרון בטווח התאריכים של טווח צ'ק-אין או של הודעת תשובה עם רמז לגבי שהייה בטווח. התאריכים כוללים את היום הראשון והיום האחרון.

* האלמנט הזה הוא אופציונלי לשהיות עם טווח תאריכים.

<LengthOfStay> Required integer מסלולי נסיעה מדויקים מספר הלילות במסלול הנסיעה, כמספר שלם חיובי.
<Property> Required string הכול

המזהה של המלון, שזהה למזהה שמופיע ברשימת המלונות. מספר הרכיבים <Property> שאפשר לציין בבלוק <Item> יחיד נקבע לפי סוג הודעת התשובה של ההצעה:

  • תוכניות נסיעה מדויקות: עד 100 מלונות.
  • טווחים של צ'ק-אין: יותר מאחד אם מגדירים את הערך <MultipleItineraries> ל-"checkin_range" בהודעה <QueryControl>.
  • שהייה בטווח: יותר מאחד אם מגדירים את <MultipleItineraries> ל-"affected_dates" בהודעה <QueryControl>.
<Stay> Required Object מסלולי נסיעה מדויקים קונטיינר של הרכיבים <CheckinDate> ו-<LengthOfStay> בהודעת תגובה של רמז לתוכנית נסיעה מדויקת. כל <Item> יכול להכיל רק <Stay> אחד.
<StaysIncludingRange> Required Object מסלולי נסיעה עם טווח תאריכים קונטיינר לרכיבים <FirstDate> ו-<LastDate> בהודעת תגובה להצגת רמז עם טווח.

דוגמאות

מסלולי נסיעה מדויקים

בדוגמה הבאה מוגדרים כמה מסלולי טיול לנכס יחיד הודעת תגובה מסוג Hint:

<!-- 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 מקבלת את כל מסלולי הנסיעה בין 3 ביולי ל-6 ביולי עבור נכסים 12345 ו-67890:

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

רכיב הבסיס של הודעת Hint Request. ‫Google שולחת לשרת שלכם בקשת רמז ומצפה לקבל תגובה שמציינת את המלונות ואת תוכניות הנסיעה שהמחירים שלהם השתנו מאז הפעם האחרונה ש-Google קיבלה מהשרת שלכם תגובה מוצלחת של רמז.

אם יש שינויים במחירים, Google שולחת <Query> שמביא את נתוני התמחור המעודכנים של המלונות ומסלולי הנסיעה שצוינו.

מידע נוסף זמין במאמר בנושא הודעות בקשה לרמזים.

תחביר

רכיב <HintRequest> משתמש בתחביר הבא:

תחביר

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

מאפיינים

לרכיב <HintRequest> אין מאפיינים.

רכיבי צאצא

הרכיב <HintRequest> כולל את רכיבי הבן הבאים:

רכיב צאצא סוג תיאור
<LastFetchTime> DateTime הפעם האחרונה שבה Google הצליחה לקבל הודעת Hint Response בתגובה להודעת Hint Request.

אם חותמת הזמן הזו ישנה יותר מהפעם האחרונה שבה עדכנתם את המחירים בשרת, עליכם להשיב עם הודעת רמז (Hint Response) שבה מצוינים המלונות שהשתנו.

אם לא היה אחזור מוצלח לאחרונה, הערך הזה יוגדר כערך קבוע של מרווח זמן (כדי למנוע בעיות חמורות יותר עם הצטברות גדולה של נתונים). ערך ברירת המחדל הנוכחי הוא 1,000 שניות, אבל הוא עשוי להשתנות.

מידע נוסף זמין במאמר הודעות תגובה של רמזים.

דוגמאות

בדוגמה הבאה מוצגת הודעת Hint Request:

הודעת 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 לעדכוני תמחור או מטא-נתונים. הם משמשים גם עם מצבי המסירה 'שליפה' ו'שינוי מחיר'.

הודעות של שאילתות תמחור

בהודעות של שאילתות תמחור מציינים את שילובי המלונות והמסלולים שאתם מספקים להם מחירים.

כשהשרת מקבל הודעת שאילתה מסוג pricing, הוא צריך להשיב בהודעה מסוג <Transaction> שמכילה את פרטי התמחור המבוקשים.

מידע נוסף מופיע במאמר סקירה כללית על התמחור.

יש שלושה סוגים מיוחדים של הודעות:Query

  • תמחור בזמן אמת: Google מגיבה לבקשה ספציפית של משתמש ומבקשת עדכון מחירים בזמן אמת. כששותפים מקבלים הודעת Live pricing query הודעה, הם צריכים להגיב בהודעת <Transaction> שכוללת את פרטי התמחור המבוקשים ברכיבי <Result>.

  • עם תמחור לפי הקשר: Google מעדכנת את מטמון המחירים שלה על סמך הקשרים שהיו פופולריים בעבר. כשמקבלים הודעה, צריך להשיב עם הודעה <Transaction> שמכילה את פרטי התמחור המבוקשים ברכיבי <Result>.With Context query

    • עם שאילתות לפי הקשר לחדר עם אדם אחד

      כשמספקים מחירים בתגובה לשאילתות עם הקשר, צריך לשלוח רק את המחיר שמתאים להקשר שצוין. התעריף הבסיסי לחדר תפוס מחייב לפחות 2 אורחים, כך שאם התעריף הבסיסי כולל אורח אחד, הוא יתעלם ממנו וימשיך להתייחס לחדר כאל חדר זוגי. במקרה כזה, צריך להעביר את התעריף הבסיסי כלא זמין ולהשתמש בתעריף מקונן בתוך התעריף לחדר ליחיד. אפשר לעיין בדוגמה לתשובה עם הקשר. אפשר להשתמש בתמחור משתנה עם הקשר כדי למזג מחירים על ידי הגדרת המאפיין mergeable לערך "true". מידע נוסף

    • תמחור עדכני (נקרא בעבר 'שליפה עם רמזים') עם הקשר

      כששולחים <Transaction> תגובה להודעה על שינוי מחירים עם שאילתת הקשר, Google מתייחסת אליה כאל החלפה מלאה של נתוני המחירים והזמינות של מלון או מסלול נסיעה מסוימים, וכל המחירים שרלוונטיים להקשר מסוים לא נכללים בתגובה ומוסרים מהזיכרון מטמון.

      כדי למנוע החלפה, צריך להגדיר את המאפיין mergeable לערך "true" באלמנט <Result> בהודעה <Transaction>. ‫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>

דוגמאות

שאילתת תמחור

בדוגמה הבאה מוצגת הודעת שאילתת מחירים שמבקשת עדכוני מחירים עבור קבוצה של מלונות, לשהייה של 3 לילות, החל מ-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> and <Child="age">: מציין אילו אורחים הם ילדים (בדרך כלל בגיל 0 עד 17), ואפשר גם לציין את הגיל של כל ילד.

אף על פי שאין חובה להשתמש ב-<OccupancyDetails>, שאילתות עם <OccupancyDetails> צריכות להחזיר הודעת עסקה עם חבילות החדרים המתאימות שמוגדרות לכל <Occupancy>, אבל אם חבילות החדרים לא זמינות, מומלץ לציין את הרכיב <OccupancyDetails>.

הערה: יכול להיות שהפונקציה <OccupancyDetails> לא תמיד תופיע בשאילתה. במקרים כאלה, צריך להניח שכל האורחים הם מבוגרים.

<UserCountry> Pricing string

מסנן את המחירים לפי המדינה שבה נמצא המשתמש. הערך הוא קוד מדינה בן 2 אותיות, כמו "US" לארצות הברית, או קוד אזור, כמו "EU" לאירופה.

שאילתות עם <UserCountry> מוגדרות צריכות להניב הודעת עסקה עם הבלוק המתאים של <Rates> שמוגדר למדינה שנשאלה.

<UserDevice> Pricing string

מסננים את המחירים לפי סוג המכשיר שממנו המשתמש מחפש. ערכים אפשריים:

  • mobile
  • desktop
  • tablet

שאילתות עם <UserDevice> מוגדרות צריכות להניב הודעת עסקה עם בלוק <Rates> מתאים שמוגדר לסוג המכשיר שנשלחה לגביו השאילתה.

דוגמאות

תפוסה

בדוגמה הבאה מוצגת שאילתת תמחור בזמן אמת עבור <Occupancy> בתוך <Context>. השאילתה לתמחור בזמן אמת היא ל-3 אורחים מבוגרים.

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

פרטי התפוסה

בדוגמה הבאה מוצגת שאילתה לקבלת מחירים בזמן אמת עם <OccupancyDetails> בתוך <Context>. השאילתה של המחירים בזמן אמת היא ל-4 אורחים, מתוכם 2 ילדים, והיא מחפשת מחיר שמתאים להזמנה של אורח מארה"ב ממכשיר נייד:

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