Landing Pages File Syntax

The root element of the landing pages (formerly points of sale) file is <PointsOfSale>. This element has no attributes and takes one child element, <PointOfSale>. A landing pages file can have any number of <PointOfSale> child elements.

Each landing page that you define in the landing pages file is contained in a <PointOfSale> element. This element takes a single attribute, id. The id attribute 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 do this by using the <AllowablePointsOfSale> element in <Transaction>.

The landing pages file uses the following syntax:

<?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]"
      country="country code"
      language="language code"
      brand="booking engine or brand"
      currency="currency code"
    <!-- The dynamic landing page URL -->
    <URL>landing page url</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 displays in an ad or free booking link. It must only be the name of the partner.
  • display_language: A two-letter language code that 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:


Omit 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 end-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 end-user and the hotel. This attribute takes a two-letter country code (ISO 3166-1 alpha-2). For example, "US" or "FR" (in upper case).
  • language: Matches on the end-user and hotel's language. This attribute takes a two-letter language code (in lower case). 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 end-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 end-user uses to search. This attribute takes "mobile", "desktop", or "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 Page Matching Rules.

<URL> Required Defines a link to your site where the end-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 end-user, Google replaces the PARTNER-HOTEL-ID variable with the appropriate hotel ID. When the end-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 (available in your Google Ads account) and/or 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 will escape 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 Schemas.