חבילות לחדר

חבילות חדרים מאפשרות לכם להגדיר כמה סוגי חדרים בנכס אחד, או לשלב מסלול של חדר עם תכונות מחיר – שירותים נוספים שמגיעים עם מחיר ותנאי מכירה – למשתמשים שלכם מעבר למחיר רגיל.

מושגי מפתח ותהליך עבודה

עם חבילות חדרים, אתם יכולים להציע שילובים נוספים של סוגי חדרים פיזיים עם חבילות שירות שונות.

דוגמאות

בתמונות הבאות מוצגות דוגמאות לחבילות של חדרים במחשבים ובמכשירים ניידים:

חבילות חדרים עם תמונות

בדוגמה הזו מוצגת גרסה לנייד של חבילות חדרים, שכוללת את כל סוגי החדרים השונים למספר הדיירים הנדרש ואת תמונות החדרים המתאימות.

הערה: חבילות חדרים ללא תמונות מוחלפות בתמונת placeholder של מיטה.

דירוג התכונות

בתמונות הבאות מוצגות דוגמאות לתכונות שקשורות לשיעורים:

הצגת חבילות חדרים ותכונות מחיר בתוצאות החיפוש מתבצעת לפי אותו תהליך בחירה כמו מחירי חדרים רגילים.

חבילות לחדר

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

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

מטא-נתונים
מגדירים מטא-נתונים של תכונות של חבילת חדרים ומחיר באמצעות <PackageData> ברכיב <PropertyDataSet>. מידע נוסף זמין במאמר הגדרת מטא-נתונים של חדרים וחבילות. חבילות של חדרים משתמשות ברכיבי <RoomData> קיימים לתיאורים של החדרים הפיזיים.
תמחור וזמינות
הגדרת התמחור והזמינות של חבילת חדרים באמצעות הרכיב <RoomBundle> ב-<Result> לכל שילוב של חבילה או מסלול נסיעה. מידע נוסף זמין במאמר הגדרת תמחור וזמינות.

כשלא משתמשים בחבילות חדרים, חובה לציין את המחיר, המסים והעמלות האחרות של החדר הבסיסי ב-<Result>. כשמשתמשים בחבילות חדרים, אפשר להסיר את הפרטים האלה. אם אתם מטמיעים חבילות של חדרים באמצעות חשבון פעיל, אתם צריכים לבצע את השלבים הבאים:

  1. צריך לכלול את המחיר הבסיסי של החדר, המיסים והעמלות האחרות בתוך התג <Result> ולהוסיף חבילת חדרים אחת שתואמת לחבילת החדרים הבסיסית.

  2. אם צריך, אפשר להגדיר חבילות חדרים נוספות באותו בלוק <Result> עבור סוגי חדרים אחרים באותו מלון או חבילות שירותים שונות.

  3. אחרי השקת חבילת החדר, מסירים את המחיר, המיסים והעמלות האחרות של החדר הבסיסי.

מטא-נתונים של חבילת חדר

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

כשמגדירים חבילות של חדרים, משתמשים ברכיבי <RoomData> קיימים לתיאורי החדרים הפיזיים וברכיבי <PackageData> לתכונות ולתנאים של המחיר שלא כלולים בתיאור החדר הפיזי.

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

לדוגמה, נתונים כמו שם החדר והתיאור שלו בדרך כלל חוזרים על עצמם בכל מסלול נסיעה. אפשר להשתמש ברכיבים <RoomData> ו-<PackageData> כדי להגדיר את סוג הנתונים הזה פעם אחת. לאחר מכן, הנתונים של חבילת החדר הספציפית למסלול הטיול מוזגו עם ההגדרות המאוחסנות של החדר והחבילה, כדי להציג אותם למשתמש הקצה.

‫Google משווה בין המטא נתונים לבין הנתונים הספציפיים למסלול הנסיעה כדי להציג את התוכן של המודעות. מתבצע עיבוד מיוחד כדי לשלב את השמות והתיאורים מהרכיבים <RoomData> ו-<PackageData>, כך שאפשר לתאר את החדר הפיזי ב-<RoomData> ולציין את התכונות של המחיר ואת פרטי החבילה ב-<PackageData>.

אם מגדירים גם את נתוני החדר וגם את נתוני החבילה עבור חדר יחיד או חבילת חדרים, Google כוללת את שניהם בפלט המודעה, כשהם מופרדים באמצעות מקף.

הנחיות לתמונות

כדי לוודא שהתמונות של החדר יוצגו למשתמשים, חשוב לפעול לפי ההנחיות הבאות:

  • שולחים תמונות של כל סוג חדר, כולל תמונות של חדרים נגישים – למשל, חדרים נגישים ייעודיים עם מתקני אמבטיה שונים, כמו מקלחת עם כניסה לכיסא גלגלים.

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

  • התמונות צריכות להיות של החדר עצמו ולא של הנכס. התמונות הכי חשובות הן של המיטה, של החדר כולו, של חלל המגורים ושל הנוף מהחדר (עם שאר החדר באותה תמונה). אם יש מרפסת, פטיו או טרסה, חשוב לצלם גם אותם.

    כדאי גם לצלם תמונות של שולחן הכתיבה, המטבח, מכונות הקפה או התה ותכונות ייחודיות של החדר.

  • חשוב להימנע מצילומים של אנשים ורכוש – למשל, החלק החיצוני של בניין או מתקנים בשטח – מצילומים של סיורים או תיירות ומצילומים של אוכל.

  • מומלץ להימנע מצילומי תקריב של אובייקטים, כמו תקריבים של כוסות יין.

  • חשוב להימנע ממיתוג וממותגים, אבל אפשר לכלול בתמונה כלי רחצה עם תווית או מותג אם התמונה מצולמת באזור שלם של חדר האמבטיה. בתמונות לא יכולים להופיע בלוקים גדולים של טקסט, סמלי לוגו או סימני מים.

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

קדימות הנתונים

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

  1. (הנמוך ביותר) נתוני השותף
  2. נתוני הנכס
  3. <RoomData>, כש-<RoomID> תואם ל-<RoomID> בבלוק <RoomBundle>
  4. <PackageData>, כש-<PackageID> תואם ל-<PackageID> בבלוק <RoomBundle>
  5. (הכי גבוהה) <RoomBundle>

הגדרת תמחור וזמינות

כדי להגדיר את התמחור והזמינות של חבילת חדרים, משתמשים ברכיב <RoomBundle> בהודעת עסקה לכל חבילה או שילוב של מסלול נסיעה. הרכיב <RoomBundle> צריך להיות בתוך הרכיב <Result>. מוצג קוד לדוגמה לשני רכיבי <RoomBundle>. שימו לב שבדוגמה הזו, שני רכיבי <RoomBundle> מפנים למטא-נתונים של החדר והחבילה באמצעות <RoomID> ו-<PackageID>.

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

כדי להפוך את חבילות החדרים לאטרקטיביות יותר ללקוחות פוטנציאליים, חשוב להשתמש באלמנטים כמו <Name> ולוודא שהם תואמים לדף הנחיתה של המלון. בדוגמה הזו, תגדירו שמות ופרטים תיאוריים אחרים במטא-נתונים.

<RatePlanID> הוא פרמטר אופציונלי שמייצג את המזהה הייחודי של שילוב של חדר וחבילה. מומלץ מאוד להשתמש ב-RatePlanID כמשתנה כדי ליצור את כתובת דף הנחיתה הדינמי (לשעבר נקודת המכירה). כדי להשיג ביצועים אופטימליים, האורך שלו צריך להיות עד 50 תווים. לפרטים, אפשר לעיין במאמר שימוש במשתנים ובתנאים.

הרכיבים הבאים הם אופציונליים בחבילות של חדרים:

<Baserate>
<Tax>
<OtherFees>
<RoomID>
<PackageID>
<Occupancy>
<OccupancyDetails>

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

<Result>
  <!-- Note: When using Room Bundles, the top level result price is no
       longer necessary. -->
  <Property>180054</Property>
  <Checkin>2017-10-07</Checkin>
  <Nights>2</Nights>
  <!-- Base Room Bundle -->
  <RoomBundle>
    <RoomID>060773</RoomID>
    <PackageID>P54321</PackageID>
    <Baserate currency="USD">199.99</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <!-- RatePlanID is optional and represents the unique identifier for a
    room and package data combination. We strongly recommend using RatePlanID
    as a variable to build your dynamic landing page (formerly Point of Sale)
    URL. For details, see Using Variables and Conditions. -->
    <RatePlanID>060773-P54321</RatePlanID>
  </RoomBundle>
  <!-- Premium Room Bundle -->
  <RoomBundle>
    <RoomID>436233</RoomID>
    <PackageID>P12345</PackageID>
    <!-- Price for 4 ("occupancy") -->
    <Baserate currency="USD">298.88</Baserate>
    <Tax currency="USD">42.12</Tax>
    <OtherFees currency="USD">10.00</OtherFees>
    <RatePlanID>436233-P12345</RatePlanID>
  </RoomBundle>
</Result>

הגדרת מטא-נתונים של חדרים וחבילות

כדי להגדיר מטא-נתונים של חבילת חדרים, משתמשים באלמנטים <PackageData> ו-<RoomData> בתוך האלמנט <PropertyDataSet> של הודעת טרנזקציה.

אתם מגדירים את המטא-נתונים של החדרים והחבילות בהודעת עסקה נפרדת מנתוני התמחור והזמינות. אם תגדירו את הנתונים האלה מראש, לא תצטרכו לכלול בעדכוני המחירים מידע שחוזר על עצמו, כמו תיאורים, כתובות URL של תמונות, שירותים ונתונים אחרים לגבי כל חדר או חבילה בכל מסלול נסיעה.

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

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

אם הנתונים של החדר והחבילה משתנים – לדוגמה, אם מוסיפים סוג חדר חדש בנכס – שולחים הודעת עסקה חדשה שמכילה את הנתונים המעודכנים של החדר והחבילה. Google מחליפה את המטא-נתונים הקיימים לגבי חדר או חבילה בנתונים החדשים.

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

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

השיטה המומלצת והיעילה ביותר להגדרת מטא-נתונים ותמחור בנפרד מוצגת בהמשך:

<!-- Efficient method of defining Room Bundles -->
<!----- Occupancy of 2 and 4 example ------>

<Transaction timestamp="2019-04-18T16:20:00-04:00" id="12345678">
  <!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
  <!-- Note: Once defined it does not have to be repeated for future Transaction Messages. -->
  <!--       PropertyDataSets can also be defined and sent in their own Transaction Message -->
  <!--       separately from pricing. Google can be configured to pull just PropertyDataSets -->
  <!--       once per day (or on a predefined frequency). -->
  <PropertyDataSet>
    <Property>180054</Property>
    <!-- Can be reused by multiple Room Bundles -->
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Queen Room - Non-Smoking" language="en"/>
        <Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <!-- Room can accommodate 4, but bundle is for 2 -->
      <Capacity>4</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/imageQueen.jpg</URL>
        <Caption>
          <Text text="A bright and breezy way to enjoy your mornin'
            cuppa tea." language="en"/>
          <Text text="Une façon lumineuse et aérée pour profiter
            de votre journée tasse de thé." language="fr"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <RoomData>
      <RoomID>436233</RoomID>
      <Name>
        <Text text="Premium King Room - Non-Smoking" language="en"/>
        <Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <!-- Room can accommodate 4 and bundle is for 4 -->
      <Capacity>4</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/imageKing.jpg</URL>
        <Caption>
          <Text text="A bright and breezy way to enjoy your mornin'
            cuppa tea." language="en"/>
          <Text text="Une façon lumineuse et aérée pour profiter
            de votre journée tasse de thé." language="fr"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <!-- Can be reused by multiple Room Bundles -->
    <PackageData>
      <PackageID>P54321</PackageID>
      <Occupancy>2</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="7"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
    <PackageData>
      <PackageID>P12345</PackageID>
      <Occupancy>4</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="1"
           refundable_until_time="18:00:00"/>
      <BreakfastIncluded/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
  </PropertyDataSet>

    <!-- Efficient method of defining Room Bundles -->
    <!-- Part 2: Reference RoomData and PackageData through ID -->
  <Result>
    <Property>180054</Property>
    <Checkin>2017-10-07</Checkin>
    <Nights>2</Nights>

    <!-- Base Room Bundle -->
    <RoomBundle>
      <RoomID>060773</RoomID>
      <PackageID>P54321</PackageID>
      <Baserate currency="USD">199.99</Baserate>
      <Tax currency="USD">25.12</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <!-- RatePlanID is optional and represents the unique identifier for a
      room and package data combination. We strongly recommend using RatePlanID
      as a variable to build your dynamic landing page (formerly Point of Sale)
      URL. For details, see Using Variables and Conditions. -->
      <RatePlanID>060773-P54321</RatePlanID>
    </RoomBundle>
    <!-- Premium Room Bundle -->
    <RoomBundle>
      <RoomID>436233</RoomID>
      <PackageID>P12345</PackageID>
      <!-- Price for 4 ("occupancy") -->
      <Baserate currency="USD">298.88</Baserate>
      <Tax currency="USD">42.12</Tax>
      <OtherFees currency="USD">10.00</OtherFees>
      <RatePlanID>060773-P12345</RatePlanID>
    </RoomBundle>
    <!-- Continue providing all available RoomBundle rates under matched
         property for any other occupancies -->
  </Result>
</Transaction>

מספר האורחים והקיבולת

כשמגדירים חבילות של חדרים, חשוב להבין את ההבדל בין תפוסה לבין קיבולת:

תפוסה
מספר האורחים שאליהם חבילת החדרים מיועדת. לדוגמה, התפוסה של 'חבילת ירח הדבש' היא שני אנשים. כדי להגדיר את ערך התפוסה של חבילה, משתמשים ברכיב הצאצא <Occupancy> של הרכיבים <PackageData> או <RoomBundle>.
קיבולת
מספר האנשים המקסימלי שיכולים להיכנס לחדר. הקיבולת של החדר תמיד שווה למספר האורחים או גבוהה ממנו. לדוגמה, בסוויטה לירח דבש במלון שלכם יש קיבולת מקסימלית של שישה אנשים, אבל אתם מציעים חבילה לשני אורחים. כדי להגדיר את ערך הקיבולת של חבילה, משתמשים ברכיב <RoomData>, שהוא רכיב צאצא של <Capacity>.

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

חדרים משותפים

אתם יכולים גם להשתמש במאפיינים 'תפוסה' ו'קיבולת' בחבילות של חדרים כדי להגדיר מחירים לחדרים משותפים – למשל, אכסניה. לדוגמה, כדי להגדיר מחיר לאדם בחדר במעונות עם 8 מיטות, צריך להגדיר את מאפיין התפוסה (Occupancy) כ-1, את מאפיין הקיבולת (Capacity) כ-8 ולציין את זה בשם <RoomData>. דוגמה

עדכון חבילות חדרים

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

הסרה של חבילת חדר

הסרת חבילות חדרים שונה מהסרת מחירים של מלונות.

כדי להסיר מהמלאי שילוב של חדר ומסלול נסיעה, מגדירים את הערך של המאפיין <Baserate> של הרכיב <Result> ל--1. כדי להסיר חבילת חדרים מחדר מסוים או מתוכנית נסיעה מסוימת, מסירים את הרכיב <RoomBundle> מהבלוק <Result> בהודעת העסקה.

חבילות חדרים בפידים של נתונים נחשבות לקבוצה, והמספר שלהן יכול להיות בין 0 לעשרות. כששולחים חבילות של ציוד לחדרים ל-Google, שולחים את הסט הנוכחי והמלא. אתם לא יכולים לשנות ערכים של חבילת חדרים ספציפית כדי לסמן חדר שהיה זמין בעבר כלא זמין. כל קבוצת מקבצים שמופיעה בהודעת העסקה האחרונה מחליפה את הקבוצה הנוכחית.

לדוגמה, יש חבילות A,‏ B,‏ C ו-D. קודם שולחים הודעה שמגדירה את קבוצת חבילות החדרים A, ‏ B, ‏ C ו-D. אם חבילה B נמכרת, שולחים מחדש את כל החבילה עם חבילות A,‏ C ו-D בלבד. אם כל חבילות החדרים נמכרו, שולחים קבוצה ריקה של חבילות חדרים.

שינויים במחירים

כדי לשנות את המחיר של חבילת חדרים, מגדירים את המחיר החדש <Baserate> ברכיב <Result>.

בכל פעם שמעדכנים את הבלוק <Result> של חדר או מסלול ב-Transaction messages, צריך לכלול קבוצה מלאה של חבילות חדרים זמינות לכל <Result>. ‫Google מחליפה את חבילות החדרים הקיימות בחבילות החדשות. אם לא תכללו חבילות חדרים ב-<Result>, ‏ Google תסיר את כל חבילות החדרים עבור החדר או מסלול הנסיעה הזה.

עדכוני מטא-נתונים

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

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