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

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

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

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

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

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

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

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

חבילות חדרים

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

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

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

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

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

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

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

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

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

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

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

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

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 כמשתנה כדי ליצור את כתובת דף הנחיתה הדינמית (לשעבר נקודת המכירה). למידע נוסף, קראו את המאמר שימוש במשתנים ותנאים.

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

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

נוכחות וקיבולת

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

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

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

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

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

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

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

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

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

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

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

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

התאמות מחירים

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

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

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

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

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