Trang tham khảo XML về Danh sách khách sạn

Danh sách khách sạn là một hoặc nhiều tệp XML liệt kê tất cả khách sạn mà bạn sẽ cung cấp thông tin về giá. Bản thân tệp danh sách khách sạn không chứa thông tin về giá.

Phần tử gốc của danh sách khách sạn là phần tử <listings> chứa các phần tử <listing> mô tả các cơ sở lưu trú của bạn.

Bạn tạo một danh sách khách sạn trong quá trình triển khai ban đầu, sau đó thêm hoặc xoá các khách sạn khỏi danh sách đó trong quá trình bảo trì định kỳ.

Đảm bảo các tệp của bạn tuân thủ nguyên tắc về cú pháp. Ví dụ: sử dụng phương thức mã hoá UTF-8 và chỉ định giản đồ mã hoá này bằng cách đưa thuộc tính encoding vào thẻ XML.

Sau khi tạo danh sách khách sạn, bạn có thể tải danh sách đó lên Google theo cách thủ công bằng Hotel Center hoặc lưu trữ danh sách đó trên máy chủ.

Tìm và khắc phục vấn đề về dữ liệu

Để tìm và khắc phục vấn đề về dữ liệu trong danh sách khách sạn, hãy tham khảo các bài viết sau:

Yêu cầu đối với trang thông tin

Để đủ điều kiện sử dụng Google Quảng cáo khách sạn, cơ sở lưu trú trong danh sách khách sạn phải có:

  • Các phòng mà khách trả tiền có thể lưu trú
  • Vị trí thực tế và vị trí cố định đang mở cửa cho công chúng
  • Tường cố định và hệ thống ống nước
  • Thời gian lưu trú không quá 7 ngày

Một số ví dụ thường gặp về cơ sở lưu trú không đủ điều kiện bao gồm dịch vụ du thuyền và căn hộ vì những cơ sở lưu trú này thường không đáp ứng tiêu chí của Listing requirements.

Nhà gỗ cắm trại và các cơ sở cắm trại khác có tường cố định, hệ thống ống nước và hệ thống điều hoà không khí (bao gồm cả bếp củi hoặc lò sưởi dùng khí propan) sẽ đủ điều kiện. Các cơ sở lưu trú ngoài trời không đủ điều kiện bao gồm:

  • Khu cắm trại có lều để khách lưu trú
  • Bãi đỗ xe RV để khách tự đưa xe dã ngoại

<listings>

<listings> là thành phần gốc của danh sách khách sạn, chứa một phần tử <language> và ít nhất một <listing>.

Phần tử <listings> xuất hiện ở vị trí sau đây trong hệ phân cấp XML của danh sách khách sạn:

+ <listings>
    + <language>
    + <datum>
    + <listing>

Cú pháp

Phần tử <listings> sử dụng cú pháp sau:

<?xml version="1.0" encoding="UTF-8"?>
<listings xmlns:xsi="xsi"
    xsi:noNamespaceSchemaLocation="schema_xsd">
  <language> language_code</language>
  <datum> datum_code </datum>
  <listing> listing</listing>
  ...
</listings>

Thuộc tính

Phần tử <listings> có các thuộc tính như sau:

Thuộc tính Bắt buộc? Nội dung mô tả
xmlns:xsi Bắt buộc Đặt thành http://www.w3.org/2001/XMLSchema-instance.
xsi:noNamespaceSchemaLocation Bắt buộc Đặt thành http://www.gstatic.com/localfeed/local_feed.xsd.

Phần tử con

Phần tử <listings> có các phần tử con như sau:

Phần tử con Bắt buộc? Loại Nội dung mô tả
<language> Required string Ngôn ngữ dùng để viết nguồn cấp dữ liệu của bạn. Đặt giá trị của phần tử này thành mã ngôn ngữ gồm hai chữ cái. Ví dụ: en cho tiếng Anh.
<datum> Optional enum Phần tử này chỉ định dữ liệu địa lý hoặc mô hình tham chiếu cho toạ độ vĩ độ/kinh độ được cung cấp trong nguồn cấp dữ liệu. Nếu bạn không cung cấp giá trị dữ liệu, thì giá trị mặc định cho phần tử này sẽ là WGS84. Hầu hết các thiết bị GPS hiện đại đều sử dụng giá trị này. Dữ liệu Tokyo chỉ áp dụng cho các địa chỉ ở Nhật Bản.

Các giá trị hợp lệ cho phần tử này là:

  • WGS84
  • wgs84
  • TOKYO
  • tokyo
Lưu ý: Để sử dụng giá trị mặc định của WGS84, đừng thêm phần tử <datum> vào danh sách khách sạn.
<listing> Required <listing> Một hoặc nhiều mục nhập mô tả từng khách sạn trong nguồn cấp dữ liệu. Xin lưu ý rằng mỗi khách sạn trong danh sách phải có một mã nhận dạng dành riêng cho trang web của bạn và không bao giờ được sử dụng lại mã này.

Ví dụ

Địa chỉ có cấu trúc

Ví dụ sau đây cho thấy một phần danh sách khách sạn có địa chỉ có cấu trúc:

<?xml version="1.0" encoding="UTF-8"?>
<listings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://www.gstatic.com/localfeed/local_feed.xsd">
  <language>en</language>
  <listing>
    <!-- The value of <id> must be unique to your site for all time. Do NOT reuse IDs. -->
    <id>123abc</id>
    <name>Belgrave House</name>
    <address format="simple">
      <component name="addr1">6 Acacia Ave</component>
      <component name="addr2">Floor 5</component>
      <component name="city">London</component>
      <component name="province">Greater London</component>
      <component name="postal_code">SW1W 9TQ</component>
    </address>
    <country>GB</country>
    <latitude>35.070374</latitude>
    <longitude>-106.213648</longitude>
    <phone type="main">123-456-7890</phone>
    <category>hotel</category> <!-- You can use whatever property type categories you wish -->
  </listing>
  ...
</listings>

Địa chỉ dạng tự do

Ví dụ sau đây cho thấy một phần danh sách khách sạn có địa chỉ dạng tuỳ ý:

<?xml version="1.0" encoding="UTF-8"?>
<listings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://www.gstatic.com/localfeed/local_feed.xsd">
  <language>en</language>
  <listing>
    <!-- The value of <id> must be unique to your site for all time. Do NOT reuse IDs. -->
    <id>123abc</id>
    <name>Belgrave House</name>
    <address>6 Elm Ave, Boston, MA, 02472</address>
    <country>US</country>
    <latitude>35.070374</latitude>
    <longitude>-106.213648</longitude>
    <phone type="main">123-456-7890</phone>
    <category>hotel</category> <!-- You can use whatever property type categories you wish -->
  </listing>
  ...
</listings>

Nội dung không bắt buộc

Ví dụ sau đây cho thấy một phần danh sách khách sạn có một cơ sở lưu trú chứa <content> không bắt buộc:

<?xml version="1.0" encoding="UTF-8"?>
<listings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://www.gstatic.com/localfeed/local_feed.xsd">
  <language>en</language>
  <listing>
    <id>123456</id>
    <name>My Apartment</name>
    <address format="simple">
      <component name="addr1">1 Sandstone Building</component>
      <component name="city">Los Angeles</component>
      <component name="postal_code">90210</component>
      <component name="province">CA</component>
    </address>
    <country>US</country>
    <latitude>40.730610</latitude>
    <longitude>-73.935242</longitude>
    <phone type="main">12345678</phone>
    <category>hotel</category> <!-- You can use whatever property type categories you wish -->
    <content>
      <text type="description">
        <link>https://examplelisting.com/listings/12345</link>
        <title>3 bedrooms with ocean views</title>
        <body>Stay in this newly renovated 3BR house with ocean views.</body>
        <date month="7" day="23" year="2023"/>
      </text>
      <review type="editorial">
        <link>https://example.com/reviews/42</link>
        <title>A little piece of heaven</title>
        <author>EXAMPLE.COM</author>
        <rating>8</rating>
        <body>This place is really good.</body>
      </review>
      <review type="user">
        <link>https://exampleperson.org/reviews/82</link>
        <author>Susan von Trapp</author>
        <rating>6</rating>
        <body>Not a bad place, but I prefer to be closer to the beach.</body>
        <date day="6" month="7" year="2023"/>
        <servicedate day="16" month="6" year="2023"/>
      </review>
      <attributes>
        <website>https://hotel.example.com</website>
        <client_attr name="rating">8.2</client_attr>
        <client_attr name="num_reviews">14</client_attr>
      </attributes>
      <image type="photo" url="https://image_url">
        <link>https://image_url</link>
        <title>Main hotel picture</title>
      </image>
    </content>
  </listing>
  ...
</listings>

<listing>

Định nghĩa về khách sạn trong phần tử <listings> của danh sách khách sạn.

Phần tử <listing> xuất hiện ở vị trí sau đây trong hệ thống phân cấp viết bằng XML của Nguồn cấp dữ liệu danh sách khách sạn:

+ <listings>
    + <language>
    + <listing>

Cú pháp

Phần tử <listing> sử dụng cú pháp sau:

<?xml version="1.0" encoding="UTF-8"?>
<listings ... >
  <listing>
    <!-- Specify <listing>'s child elements in the order shown below. -->
    <id>hotel_ID</id>
    <name>hotel_name</name>
    <address>
      <component name="addr1">street_address_1</component>
      <component name="addr2">street_address_2</component>
      <component name="city">city_name</component>
      <component name="province">province_name</component>
      <component name="postal_code">postal_code</component>
    </address>
    <!-- You can also define an address freeform, although this is not recommended: -->
    <!-- <address>freeform_address</address> -->

    <country>country_code</country>
    <latitude>hotel_latitude</latitude>
    <longitude>hotel_longitude</longitude>
    <phone type="[fax|main|mobile|tdd|tollfree]">phone_number</phone>
    <category>hotel</category> <!-- You can use whatever property type categories you wish -->
    <content>content</content>
  </listing>
</listings>

Thuộc tính

Phần tử <listing> không có thuộc tính nào.

Phần tử con

Phần tử <listing> có các phần tử con như sau:

Phần tử con Bắt buộc? Loại Nội dung mô tả
<id> Required string Giá trị nhận dạng duy nhất của khách sạn.

Lưu ý: Giá trị này phải là duy nhất cho trang web của bạn mọi lúc. Đừng không sử dụng lại mã nhận dạng vì việc này có thể gây ra sự cố khi giải quyết các vấn đề về việc so khớp cơ sở lưu trú.

<name> Required string Tên khách sạn. Ví dụ:
<name>Belgrave House</name>
<address> Required Object or string

Vị trí thực tế đầy đủ của khách sạn.

Phần tử này có một thuộc tính duy nhất là format mà bạn phải thiết lập thành simple.

Ít nhất, bạn phải cung cấp địa chỉ đường phố, thành phố, tiểu bang hoặc khu vực và mã bưu chính của khách sạn. Hãy sử dụng các phần tử con <component> để mô tả từng phần sau đây của địa chỉ:

  • addr1: Địa chỉ đường chính của khách sạn.
  • addr2: Địa chỉ đường phố phụ, nếu cần.
  • addr3: Phần thứ ba của địa chỉ đường phố, nếu cần.
  • city: Tên thành phố nơi toạ lạc của khách sạn.
  • province: Tên tiểu bang, khu vực hoặc tỉnh của khách sạn.
  • postal_code: Mã bưu chính của khách sạn.

Ví dụ:

<address format="simple">
  <component name="addr1">6 Acacia Ave</component>
  <component name="addr2">Floor 5</component>
  <component name="city">London</component>
  <component name="province">Greater London</component>
  <component name="postal_code">SW1W 9TQ</component>
</address>

Ngoài ra, bạn có thể cung cấp địa chỉ "dạng tuỳ ý" mặc dù bạn không nên làm vậy. Ví dụ:

<address>6 Elm Ave, Boston, MA, 02472</address>

Xin lưu ý rằng các địa chỉ hòm thư hoặc các địa chỉ chỉ nhận thư không được coi là địa chỉ thực tế đầy đủ.

<country> Required string Quốc gia nơi đặt trang thông tin này. Giá trị nhập vào phải là mã quốc gia gồm hai chữ cái. Ví dụ: Hoa Kỳ là "US" và Canada là "CA". Ví dụ:
<country>US</country>
<latitude> Required* float Vĩ độ tương ứng với vị trí của trang thông tin. Ví dụ:
<latitude>37.423738</latitude>

Bạn có thể tạo giá trị này bằng các công cụ Mã hoá địa lý như API Google Maps.

<longitude> Required* float Kinh độ tương ứng với vị trí của trang thông tin. Ví dụ:
<longitude>-122.090101</longitude>

Bạn có thể tạo giá trị này bằng các công cụ Mã hoá địa lý như API Google Maps.

<location_precision> Optional integer Độ chính xác cho vị trí của cơ sở lưu trú mà bạn gửi (tính bằng mét) khi vĩ độ và kinh độ của cơ sở lưu trú bị làm rối mã nguồn. Số không (0) có nghĩa là không có làm rối mã nguồn và đó là vị trí chính xác. Lưu ý: Phần tử này chỉ áp dụng cho nhà nghỉ dưỡng cho thuê.
<phone> Required* string

Một hoặc nhiều số điện thoại liên hệ của khách sạn. Nếu cơ sở lưu trú là chi nhánh doanh nghiệp, vui lòng cung cấp số điện thoại của riêng chi nhánh (không phải số điện thoại của trụ sở chính).

Thuộc tính type có thể là một trong những loại sau đây:

  • fax: Số điện thoại fax.
  • main: Số điện thoại chính.
  • mobile: Số điện thoại di động.
  • tdd: Số điện thoại Thiết bị viễn thông dành cho người khiếm thính (TDD).
  • tollfree: Số điện thoại gọi miễn phí.

Ví dụ:

<!-- Singapore (country code +65) -->
<phone type="main">+65 6722-2323</phone>
<!-- U.S. (country code +1) -->
<phone type="fax">+1 408-555-1111</phone>

Ít nhất, bạn nên cung cấp loại main.

<category> Optional string Loại cơ sở lưu trú, chẳng hạn như khách sạn. Đối tác có thể sử dụng bất kỳ danh mục nội bộ nào để mô tả cơ sở lưu trú, chẳng hạn như "khách sạn thương mại", "khu nghỉ dưỡng", "nhà nghỉ" và các danh mục tương tự.
<content> Optional <content> Các thông tin chi tiết không bắt buộc dùng cho trang thông tin, chẳng hạn như nội dung mô tả, điểm xếp hạng và đặc điểm của cơ sở lưu trú.

* Bạn phải nhập số điện thoại hoặc vĩ độ/kinh độ. Bạn nên xác định cả hai.

Ví dụ

Địa chỉ có cấu trúc

Ví dụ sau đây cho thấy một phần danh sách khách sạn có địa chỉ có cấu trúc:

<?xml version="1.0" encoding="UTF-8"?>
<listings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://www.gstatic.com/localfeed/local_feed.xsd">
  <language>en</language>
  <listing>
    <!-- The value of <id> must be unique to your site for all time. Do NOT reuse IDs. -->
    <id>123abc</id>
    <name>Belgrave House</name>
    <address format="simple">
      <component name="addr1">6 Acacia Ave</component>
      <component name="addr2">Floor 5</component>
      <component name="city">London</component>
      <component name="province">Greater London</component>
      <component name="postal_code">SW1W 9TQ</component>
    </address>
    <country>GB</country>
    <latitude>35.070374</latitude>
    <longitude>-106.213648</longitude>
    <phone type="main">123-456-7890</phone>
    <category>hotel</category> <!-- You can use whatever property type categories you wish -->
  </listing>
  ...
</listings>

Địa chỉ dạng tự do

Ví dụ sau đây cho thấy một phần danh sách khách sạn có địa chỉ dạng tuỳ ý:

<?xml version="1.0" encoding="UTF-8"?>
<listings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://www.gstatic.com/localfeed/local_feed.xsd">
  <language>en</language>
  <listing>
    <!-- The value of <id> must be unique to your site for all time. Do NOT reuse IDs. -->
    <id>123abc</id>
    <name>Belgrave House</name>
    <address>6 Elm Ave, Boston, MA, 02472</address>
    <country>US</country>
    <latitude>35.070374</latitude>
    <longitude>-106.213648</longitude>
    <phone type="main">123-456-7890</phone>
    <category>hotel</category> <!-- You can use whatever property type categories you wish -->
  </listing>
  ...
</listings>

Nội dung không bắt buộc

Ví dụ sau đây cho thấy một phần danh sách khách sạn có một cơ sở lưu trú chứa <content> không bắt buộc:

<?xml version="1.0" encoding="UTF-8"?>
<listings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://www.gstatic.com/localfeed/local_feed.xsd">
  <language>en</language>
  <listing>
    <id>123456</id>
    <name>My Apartment</name>
    <address format="simple">
      <component name="addr1">1 Sandstone Building</component>
      <component name="city">Los Angeles</component>
      <component name="postal_code">90210</component>
      <component name="province">CA</component>
    </address>
    <country>US</country>
    <latitude>40.730610</latitude>
    <longitude>-73.935242</longitude>
    <phone type="main">12345678</phone>
    <category>hotel</category> <!-- You can use whatever property type categories you wish -->
    <content>
      <text type="description">
        <link>https://examplelisting.com/listings/12345</link>
        <title>3 bedrooms with ocean views</title>
        <body>Stay in this newly renovated 3BR house with ocean views.</body>
        <date month="7" day="23" year="2023"/>
      </text>
      <review type="editorial">
        <link>https://example.com/reviews/42</link>
        <title>A little piece of heaven</title>
        <author>EXAMPLE.COM</author>
        <rating>8</rating>
        <body>This place is really good.</body>
      </review>
      <review type="user">
        <link>https://exampleperson.org/reviews/82</link>
        <author>Susan von Trapp</author>
        <rating>6</rating>
        <body>Not a bad place, but I prefer to be closer to the beach.</body>
        <date day="6" month="7" year="2023"/>
        <servicedate day="16" month="6" year="2023"/>
      </review>
      <attributes>
        <website>https://hotel.example.com</website>
        <client_attr name="rating">8.2</client_attr>
        <client_attr name="num_reviews">14</client_attr>
      </attributes>
      <image type="photo" url="https://image_url">
        <link>https://image_url</link>
        <title>Main hotel picture</title>
      </image>
    </content>
  </listing>
  ...
</listings>

<content>

Thêm thông tin về trang thông tin, chẳng hạn như điểm xếp hạng và bài đánh giá, tiện nghi và các thông tin chi tiết khác. Phần tử <content> là không bắt buộc. Trong <content>, tất cả các phần tử con đều không bắt buộc.

Phần tử <content> xuất hiện ở vị trí sau đây trong hệ thống phân cấp viết bằng XML của Nguồn cấp dữ liệu danh sách khách sạn:

+ <listings>
    + <language>
    + <listing>
        + <content>

Cú pháp

Phần tử <content> sử dụng cú pháp sau:

<?xml version="1.0" encoding="UTF-8"?>
<listings ... >
  <listing>
    <content>
      <!-- Specify <text>'s child elements in the order shown below. -->
      <text type="description">
        <link>listing_link</link>
        <title>listing_title</title>
        <author>listing_author</author>
        <body>listing_description</body>
        <date month="MM" day="DD" year="YYYY"/>
      </text>
      <!-- 0 or more reviews: -->
      <review type="[editorial|user]">
        ...
      </review>
      <!-- 0 or more attributes: -->
      <attributes>
        <website>https://hotel.example.com</website>
        <client_attr name="alternate_hotel_id">alternate_hotel_id</client_attr>
        <client_attr name="custom_0">custom_attribute_0</client_attr>
        <client_attr name="custom_1">custom_attribute_1</client_attr>
        <client_attr name="custom_2">custom_attribute_2</client_attr>
        <client_attr name="custom_3">custom_attribute_3</client_attr>
        <client_attr name="custom_4">custom_attribute_4</client_attr>
        <client_attr name="hotel_brand">hotel_brand</client_attr>
        <client_attr name="num_reviews">number_of_reviews</client_attr>
        <client_attr name="rating">aggregate_rating</client_attr>
      </attributes>
      <!-- a picture of the hotel or property-->
      <image type="photo" url="https://image_url">
        <link>https://image_url</link>
        <title>Main Hotel Picture</title>
      </image>
    </content>
  </listing>
  ...
</listings>

Thuộc tính

Phần tử <content> không có thuộc tính nào.

Phần tử con

Phần tử <content> có các phần tử con như sau:

Phần tử con Bắt buộc? Loại Nội dung mô tả
<text type="description"> Optional Object

Trang web liên kết với trang thông tin của nhà cung cấp. Có các phần tử con sau đây:

  • <link>: Đường liên kết đến nội dung mô tả. Thêm "http://" hoặc
    "https://" vào phần tử này (không bắt buộc).
  • <title>: Tiêu đề cho nội dung mô tả (không bắt buộc).
  • <author>: Tác giả của nội dung mô tả (không bắt buộc).
  • <body>: Nội dung mô tả (bắt buộc).
  • <date>: Ngày mô tả (không bắt buộc).
  • Lưu ý: Các phần tử này phải xuất hiện theo thứ tự nêu trên.

<review type="[editorial|user]"> Optional <review>

Có bài đánh giá của người dùng hoặc bài đánh giá của người biên tập về trang thông tin. Trang thông tin của bạn có thể có bao nhiêu bài đánh giá, thuộc một trong hai loại này.

Bạn không cần đưa tất cả bài đánh giá về cơ sở lưu trú vào phần tử <listing>. Mục đích của phần tử này là để bạn cung cấp các bài đánh giá chọn lọc thể hiện được đặc điểm hoặc chất lượng của cơ sở lưu trú này.

<attributes> Optional Object

Chứa từ 0 phần tử con <client_attr> trở lên để cung cấp thông tin chi tiết về cơ sở lưu trú. Các phần tử con sử dụng cú pháp sau:

<client_attr name="attribute_name">attribute_value<client_attr>

Để xem danh sách và nội dung mô tả các phần tử con, hãy tham khảo <attributes>.

Tất cả phần tử <client_attr> đều không bắt buộc.

Nếu có phần tử con <website>, thì phần tử đó phải được đặt trước phần tử <client_attr> bất kỳ.

<image> Optional Object Thẻ lặp lại chứa thông tin chi tiết về hình ảnh.

Ví dụ:

Ví dụ sau đây cho thấy một phần danh sách khách sạn có phần tử <content>:

<?xml version="1.0" encoding="UTF-8"?>
<listings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://www.gstatic.com/localfeed/local_feed.xsd">
  <language>en</language>
  <listing>
    <id>123456</id>
    <name>My Apartment</name>
    <address format="simple">
      <component name="addr1">1 Sandstone Building</component>
      <component name="city">Los Angeles</component>
      <component name="postal_code">90210</component>
      <component name="province">CA</component>
    </address>
    <country>US</country>
    <latitude>40.730610</latitude>
    <longitude>-73.935242</longitude>
    <phone type="main">12345678</phone>
    <category>hotel</category> <!-- You can use whatever property type categories you wish -->
    <content>
      <text type="description">
        <link>https://examplelisting.com/listings/12345</link>
        <title>3 bedrooms with ocean views</title>
        <body>Stay in this newly renovated 3BR house with ocean views.</body>
        <date month="7" day="23" year="2023"/>
      </text>
      <review type="editorial">
        <link>https://example.com/reviews/42</link>
        <title>A little piece of heaven</title>
        <author>EXAMPLE.COM</author>
        <rating>8</rating>
        <body>This place is really good.</body>
      </review>
      <review type="user">
        <link>https://exampleperson.org/reviews/82</link>
        <author>Susan von Trapp</author>
        <rating>6</rating>
        <body>Not a bad place, but I prefer to be closer to the beach.</body>
        <date day="6" month="7" year="2023"/>
        <servicedate day="16" month="6" year="2023"/>
      </review>
      <attributes>
        <website>https://hotel.example.com</website>
        <client_attr name="rating">8.2</client_attr>
        <client_attr name="num_reviews">14</client_attr>
      </attributes>
      <image type="photo" url="https://image_url">
        <link>https://image_url</link>
        <title>Main hotel picture</title>
      </image>
    </content>
  </listing>
  ...
</listings>

<review>

Có bài đánh giá của người dùng hoặc bài đánh giá của người biên tập. Bạn không cần đưa tất cả các bài đánh giá về cơ sở lưu trú vào phần tử <listing>. Mục đích của phần tử này là để bạn đưa các bài đánh giá chọn lọc cho biết đặc điểm hoặc chất lượng của cơ sở lưu trú này.

Phần tử <review> xuất hiện ở vị trí sau đây trong hệ thống phân cấp viết bằng XML của Nguồn cấp dữ liệu danh sách khách sạn:

+ <listings>
    + <language>
    + <listing>
        + <content>
            + <review>

Cú pháp

Phần tử <review> sử dụng cú pháp sau:

<?xml version="1.0" encoding="UTF-8"?>
<listings ... >
  <listing>
    <content>
      ...
      <!-- Specify <review>'s child elements in the order shown below. -->
      <review type="editorial">
        <link>review_link</link>
        <title>review_title</title> <!-- Title is for reviews of type "editorial" only -->
        <author>review_author</author>
        <rating>review_rating</rating>
        <body>review_text</body>
        <date>review_date</date>
        <servicedate>review_servicedate</servicedate>
      </review>
      <review type="user">
        <link>review_link</link>
        <author>review_author</author>
        <date month="MM" day="DD" year="YYYY"/>  <!-- Date is for reviews of type "user" only -->
        <servicedate month="MM" day="DD" year="YYYY"/>  <!-- Service Date is for reviews of type "user" only -->
        <rating>review_rating</rating>
        <body>review_text</body>
      </review>
    </content>
  </listing>
</listings>

Thuộc tính

Phần tử <review> có các thuộc tính như sau:

Thuộc tính Bắt buộc? Nội dung mô tả
type Required Loại bài đánh giá. Đặt thành một trong các giá trị sau:
  • editorial: Bài đánh giá của một trang web hoặc cơ quan đánh giá khác.
  • user: Bài đánh giá của một người dùng cuối.

Phần tử con

Phần tử <review> có các phần tử con như sau:

Phần tử con Bắt buộc? Loại Nội dung mô tả
<link> Optional string Đường liên kết đến bài đánh giá. Thêm "http://" hoặc "https://" vào phần tử này.
<title> Optional string (Chỉ dành cho bài đánh giá của người biên tập) Tiêu đề của bài đánh giá.
<author> Optional string Tác giả của bài đánh giá; ví dụ: "Susan von Trapp". Đây cũng có thể là tên của trang web hoặc ấn bản nơi bài đánh giá xuất hiện nếu bài đánh giá đó chưa được công nhận.
<rating> Optional string Một số dấu phẩy động từ 0 đến 10 (bao gồm) biểu thị điểm của bài đánh giá. Ví dụ: "8.9".
<body> Optional string Nội dung của bài đánh giá. Phần tử này không được chứa HTML.
<date month="MM" day="DD" year="YYYY"/> Optional Object (Chỉ dành cho bài đánh giá của người dùng) Ngày đánh giá mà bạn chỉ định bằng các thuộc tính sau của phần tử này:
  • day: Ngày trong tháng; ví dụ: "7".
  • month: Tháng, trong đó 1 = tháng 1 ... 12 = tháng 12.
  • year: Năm gồm bốn chữ số; ví dụ: "2023".

Ví dụ: Ngày 7 tháng 6 năm 2023 được viết là:

<date month="6" day="7" year="2023"/>
<servicedate month="MM" day="DD" year="YYYY"/> Optional Object (Chỉ dành cho các bài đánh giá của người dùng) Ngày mà người đánh giá truy cập vào cơ sở lưu trú được đánh giá. Định dạng giống như <date> ở trên.

Ví dụ: Ngày 7 tháng 6 năm 2023 được viết là:

<servicedate month="6" day="7" year="2023"/>

Những bài đánh giá không điền ít nhất tháng và năm <servicedate> có thể sẽ không xuất hiện. Bạn không bắt buộc phải nhập ngày.

Xin lưu ý rằng <title> chỉ là phần tử con hợp lệ của <review> nếu type của bài đánh giá là editorial<date> chỉ hợp lệ nếu typeuser.

Ví dụ:

Ví dụ sau đây cho thấy một phần danh sách khách sạn có một trang thông tin có bài đánh giá của người biên tập và bài đánh giá của người dùng:

<?xml version="1.0" encoding="UTF-8"?>
<listings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://www.gstatic.com/localfeed/local_feed.xsd">
  <language>en</language>
  <listing>
    <id>123456</id>
    <name>My Apartment</name>
    <address format="simple">
      <component name="addr1">1 Sandstone Building</component>
      <component name="city">Los Angeles</component>
      <component name="postal_code">90210</component>
      <component name="province">CA</component>
    </address>
    <country>US</country>
    <latitude>40.730610</latitude>
    <longitude>-73.935242</longitude>
    <phone type="main">12345678</phone>
    <category>hotel</category> <!-- You can use whatever property type categories you wish -->
    <content>
      <text type="description">
        <link>https://examplelisting.com/listings/12345</link>
        <title>3 bedrooms with ocean views</title>
        <body>Stay in this newly renovated 3BR house with ocean views.</body>
        <date month="7" day="23" year="2023"/>
      </text>
      <review type="editorial">
        <link>https://example.com/reviews/42</link>
        <title>A little piece of heaven</title>
        <author>EXAMPLE.COM</author>
        <rating>8</rating>
        <body>This place is really good.</body>
      </review>
      <review type="user">
        <link>https://exampleperson.org/reviews/82</link>
        <author>Susan von Trapp</author>
        <rating>6</rating>
        <body>Not a bad place, but I prefer to be closer to the beach.</body>
        <date day="6" month="7" year="2023"/>
        <servicedate day="16" month="6" year="2023"/>
      </review>
      <attributes>
        <website>https://hotel.example.com</website>
        <client_attr name="rating">8.2</client_attr>
        <client_attr name="num_reviews">14</client_attr>
      </attributes>
      <image type="photo" url="https://image_url">
        <link>https://image_url</link>
        <title>Main hotel picture</title>
      </image>
    </content>
  </listing>
  ...
</listings>

<attributes>

Bạn có thể dùng thẻ <attributes> để mô tả các tiện nghi của cơ sở lưu trú cũng như phân loại điểm xếp hạng và bài đánh giá về cơ sở lưu trú.

+ <listings>
    + <language>
    + <listing>
        + <content>
            + <review>
            + <attributes>

Phần tử con

Phần tử con Bắt buộc? Nội dung mô tả
<website> Optional Trang web chính của khách sạn. Nếu có, bạn phải đặt phần tử này trước phần tử <client_attr> đầu tiên. Ví dụ:
<website>https://hotel.example.com</website>
<client_attr name="attribute_name"> Optional Một đặc điểm hoặc "thuộc tính" bổ sung của cơ sở lưu trú có thể được chỉ định bằng attribute_name hoặc attribute_name được hỗ trợ đối với nhà nghỉ dưỡng cho thuê.

Giá trị cho phần giữ chỗ attribute_name

Bảng sau đây liệt kê các giá trị hợp lệ cho attribute_name trong phần tử <client_attr name="attribute_name">.

Giá trị cho attribute_name Nội dung mô tả Giá trị nội dung hợp lệ
alternate_hotel_id Giá trị nhận dạng thay thế cho cơ sở lưu trú của bạn. Việc có mã nhận dạng riêng sẽ rất hữu ích nếu bạn có thể cần một giá trị nhận dạng cơ sở lưu trú trong thông tin nguồn cấp dữ liệu và một giá trị nhận dạng cơ sở lưu trú khác cho công cụ đặt phòng. Giá trị chuỗi bất kỳ
custom_[0-4] Thuộc tính tuỳ chỉnh bất kỳ kiểu chuỗi. Người dùng sẽ không thấy những thông tin này. Giá trị chuỗi bất kỳ
hotel_brand Thương hiệu của khách sạn này. Ví dụ: "Marriott" hoặc "Hilton". Tên này không hiển thị cho người dùng nhưng có thể dùng để nhóm khách sạn. Giá trị chuỗi bất kỳ
lodging Biểu diễn được mã hoá của tất cả các trường có trong giao thức Lodging. Chuỗi được mã hoá base64 của được mã hoá Lodging proto
num_reviews Số bài đánh giá về cơ sở lưu trú. Số nguyên không âm bất kỳ.
rating Số thực cho biết điểm xếp hạng tổng hợp của cơ sở lưu trú. Con số này thường từ 0 đến 5, 0 đến 10 hoặc 0 đến 100. Tuy nhiên, bạn có thể sử dụng bất kỳ phạm vi nào đại diện cho hệ thống xếp hạng của mình.

Giá trị cho phần giữ chỗ attribute_name của nhà nghỉ dưỡng cho thuê

Hãy tham khảo các thuộc tính của nhà nghỉ dưỡng cho thuê và ví dụ về tệp XML.

<image>

+ <listings>
    + <language>
    + <listing>
        + <content>
            + <review>
            + <attributes>
            + <image>

Hình ảnh dùng để cho thấy cơ sở lưu trú trong mã trang thông tin. Tất cả hình ảnh bạn dùng phải tuân thủ các nguyên tắc sau:

  • Tỷ lệ khung hình nên dùng cho hình ảnh là 4:3.
  • Trình thu thập thông tin Googlebot Image phải truy cập được vào URL của hình ảnh.
  • Nếu trang web của bạn có tệp robots.txt ở cấp thư mục gốc, hãy xác minh rằng trang web đó có chứa một trong hai tuỳ chọn dưới đây:

    1. Cho phép trình thu thập thông tin Googlebot thu thập nội dung trang web của bạn, bao gồm cả hình ảnh.

      • User-agent: Googlebot
      • Allow: /
    2. Cho phép trình thu thập thông tin Googlebot Image thu thập hình ảnh trên trang web của bạn.

      • User-agent: Googlebot-Image
      • Allow: /
  • Không được phép ảnh chụp màn hình của hình ảnh hoặc trang web. Hình ảnh phải là hình ảnh gốc hoặc ảnh chụp thực tế.

Thuộc tính

  • "ad" nếu hình ảnh là quảng cáo
  • "menu" nếu hình ảnh là thực đơn nhà hàng
  • "photo" nếu hình ảnh là ảnh của doanh nghiệp
Tên thuộc tính Bắt buộc? Định dạng Nội dung mô tả
type Required Text

Hình ảnh phải là một trong những loại sau:

url Required Text URL của hình ảnh có kích thước đầy đủ. Sử dụng thuộc tính URL để chỉ định hình ảnh sẽ sử dụng trên trang đó.
width Required A non-negative integer Chiều rộng của hình ảnh, tính bằng pixel (nên lớn hơn 720 pixel)
height Required A non-negative integer Chiều cao của hình ảnh, tính bằng pixel (nên lớn hơn 720 pixel)

Phần tử con

Phần tử con Bắt buộc? Nội dung mô tả
<link> Theo yêu cầu, nhưng bắt buộc đối với trang thông tin ảnh địa phương. Thẻ này chứa URL hợp lệ và mới nhất của trang có hình ảnh liên quan trên trang web của bạn. Hình ảnh này không chứa URL của hình ảnh. Ví dụ:
<link><http://www.example.com/magic_pizza/></link>
<title> Ðã yêu cầu Thẻ này chứa tiêu đề của hình ảnh. Ví dụ:
<title>"Luxury Apartment"</title>
<author> Không bắt buộc Tên tác giả nội dung. Giá trị có thể là tên người dùng hoặc tên đầy đủ ở định dạng "Tên Họ".
<date> Bắt buộc

Thẻ này xác định ngày tạo mục nội dung. Bạn phải nhập năm, tháng và ngày như trong ví dụ sau:

<date month="6" day="7" year="2023"/>

Ví dụ:

Ví dụ sau đây cho thấy một phần danh sách khách sạn có các thẻ hình ảnh:

<?xml version="1.0" encoding="UTF-8"?>
<listings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://www.gstatic.com/localfeed/local_feed.xsd">
  <language>en</language>
  <listing>
    <content>
      <review>
      </review>
      <attributes>
      </attributes>
      <image type="photo" url="https://image_url" width="400" height="300">
        <link>https://image_url</link>
        <title>Apartment at Sandstone</title>
        <author>Jessica Landlord</author>
        <date month="6" day="7" year="2023"/>
      </image>
    </content>
  </listing>
  ...
</listings>

Nguyên tắc cú pháp

Khi tạo danh sách khách sạn dạng XML, hãy làm theo các nguyên tắc sau:

  • Xác thực tệp XML của Danh sách khách sạn bằng Giản đồ XSD của Google.

  • Sử dụng bộ mã hoá UTF-8. Chỉ định giản đồ mã hoá này bằng cách đưa thuộc tính encoding vào thẻ XML, như minh hoạ trong các ví dụ bên dưới.

  • Bạn có thể chỉ định giá trị dữ liệu trong nguồn cấp dữ liệu của mình bằng các phần CDATA. Nếu bạn sử dụng các phần CDATA, đừng thoát ký tự đặc biệt.

  • Hãy sử dụng mã thoát cho các giá trị dữ liệu không nằm trong phần CDATA, bao gồm cả URL. Bạn có thể sử dụng mã thực thể hoặc mã ký tự để biểu thị các ký tự đặc biệt này. Bảng sau đây liệt kê các mã thực thể và mã ký tự phổ biến mà bạn có thể sử dụng:

    Ký tự Thực thể Mã ký tự
    Dấu và (&) &amp; &#38;
    Dấu nháy đơn (') &apos; &#39;
    Dấu ngoặc kép (") &quot; &#34;
    Lớn hơn (>) &gt; &#62;
    Nhỏ hơn (<) &lt; &#60;
  • Bỏ qua các phần tử XML không chứa dữ liệu. Ví dụ: nếu không có vĩ độ và kinh độ của khách sạn, bạn không nên thêm các phần tử <latitude/><longitude/> trống.

  • Đừng sử dụng HTML trong các phần tử XML trong bất kỳ trường hợp nào (ngay cả khi đã thoát).

  • Để xác thực nguồn cấp dữ liệu trước khi tải lên, bạn có thể sử dụng XSD cho nguồn cấp dữ liệu cục bộ http://www.gstatic.com/localfeed/local_feed..

  • Để sử dụng nhận xét trong nguồn cấp dữ liệu, hãy gói nhận xét trong các thẻ <!---->, như ví dụ sau đây:

    <!-- This is a comment -->
    
  • Hãy nhớ đóng phần tử <date> trong <review> của người dùng. Ví dụ:

    <date day="2" month="12" year="2017"/>