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

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

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

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

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

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

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

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

חבילות חדרים

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

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

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

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

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

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

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

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

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

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

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

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

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

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

תפוסה וקיבולת

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

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

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

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

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

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

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

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

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

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

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

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

התאמות מחיר

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

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

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

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

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