תעריפים בלעדיים

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

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

סקירה כללית

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

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

תעריפים בלעדיים למכשירים ספציפיים

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

fenced_rates

תעריפים בלעדיים ספציפיים למדינה

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

תעריפים בלעדיים בשפות ספציפיות

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

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

תעריפים בלעדיים עם דגימה חוזרת

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

MaxUsersPercent = (number of users selected to view rate)/(total eligible users)

תעריפים בלעדיים למשתמשים שמחוברים לחשבון

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

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

יצירת קובץ XML של כללי תמחור

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

עדכון פיד המחירים

תעריפים מותנים מוגדרים באמצעות הרכיב בהודעת טרנזקציה.

אפשר להשתמש ברכיב <Rate> גם כרכיבי צאצא מרובים של <Rates> בתוך הרכיבים <RoomBundle> או <Result>. כדי להשתמש בו כשיעור מותנה, צריך להגדיר את הערך של מאפיין rate_rule_id כך שיתאים למזהה של כלל התמחור שהגדרתם בקובץ ה-XML של כללי התמחור.

אם אין לכם מחיר ברירת מחדל לחדר זוגי לציבור הרחב, צריך להגדיר את הודעת <Baserate> child element of the <Result> ל--1. כל <Rates> מותנה שיישלח ל-Google במקרה הזה ייחשב כתקף.

דוגמאות

בסיסי + משפטי תנאי

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

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>1</Nights>

    <Baserate currency="USD">200.00</Baserate>
    <Tax currency="USD">20.00</Tax>
    <OtherFees currency="USD">1.00</OtherFees>

    <Rates>
      <!-- The rate_rule_id is required when using conditional rates -->
      <Rate rate_rule_id="mobile">
        <!-- Override base rate and taxes for conditional rates -->
        <Baserate currency="USD">180.00</Baserate>
        <Tax currency="USD">18.00</Tax>
      </Rate>
    </Rates>

  </Result>
</Transaction>

RoomBundle single

בדוגמה הבאה מוצגת הודעת טרנזקציה שמכילה תעריף יחיד בתוך התג <RoomBundle>:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>2</Nights>

    <Baserate currency="USD">300.00</Baserate>
    <Tax currency="USD">30.00</Tax>
    <OtherFees currency="USD">2.00</OtherFees>

    <RoomBundle>
      <RoomID>single</RoomID>
      <Baserate currency="USD">300.00</Baserate>
      <Tax currency="USD">30.00</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
    </RoomBundle>

    <RoomBundle>
      <RoomID>3</RoomID>  <!-- Links to data in metadata -->
      <RatePlanID>basic</RatePlanID>
      <Baserate currency="USD">275.00</Baserate>
      <Tax currency="USD">27.50</Tax>
      <ChargeCurrency>web</ChargeCurrency>
      <BreakfastIncluded>1</BreakfastIncluded>

      <Rates>
        <Rate rate_rule_id="mobile">
          <Baserate currency="USD">269.00</Baserate>
          <Tax currency="USD">2.69</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
        </Rates>
      </Rates>

    </RoomBundle>
  </Result>
</Transaction>

RoomBundle multiple

בדוגמה הבאה מוצג הודעת טרנזקציה שמכילה כמה מחירים בתוך <RoomBundle>:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>2</Nights>
    <!-- When Google receives new room bundle information for an itinerary, all
    previous room bundle pricing is dropped from Google's cache. Thus, if you
    want to delete a specific room bundle from Google's cache, you may do so
    by simply not providing that specific room bundle in subsequent transaction
    messages. -->
    <RoomBundle>
     ...
      <!-- RoomID is required, PackageID is recommended. -->
      <RoomID>5</RoomID>
      <PackageID>ABC</PackageID>
      <!-- Baserate is required. -->
      <Baserate currency="USD">275.00</Baserate>
      <Tax currency="USD">27.50</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 and it should be within 50 characters in length for optimal
      performance. For details, see Using Variables and Conditions. -->
      <RatePlanID>5-ABC</RatePlanID>

      <!-- Occupancy is mandatory for RoomBundle elements. -->
      <!-- Elements below will get inherited to nested rate elements. -->
      <Occupancy>2</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
      </OccupancyDetails>
      <InternetIncluded>1</InternetIncluded>

      <!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
      <ChargeCurrency>web</ChargeCurrency>

      <Rates>
        <Rate rate_rule_id="mobile">
          <Baserate currency="USD">258.33</Baserate>
          <Tax currency="USD">25.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <!-- The value below overrides ChargeCurrency from roombundle. -->
          <ChargeCurrency>hotel</ChargeCurrency>
        </Rate>
        <Rate rate_rule_id="us_or_gb">
          <Baserate currency="USD">268.33</Baserate>
          <Tax currency="USD">26.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>

אין אפשרות לתפוסה כפולה

בדוגמה הבאה מוצג הודעת עסקה שמכילה תעריף בלעדי ללא תעריף ציבורי לחדר זוגי:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">

  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>1</Nights>

    <!-- <Unavailable/> should not be specified when available nested rates
    exist. -->
    <Baserate currency="USD">-1</Baserate>
    <Tax currency="USD">0</Tax>
    <OtherFees currency="USD">0</OtherFees>

    <Rates>
      <!-- The rate_rule_id is required when using conditional rates. -->
      <Rate rate_rule_id="mobile">
        <Baserate currency="USD">180.00</Baserate>
        <Tax currency="USD">18.00</Tax>
        <OtherFees currency="USD">1.00</OtherFees>
        <Custom1>ratecode123</Custom1>
      </Rate>
    </Rates>

  </Result>
</Transaction>

עדכון קובץ דף הנחיתה

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

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

בקישור דינמי לדף ספציפי באפליקציה, אפשר לכלול את כלל התמחור לפי שם, את מאפיין id של רכיב <RateRule>, עם המשתנה RATE-RULE-ID.

בדוגמה הבאה מוסיפים את מזהה כלל התמחור:

https://bookingsite.com/landing.do?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)&currency=(USER-CURRENCY)&prid=(RATE-RULE-ID)

קובץ דף הנחיתה תומך גם בהנחיה IF-RATE-RULE-ID, שמאפשרת להגדיר באופן מותנה חלקים מכתובת ה-URL, בהתאם לשאלה אם כלל התמחור קיים:

https://bookingsite.com/(IF-RATE-RULE-ID)privatelanding.do(RATE-RULE-ID)(ELSE)landing.do(ENDIF)?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)&currency=(USER-CURRENCY)

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

מידע נוסף זמין במאמר שימוש במשתנים ובתנאים.