Landing pages file syntax

The root element of the landing pages file is <PointsOfSale> which takes one child element,<PointOfSale> and has no attributes. A landing pages file can have multiple <PointOfSale> child elements.

Each landing page that you define in the landing pages file is included in a <PointOfSale> element. This element takes a single attribute, id that defines a unique identifier for a landing page. You can use the value of id to filter eligible landing pages for a matching hotel. You can do this by using the <AllowablePointsOfSale> element in <Transaction>.


<?xml version="1.0" encoding="UTF-8"?>
  <PointOfSale id="landing_page_id">
    <DisplayNames display_text="landing_page_display_name" display_language="language_code"/>
    <Match status="[yes|never]"
      brand="booking_engine or brand"
    <!-- The dynamic landing page URL -->

The following table describes the child elements of the <PointOfSale> element:

Element Required Description
<DisplayNames> Optional

Contains display text for Online Travel Agencies (OTAs). This element takes the following attributes:

  • display_text: Contains the text that is shown in an ad or free booking link. It should be the name of the partner.
  • display_language: A two-letter language code specifies the display language of the ad or free booking link. The value of this attribute must match a supported language specified by the <Match> element.

The following example shows a display name for a French OTA:


Exclude the <DisplayNames> element for Central Reservations System (CRS) suppliers, also known as "integration partners", and Direct Suppliers such as hotel owners or chains. For these types of partners, ad and free booking link text is taken from the hotel's <Name> element in the Hotel List.

Note: For OTA's, if you have configured a default display name with Google Support, then this field is optional. Otherwise OTA's must provide <DisplayNames>.

<Match> Required

Defines filters for whether your ads and free booking links are displayed based on various characteristics of the user or hotel. For example, you can specify that an ad or free booking link is displayed only to users in a certain country.

This element takes the following attributes:

  • status: Determines whether a match includes or excludes results for the specified criterion. Valid values are yes (must match) or never (must not match).
  • country: Matches on the Google domain associated with the user and the hotel. This attribute takes a two-letter country code. For example, US or FR.
  • language: Matches on the user and hotel's language. This attribute takes a two-letter language code. For example, en or fr.
  • brand: Matches on the value of the hotel_brand attribute specified in your hotel list. This filter can be useful if you have different URLs for your booking engines or various brands.
  • currency: Matches on the user or hotel country's currency. This attribute takes a three-letter currency code. For example, USD or EUR.
  • sitetype: Matches on the Google property on which a user viewed your hotel pricing data. This attribute takes the following values:
    • localuniversal: The user found the ad or free booking link through a search, typically by searching on
    • mapresults: The user found the hotel booking link through
  • device: Matches on the type of device that the user uses to search. This attribute takes mobile, desktop, or tablet.

    NOTE: You cannot set status to never if device is set to tablet.

For example:

<PointOfSale id="test1">
  <Match status="yes" country="US"/>
  <Match status="yes" currency="USD"/>
  <Match status="yes" device="mobile"/>
  <Match status="yes" language="en"/>

You can combine attributes of the <Match> element to simplify your matching rules, as the following example shows:

<PointOfSale id="test1">

For more information, refer to Landing pages matching rules.

<URL> Required Defines a link to your site where the user can book a room. You can insert dynamic information about the user and their itinerary as query string parameters. For example, you can include the hotel ID by using the PARTNER-HOTEL-ID variable in the URL:

When this link is constructed and displayed to the user, Google replaces the PARTNER-HOTEL-ID variable with the appropriate hotel ID. When the user clicks through to your site, your site can then extract and process the values of all query string parameters to create a smooth user experience. For a complete list of variables allowed in the landing page URL, see Using variables and conditions.

When using tracking, specify the complete URL including the components needed for tracking. For example:;t_url=

ValueTrack parameters can't be used in <URL>.

You can define only one <URL> element for each landing page.

<LPURL> Optional

Used to support dynamic tracking in the landing page URL. Specifies the non-tracking segment of the URL defined in the <URL> element. Tracking segments of the landing page URL must be specified using Google Ads tracking templates which is available in your Google Ads account and the final URL suffix. If tracking URLs are not present in Google Ads, the <LPURL> element is ignored.

The <LPURL> value does not need to be escaped. A correct ValueTrack configuration in Google Ads escapes it automatically. For example:

ValueTrack parameters can't be used in <LPURL>. For more information, see Set up dynamic tracking for a Hotel campaign.

The landing pages file schema defines the structure and constraints of a landing pages file. For more information, read Hotel Ads Schemas