בקטע הזה מפורט מידע על הודעות בקשה להצעות, הודעות תגובה להצעות והודעות שאילתה מבוססות-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 | הכול | המזהה של מלון, עם אותו מזהה כמו ברשימת המלונות. המספר
של
|
<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> | עבור שאילתות תמחור בזמן אמת, מציין פרמטרים מסוימים שבהם
נשלחת השאילתה. רכיבי צאצא כוללים:
הרכיב |
<FirstDate> | Pricing | Date | תאריך ההתחלה של טווח מסלולי הנסיעה שבהם המחיר חל. הרכיב הזה משמש רק לתמחור של טווח תאריכי צ'ק-אין שאילתות שכוללות שינוי במחיר. |
<HotelInfoProperties> | Metadata | string | נכס אחד או יותר שבהם Google רוצה לעדכן
המטא-נתונים של חדר וחבילת חדרים בהודעה של המטא-נתונים Query .
הרכיב הזה יכול להכיל <Property> אחד או יותר
רכיבים שמציינים מזהים של נכסי מלונות. |
<LastDate> | Pricing | Date | תאריך הסיום של מגוון מסלולי הנסיעה שבהם המחיר חל. הרכיב הזה משמש רק לתמחור של טווח תאריכי צ'ק-אין בשאילתות של Pull + Hints. |
<Nights> | Pricing | integer | מספר הלילות בתוכנית נסיעה ספציפית, עד 30. |
<PropertyList> | Pricing | Object | אחד או יותר מהמזהים של המלון שצריך לעדכן את המחירים שלו. מגדירים כל מלון ברכיב <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 | מציין את מספר האורחים הכולל. אמנם לא חובה, אבל שאילתות עם הערה: יכול להיות שה |
<OccupancyDetails> | Pricing | Object | לפני <Occupancy> . הסיווג של המשתתפים מתבצע לפי
כולל:
לא חובה, אבל שאילתות עם הערה: בחלק מהמקרים |
<UserCountry> | Pricing | string | סינון התעריפים לפי המדינה שבה המשתמש נמצא. הערך הוא קוד מדינה בן שתי אותיות, כמו שאילתות עם |
<UserDevice> | Pricing | string | מסנן התעריפים לפי סוג המכשיר שממנו המשתמש מבצע את החיפוש. ערכים אפשריים:
שאילתות עם הגדרה של |
דוגמאות
תפוסה
בדוגמה הבאה מוצגת שאילתה של תמחור פעיל עבור <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>