חבילות לחדרים

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

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

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

דוגמאות

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

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

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

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

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

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

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

חבילות חדרים

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

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

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

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

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

כשמגדירים מחיר לחבילת חדרים, צריך לציין את המחיר לפי מספר האורחים שאליו מיועדת החבילה (הערך שצוין ברכיב <Occupancy> של החבילה). אם הערך של <Occupancy> מוגדר לשניים, המחיר בחבילה הזו חייב להיות לשני אנשים. לא ניתן להגדיר את <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 מחליפה את הקבוצה הקיימת של חבילות שירות ל-Room בקבוצה החדשה. אם לא תכללו חבילות אירוח ב-<Result>, Google תסיר את כל החבילות מהחדר או מהמסלול.

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

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

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