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

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

<Hint> (הודעת רמז לתשובה)

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

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

בהודעות תגובה לרמז נעשה שימוש באחת מהשיטות הבאות כדי לציין מלונות ותוכניות נסיעה ש-Google צריכה לתמחר מחדש:

  • מסלולי נסיעה מדויקים: שילוב של תאריך צ'ק-אין משך השהייה.

  • טווחי תאריכים של צ'ק-אין: מציין טווח של צ'ק-אין תאריכים, החל בתאריך הצ'ק אין הראשון ומסתיים ביום האחרון תאריך הצ'ק אין.

  • שהיות בטווח תאריכים (או מסלולי נסיעה בטווח טווח)

כל אחת מהשיטות האלו דורשת תחביר שונה עבור תגובת הרמז הודעה.

מידע נוסף זמין במאמר בנושא הודעות Hint Response.

תחביר

לרכיב <Hint> יש תחביר שונה, בהתאם לסוג הרמז הודעת תשובה:

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

התחביר של מסלולים מדויקים בהודעת תגובה עם רמזים מופיע בהמשך:

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

טווחי צ'ק-אין

התחביר הבא מציג את התחביר לטווחי הצ'ק-אין בתשובה ברמז message:

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

שהיות בטווח מחירים

התחביר הבא מציג את התחביר של השהייה בטווח ב-Int Response message:

<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <!-- At least one is required -->
    <Property>hotel_ID</Property>
    [...]

    <StaysIncludingRange>
      <!-- Required -->
      <FirstDate>first_date</FirstDate>

      <!-- Optional -->
      <LastDate>last_date</LastDate>
    </StaysIncludingRange>
  </Item>
  ...
</Hint>

מאפיינים

הרכיב <Hint> מכיל מאפיין אופציונלי: id. מתי צוין, הוא כלול בתור המאפיין hintId ב-<Query> הודעות שנשלחו על סמך ה<Hint> הזה.

רכיבי צאצא

לרכיב <Hint> יש את רכיבי הצאצא הבאים:

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

התאריך האחרון של טווח התאריכים של טווח התאריכים לצ'ק אין או של טווח אני רוצה להישאר עם הודעת Hint Response. התאריכים כוללים את הזמן.

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

<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 Response:

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

רכיב הבסיס של הודעת בקשה לרמז. 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:

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

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

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

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

  • מטא-נתונים: Google מבקשת עדכונים במטא-נתונים של החדרים וחבילות החדרים למלונות שצוינו. כשמקבלים הודעת Metadata Query, התשובה צריכה לכלול הודעת <Transaction> שמציינת נתונים על חדרים וחבילות חדרים ברכיבי <PropertyDataSet>.

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

אלו הם שלושת הסוגים השונים של תחביר:

תחביר

הרכיב <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, יצירת קשר עם הנציג הטכני מנהל חשבון (TAM).

רכיבי צאצא

הרכיב <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 לילות, ומתחילים 10 ביוני 2018:

<?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, occupancy and 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>
  <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> מוגדר צריכות להוביל להודעת עסקה עם הבלוק המתאים של <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>