การอ้างอิง Structured Data ของราคาโรงแรม

หน้านี้เป็นข้อมูลอ้างอิงสำหรับการเพิ่มมาร์กอัป Structured Data ลงในข้อมูลราคาของโรงแรม

ภาพรวม

Structured Data ของราคาโรงแรมใช้เพื่ออธิบาย ตรวจสอบ และแสดงรายละเอียด ราคาโรงแรมที่แสดงในเว็บไซต์ของคุณ ไม่ว่าจะเป็นอินเทอร์เฟซผู้ใช้ใดก็ตาม ซึ่งรวมถึงราคาฐาน ราคา ห้องพัก ค่าธรรมเนียมและภาษี รวมถึงฟิลด์ที่เกี่ยวข้องกับการกำหนดราคาด้วย

Google ขอแนะนำให้พาร์ทเนอร์ใส่คำอธิบายประกอบในหน้าเว็บด้วย Structured Data ที่ได้มาตรฐาน ซึ่งเครื่องอ่านได้สำหรับ Crawler โดยschema.org เพื่อให้คัดลอกราคาจากหน้าเว็บได้อย่างถูกต้อง

ซึ่งจะช่วยให้เราขยายการตรวจสอบความถูกต้องของราคาได้ด้วยการปรับปรุง ความน่าเชื่อถือของ Crawler ประโยชน์ที่คุณจะได้รับคือจำนวนการตรวจสอบความถูกต้องของราคาที่เพิ่มขึ้นและความสามารถในการแก้ไขข้อบกพร่องเกี่ยวกับความถูกต้องของราคาโดยตรง รวมถึงการมีคะแนนความถูกต้องของราคาที่สอดคล้องกัน

หากคุณเพิ่งใช้ Structured Data เป็นครั้งแรก โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับคําศัพท์และรูปแบบของ Structured Data

Google Hotels ขอแนะนำให้ใช้รูปแบบ JSON-LD เพื่อประกอบคำอธิบายหน้าเว็บ ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบอื่นๆ ที่ยอมรับได้ในรูปแบบที่รองรับ เอกสารนี้มีเนื้อหาอ้างอิงโดยละเอียดเกี่ยวกับการติดตั้งใช้งาน Structured Data ในโรงแรม

ระบบจะใช้ข้อมูลที่มีโครงสร้าง Hotel เพื่อใส่คำอธิบายประกอบฟิลด์เฉพาะโรงแรมในหน้าเว็บ Hotel Structured Data มีพร็อพเพอร์ตี้ต่อไปนี้

ระบบจะใช้ข้อมูลที่มีโครงสร้าง HotelRoom เพื่อใส่คำอธิบายประกอบฟิลด์ที่เฉพาะเจาะจงห้องใน หน้าเว็บ

HotelRoom Structured Data มีพร็อพเพอร์ตี้ต่อไปนี้

Structured Data ของโรงแรม

พร็อพเพอร์ตี้ name และ address

พร็อพเพอร์ตี้ name และ address ใช้เพื่อประกอบชื่อและสถานที่ตั้งของโรงแรม พร็อพเพอร์ตี้ name และ address มีดังนี้

  "@type": "Hotel",
    "name": "hotel-name",
    "identifier": "hotel-id-1234",
    "address": {
      "@type": "PostalAddress",
      "addressCountry": "XX",
      "addressLocality": "City Name",
      "addressRegion": "State Name",
      "postalCode": "01234",
      "streetAddress": "1234 Main St."
    },

ไวยากรณ์

พร็อพเพอร์ตี้ name และ address ใช้ไวยากรณ์ต่อไปนี้

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "hotel-name",
  "identifier": "hotel-id-1234",
  "address": {
    "@type": "PostalAddress",
    "addressCountry": "XX",
    "addressLocality": "City Name",
    "addressRegion": "State Name",
    "postalCode": "01234",
    "streetAddress": "1234 Main St."
  },
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"]
    ...
  }
}

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ name และ address มีดังนี้

พร็อพเพอร์ตี้ จำเป็นหรือไม่ ประเภท คำอธิบาย
Hotel.name Required string ชื่อโรงแรม
Hotel.identifier Required string

รหัสโรงแรมของพาร์ทเนอร์

ตัวระบุต้องเป็นสตริงที่ไม่ซ้ำกันต่อโรงแรม และควรตรงกับสตริงที่ใช้ในฟีดราคา

Hotel.address Optional PostalAddress ที่อยู่หรือตำแหน่งของโรงแรม

ตัวอย่าง

ชื่อและที่อยู่

ต่อไปนี้เป็นตัวอย่างพื้นฐานของการเพิ่มคำอธิบายประกอบ name และ address

{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Mountain Hotel",
"identifier": "hotel-id-1234",
"address": {
  "@type": "PostalAddress",
  "addressCountry": "AT",
  "addressLocality": "Innsbruck",
  "addressRegion": "Tyrol",
  "postalCode": "6020",
  "streetAddress": "Technikerstrasse 21"
},
"makesOffer": {
  "@type": ["Offer", "LodgingReservation"],
  "checkinTime": "2023-03-10 15:00:00",
  "checkoutTime": "2023-03-16 10:00:00",
  "priceSpecification": {
    "@type": "CompoundPriceSpecification",
    "price": 1222.74,
    "priceCurrency": "USD"
  }
}
}

ที่พัก makesOffer แห่ง

ใช้คำอธิบายประกอบ makesOffer เพื่อมาร์กอัป แผนการเดินทางของโรงแรม

  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/InStock",
    ...
  }

ไวยากรณ์

พร็อพเพอร์ตี้ makesOffer ใช้ไวยากรณ์ต่อไปนี้

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "hotel-name",
  "identifier": "hotel-id-1234",
  "address": { ... },
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/InStock",
    "priceSpecification": { ... }
  }
}

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ makesOffer มีดังนี้

พร็อพเพอร์ตี้ จำเป็นหรือไม่ ประเภท คำอธิบาย
makesOffer Required Offer and LodgingReservation

ข้อเสนอของโรงแรมสำหรับแผนการเดินทางที่ระบุ

พร็อพเพอร์ตี้ makesOffer อาจมีอาร์เรย์ของข้อเสนอ

LodgingReservation.checkinTime Required DateTime

เวลาเช็คอินในเขตเวลาของผู้ใช้ หากไม่ได้ระบุเขตเวลาของคุณ ระบบจะพิจารณาเขตเวลาของโรงแรม

LodgingReservation.checkoutTime Required DateTime

เวลาเช็คเอาต์ในเขตเวลาของผู้ใช้ หากไม่ได้ระบุเขตเวลาของคุณ ระบบจะพิจารณาเขตเวลาของโรงแรม

ตัวอย่าง

makesOffer

ต่อไปนี้เป็นตัวอย่างพื้นฐานในการใส่คำอธิบายประกอบข้อเสนอโรงแรม คุณระบุข้อเสนอหลายรายการสำหรับแผนการเดินทางได้ แต่ควรระบุราคาที่ Google แสดงก่อน แล้วตามด้วยราคาอื่นๆ จำนวนเงินของราคา ที่ระบุรวมภาษีที่เกี่ยวข้องทั้งหมด

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "Mountain Hotel",
  "identifier": "hotel-id-1234",
  "address": { ... },
  "makesOffer": [
    {
      "@type": ["Offer", "LodgingReservation"],
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1222.74,
        "priceCurrency": "USD"
      }
    },
    {
      "@type": ["Offer", "LodgingReservation"],
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1200.74,
        "priceCurrency": "USD"
      }
    }
  ]
}

ที่พัก Hotel priceSpecification แห่ง

พร็อพเพอร์ตี้นี้ใช้เพื่อประกอบข้อมูลราคาสำหรับโรงแรมหรือห้องพักโรงแรม คุณต้องระบุพร็อพเพอร์ตี้เพิ่มเติมอีก 2 รายการเพื่อใส่คำอธิบายประกอบราคาและภาษี คุณควรใช้ CompoundPriceSpecification เพื่อระบุข้อมูลราคาโดยรวม เช่น อัตราฐาน ภาษี และส่วนลด ใช้ UnitPriceSpecification เพื่อระบุภาษีเพิ่มเติมหรือค่าธรรมเนียมประเภทพิเศษ เช่น ResortFee, GenericTax และ ServiceFee priceSpecification พร็อพเพอร์ตี้รวมอยู่กับพร็อพเพอร์ตี้ Offer

  {
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": "float",
          "priceCurrency": "currency"
        },
        ...
      ]
    }
  }

ไวยากรณ์

พร็อพเพอร์ตี้ Hotel priceSpecification ใช้ไวยากรณ์ต่อไปนี้

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  ...
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "",
          "price": "float",
          "priceCurrency": "currency"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": "float",
          "priceCurrency": "currency",
          "priceComponentType": "GenericTax",
          "potentialAction": {
            "@type": "https://schema.org/PayAction",
            "recipient": {
              "@type": "OnlineBusiness",
              "name": "name-of-the-business"
            }
          }
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "Discount",
          "price": "float",
          "priceCurrency": "currency",
          "priceComponentType": "Discount"
        }
      ]
    }
  }
}

Microdata

  <div itemscope itemtype="https://schema.org/Hotel">
    <meta itemprop="name" content="hotel-name"/>
    ...
    <div itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation" itemprop="makesOffer">
      ...
      <div itemscope itemtype="https://schema.org/CompoundPriceSpecification" itemprop="priceSpecification">
        <meta itemprop="price" content="float"/>
        <meta itemprop="priceCurrency" content="currency"/>
        <div itemscope itemtype="https://schema.org/UnitPriceSpecification" itemprop="priceComponent">
          <meta itemprop="name" content=""/>
          <meta itemprop="price" content="float"/>
          <meta itemprop="priceCurrency" content="currency"/>
        </div>
        <div itemscope itemtype="https://schema.org/UnitPriceSpecification" itemprop="priceComponent">
          <meta itemprop="name" content="GenericTax" />
          <meta itemprop="price" content="float"/>
          <meta itemprop="priceCurrency" content="currency"/>
          <meta itemprop="priceComponentType" content="GenericTax"/>
        </div>
        <div itemscope itemtype="https://schema.org/UnitPriceSpecification" itemprop="priceComponent">
          <meta itemprop="name" content="Discount"/>
          <meta itemprop="price" content="float"/>
          <meta itemprop="priceCurrency" content="currency"/>
          <meta itemprop="priceComponentType" content="Discount"/>
        </div>
      </div>
    </div>
  </div>

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ hotel priceSpecification มีดังนี้

พร็อพเพอร์ตี้ จำเป็นหรือไม่ ประเภท คำอธิบาย
Hotel.Offer.priceSpecification.price Required float

ราคารวมของโรงแรม ซึ่งรวมภาษีและค่าธรรมเนียม

คุณควรใส่คำอธิบายประกอบราคาของ Google ในหน้า Landing Page พร้อมกับ รายละเอียดราคาที่สมบูรณ์เสมอ การใส่คำอธิบายประกอบรายละเอียดราคาจะช่วยให้คุณทำการตรวจสอบความถูกต้องของราคาได้ Google ยอมรับทั้งราคาที่ระดับโรงแรมและระดับห้องพัก

Hotel.Offer.priceSpecification.priceCurrency Required currency รหัสสกุลเงิน 3 ตัวอักษรสำหรับราคาที่ระบุ เช่น "USD"
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

การแจกแจงราคารวม รวมถึงภาษีและค่าธรรมเนียมสำหรับโรงแรม ข้อมูลที่มีโครงสร้างของราคาแบ่งออกเป็น 2 ประเภท ได้แก่

  • CompoundPriceSpecification แสดงรายละเอียดราคาเพื่อ รวมข้อมูลต่อไปนี้

    • ราคาฐาน: ราคาพื้นฐานต่อคืน

    • ภาษีต่อการเข้าพัก: ราคาต่อคืนรวมภาษี

    • ค่าธรรมเนียมต่อผู้เข้าพัก: ราคาต่อคืนต่อการเข้าพัก

    • ส่วนลด: จำนวนเงินที่หัก

  • UnitPriceSpecification ใช้เพื่อระบุประเภทค่าธรรมเนียม คุณควรรวมค่า PriceComponentTypeEnumeration เพื่อระบุค่าใช้จ่ายเพิ่มเติม

    ค่าสำหรับ PriceComponentTypeEnumeration มีดังนี้

    • Discount: ส่วนลดทั่วไปสำหรับ ราคา

    • ResortFee: เป็นค่าใช้จ่ายเพิ่มเติมที่ต้องชำระที่โรงแรม ซึ่งอาจแตกต่างกันไปตามประเภทที่พัก

    • GenericTax: เป็นภาษีเบ็ดเตล็ดเพิ่มเติม

    • ServiceFee: เป็นค่าธรรมเนียมเพิ่มเติมที่ช่องทางการจองเรียกเก็บ

    • TransferFee: เป็นค่าธรรมเนียมที่ต้องชำระสำหรับการ เดินทางไปยังโรงแรม ซึ่งโรงแรมหรือช่องทางการจองเป็นผู้เรียกเก็บ

คุณต้องตั้งค่าในพร็อพเพอร์ตี้ priceComponentType คุณต้องระบุค่าทั้งหมดหากเลือกใส่ UnitPriceSpecification และต้องระบุในพร็อพเพอร์ตี้ UnitPriceSpecification

Hotel.Offer.priceSpecification.priceComponent. potentialAction Optional PayAction

จุดชำระเงินของโรงแรม ขั้นตอนการชำระเงินของโรงแรมรวมถึงราคา ที่เรียกเก็บในเวลาเช็คเอาต์ในเว็บไซต์การจองและที่โรงแรม ระหว่างเช็คอิน

คุณควรใช้พร็อพเพอร์ตี้ potentialAction ซึ่งรวมอยู่ในฟิลด์ "recipient" ของ PayAction เพื่อระบุจุดชำระเงิน ดูข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้ recipient ได้ที่ PayAction

Google รองรับการตั้งค่า 2 รายการต่อไปนี้สำหรับผู้รับของ PayAction

  • recipient.@type = "OnlineBusiness" หมายถึงการชำระเงิน ที่ผู้ขายออนไลน์เรียกเก็บ ณ เวลาที่จอง โดยตัวเลือกนี้จะเป็นการตั้งค่าเริ่มต้นหากไม่ได้ระบุ potentialAction

  • recipient.@type = "Hotel" หมายถึงการชำระเงิน ที่เรียกเก็บที่โรงแรม

ตัวอย่าง

ตัวอย่าง JSON-LD

ราคา

ต่อไปนี้คือตัวอย่างพื้นฐานของการเพิ่ม Structured Data ของราคาลงในหน้าเว็บ คุณระบุข้อเสนอระดับโรงแรมหลายรายการได้ในพร็อพเพอร์ตี้ makesOffer

ต้องระบุประเภท PostalAddress เช่น addressCountry, postalCode, streetAddress และช่องอื่นๆ หากคุณเลือกที่จะระบุพร็อพเพอร์ตี้ address ราคาที่ Google แสดงควรระบุเป็นอันดับแรกในพร็อพเพอร์ตี้ makesOffer จำนวนราคาที่ระบุรวมภาษีที่เกี่ยวข้องทั้งหมด

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "address": {
    "@type": "PostalAddress",
    "addressCountry": "AT",
    "addressLocality": "Innsbruck",
    "addressRegion": "Tyrol",
    "postalCode": "6020",
    "streetAddress": "Technikerstrasse 21"
  },
  "makesOffer": [
    {
      "@type": ["Offer", "LodgingReservation"],
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1222.74,
        "priceCurrency": "USD"
      }
    },
    {
      "@type": ["Offer", "LodgingReservation"],
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1200.74,
        "priceCurrency": "USD"
      }
    },
    ...
  ]
}

รายละเอียดราคา

ต่อไปนี้คือตัวอย่างพร็อพเพอร์ตี้ priceSpecification ที่มีรายละเอียดราคา คุณกำหนดอัตราฐาน ภาษี เช่น ภาษีทั่วไป และส่วนลดได้โดยใช้คอมโพเนนต์ UnitPriceSpecification อย่าลืมตั้งค่าฟิลด์ priceComponentTypeด้วยค่าที่สอดคล้องกับคอมโพเนนต์ UnitPriceSpecification

ควรกำหนดราคารวมสำหรับระยะเวลาในการเข้าพักในพร็อพเพอร์ตี้ CompoundPriceSpecification ควรระบุรายละเอียดราคาในพร็อพเพอร์ตี้ priceComponent

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "address": {...},
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "",
          "price": 1150,
          "priceCurrency": "USD"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": 172.74,
          "priceCurrency": "USD",
          "priceComponentType": "GenericTax"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "Discount",
          "price": -100,
          "priceCurrency": "USD",
          "priceComponentType": "Discount"
        }
      ]
    }
  }
}

จุดชำระเงิน

ต่อไปนี้เป็นตัวอย่างการระบุ potentialAction ในการใช้ประเภทผู้รับของ PayAction

ราคารวมของแพ็กเกจคือ $1170 และเว็บไซต์ออนไลน์จะเรียกเก็บเงินบางส่วนจากราคารวม ซึ่งเท่ากับ $1150 ในเวลาที่จองโดยใช้ "@type": "OnlineBusiness" และผู้ใช้ต้องชำระเงินอีก $20 ในเวลาที่เช็คอินที่โรงแรมโดยใช้ @type": "Hotel"

คุณต้องระบุpotentialActionเพื่อแยกย่อยการชำระเงิน ณ เวลาที่ทำการจองและที่โรงแรม หากไม่ได้ระบุไว้ payAction จะตีความการชำระเงิน ณ เวลาที่จองเป็นวิธีการชำระเงินเริ่มต้น

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00]",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1170,
      "priceCurrency": "USD",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "price": 1150,
          "priceCurrency": "USD",
          "potentialAction": {
            "@type": "https://schema.org/PayAction",
            "recipient": {
              "@type": "OnlineBusiness",
              "name": "myonlinebusiness"
            }
          }
        },
        {
          "@type": "UnitPriceSpecification",
          "price": 20,
          "priceCurrency": "USD",
          "potentialAction": {
            "@type": "https://schema.org/PayAction",
            "recipient": {
              "@type": "Hotel",
              "name": "The Langham, Boston",
              "address": { ... }
            }
          }
        }
      ]
    }
  }
}

ตัวอย่าง Microdata

รายละเอียดราคา

ต่อไปนี้คือตัวอย่างพร็อพเพอร์ตี้ priceSpecification ที่มีรายละเอียดราคา คุณกำหนดอัตราฐาน ภาษี เช่น ภาษีทั่วไป และส่วนลดได้โดยใช้คอมโพเนนต์ UnitPriceSpecification อย่าลืมตั้งค่าพร็อพเพอร์ตี้ name ด้วยค่าที่สอดคล้องกับคอมโพเนนต์ UnitPriceSpecification

ควรกำหนดราคารวมสำหรับระยะเวลาในการเข้าพักในพร็อพเพอร์ตี้ CompoundPriceSpecification ควรระบุรายละเอียดราคาในพร็อพเพอร์ตี้ priceComponent

<div itemscope itemtype="https://schema.org/Hotel">
  <meta itemprop="name" content="ACME Hotel"/>
  <meta itemprop="identifier" content="hotel-id-1234"/>
  <div itemscope itemtype="https://schema.org/PostalAddress" itemprop="address">
    <meta itemprop="addressCountry" content="US" />
    <meta itemprop="addressLocality" content="Mountain View" />
    <meta itemprop="addressRegion" content="Santa Clara" />
    <meta itemprop="postalCode" content="94040" />
    <meta itemprop="streetAddress" content="123 Main street" />
  </div>
  <div itemscope itemtype="https://schema.org/Offer   https://schema.org/LodgingReservation"  itemprop="makesOffer">
    <meta itemprop="checkinTime" content="2023-03-10 15:00:00" />
    <meta itemprop="checkoutTime" content="2023-03-16 10:00:00"/>
    <div itemscope itemtype="https://schema.org/CompoundPriceSpecification"   itemprop="priceSpecification">
    <meta itemprop="price" content="1222.74" />
    <meta itemprop="priceCurrency" content="USD" />
      <div itemscope itemtype="https://schema.org/UnitPriceSpecification"    itemprop="priceComponent">
        <meta itemprop="name" content="" />
        <meta itemprop="price" content="1150" />
        <meta itemprop="priceCurrency" content="USD" />
      </div>
      <div itemscope itemtype="https://schema.org/UnitPriceSpecification"  itemprop="priceComponent">
        <meta itemprop="name" content="GenericTax" />
        <meta itemprop="price" content="172.74" />
        <meta itemprop="priceCurrency" content="USD" />
        <meta itemprop="priceComponentType" content="GenericTax" />
      </div>
      <div itemscope itemtype="https://schema.org/UnitPriceSpecification"   itemprop="priceComponent">
        <meta itemprop="name" content="Discount" />
        <meta itemprop="price" content="-100" />
        <meta itemprop="priceCurrency" content="USD" />
        <meta itemprop="priceComponentType" content="Discount" />
      </div>
    </div>
  </div>
</div>

ที่พัก hasMerchantReturnPolicy แห่ง

พร็อพเพอร์ตี้นี้ใช้เพื่อประกอบนโยบายการคืนเงินของผู้ขายในแผนการเดินทาง

    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "refundType": "https://schema.org/FullRefund",
      "merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
      "restockingFee": 0
    }

ไวยากรณ์

hasMerchantReturnPolicy มีไวยากรณ์ต่อไปนี้

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  ...
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "priceSpecification": { ... },
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "refundType": "https://schema.org/FullRefund",
      "merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
      "restockingFee": 0
    }
  }
}

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ hasMerchantReturnPolicy มีดังนี้

แอตทริบิวต์ จำเป็นหรือไม่ ประเภท คำอธิบาย
Offer.hasMerchantReturnPolicy Optional MerchantReturnPolicy

นโยบายการคืนเงินของผู้ขาย พาร์ทเนอร์ควรใช้ MerchantReturnPolicy.restockingFee เพื่อระบุนโยบายการยกเลิกที่ไม่ได้คืนเงินเต็มจำนวนสำหรับ ระยะเวลาการเข้าพัก

หากไม่ได้ระบุ hasMerchantReturnPolicy หรือปล่อยว่างไว้ ระบบจะถือว่าจำนวนเงินดังกล่าวขอเงินคืนไม่ได้ คุณระบุนโยบาย คืนเงินไม่ได้โดยใช้พร็อพเพอร์ตี้ returnPolicyCategory: MerchantReturnNotPermitted

ตัวอย่าง

นโยบายคืนสินค้า

ตัวอย่างต่อไปนี้เป็นตัวอย่างพื้นฐานของ Structured Data สำหรับโรงแรมที่มีรายละเอียดห้องพักและราคารวมพร้อมภาษีและค่าธรรมเนียม ตัวอย่างนี้แสดงการเข้าพัก ที่ยกเลิกได้โดยไม่มีค่าใช้จ่ายจนถึงเวลา 23:00 น. (UTC) ของวันที่ 18 ธันวาคม 2023 พาร์ทเนอร์ควรใช้ "MerchantReturnPolicy.restockingFee" เพื่อระบุนโยบายการยกเลิก ที่ไม่ได้คืนเงินเต็มจำนวนสำหรับการเข้าพัก restockingFee ค่าเริ่มต้น คือ $0

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "description": "Beautiful resort in the outskirts of the city",
  "address": {...},
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-12-15 16:00:00",
    "checkoutTime": "2023-12-20 11:00:00",
    "priceSpecification": {...},
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "refundType": "https://schema.org/FullRefund",
      "merchantReturnDays": "2023-12-18 23:00:00",
      "restockingFee": 0
    }
  }
}

ที่พัก eligibleCustomerType แห่ง

คุณใช้พร็อพเพอร์ตี้นี้เพื่อใส่คำอธิบายประกอบโปรแกรมสะสมคะแนนที่มอบให้แก่ลูกค้าที่เป็นสมาชิกของโรงแรม ได้

"eligibleCustomerType": "RewardsMember",
"priceSpecification": {
    "@type": "CompoundPriceSpecification",
    "price": "float",
    "priceCurrency": "currency"
 }

ไวยากรณ์

พร็อพเพอร์ตี้ eligibleCustomerType มีไวยากรณ์ต่อไปนี้

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  ...
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "eligibleCustomerType": "RewardsMember",
    "priceSpecification": { ... }
  }
}

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ eligibleCustomerType มีดังนี้

แอตทริบิวต์ จำเป็นหรือไม่ ประเภท คำอธิบาย
Offer.eligibleCustomerType Optional BusinessEntityType

โปรแกรมสะสมคะแนนหรือรางวัลสำหรับสมาชิกที่เสนอให้แก่ ลูกค้า

หน้าโรงแรมหลายหน้าแสดงราคาสมาชิกพร้อมกับราคาสำหรับบุคคลทั่วไป เพื่อกระตุ้นให้ผู้ใช้ลงชื่อสมัครใช้โปรแกรมสะสมคะแนน คุณระบุราคาที่จำกัด สำหรับกลุ่มเป้าหมายที่เฉพาะเจาะจง เช่น ราคาสำหรับสมาชิก ได้โดยการตั้งค่าพร็อพเพอร์ตี้ Offer.eligibleCustomerType

ตัวอย่าง

ราคาสำหรับสมาชิก

ต่อไปนี้คือตัวอย่างพื้นฐานของการระบุราคาสำหรับสมาชิกหรือราคาที่จำกัด สำหรับโปรแกรมสะสมคะแนน ลูกค้าเป็น "สมาชิกโปรแกรมสะสมคะแนน" ของโรงแรม

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "address": {...},
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "name": "RewardsMember",
    "checkinTime": "2023-12-15 16:00:00",
    "checkoutTime": "2023-12-20 11:00:00",
    "eligibleCustomerType": "RewardsMember",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1342.74,
      "priceCurrency": "USD",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "Base rate",
          "price": 1069.98,
          "priceCurrency": "USD"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": 172.74,
          "priceCurrency": "currency"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "ResortFee",
          "price": 100,
          "priceCurrency": "USD"
        }
      ]
    }
  }
}

ราคาสำหรับสมาชิกและราคาปกติ

นี่คือตัวอย่างของทั้งคำอธิบายประกอบราคาอัตราปกติและราคาสมาชิก โดยจะแสดงราคาสำหรับสมาชิกก่อน แล้วตามด้วยราคาปกติ

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "address": {...},
  "makesOffer": [
    {
      "@type": ["Offer", "LodgingReservation"],
      "name": "RewardsMember",
      "checkinTime": "2023-12-15 16:00:00",
      "checkoutTime": "2023-12-20 11:00:00",
      "eligibleCustomerType": "RewardsMember",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1342.74,
        "priceCurrency": "USD",
        "priceComponent": [
          {
            "@type": "UnitPriceSpecification",
            "name": "Base rate",
            "price": 1069.98,
            "priceCurrency": "USD"
          },
          {
            "@type": "UnitPriceSpecification",
            "name": "GenericTax",
            "price": 172.74,
            "priceCurrency": "currency"
          },
          {
            "@type": "UnitPriceSpecification",
            "name": "ResortFee",
            "price": 100,
            "priceCurrency": "USD"
          }
        ]
      }
    },
    {
      "@type": ["Offer", "LodgingReservation"],
      "name": "regularRate",
      "checkinTime": "2023-12-15 16:00:00",
      "checkoutTime": "2023-12-20 11:00:00",
      "priceSpecification": {
        "price": 1572.24,
        "priceCurrency": "USD",
        "priceComponent": [
          {
            "@type": "UnitPriceSpecification",
            "name": "Base rate",
            "price": 1369.98,
            "priceCurrency": "USD"
          },
          {
            "@type": "UnitPriceSpecification",
            "name": "GenericTax",
            "price": 202.26,
            "priceCurrency": "currency"
          },
          {
            "@type": "UnitPriceSpecification",
            "name": "ResortFee",
            "price": 100,
            "priceCurrency": "USD"
          }
        ]
      }
    }
  ]
}

Structured Data ของ HotelRoom

ที่พัก offers แห่ง

ระบบจะใช้คำอธิบายประกอบ offers เพื่อมาร์กอัปแผนการเดินทางของห้องพัก คุณควรใช้พร็อพเพอร์ตี้ offers สำหรับข้อกำหนด HotelRoom

"offers": {
  "@type": ["Offer", "LodgingReservation"],
  "identifier": "hotel-room-id-1234",
  "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
  "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
  "priceSpecification": {...}
}

ไวยากรณ์

พร็อพเพอร์ตี้ offers มีไวยากรณ์ต่อไปนี้

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "HotelRoom",
  "identifier": "hotel-room-id-1234",
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      ...
    }
  }
}

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ offers มีดังนี้

พร็อพเพอร์ตี้ จำเป็นหรือไม่ ประเภท คำอธิบาย
offers Required Offer and LodgingReservation

ข้อกำหนดราคาห้องพักสำหรับแผนการเดินทางที่ระบุ

พร็อพเพอร์ตี้ offers อาจมีอาร์เรย์ของข้อเสนอ

LodgingReservation.checkinTime Required DateTime

เวลาเช็คอินในเขตเวลาของผู้ใช้ หากไม่ได้ระบุเขตเวลาของคุณ ระบบจะพิจารณาเขตเวลาของโรงแรม

LodgingReservation.checkoutTime Required DateTime

เวลาเช็คเอาต์ในเขตเวลาของผู้ใช้ หากไม่ได้ระบุเขตเวลาของคุณ ระบบจะพิจารณาเขตเวลาของโรงแรม

ตัวอย่าง

ข้อเสนอพิเศษ

ตัวอย่างต่อไปนี้เป็นตัวอย่างพื้นฐานสำหรับการระบุ offers ใน HotelRoom property

{
  "@context": "https://schema.org",
  "@type": "HotelRoom",
  "identifier": "hotel-room-id-1234",
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "identifier": "rate-plan-id-of-member-rate",
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD"
    }
  }
}

พร็อพเพอร์ตี้ bed และ occupancy

พร็อพเพอร์ตี้ bed ใช้เพื่อประกอบคำอธิบายประเภทเตียงและจำนวนเตียงที่พร้อมให้บริการในห้องพัก พร็อพเพอร์ตี้ occupancy ใช้เพื่อใส่คำอธิบายประกอบจำนวน แขกในห้อง คุณระบุพร็อพเพอร์ตี้ bed และ occupancy ได้โดยใช้พร็อพเพอร์ตี้ HotelRoom

"@type": "Hotel",
"identifier": "hotel-id-1234",
"containsPlace": {
    "@type": ["HotelRoom", "Product"],
    "identifier": "hotel-room-id",
  "bed": {
    "@type": "BedDetails",
    "numberOfBeds": "integer",
    "typeOfBed": "KING"
  },
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": "integer"
  }
}

ไวยากรณ์

พร็อพเพอร์ตี้ bed และ occupancy มีไวยากรณ์ต่อไปนี้

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "hotel-name",
  "identifier": "hotel-id-1234",
  "containsPlace": {
    "@type": ["HotelRoom", "Product"],
    "name": "room-name",
    "identifier": "hotel-room-id-1234",
    "bed": {
      "@type": "BedDetails",
      "numberOfBeds": "integer",
      "typeOfBed": "KING"
    },
    "occupancy": {
      "@type": "QuantitativeValue",
      "value": "integer"
    },
    "offers": {
      "@type": ["Offer", "LodgingReservation"],
      "identifier": "rate-plan-id-of-member-rate",
      "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
      "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": "float",
        "priceCurrency": "currency",
        "priceComponent": {
          "@type": "UnitPriceSpecification",
          "name": "",
          "price": "float",
          "priceCurrency": "currency"
        },
        ...
      }
    }
  }
}

คุณตั้งค่าพร็อพเพอร์ตี้ bed และ occupancy ได้โดยใช้พร็อพเพอร์ตี้ HotelRoom เท่านั้น คุณสามารถรวมข้อมูลเฉพาะห้องพัก ซึ่งรวมถึงราคาในระดับห้องพัก ไว้ในพร็อพเพอร์ตี้ Hotel ผ่านพร็อพเพอร์ตี้ containsPlace ได้ ดูHotel และHotelRoom ตัวอย่างข้อกำหนด

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ bed และ occupancy มีดังนี้

พร็อพเพอร์ตี้ จำเป็นหรือไม่ ประเภท คำอธิบาย
HotelRoom.bed Optional (Recommended) bed

ประเภทเตียงที่รวมอยู่ในที่พักและจำนวนผู้เข้าพักในห้อง

ค่าที่รองรับมีดังนี้

  • CALIFORNIA_KING
  • KING
  • QUEEN
  • FULL
  • DOUBLE
  • SEMI_DOUBLE
  • SINGLE
HotelRoom.occupancy Optional (Recommended) QuantitativeValue

จำนวนแขกในห้องพักของโรงแรม ประเภทการเข้าพักคือ QuantitativeValue

การเข้าพักเป็นพร็อพเพอร์ตี้ที่ชัดเจนของ HotelRoom ไม่ใช่ของ Offer ที่เฉพาะเจาะจง คุณควรติดแท็กราคาสำหรับการเข้าพักที่ขอเท่านั้น

containsPlace Optional (Recommended) LocationFeatureSpecification

ใช้เพื่อใส่คำอธิบายประกอบราคาที่ระดับห้องพักซึ่งเชื่อมโยงกับห้องพักที่เฉพาะเจาะจง นอกจากนี้ ยังใช้เพื่อระบุสิ่งอำนวยความสะดวกในห้องได้ด้วย

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ containsPlace ในพร็อพเพอร์ตี้ amenityFeature

ตัวอย่าง

HotelRoom

ตัวอย่างต่อไปนี้เป็นตัวอย่างพื้นฐานของเตียงและการเข้าพักสำหรับข้อกำหนดห้องพัก

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room, 1 King Bed",
  "identifier": "hotel-room-id-1234",
  "bed": [
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "KING"
    },
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "SINGLE"
    }
  ],
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": 2
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "identifier": "rate-plan-id-of-member-rate",
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD"
    }
  }
}

โรงแรมและ HotelRoom

ตัวอย่างต่อไปนี้แสดงการใส่คำอธิบายประกอบพร็อพเพอร์ตี้ Hotel และ HotelRoom พร้อมกับ bed, occupancy และ priceSpecification

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "hotel-name",
  "identifier": "hotel-id-1234",
  "containsPlace": {
    "@type": ["HotelRoom", "Product"],
    "name": "Deluxe Room, 1 King Bed",
    "identifier": "hotel-room-id",
    "bed": {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "KING"
    },
    "occupancy": {
      "@type": "QuantitativeValue",
      "value": 2
    },
    "amenityFeature": {
      "@type": "LocationFeatureSpecification",
      "name": "Minibar",
      "value": true
    },
    "offers": {
      "@type": ["Offer", "LodgingReservation"],
      "identifier": "rate-plan-id-of-member-rate",
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1222.74,
        "priceCurrency": "USD"
      }
    }
  }
}

ที่พัก HotelRoom priceSpecification แห่ง

ข้อมูลจำเพาะของราคาห้องพักโรงแรมจะคล้ายกับข้อมูลจำเพาะของราคาโรงแรม ความแตกต่างคือราคาห้องพักจะระบุโดยใช้พร็อพเพอร์ตี้ Product.offers แทนพร็อพเพอร์ตี้ Hotel.makesOffer

"priceSpecification": {
  "@type": "CompoundPriceSpecification",
  "price": "float",
  "priceCurrency": "currency",
  "priceComponent": {
    "@type": "UnitPriceSpecification",
    "name": "GenericTax",
    "price": "float",
    "priceCurrency": "currency"
  }
  ...
}

ไวยากรณ์

พร็อพเพอร์ตี้ priceSpecification สำหรับห้องพักในโรงแรมมีไวยากรณ์ดังนี้

JSON-LD

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  ...
  "bed": {
    "@type": "BedDetails",
    "numberOfBeds": "integer",
    "typeOfBed": "KING"
  },
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": "integer"
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "",
          "price": "float",
          "priceCurrency": "currency"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": "float",
          "priceCurrency": "currency",
          "priceComponentType": "GenericTax"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "Discount",
          "price": "float",
          "priceCurrency": "currency",
          "priceComponentType": "Discount"
        }
      ]
    }
  }
}

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ HotelRoom priceSpecification มีดังนี้

พร็อพเพอร์ตี้ จำเป็นหรือไม่ ประเภท คำอธิบาย
Hotel.Offer.priceSpecification.price Required float

ราคาต่อห้องรวมภาษีและค่าธรรมเนียมสำหรับProduct

คุณควรใส่คำอธิบายประกอบราคาของ Google ในหน้า Landing Page พร้อมกับ รายละเอียดราคาที่สมบูรณ์เสมอ การใส่คำอธิบายประกอบรายละเอียดราคาจะช่วยให้คุณทำการตรวจสอบความถูกต้องของราคาได้ Google ยอมรับทั้งราคาที่ระดับโรงแรมและระดับห้องพัก

Hotel.Offer.priceSpecification.priceCurrency Required currency รหัสสกุลเงิน 3 ตัวอักษรสำหรับราคาที่ระบุ เช่น "USD"
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

การแจกแจงราคารวมซึ่งรวมภาษีและค่าธรรมเนียมสำหรับห้องพักโรงแรมและอัตราการเข้าพักพร้อมข้อเสนอที่ลิงก์กับ HotelRoom และ Product ข้อมูลที่มีโครงสร้างของราคาแบ่งออกเป็น 2 ประเภท ได้แก่

  • CompoundPriceSpecification แสดงรายละเอียดราคาเพื่อ รวมข้อมูลต่อไปนี้

    • ราคาฐาน: ราคาพื้นฐานต่อคืน

    • ภาษีต่อการเข้าพัก: ราคาต่อคืนรวมภาษี

    • ค่าธรรมเนียมต่อผู้เข้าพัก: ราคาต่อคืนต่อการเข้าพัก

      occupancy เป็นพร็อพเพอร์ตี้ที่ชัดเจนของ HotelRoom ไม่ใช่สำหรับ Offer ที่เฉพาะเจาะจง คุณควรติดแท็กราคาสำหรับการเข้าพักที่ขอเท่านั้น

    • ส่วนลด: จำนวนเงินที่หัก

  • UnitPriceSpecification ใช้เพื่อระบุประเภทค่าธรรมเนียม คุณควรรวมค่า PriceComponentTypeEnumeration เพื่อระบุค่าใช้จ่ายเพิ่มเติม

    ค่าสำหรับ PriceComponentTypeEnumeration มีดังนี้

    • Discount: ส่วนลดทั่วไปสำหรับ ราคา

    • ResortFee: เป็นค่าใช้จ่ายเพิ่มเติมที่ต้องชำระที่โรงแรม ซึ่งอาจแตกต่างกันไปตามประเภทที่พัก

    • GenericTax: เป็นภาษีเบ็ดเตล็ดเพิ่มเติม

    • ServiceFee: เป็นค่าธรรมเนียมเพิ่มเติมที่ช่องทางการจองเรียกเก็บ

    คุณต้องตั้งค่าในพร็อพเพอร์ตี้ name ของ UnitPriceSpecification คุณต้องระบุค่าทั้งหมดหากเลือกที่จะรวมรายละเอียดราคา และต้องระบุค่าในคอมโพเนนต์ UnitPriceSpecification

ตัวอย่าง

ราคาห้องพักทั้งหมด

ตัวอย่างพื้นฐานต่อไปนี้แสดงการกำหนดราคารวมสำหรับระยะเวลาเข้าพักและราคาต่ออัตราการเข้าพัก

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room King, 1 Single Bed",
  "identifier": "hotel-room-id-1234",
  "bed": [
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "KING"
    },
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "SINGLE"
    }
  ],
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": 2
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1232.74,
      "priceCurrency": "USD"
    }
  },
  ...
}

รายละเอียดราคาห้องพัก

ตัวอย่างต่อไปนี้เป็นตัวอย่างราคาต่อห้องหรือแพ็กเกจ ระบบจะกำหนดรายละเอียดราคา สำหรับประเภทห้องพัก เช่น ห้องพัก Deluxe และประเภท bed และ occupancy เช่น เตียง KING และ SINGLE และอัตราการเข้าพัก 2 ท่าน

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room King, 1 Single Bed",
  "identifier": "hotel-room-id-1234",
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "identifier": "rate-plan-id-of-member-rate",
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "bed": [
      {
        "@type": "BedDetails",
        "numberOfBeds": 1,
        "typeOfBed": "KING"
      },
      {
        "@type": "BedDetails",
        "numberOfBeds": 1,
        "typeOfBed": "SINGLE"
      }
    ],
    "occupancy": {
      "@type": "QuantitativeValue",
      "value": 2
    },
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "Base rate",
          "price": 1150,
          "priceCurrency": "USD"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": 172.74,
          "priceCurrency": "USD",
          "priceComponentType": "GenericTax"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "Discount",
          "price": -100,
          "priceCurrency": "USD",
          "priceComponentType": "Discount"
        }
      ]
    }
  }
}

ที่พัก includesObject แห่ง

พร็อพเพอร์ตี้นี้ใช้เพื่อประกอบคำอธิบายประกอบบริการเฉพาะอัตราที่ระบุไว้ในโรงแรม หรือห้องพัก เช่น ตัวเลือกอาหารและบริการรับจอดรถ คุณใส่คำอธิบายประกอบ includesObjectในพร็อพเพอร์ตี้ Hotel หรือ HotelRoom ก็ได้

{
  "includesObject": [
    {
      "@type": "TypeAndQuantityNode",
      "typeOfGood": {
        "@type": "Service",
        "name": "Valet"
      }
    },
    {
      "@type": "TypeAndQuantityNode",
      "amountOfThisGood": "float",
      "unitText": "currency",
      "typeOfGood": {
        "@type": "FoodService",
        "name": "MealCredit"
      }
    }
  ]
}

ไวยากรณ์

includesObject มีไวยากรณ์ต่อไปนี้สำหรับบริการที่เฉพาะเจาะจงอัตรา ซึ่งพร้อมให้บริการในห้องพัก

JSON-LD

{
  "@context": "https://schema.org",
  ...
  "@type": ["HotelRoom", "Product"],
  ...
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency"
    },
    "includesObject": [
      {
        "@type": "TypeAndQuantityNode",
        "typeOfGood": {
          "@type": "Service",
          "name": "Valet"
        }
      },
      {
        "@type": "TypeAndQuantityNode",
        "amountOfThisGood": "float",
        "unitText": "currency",
        "typeOfGood": {
          "@type": "FoodService",
          "name": "MealCredit"
        }
      }
    ]
  }
}

พร็อพเพอร์ตี้

includesObject มีพร็อพเพอร์ตี้ต่อไปนี้

แอตทริบิวต์ จำเป็นหรือไม่ ประเภท คำอธิบาย
Offer.includesObject Optional TypeAndQuantityNode

บริการที่มีให้ในโรงแรมหรือห้องพัก

ฟีเจอร์เฉพาะอัตราจะรวมอยู่ในพร็อพเพอร์ตี้ includesObject ควรใช้ฟิลด์ชื่อใน "TypeAndQuantityNode.typeOfGood" เพื่อระบุ ประเภทของบริการ เช่น บริการรับส่งหรือบริการอาหาร

นอกจากนี้ ฟีเจอร์เฉพาะอัตราอาจรวมอยู่ในข้อเสนอระดับฐาน หรืออาจระบุเป็นส่วนเสริมโดยมีค่าใช้จ่ายเพิ่มเติม

includesObject ต้องมีค่าประเภท TypeAndQuantityNode ดังนี้

  • BreakfastIncluded
  • DinnerIncluded
  • Valet
  • MealCredit

ตัวอย่าง

บริการ

ต่อไปนี้เป็นตัวอย่างพื้นฐานของฟีเจอร์เฉพาะอัตราสำหรับบริการจอดรถและบริการอาหาร ควรระบุฟีเจอร์เฉพาะอัตราด้วยพร็อพเพอร์ตี้ "Offer.includesObject" ควรใช้ฟิลด์ชื่อใน "TypeAndQuantityNode.typeOfGood" เพื่อระบุประเภทของ บริการ

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room, 1 King Bed",
  "identifier": "hotel-room-id-1234",
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "identifier": "rate-plan-id-of-member-rate",
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD"
    },
    "includesObject": [
      {
        "@type": "TypeAndQuantityNode",
        "typeOfGood": {
          "@type": "Service",
          "name": "Valet"
        }
      },
      {
        "@type": "TypeAndQuantityNode",
        "amountOfThisGood": 50,
        "unitText": "USD",
        "typeOfGood": {
          "@type": "FoodService",
          "name": "MealCredit"
        }
      }
    ]
  }
}

ที่พัก availability แห่ง

พร็อพเพอร์ตี้ offer.availability ใช้เพื่อใส่คำอธิบายประกอบแผนการเดินทางที่ห้องพักโรงแรมขายหมด

"offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/SoldOut"
}

ไวยากรณ์

พร็อพเพอร์ตี้ availability มีไวยากรณ์ต่อไปนี้

JSON-LD

{
  "@context": "https://schema.org",
  ...
  "@type": ["HotelRoom", "Product"],
  "name": "room-type",
  "identifier": "hotel-room-id-1234",
  "bed": {
    "@type": "BedDetails",
    "numberOfBeds": "integer",
    "typeOfBed": "KING"
  },
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": "integer"
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/SoldOut"
  }
}

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ availability มีดังนี้

แอตทริบิวต์ จำเป็นหรือไม่ ประเภท คำอธิบาย
Offer.availability Optional ItemAvailability

ความพร้อมให้บริการของโรงแรมหรือห้องพัก

ระบบดึงข้อมูลอัตราจาก schema.org/Offer และไม่ได้สร้างข้อมูลอัตรา โดยใช้ schema.org/Hotel หรือ schema.org/HotelRoom ซึ่งหมายความว่าแม้ว่าแผนการเดินทางจะขายหมดแล้วก็ต้องมีข้อเสนอ

ข้อเสนอที่ไม่มี priceSpecification จะถือว่า ไม่พร้อมใช้งาน ข้อเสนอที่ไม่พร้อมให้บริการควรระบุเป็น "Offer.availability= https://schema.org/SoldOut"

คุณไม่จำเป็นต้องระบุ Offer.availability หากมีการอธิบายประกอบข้อเสนอด้วย priceSpecification. ที่ถูกต้อง

ตัวอย่าง

ความพร้อมใช้งาน

ตัวอย่างต่อไปนี้เป็นตัวอย่างพื้นฐานที่แสดงความไม่พร้อมให้บริการของห้องพักในโรงแรม คุณควรระบุประเภทเตียง จำนวนเตียง และรายละเอียดอัตราการเข้าพัก สำหรับห้องพักที่ระบุ

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room, 1 King Bed",
  "identifier": "hotel-room-id-1234",
  "bed": [
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "KING"
    },
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "SINGLE"
    }
  ],
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": 2
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "availability": "https://schema.org/SoldOut",
    "priceSpecification": {...}
  }
}

ที่พัก amenityFeature แห่ง

คุณระบุสิ่งอำนวยความสะดวกได้ในประเภท Hotel หรือ HotelRoom โดยใช้พร็อพเพอร์ตี้ amenityFeature คุณควรใช้พร็อพเพอร์ตี้ containsPlace เพื่อระบุสิ่งอำนวยความสะดวกที่มีในห้องพัก

{
  "@type": "Hotel",
  "amenityFeature": [
    {
      "@type": "LocationFeatureSpecification",
      "name": "HotTub",
      "hoursAvailable": {
        "@type": "OpeningHoursSpecification",
        "opens": "HH:mm:ss",
        "closes": "HH:mm:ss"
      }
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "GymFitnessEquipment",
      "value": "boolean"
    }
  ],
  "containsPlace": {
    "@type": "HotelRoom",
    "amenityFeature": [
      {
        "@type": "LocationFeatureSpecification",
        "name": "Minibar",
        "value": true
      },
      {
        "@type": "LocationFeatureSpecification",
        "name": "Smoking",
        "value": false
      }
    ]
  }
}

ไวยากรณ์

พร็อพเพอร์ตี้ amenityFeature และ containsPlace มีไวยากรณ์ดังนี้

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  ...
  "amenityFeature": {
    "@type": "LocationFeatureSpecification",
    "name": "HotTub",
    "hoursAvailable": {
      "@type": "OpeningHoursSpecification",
      "opens": "HH:mm:ss",
      "closes": "HH:mm:ss"
    }
  },
  "containsPlace": {
    "@type": "HotelRoom",
    "amenityFeature": {
      "@type": "LocationFeatureSpecification",
      "name": "Minibar",
      "value": "boolean"
    }
  }
}

สิ่งอำนวยความสะดวก

อนุญาตให้ใช้สิ่งอำนวยความสะดวกต่อไปนี้และกำหนดไว้ในพร็อพเพอร์ตี้ name

แอตทริบิวต์ จำเป็นหรือไม่ ประเภท คำอธิบาย
amenityFeature.AC Optional boolean ที่พักมีเครื่องปรับอากาศหรือไม่
amenityFeature.AirportShuttle Optional boolean ที่พักมีบริการรับส่งจากสนามบินหรืออาคารผู้โดยสารอื่นๆ หรือไม่
amenityFeature.Balcony Optional boolean ที่พักมีระเบียงหรือไม่
amenityFeature.BeachAccess Optional boolean ที่พักมีทางเข้าถึงชายหาดสาธารณะที่อยู่ใกล้กับที่พักหรือไม่
amenityFeature.ChildFriendly Optional boolean ที่พักเหมาะสำหรับเด็กหรือไม่
amenityFeature.Crib Optional boolean ที่พักมีเตียงเด็กหรือไม่
amenityFeature.Elevator Optional boolean ที่พักมีลิฟต์หรือไม่
amenityFeature.FirePlace Optional boolean ที่พักมีเตาผิงหรือไม่
amenityFeature.FreeBreakfast Optional boolean ที่พักรวมอาหารเช้าฟรีสำหรับผู้เข้าพักทุกคนหรือไม่ ใช้ ฟีเจอร์ราคาเพื่อระบุว่ารวมอาหารเช้าเฉพาะแพ็กเกจราคา ที่เฉพาะเจาะจงหรือไม่
amenityFeature.GymFitnessEquipment Optional boolean ที่พักมียิมหรืออุปกรณ์ฟิตเนสหรือไม่
amenityFeature.Heating Optional boolean ที่พักมีระบบทำความร้อนหรือไม่
amenityFeature.HotTub Optional boolean ที่พักมีอ่างน้ำร้อนหรือไม่
amenityFeature.InstantBookable Optional boolean ที่พักพร้อมให้จองทันทีผ่านขั้นตอนการชำระเงินหรือไม่ หรือต้องรอการอนุมัติก่อน
amenityFeature.IroningBoard Optional boolean ที่พักมีที่รองรีดผ้าหรือไม่
amenityFeature.Kitchen Optional boolean ที่พักมีห้องครัวหรือไม่
amenityFeature.Microwave Optional boolean ที่พักมีไมโครเวฟหรือไม่
amenityFeature.OpenAirBath(Hotels only) Optional boolean ที่พักมีห้องอาบน้ำแบบเปิดโล่งหรือไม่ หากระบุ ที่ระดับห้องพัก อ่างอาบน้ำควรเป็นแบบส่วนตัวสำหรับผู้เข้าพักในห้องเท่านั้น
amenityFeature.OutdoorGrill Optional boolean ที่พักมีเตาปิ้งย่างหรือไม่
amenityFeature.OvenStove Optional boolean ที่พักมีเตาอบหรือไม่
amenityFeature.Patio Optional boolean ที่พักมีเฉลียงหรือไม่
amenityFeature.Pool Optional boolean ที่พักมีสระว่ายน้ำหรือไม่
amenityFeature.PrivateBeachAccess Optional boolean ที่พักมีทางเฉพาะสำหรับเข้าถึงชายหาดส่วนตัวหรือไม่
amenityFeature.SelfCheckinCheckout Optional boolean ที่พักรองรับการเช็คอินและเช็คเอาต์ด้วยตนเองหรือไม่
amenityFeature.WasherDryer Optional boolean ที่พักมีอุปกรณ์ซักรีดหรือไม่
amenityFeature.Wifi Optional boolean ที่พักมี Wi-Fi หรือไม่
amenityFeature.Smoking Optional boolean ที่พักอนุญาตให้สูบบุหรี่หรือไม่
amenityFeature.InternetType Optional Enum

ประเภทอินเทอร์เน็ตที่พร้อมใช้งานในที่พัก

ค่าที่รองรับมีดังนี้

  • FREE
  • PAID
  • NONE
amenityFeature.ParkingType Optional Enum

ประเภทที่จอดรถในที่พัก

ค่าที่รองรับมีดังนี้

  • FREE
  • PAID
  • NONE
amenityFeature.PoolType Optional Enum

ประเภทสระว่ายน้ำในที่พัก

ค่าที่รองรับมีดังนี้

  • INDOOR
  • OUTDOOR
  • NONE
amenityFeature.RoomStyle Optional Enum

ระบุว่าห้องพักมีการออกแบบสไตล์ญี่ปุ่นหรือไม่

ค่าที่รองรับมีดังนี้

  • WESTERN
  • JAPANESE
  • JAPANESE_WESTERN
amenityFeature.LicenseNum Required string

หมายเลขใบอนุญาตของธุรกิจที่จะแสดงในที่พักในบางภูมิภาคของโลก ซึ่งอาจซ้ำกันได้ และหากมีใบอนุญาตหลายใบ เราขอแนะนำให้เพิ่มเจ้าของหรือหน่วยงานที่ออกใบอนุญาต ตัวอย่างเช่น "Paris: 123456ABC"

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ amenityFeature มีดังนี้

พร็อพเพอร์ตี้ จำเป็นหรือไม่ ประเภท คำอธิบาย
amenityFeature Optional LocationFeatureSpecification

สิ่งอำนวยความสะดวกที่มีให้ในโรงแรมหรือห้องพัก คุณระบุได้โดยใช้พร็อพเพอร์ตี้ amenityFeature สิ่งอำนวยความสะดวกควรพร้อมให้บริการแก่แขกทุกคนในโรงแรมโดยไม่คำนึงถึงแพ็กเกจราคาที่เลือก amenityFeature จะระบุโดยใช้ค่าพร็อพเพอร์ตี้ LocationFeatureSpecification

คุณระบุสิ่งอำนวยความสะดวกได้ที่ระดับ Hotel หรือ HotelRoom

containsPlace Optional LocationFeatureSpecification

สิ่งอำนวยความสะดวกที่โรงแรมหรือห้องพักมีให้บริการแก่แขกทุกท่าน โดยระบุได้โดยใช้ amenityFeature สิ่งอำนวยความสะดวกควร พร้อมให้บริการแก่แขกทุกท่านในห้องพักของโรงแรมโดยไม่คำนึงถึงแพ็กเกจราคาที่เลือก

Hotel.containsPlace.amenityFeature คือสิ่งอำนวยความสะดวก ที่มีให้บริการในโรงแรม

HotelRoom.containsPlace.amenityFeature คือสิ่งอำนวยความสะดวก ที่มีให้ในห้องพัก

ตัวอย่าง

สิ่งอำนวยความสะดวกในโรงแรมและห้องพัก

ต่อไปนี้เป็นตัวอย่างโรงแรมที่มีสระว่ายน้ำเปิดตั้งแต่เวลา 10:00 น. ถึง 22:00 น. และไม่มีฟิตเนสในที่พัก ห้องพักในโรงแรมเป็นห้องปลอดบุหรี่ และมีมินิบาร์

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "address": { ... },
  "amenityFeature": [
    {
      "@type": "LocationFeatureSpecification",
      "name": "HotTub",
      "hoursAvailable": {
        "@type": "OpeningHoursSpecification",
        "opens": "10:00:00",
        "closes": "22:00:00"
      }
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "GymFitnessEquipment",
      "value": false
    }
  ],
  "containsPlace": {
    "@type": "HotelRoom",
    "amenityFeature": [
      {
        "@type": "LocationFeatureSpecification",
        "name": "Minibar",
        "value": true
      },
      {
        "@type": "LocationFeatureSpecification",
        "name": "Smoking",
        "value": false
      }
    ],
    "offers": {
      "@type": ["Offer", "LodgingReservation"],
      "identifier": "rate-plan-id-of-member-rate",
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1222.74,
        "priceCurrency": "USD"
      }
    }
  }
}