Hotel List Feed XML Reference

The Hotel List Feed is an XML file that lists all hotels for which you will provide pricing information. The Hotel List Feed itself does not contain pricing information.

The root element of a Hotel List Feed is the <listings> element. This element contains <listing> elements that describe your properties.

You create a Hotel List Feed as part of your initial implementation, and then add or remove hotels from it as part of regular maintenance.

After creating a Hotel List Feed, you can upload it to Google using the Hotel List Feed Upload Tool in the Hotel Ads Center.

Listing requirements

To be eligible for Google Hotel Ads, a property in your Hotel List Feed must have the following:

  • Rooms in which paying guests can stay
  • A physical presence and fixed location that is open to the public
  • Fixed walls and plumbing
  • A staffed front desk open during normal business hours
  • A minimum stay requirement of no greater than 7 days

Common examples of ineligible properties include cruises and apartments because they usually don't meet the above criteria.

Camping cabins and other camping establishments with fixed walls, plumbing, and climate control (including wood stoves or propane heaters) are eligible. Outdoor lodgings that are not eligible include:

  • Campsites, where guests stay in tents
  • RV parks, where guests bring their own RV

<listings>

<listings> is the root element of a Hotel List Feed and it contains a <language> element and at least one <listing>.

The <listings> element appears in the following place in the Hotel List Feed XML hierarchy:

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

Syntax

The <listings> element uses the following syntax:

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

Attributes

The <listings> element has the following attributes:

Attribute Required? Description
xmlns:xsi Required Set to "http://www.w3.org/2001/XMLSchema-instance".
xsi:noNamespaceSchemaLocation Required Set to "https://www.gstatic.com/localfeed/local_feed.xsd".

Child elements

The <listings> element has the following child elements:

Child element Required? Type Description
<language> Required String The language in which your feed is written. Set the value of this element to a two-letter language code. For example, "en" for English.
<listing> Required <listing> One or more entries that describe each hotel in the feed. Note that each hotel in the list must have an ID that is unique to your site, and that this ID should never be re-used.

Examples

Structured Address

The following example shows a partial Hotel List Feed with a structured address:

<?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">666 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>UK</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>

Free-Form Address

The following example shows a partial Hotel List Feed with a free-form address:

<?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>666 Acacia Ave, Floor 5, 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>

Optional Content

The following example shows a partial Hotel List Feed with a listing that contains an optional <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 -->
    <date month="7" day="23" year="2017"/>
    <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>
      </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="2017"/>
        <servicedate day="16" month="6" year="2017"/>
      </review>
      <attributes>
        <website>https://hotel.example.com</website>
        <client_attr name="rating">8.2</client_attr>
        <client_attr name="star_rating">4</client_attr>
        <client_attr name="num_reviews">14</client_attr>
        <client_attr name="air_conditioned">Yes</client_attr>
        <client_attr name="has_beach_access">No</client_attr>
        <client_attr name="has_free_breakfast">Yes</client_attr>
        <client_attr name="has_spa">No</client_attr>
        <client_attr name="number_of_rooms">5</client_attr>
        <client_attr name="pets_allowed">Yes</client_attr>
        <client_attr name="wheelchair_accessible">Yes</client_attr>
        <client_attr name="kitchen_availability">Available in all rooms</client_attr>
        <client_attr name="parking_type">No payment required</client_attr>
        <client_attr name="swimming_pool_type">Indoors</client_attr>
        <client_attr name="wifi_type">Paid</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>

A hotel definition within a Hotel List Feed's <listings> element.

The <listing> element appears in the following place in the Hotel List Feed XML hierarchy:

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

Syntax

The <listing> element uses the following syntax:

<?xml version="1.0" encoding="UTF-8"?>
<listings ... >
  <listing>
    <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>

Attributes

The <listing> element has no attributes.

Child elements

The <listing> element has the following child elements:

Child element Required? Type Description
<address> Required Object or String The full physical location of the hotel.

This element takes a single attribute, format, which you must set to "simple".

At a minimum, you must provide the street address, city, state/region, and postal code for the hotel. Use <component> child elements to describe each of the following parts of the address:

  • addr1: The primary street address of the hotel.
  • addr2: The secondary street address, if necessary.
  • addr3: A third portion of the street address, if necessary.
  • city: The name of the hotel's city.
  • province: The name of the hotel's state, region, or province.
  • postal_code: The hotel's postal code.

For example:

<address format="simple">
  <component name="addr1">666 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>

Alternatively, you can provide a "freeform" address, although this is not recommended. For example:

<address>666 Acacia Ave, Floor 5, Boston, MA, 02472</address>

Note that P.O. boxes or other mailing-only addresses are not considered full physical addresses.

<category> Optional String The type of property, such as a hotel. Partners may use whatever internal categories they have to describe their property, such as "business hotels," "resorts," "motels," and similar.
<content> Optional <content> Optional details used for the listing such as a description, ratings, and features of the property.
<country> Required String The country that this listing is located in. The value must be an ISO 3116 uppercase 2-letter country code. For example, United States is "US" and Canada is "CA". For example:

<country>US</country>
<id> Required String A unique identifier for the hotel.

<latitude> Required* Float The latitude that corresponds to the location of the listing. For example:

<latitude>37.423738</latitude>

This value can be generated with GeoCoding tools like the Google Maps API.

<longitude> Required* Float The longitude that corresponds to the location of the listing. For example:

<longitude>-122.090101</longitude>

This value can be generated with GeoCoding tools like the Google Maps API.

<name> Required String The name of the hotel. For example:

<name>Belgrave House</name>
<phone> Required* String

One or more contact numbers for the hotel. If the listing is business branch, please provide the phone number specific to branch location (not the phone number of central headquarters).

The type attribute can be one of the following:

  • fax: Fax telephone number.
  • main: Main voice telephone number.
  • mobile: Mobile telephone number.
  • tdd: Telecommunications Device for the Deaf (TDD) telephone number.
  • tollfree: Toll free telephone number.

For example:

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

At a minimum, you should provide a main type.

* Either a phone number OR latitude/longitude are required. We recommend that you define both.

Examples

Structured Address

The following example shows a partial Hotel List Feed with a structured address:

<?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">666 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>UK</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>

Free-Form Address

The following example shows a partial Hotel List Feed with a free-form address:

<?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>666 Acacia Ave, Floor 5, 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>

Optional Content

The following example shows a partial Hotel List Feed with a listing that contains an optional <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 -->
    <date month="7" day="23" year="2017"/>
    <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>
      </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="2017"/>
        <servicedate day="16" month="6" year="2017"/>
      </review>
      <attributes>
        <website>https://hotel.example.com</website>
        <client_attr name="rating">8.2</client_attr>
        <client_attr name="star_rating">4</client_attr>
        <client_attr name="num_reviews">14</client_attr>
        <client_attr name="air_conditioned">Yes</client_attr>
        <client_attr name="has_beach_access">No</client_attr>
        <client_attr name="has_free_breakfast">Yes</client_attr>
        <client_attr name="has_spa">No</client_attr>
        <client_attr name="number_of_rooms">5</client_attr>
        <client_attr name="pets_allowed">Yes</client_attr>
        <client_attr name="wheelchair_accessible">Yes</client_attr>
        <client_attr name="kitchen_availability">Available in all rooms</client_attr>
        <client_attr name="parking_type">No payment required</client_attr>
        <client_attr name="swimming_pool_type">Indoors</client_attr>
        <client_attr name="wifi_type">Paid</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>

Adds information about a listing, such as ratings and reviews, amenities, and other details. The <content> element is optional. Within <content>, all child elements are optional.

The <content> element appears in the following place in the Hotel List Feed XML hierarchy:

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

Syntax

The <content> element uses the following syntax:

<?xml version="1.0" encoding="UTF-8"?>
<listings ... >
  <listing>
    <content>
      <text type="description">
        <link>listing_link</link>
        <title>listing_title</title>
        <body>listing_description</body>
      </text>
      <!-- 0 or more reviews: -->
      <review type="[editorial|user]">
        ...
      </review>
      <!-- 0 or more attributes: -->
      <attributes>
        <website>https://hotel.example.com</website>
        <client_attr name="air_conditioned">[No|Yes]</client_attr>
        <client_attr name="all_inclusive_available">[No|Yes]</client_attr>
        <client_attr name="child_friendly">[No|Yes]</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="has_affiliated_golf_course">[No|Yes]</client_attr>
        <client_attr name="has_airport_shuttle">[No|Yes]</client_attr>
        <client_attr name="has_bar_or_lounge">[No|Yes]</client_attr>
        <client_attr name="has_beach_access">[No|Yes]</client_attr>
        <client_attr name="has_business_center">[No|Yes]</client_attr>
        <client_attr name="has_fitness_center">[No|Yes]</client_attr>
        <client_attr name="has_free_breakfast">[No|Yes]</client_attr>
        <client_attr name="has_hot_tub">[No|Yes]</client_attr>
        <client_attr name="has_laundry_service">[No|Yes]</client_attr>
        <client_attr name="has_restaurant">[No|Yes]</client_attr>
        <client_attr name="has_room_service">[No|Yes]</client_attr>
        <client_attr name="has_spa">[No|Yes]</client_attr>
        <client_attr name="hotel_brand">hotel_brand</client_attr>
        <client_attr name="kitchen_availability">[Available in all rooms|Available in some rooms|
          Not available]</client_attr>
        <client_attr name="number_of_rooms">rooms_per_unit</client_attr>
        <client_attr name="num_reviews">number_of_reviews</client_attr>
        <client_attr name="parking_type">[No payment required|Paid|Not available]</client_attr>
        <client_attr name="pets_allowed">[No|Yes]</client_attr>
        <client_attr name="rating">aggregate_rating</client_attr>
        <client_attr name="star_rating">[1|2|3|4|5]</client_attr>
        <client_attr name="smoke_free_property">[No|Yes]</client_attr>
        <client_attr name="swimming_pool_type">[Indoors|Outdoors|Indoors and outdoors|Not available]</client_attr>
        <client_attr name="wheelchair_accessible">[No|Yes]</client_attr>
        <client_attr name="wifi_type">[Not available|No payment required|Paid]</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>

Attributes

The <content> element has no attributes.

Child elements

The <content> element has the following child elements:

Child element Required? Type Description
<text 
type=
"description">
Optional Object

The webpage associated with the listing from the provider. Has the following child elements:

  • <link>: A link to the description. Include the "http://" or
    "https://" in this element (optional).
  • <title>: The title for the description (optional).
  • <author>: The author of the description (optional).
  • <body>: The body of the description (required).
  • <date>: The date of the description (optional).
  • Note: These elements must appear in the order above.

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

Contains a user review or an editorial review of the listing. Your listing can have any number of reviews in it, of either type.

You do not need to include all reviews for a property in your <listing> element; this element is intended for you to include selected reviews that illustrate this listing's features or quality.

<attributes> Optional Object

Contains 0 or more <client_attr> child elements that provide details about the property. The child elements use the following syntax:

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

For a list and a description of child elements, refer to <attributes>.

All <client_attr> elements are optional.

If there is a <website> child element, it must be positioned before any <client_attr> element.

<image> Optional Object Repeated tag, contains detailed image information.

Example

The following example shows a partial Hotel List Feed that includes the <content> element:

<?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 -->
    <date month="7" day="23" year="2017"/>
    <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>
      </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="2017"/>
        <servicedate day="16" month="6" year="2017"/>
      </review>
      <attributes>
        <website>https://hotel.example.com</website>
        <client_attr name="rating">8.2</client_attr>
        <client_attr name="star_rating">4</client_attr>
        <client_attr name="num_reviews">14</client_attr>
        <client_attr name="air_conditioned">Yes</client_attr>
        <client_attr name="has_beach_access">No</client_attr>
        <client_attr name="has_free_breakfast">Yes</client_attr>
        <client_attr name="has_spa">No</client_attr>
        <client_attr name="number_of_rooms">5</client_attr>
        <client_attr name="pets_allowed">Yes</client_attr>
        <client_attr name="wheelchair_accessible">Yes</client_attr>
        <client_attr name="kitchen_availability">Available in all rooms</client_attr>
        <client_attr name="parking_type">No payment required</client_attr>
        <client_attr name="swimming_pool_type">Indoors</client_attr>
        <client_attr name="wifi_type">Paid</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>

Contains a user review or an editorial review. You do not need to include all reviews for a listing in your <listing> element; this element is intended for you to include selected reviews that are indicative of this listing's features or quality.

The <review> element appears in the following place in the Hotel List Feed XML hierarchy:

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

Syntax

The <review> element uses the following syntax:

<?xml version="1.0" encoding="UTF-8"?>
<listings ... >
  <listing>
    <content>
      ...
      <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>
      </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>

Attributes

The <review> element has the following attributes:

Attribute Required? Description
type Required The type of review. Set to one of the following values:
  • editorial: A review by a website or other reviewing authority.
  • user: A review by an end user.

Child elements

The <review> element has the following child elements:

Child element Required? Type Description
<author> Optional String The review's author; for example, "Susan von Trapp". This can also be the name of a website or publication in which the review appears if it is uncredited.
<body> Optional String The text of the review. This element should not contain HTML.
<date month="MM" day="DD" year="YYYY"/> Optional Object (User reviews only) The date of the review, which you specify with the following attributes of this element:
  • day: The day of the month; for example, "3".
  • month: The month, where 1 = January. For example, "12".
  • year: The four-digit year; for example, "2018".

For example, June 7th, 2017 is written as:

<date month="6" day="7" year="2017"/>
<servicedate month="MM" day="DD" year="YYYY"/> Optional Object (User reviews only) The date the reviewer visited the listing being reviewed. The format is the same as <date> above.

For example, June 7th, 2017 is written as:

<servicedate month="6" day="7" year="2017"/>
<link> Optional String A link to the review. Include the "http://" or "https://" in this element.
<rating> Optional String A floating point number from 0 to 10 (inclusive) representing the score of the review. For example, "8.9".
<title> Optional String (Editorial reviews only) The title of the review.

Note that <title> is a valid child element of <review> only if the review's type is editorial, and <date> is only valid if type is user.

Example

The following example shows a partial Hotel List Feed with a listing that contains an editorial and a user review:

<?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 -->
    <date month="7" day="23" year="2017"/>
    <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>
      </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="2017"/>
        <servicedate day="16" month="6" year="2017"/>
      </review>
      <attributes>
        <website>https://hotel.example.com</website>
        <client_attr name="rating">8.2</client_attr>
        <client_attr name="star_rating">4</client_attr>
        <client_attr name="num_reviews">14</client_attr>
        <client_attr name="air_conditioned">Yes</client_attr>
        <client_attr name="has_beach_access">No</client_attr>
        <client_attr name="has_free_breakfast">Yes</client_attr>
        <client_attr name="has_spa">No</client_attr>
        <client_attr name="number_of_rooms">5</client_attr>
        <client_attr name="pets_allowed">Yes</client_attr>
        <client_attr name="wheelchair_accessible">Yes</client_attr>
        <client_attr name="kitchen_availability">Available in all rooms</client_attr>
        <client_attr name="parking_type">No payment required</client_attr>
        <client_attr name="swimming_pool_type">Indoors</client_attr>
        <client_attr name="wifi_type">Paid</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>

The <attributes>tag can be used to describe property amenities and to classify ratings and reviews of the property.

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

Note: All attributes are optional.

Child elements

Child element Required? Description
<website> Optional The primary website for the hotel. If present, it must be positioned before the first <client_attr> element. Example:
<website>https://hotel.example.com</website>
Child element Type Description Possible values
air_conditioned Object All of the guest rooms in this property have air conditioning. Yes/No
all_inclusive_available Object There is a room or rate available that includes not just a room, but all food and drinks (including alcoholic beverages) for the duration of the guest's stay. Yes/No
child_friendly Object The business has one or more special features for families traveling with children, such as reduced rates, cots or child-sized beds, a kid's club, a babysitting service, or a suitable entertainment venue or place for children to play on the premises. Yes/No
custom_[0-4] Object Any string-typed custom attribute. These will not be displayed to users, but can be used for grouping hotels in Google Ads campaigns. There are 5 such fields that can be used in this manner that are not interchangeable. For example, a hotel with custom_0 = "City Center" will not be grouped with a hotel with custom_4 = "City Center". Any string value
has_affiliated_golf_course Object This property either has a golf course on its premises or owns a golf course nearby and provides tee-time reservations as well as transportation for guests to and from the course. There is often a fee associated with using the golf course. Yes/No
has_airport_shuttle Object This property offers an airport shuttle, either free or at additional cost. This can be a shuttle that stops at multiple hotels as long as it has an explicit stop at this hotel. Yes/No
has_bar_or_lounge Object There is an indoor and/or outdoor bar or lounge that serves alcoholic beverages. Guests don't have to leave the premises to reach the bar or lounge. Yes/No
has_beach_access Object This property has a beach that is directly accessible without users needing to cross a public road. Yes/No
has_business_center Object This property has a room with a computer, Internet access, and a printer available to guests who need a free or paid workspace for conducting business on the premises. Yes/No
has_fitness_center Object This property has a fitness center. Guests don't have to leave the premises to reach the fitness center. Yes/No
has_free_breakfast Object Free breakfast is available to all guests every day of the week, regardless of room rate. If the hotel has a room rate that includes free breakfast, and a room rate that doesn't include free breakfast, then you should indicate false for this attribute. Yes/No
has_hot_tub Object Either some or all of the guest rooms have a whirlpool or jacuzzi, or the property has a hot tub on the premises. There may be a supplemental charge for the hot tub. Yes/No
has_laundry_service Object Guests can leave their laundry at the front desk or in their rooms and have their laundered clothing returned to their rooms. There may be a supplemental charge for the service. Coin-operated laundry facilities don't count. Yes/No
has_restaurant Object There is a sit-down indoor and/or outdoor restaurant on the premises. Guests don't have to leave the premises to reach the restaurant. Yes/No
has_room_service Object Food is cooked onsite and delivered directly to rooms by staff. Room service hours may be limited. There may be a supplemental charge. Yes/No
has_spa Object There is a spa at the property that provides one or more of the following free or paid services: massage, sauna, and facial treatments. Guests don't have to leave the premises to reach the spa. Yes/No
hotel_brand Object The brand to which this hotel belongs. For example, "Marriott" or "Hilton". This will not be displayed to users but can but used for grouping hotels in Google Ads campaigns. string
kitchen_availability Object Kitchens are available where guests can prepare hot meals and refrigerate food in their rooms.
  • Available in all rooms
  • Available in some rooms
  • Not available
parking_type Object Denotes whether parking is available, and whether it is free or paid.
  • No payment required
  • Paid
  • Not available
pets_allowed Object Some or all rooms allow guests to bring pets (dogs and/or cats that aren't service animals) with them. Yes/No
smoke_free_property Object Smoking isn't allowed throughout the property. Possible values: Yes/No
swimming_pool_type Object Denotes whether a swimming pool is available on the property, and if so, the type of pool.
  • Indoors
  • Outdoors
  • Indoors and outdoors
  • Not available
wheelchair_accessible Object This property is accessible for a person who uses a wheelchair. Yes/No
wifi_type Object Denotes whether the property provides wireless internet (wifi) service for patrons to use in all sections of the property (not limited to a specific area). It may be free or there may be a charge for use.
  • No payment required
  • Paid
  • Not available
The following child elements of <attributes> take special values:
Child element Type Description Possible values
number_of_rooms Object This field lists the total number of units associated with the listing ID. Note:This number doesn't represent the price per booking unit based on pricing and inventory feed data. Any non-negative integer.
num_reviews Object Number of reviews of the listing. Any non-negative integer.
star_rating Object The number of stars given to the listing from a rating organization. 1, 2, 3, 4, 5.
rating Object A floating point number representing the aggregate property rating. This number is typically from 0-5, 0-10, or 0-100, but you can use whatever range reflects your rating system.

Vacation Rentals

The attribute names and values are in string format in the feed. Google will work with partners to map the name/value to Google's internal attributes list. For example, a partner could use "Number Of Bedrooms" as the attribute name, "One" as the attribute value, and Google will map "Number Of Bedrooms" to number_of_bedrooms, and "One" to the integer 1.

Below is a list of attribute names Google supports currently, however, partners are encouraged to provide any additional attribute name/value they may have.

Vacation Rentals attributes

New attributes for <client_attr name="..."> Possible Values Description
capacity Non-negative integer value Maximum number of guests the property can accommodate.
number_of_bedrooms Non-negative integer value Number of bedrooms.
number_of_beds Non-negative integer value Number of beds (in all the rooms).
number_of_bathrooms Non-negative float value, for example, 1, 1.5, 2 Number of bathrooms.
number_of_living_rooms Non-negative integer value Number of living rooms.
room_type Entire Place, Shared room, Private Room Type of property being shared with Google.
Note: Only accepting entire place for now.
bed_type Free text
host_language Free text
partner_rating_score Non-negative float value
check_in_time Free text Time of day for check-in to property.
check_out_time Free text Checkout time of the day.
host_description Free text
refund_policy Free text Property's refund policy.
cancellation_policy Free Text Free-text explanation of cancellation policy.
cancellation_policy_type Strict/Flexible/None Type of cancellation policy accepted by host:
Flexible: For a full refund of accommodation fees, cancellation must be made a full 24 hours prior to listing’s local check-in time (or 3:00 PM if not specified) on the day of check-in.
Moderate - For a full refund of accommodation fees, cancellation must be made five full days prior to listing’s local check-in time (or 3:00 PM if not specified) on the day of check-in.
Strict - For a full refund of accommodation fees, cancellation must be made within 48 hours of booking and at least 14 full days prior to listing’s local check-in time (or 3:00 PM if not specified) on the day of check-in.
minimum_night_stay Non-negative integer
minimum_advance_purchase Non-negative integer
square_footage Non-negative float value The square footage of the property.
host_response_time Free text
host_response_rate Non negative integer value, [0-100]
country ISO 3116 uppercase 2-letter country code (US, CA, JP, FR, UK) The country that this listing is located in. The value must be an ISO 3116 uppercase 2-letter country code. For example, United States is US and Canada is CA.
latlong Latitude, longitude coordinates The latitude, longitude that corresponds to the location of the listing (or obscured location).
name Free text Title of the property listing.
description Free text Description of the property.
rating Non-negative float value Average rating of the property.
rating_num Non-negative integer Number of ratings that the property has.
ac Yes/No Air conditioning details of the property.
airport_shuttle Yes/No Whether the host provides transportation to/from airport or other terminals.
balcony Yes/No Does property have balconies.
beach_access Yes/No Whether the property has access to a public beach close to the property.
child_friendly Yes/No Whether the property is suitable for children.
crib Yes/No Whether the property provide cribs.
elevator Yes/No Whether the property has an elevator.
fire_place Yes/No Whether the property has a fireplace.
free_breakfast Yes/No Whether the property has free breakfast included.
gym_fitness_equipment Yes/No Whether the property has gym or any fitness equipment.
heating Yes/No Whether the property has heating.
hot_tub Yes/No Whether the property has hot tub.
instant_bookable Yes/No Whether the property is instantly bookable through checkout process. The alternative is waiting for approval.
internet_type Free/Paid/None
ironing_board Yes/No Whether the property has ironing boards available.
kitchen Yes/No Whether the property has kitchen.
max_night_stay Non-negative integer value Maximum number of nights a guest can book the property.
microwave Yes/No Whether the property has microwave available.
outdoor_grill Yes/No Whether the property has a grill.
oven_stove Yes/No Whether the property has a stove.
parking_type Free/Paid/None Type of parking available on the property.
patio Yes/No Whether the property has patio.
pool_type Indoors, Outdoors, Indoors/Outdoors, None Type of pool (pool access) the property has.
smoking_free_property Yes/No Whether it is a smoking free property or not.
tv Yes/No Whether the property has TV.
washer_dryer Yes/No Whether the property has laundry (washer/dryer).
wheelchair_accessible Yes/No Whether the property is wheelchair accessible.
any available attribute attribute value

Vacation Rental Example

In this example, the rating and num_reviews applies to all units, while the air_conditioned attribute applies to room roomId1, and host_response_time attribute applies to room roomId2.

By default, if there are multiple units/rooms using the same ID, we assume that the attributes apply to every unit/room. If you want to specify specific attributes for a single unit/room, use the <title> subtag to specify the room id.

<?xml version="1.0" encoding="UTF-8"?>
<listings>
  <language>en</language>
  <listing>
    <id>123456</id>
    <name>Apartment Name</name>
    <address format="simple">
      <component name="addr1">Detailed Address</component>
      <component name="city">New York City</component>
      <component name="postal_code">10013</component>
      <component name="province">New York</component>
    </address>
    <country>US</country>
    <latitude>40.730610</latitude>
    <longitude>-73.935242</longitude>
    <phone type="main">12345678</phone>
    <category>vacation_villa</category>
    <date day="21" month="12" year="2017"/>
    <content>
      <text type="description">
        <link>https://list_url</link>
        <title>Description Title</title>
        <body>Description Body</body>
      </text>
      <attributes>
        <client_attr name="rating">4.5</attr>
        <client_attr name="num_reviews">50</attr>
      </attributes>
      <attributes>
        <title>roomId1</title>
        <client_attr name="air_conditioned">Yes</attr>
        <client_attr name="all_inclusive_available">Yes</attr>
        <client_attr name="child_friendly">Yes</attr>
        <client_attr name="has_affiliated_golf_course">Yes</attr>
        <client_attr name="has_airport_shuttle">Yes</attr>
        <client_attr name="has_bar_or_lounge">Yes</attr>
        <client_attr name="has_beach_access">Yes</attr>
        <client_attr name="has_business_center">Yes</attr>
        <client_attr name="has_fitness_center">Yes</attr>
        <client_attr name="has_free_breakfast">Yes</attr>
        <client_attr name="has_hot_tub">Yes</attr>
        <client_attr name="has_laundry_service">Yes</attr>
        <client_attr name="has_restaurant">Yes</attr>
        <client_attr name="has_room_service">Yes</attr>
        <client_attr name="has_spa">Yes</attr>
        <client_attr name="pets_allowed">Yes</attr>
        <client_attr name="smoke_free_property">Yes</attr>
        <client_attr name="wheelchair_accessible">Yes</attr>
        <client_attr name="kitchen_availability">Available in all rooms</attr>
        <client_attr name="parking_type">No payment required</attr>
        <client_attr name="swimming_pool_type">Indoors</attr>
        <client_attr name="wifi_type">Paid</attr>
      </attributes>
      <attributes>
        <title>roomId2</title>
        <client_attr name="capacity">10</attr>
        <client_attr name="number_of_bedrooms">1</attr>
        <client_attr name="number_of_beds">1</attr>
        <client_attr name="number_of_bathrooms">1.5</attr>
        <client_attr name="number_of_living_rooms">1</attr>
        <client_attr name="room_type">Entire House</attr>
        <client_attr name="bed_type">Queen</attr>
        <client_attr name="host_language">English,Chinese</attr>
        <client_attr name="partner_rating_score">9.0</attr>
        <client_attr name="check_in_time">10:00 am - 11:00 am</attr>
        <client_attr name="check_out_time">13:00 pm - 15:00 pm</attr>
        <client_attr name="host_description">On Premise.</attr>
        <client_attr name="refund_policy">No Refund</attr>
        <client_attr name="cancellation_policy">Cannot Cancel</attr>
        <client_attr name="min_night_stay">1</attr>
        <client_attr name="square_footage">900.0</attr>
        <client_attr name="host_response_time">Within 1 hour</attr>
        <client_attr name="host_response_rate">100</attr>
        <client_attr name="minimum_advance_purchase">1</attr>
      </attributes>
    </content>
  </listing>
</listings>

<image>

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

Images are used to show the property in the listing ID. All images used must follow these guidelines:

  • The recommended aspect ratio for images is 4:3.
  • The image URL must be accessible by the Googlebot Image crawler.
  • If your site includes a robots.txt at the root level, verify that it contains one of the two options shown below:
    1. Allows the Googlebot crawler to crawl your site's content, images included.
      • User-agent: Googlebot
      • Allow: /
    2. Allows the Googlebot Image crawler to crawl the images on your site.
      • User-agent: Googlebot-Image
      • Allow: /
  • Screenshots of images or websites aren't permitted. Images must be original and actual images or photographs.

Attributes

Attribute name Required? Format Description
type Required Text

An image must be one of the following:

  • "ad" if the image is an advertisement
  • "menu" if the image is a restaurant menu
  • "photo if the image is a photo of the business
url Required Text The URL of the full-sized image. Use the url attribute to specify the image to use on that page.
width Required A non-negative integer Width of the image, in pixels (greater than 720 pixels is recommended)
height Required A non-negative integer Height of the image, in pixels (greater than 720 pixels is recommended)

Child elements

Child element Required? Description
<date> Required

This tag identifies the date that the content item was created. You must enter a year, month, and day, as in the following example:

<date month="6" day="7" year="2017"/>
<link> Requested, but required for local photo listings. This tag contains the valid and up-to-date URL of the page on your site that the relevant image is on. It doesn't contain the URL for the image itself. Example:
<link><http://www.example.com/magic_pizza/></link>
<title> Requested This tag contains the title of the image. Example:
<title>"Luxury Apartment"</title>
<author> Not required The name of the author of the content. The value can either be a user name or a full name in the format "Firstname Lastname."

Example

The following example shows a partial Hotel List Feed with image tags:

<?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">
      <date month="6" day="7" year="2017></date>
      <title>Apartment at Sandstone</title>
      <author>Jessica Landlord</author>
        <link>https://image_url</link>
      </image>
    </content>
  </listing>
  ...
</listings>

Syntax guidelines

When creating an XML-based Hotel List Feed, use the following guidelines:

  • Use UTF-8 encoding. Specify this encoding schema by including the encoding attribute in your XML tag, as shown in the examples below.
  • You can specify data values in your feed with CDATA sections. If you use CDATA sections, do not escape special characters.
  • Use escape codes for data values that are not in CDATA sections, including URLs. You can use either the entity code or the character code to represent these special characters.

    The following table lists common entity and character codes you can use:

    Character Entity Character Code
    Ampersand (&) &amp; &#38;
    Single Quote (') &apos; &#39;
    Double Quote (") &quot; &#34;
    Greater Than (>) &gt; &#62;
    Less Than (<) &lt; &#60;
  • Omit XML elements that do not contain data. For example, if you do not have the latitude and longitude for a hotel, you should not include empty <latitude/> and <longitude/> elements.
  • Do not use HTML in your XML elements under any circumstances (even if it is escaped).
  • To validate your feed prior to uploading, you can use the local feed XSD "https://www.gstatic.com/localfeed/local_feed.xsd".
  • To use comments in your feed, wrap the comment in <!-- and --> tags, as the following example shows:

    <!-- This is a comment -->
  • Be sure that you close the <date> element in a user <review>. For example:

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

Finding and fixing data issues

To find and fix data issues in your Hotel List Feed, you can use the following tools:

Hotel Ads Center:

APIs: