CINXE.COM

Rate Rules XML Reference  |  Hotel Prices  |  Google for Developers

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#1a73e8"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png"><link rel="canonical" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules"><link rel="search" type="application/opensearchdescription+xml" title="Google for Developers" href="https://developers.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules" /><link rel="alternate" hreflang="x-default" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules" /><link rel="alternate" hreflang="ar" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=fa" /><link rel="alternate" hreflang="fr" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=fr" /><link rel="alternate" hreflang="de" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=de" /><link rel="alternate" hreflang="he" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=he" /><link rel="alternate" hreflang="hi" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=hi" /><link rel="alternate" hreflang="id" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=id" /><link rel="alternate" hreflang="it" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=it" /><link rel="alternate" hreflang="ja" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=th" /><link rel="alternate" hreflang="tr" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules?hl=vi" /><title>Rate Rules XML Reference &nbsp;|&nbsp; Hotel Prices &nbsp;|&nbsp; Google for Developers</title> <meta property="og:title" content="Rate Rules XML Reference &nbsp;|&nbsp; Hotel Prices &nbsp;|&nbsp; Google for Developers"><meta property="og:url" content="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules"><meta property="og:image" content="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/opengraph/google-blue.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Rate Rules XML Reference" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Hotel APIs", "item": "https://developers.google.com/hotels" },{ "@type": "ListItem", "position": 2, "name": "Hotel Prices", "item": "https://developers.google.com/hotels/hotel-prices" },{ "@type": "ListItem", "position": 3, "name": "Rate Rules XML Reference", "item": "https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="google-blue" type="article" layout="docs" concierge='closed' display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" aria-label="Product breadcrumb"> <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/hotels" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Hotel APIs" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Hotel APIs </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/hotels/hotel-prices" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Google Hotel Prices API" > Hotel Prices </a> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Hotel Prices" tenant-name="Google for Developers" project-scope="/hotels/hotel-prices" url-scoped="https://developers.google.com/s/results/hotels/hotel-prices" > <form class="devsite-search-form" action="https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://developers.google.com/hotels/hotel-prices" track-metadata-eventdetail="https://developers.google.com/hotels/hotel-prices" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab > <a href="https://developers.google.com/hotels/hotel-prices/api-reference" track-metadata-eventdetail="https://developers.google.com/hotels/hotel-prices/api-reference" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - api reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: API Reference" track-name="api reference" > API Reference </a> </tab> <tab class="devsite-active"> <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/hotel-list-feed" track-metadata-eventdetail="https://developers.google.com/hotels/hotel-prices/xml-reference/hotel-list-feed" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - xml reference" track-metadata-module="primary nav" aria-label="XML Reference, selected" data-category="Site-Wide Custom Events" data-label="Tab: XML Reference" track-name="xml reference" > XML Reference </a> </tab> <tab > <a href="https://developers.google.com/hotels/hotel-prices/dev-guide/where-to-get-help" track-metadata-eventdetail="https://developers.google.com/hotels/hotel-prices/dev-guide/where-to-get-help" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - support" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" > Support </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" aria-label="Upper header breadcrumb"> <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/hotels" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Hotel APIs" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Hotel APIs </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/hotels/hotel-prices" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Google Hotel Prices API" > Hotel Prices </a> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/hotels/hotel-prices" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/hotels/hotel-prices/api-reference" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: API Reference" track-name="api reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: API Reference" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > API Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/hotels/hotel-prices/xml-reference/hotel-list-feed" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: XML Reference" track-name="xml reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: XML Reference" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > XML Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/hotels/hotel-prices/dev-guide/where-to-get-help" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Support" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Support </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/hotel-list-feed" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/hotel-list-feed" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/hotel-list-feed" ><span class="devsite-nav-text" tooltip>Hotel List</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Availability, Rates, and Inventory (ARI)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/ari-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/ari-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/ari-overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/ari-property" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/ari-property" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/ari-property" ><span class="devsite-nav-text" tooltip>Transaction (Property Data)</span></a></li><li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/ari-rate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/ari-rate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/ari-rate" ><span class="devsite-nav-text" tooltip>OTA_HotelRateAmountNotifRQ</span></a></li><li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/ari-avail" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/ari-avail" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/ari-avail" ><span class="devsite-nav-text" tooltip>OTA_HotelAvailNotifRQ</span></a></li><li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/ari-inv" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/ari-inv" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/ari-inv" ><span class="devsite-nav-text" tooltip>OTA_HotelInvCountNotifRQ</span></a></li><li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/ari-tax" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/ari-tax" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/ari-tax" ><span class="devsite-nav-text" tooltip>TaxFeeInfo</span></a></li><li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/ari-promotions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/ari-promotions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/ari-promotions" ><span class="devsite-nav-text" tooltip>Promotions</span></a></li><li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/ari-rate-modifications" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/ari-rate-modifications" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/ari-rate-modifications" ><span class="devsite-nav-text" tooltip>RateModifications</span></a></li><li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/ari-extra-guest-charges" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/ari-extra-guest-charges" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/ari-extra-guest-charges" ><span class="devsite-nav-text" tooltip>ExtraGuestCharges</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/transaction-messages" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/transaction-messages" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/transaction-messages" ><span class="devsite-nav-text" tooltip>Pricing &amp; Room Inventory (Transactions)</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/rate-rules" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/rate-rules" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/rate-rules" ><span class="devsite-nav-text" tooltip>Rate Rules</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/queries" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/queries" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/queries" ><span class="devsite-nav-text" tooltip>Query &amp; Hint Messages</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/xml-reference/datetime" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/xml-reference/datetime" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/xml-reference/datetime" ><span class="devsite-nav-text" tooltip>Date/Time Formats</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/country-codes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/country-codes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/country-codes" ><span class="devsite-nav-text" tooltip>Country codes</span></a></li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav > <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/products" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="" > Products </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/hotels" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Google Hotel APIs" > Hotel APIs </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/hotels/hotel-prices" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="4" track-type="globalNav" track-name="breadcrumb" track-metadata-position="4" track-metadata-eventdetail="Google Hotel Prices API" > Hotel Prices </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/hotel-list-feed" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="5" track-type="globalNav" track-name="breadcrumb" track-metadata-position="5" track-metadata-eventdetail="" > XML Reference </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Hotel Prices" product-id="82128" bucket="Hotels" context="DevSite feedback link" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-feedback-url="https://support.google.com/hotelprices/" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png" project-support-url="https://support.google.com/hotelprices/" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Rate Rules XML Reference </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <p>The rate rules XML file defines the rules for serving conditional rates and private rates. You can add or edit a rate rules XML file using the <a href="//hotelcenter.google.com/prices/raterules"><strong>Rate rules</strong> page in Hotel Center</a>. For more information about conditional rates and private rates, see <a href="//support.google.com/hotelprices/answer/9983829">Conditional and private rates</a>.</p> <p>Each rate rule requires an <code translate="no" dir="ltr">id</code>, which can be referenced in a <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#Rates"><code translate="no" dir="ltr">&lt;Rate&gt;</code></a> of a Transaction message. A <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#Rates"><code translate="no" dir="ltr">&lt;Rate&gt;</code></a> that references a rate rule ID is only served to the users and under the conditions defined by the rate rule. A rate rule ID can also be referenced using a variable in a <a href="/hotels/hotel-prices/dev-guide/fenced-rates#pos">landing page URL</a>.</p> <h2 id="RateRuleSettings" data-text="&lt;RateRuleSettings&gt;" tabindex="-1"><code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code></h2> <p>The root element of the rate rules XML file. The <code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code> (formerly <code translate="no" dir="ltr">&lt;PrivateRates&gt;</code>) element contains:</p> <ul> <li><p><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> elements that define the conditions to match on for conditional and private rates. For example, you can create a conditional rate that matches on the condition of all users in a certain country.</p></li> <li><p><code translate="no" dir="ltr">&lt;RateRule&gt;</code> elements that each define a rate rule for reference in a <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#Rates"><code translate="no" dir="ltr">&lt;Rate&gt;</code></a> in a Transaction message. Each <code translate="no" dir="ltr">&lt;RateRule&gt;</code> specifies the conditions and UI treatment that construct a conditional or private rate.</p></li> </ul> <p>The <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules#RateRuleSettings"><code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code></a> element appears in the following place in the rate rules XML hierarchy:</p> <pre class="prettyprint devsite-disable-click-to-copy" translate="no" dir="ltr">+ <strong><code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code></strong> + <span class="nocode"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;RateRule&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;RateModification&gt;</code></span> </pre> <h3 id="settings-syntax" class="hide-from-toc" data-text="Syntax" tabindex="-1">Syntax</h3> <p>The <code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code> element uses the following syntax:</p> <pre class="prettyprint readonly" translate="no" dir="ltr"><span class="nocode">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span> &lt;RateRuleSettings&gt; &lt;UserRateCondition id="some_id" op="[all|any|none]"&gt; ... &lt;/UserRateCondition&gt; &lt;!-- Required --&gt; &lt;RateRule id="<var translate="no">rate_rule_id</var>"&gt; &lt;!-- Required --&gt; &lt;UserRateCondition op="[all|any|none]"&gt; ... &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </pre> <h3 id="settings-attributes" class="hide-from-toc" data-text="Attributes" tabindex="-1">Attributes</h3> <p>The <code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code> element doesn&#39;t have any attributes.</p> <h3 id="settings-children" class="hide-from-toc" data-text="Child elements" tabindex="-1">Child elements</h3> <p>The <code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code> element has the following child elements:</p> <table class="fixed"> <tbody> <tr> <th width="22%">Child&nbsp;Element</th> <th width="10%">Required?</th> <th width="21%">Type</th> <th>Description</th> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;RateRule&gt;</code></span></td> <td><span translate="no"><strong>Required</strong></span></td> <td><span translate="no"><a href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules#RateRule"><code translate="no" dir="ltr">&lt;RateRule&gt;</code></a></span></td> <td><p>Defines the matching conditions, modifications, and eligibility for serving a conditional or private rate. Requires an <code translate="no" dir="ltr">id</code> attribute, which can be referenced in a <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#Rates"><code translate="no" dir="ltr">&lt;Rate&gt;</code></a> of a Transaction message or in a <a href="/hotels/hotel-prices/dev-guide/pos-syntax"> landing page URL</a>.</p> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no"><a href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules#UserRateCondition"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></a></span></td> <td><p>Defines one or more conditions that when matched result in conditional or private rates being served.</p> <p>Conditions can be defined either inline by using <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> child elements, by reference to another <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> element by using the <code translate="no" dir="ltr">reference_id</code> attribute, or both inline and by reference. However, any <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> with a <code translate="no" dir="ltr">reference_id</code> must have 0 children.</p> <p>A top-level <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> under <code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code> must have an <code translate="no" dir="ltr">id</code> attribute.</p> </td> </tr> </tbody> </table> <h3 id="settings-examples" class="hide-from-toc" data-text="Conditional rates examples" tabindex="-1">Conditional rates examples</h3> <p>The following examples show basic ways to define conditional rates.</p> <p>Referencing predefined conditions, as shown in the <strong>Mobile users</strong> example, is recommended.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="mobile-users" data-text="Mobile users" tabindex="-1">Mobile users</h3><p>The following conditional rates example defines a rate rule that matches all mobile users by referencing a predefined <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code>:</p> <pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;UserRateCondition id=&quot;mobile&quot;&gt; &lt;UserDeviceType&gt;mobile&lt;/UserDeviceType&gt; &lt;/UserRateCondition&gt; &lt;RateRule id=&quot;mobile&quot;&gt; &lt;!-- Referencing pre-defined conditions is recommended --&gt; &lt;UserRateCondition reference_id=&quot;mobile&quot;/&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> <section><h3 id="us-users" data-text="US users" tabindex="-1">US users</h3><p>The following conditional rates example defines a rate rule that matches all users searching in the US by referencing a predefined <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code>:</p> <pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;UserRateCondition id=&quot;us&quot;&gt; &lt;UserCountry&gt;US&lt;/UserCountry&gt; &lt;/UserRateCondition&gt; &lt;RateRule id=&quot;us&quot;&gt; &lt;UserRateCondition reference_id=&quot;us&quot;/&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> </div> <h2 id="RateRule" data-text="&lt;RateRule&gt;" tabindex="-1"><code translate="no" dir="ltr">&lt;RateRule&gt;</code></h2> <p>A container for specifying:</p> <ul> <li>Conditions for serving a rate</li> <li>Modifications, if any, to the price and UI treatment for the rate</li> <li>Use of hidden UI treatments for private rates</li> </ul> <p>The <code translate="no" dir="ltr">&lt;RateRule&gt;</code> element appears in the following place in the rate rules XML hierarchy:</p> <pre class="prettyprint devsite-disable-click-to-copy" translate="no" dir="ltr">+ <span class="nocode"> <code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></span> + <strong><code translate="no" dir="ltr">&lt;RateRule&gt;</code></strong> + <span class="nocode"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;RateModification&gt;</code></span> </pre> <h3 id="raterule-syntax" class="hide-from-toc" data-text="Syntax" tabindex="-1">Syntax</h3> <p>The <code translate="no" dir="ltr">&lt;RateRule&gt;</code> element uses the following syntax:</p> <pre class="readonly prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt; &lt;RateRuleSettings ...&gt; &lt;UserRateCondition ...&gt; ... &lt;/UserRateCondition&gt; &lt;!-- At least one RateRule is required. The id attribute is required --&gt; &lt;RateRule id=&#34;<var translate="no">rate_rule_id</var>&#34;&gt; &lt;!-- One or more UserRateCondition elements (inline or referenced) are required. --&gt; &lt;UserRateCondition op=&#34;[all|any|none]&#34;&gt; // Inline example &lt;Description&gt;<var translate="no">user_rate_condition_description</var>&lt;/Description&gt; &lt;!-- Uses the member rate visible UI treatment --&gt; &lt;AlwaysEligibleMembershipProgram&gt;<var translate="no">program_name</var>&lt;/AlwaysEligibleMembershipProgram&gt; &lt;LanguageCode&gt;<var translate="no">language_code</var>&lt;/LanguageCode&gt; &lt;MaxUsersPercent&gt;20&lt;/MaxUsersPercent&gt; // 20% of users &lt;!-- Requires &lt;RateIneligibility&gt; --&gt; &lt;MembershipProgram&gt;<var translate="no">program_name</var>&lt;/MembershipProgram&gt; &lt;UserRateCondition reference_id=&#34;<var translate="no">user_rate_condition_id</var>&#34;/&gt; &lt;UserCountry&gt;<var translate="no">country_code</var>&lt;/UserCountry&gt; &lt;UserDeviceType&gt;[mobile|desktop|tablet]&lt;/UserDeviceType&gt; &lt;UserListId&gt;<var translate="no">id</var>&lt;/UserListId&gt; &lt;UserSignedIn&gt;[true|false]&lt;/UserSignedIn&gt; &lt;IsDomestic&gt;[true|false]&lt;/IsDomestic&gt; &lt;/UserRateCondition&gt; &lt;RateIneligibility&gt; &lt;IneligibilityType&gt;[exact|price_band|existence]&lt;/IneligibilityType&gt; &lt;IneligibilityReason&gt;[program_member]&lt;/IneligibilityReason&gt; &lt;/RateIneligibility&gt; &lt;RateModification&gt; &lt;HotelAmenity&gt;[free_wifi]&lt;/HotelAmenity&gt; &lt;/RateModification&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre><aside class="key-point"><strong>Key Point:</strong><span> Audience list support (<code translate="no" dir="ltr">UserListId</code>) for private rates is only available for ads. It&#39;s no longer available for free booking links.</span></aside> <h3 id="raterule-attributes" class="hide-from-toc" data-text="Attributes" tabindex="-1">Attributes</h3> <p>The <code translate="no" dir="ltr">&lt;RateRule&gt;</code> element has the following attributes:</p> <table class="fixed"> <tbody> <tr> <th width="22%">Attribute</th> <th width="10%">Required?</th> <th width="21%">Type</th> <th>Description</th> </tr> <tr> <td><code translate="no" dir="ltr">id</code></td> <td><strong>Required</strong></td> <td>string</td> <td><p> A unique identifier for the rate rule. This ID is referenced using the <code translate="no" dir="ltr">rate_rule_id</code> attribute of a <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#Rates"><code translate="no" dir="ltr">&lt;Rate&gt;</code></a> in a Transaction message to serve a conditional or private rate. The rate rule <code translate="no" dir="ltr">id</code> can also be referenced using a variable and conditions in a <a href="/hotels/hotel-prices/dev-guide/pos-syntax">landing page URL</a>.</p> <p>The maximum number of characters allowed is 40.</p> </td> </tr> </tbody> </table> <h3 id="raterule-children" class="hide-from-toc" data-text="Child elements" tabindex="-1">Child elements</h3> <p>The <code translate="no" dir="ltr">&lt;RateRule&gt;</code> element has the following child elements:</p> <table class="fixed"> <tbody> <tr> <th width="22%">Child&nbsp;Element</th> <th width="10%">Required?</th> <th width="21%">Type</th> <th>Description</th> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no"><a href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules#RateIneligibility"><code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code></a></span></td> <td>Specifies values that determine the specific UI treatment for a <code translate="no" dir="ltr">&lt;MembershipProgram&gt;</code> rate. <p>Only valid when <code translate="no" dir="ltr">&lt;MembershipProgram&gt;</code> is specified in <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code>.</p> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></span></td> <td><span translate="no"><strong>Required</strong></span></td> <td><span translate="no"><a href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules#UserRateCondition"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></a></span></td> <td><p>Defines one or more conditions that when matched result in conditional or private rates being served.</p> <p>Conditions can be defined either inline by using <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> child elements, by reference to another <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> by using the <code translate="no" dir="ltr">reference_id</code> attribute, or both inline and by reference.</p> <p>Note, however, that when a <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> is a child of <code translate="no" dir="ltr">&lt;RateRule&gt;</code>, the <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> element cannot have an <code translate="no" dir="ltr">id</code> attribute and cannot be referenced by another <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code>.</p> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;RateModification&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no"><a href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules#RateModification"><code translate="no" dir="ltr">&lt;RateModification&gt;</code></a></span></td> <td>Modifies the UI treatment for private rates.</td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;PromoCode&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">string</span></td> <td>Specifies a code to be associated with the rate if this rate rule is applied. Reflected in the <code translate="no" dir="ltr">PROMO-CODE</code> landing page variable.</td> </tr> </tbody> </table> <h2 id="UserRateCondition" data-text="&lt;UserRateCondition&gt;" tabindex="-1"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></h2> <p>Defines one or more conditions that when matched result in conditional or private rates being served.</p> <p>The <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> element appears in the following place in the rate rules XML hierarchy:</p> <pre class="prettyprint devsite-disable-click-to-copy" translate="no" dir="ltr">+ <span class="nocode"><code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code></span> + <strong><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></strong> + <span class="nocode"><code translate="no" dir="ltr">&lt;RateRule&gt;</code></span> + <strong><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></strong> + <span class="nocode"><code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;RateModification&gt;</code></span> </pre> <h3 id="userratecondition-syntax" class="hide-from-toc" data-text="Syntax" tabindex="-1">Syntax</h3> <p>The <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> element uses the following syntax:</p> <pre class="readonly prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt; &lt;RateRuleSettings ...&gt; &lt;!-- &#34;op&#34; is required for more than one child element --&gt; &lt;UserRateCondition id=&#34;some_id&#34; op=&#34;[all|any|none]&#34;&gt; &lt;UserDeviceType&gt;<var translate="no">device_type</var>&lt;/UserDeviceType&gt; &lt;/UserRateCondition&gt; &lt;UserRateCondition id=&#34;some_other_id&#34; op=&#34;[all|any|none]&#34;&gt; &lt;UserDeviceType&gt;<var translate="no">device_type</var>&lt;/UserDeviceType&gt; &lt;/UserRateCondition&gt; &lt;!-- At least one RateRule is required --&gt; &lt;RateRule id=&#34;<var translate="no">rate_rule_id</var>&#34;&gt; &lt;UserRateCondition reference_id=&#34;some_id&#34;/&gt; &lt;/RateRule&gt; &lt;RateRule id=&#34;<var translate="no">rate_rule_id</var>&#34;&gt; &lt;UserRateCondition reference_id=&#34;some_other_id&#34;/&gt; &lt;/RateRule&gt; &lt;RateRule id=&#34;<var translate="no">rate_rule_id</var>&#34;&gt; &lt;UserRateCondition&gt; &lt;UserDeviceType&gt;<var translate="no">device_type</var>&lt;/UserDeviceType&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;span class=&#34;nocode&#34;&gt;&lt;/RateRuleSettings&gt;&lt;/span&gt; </code></pre> <h3 id="userratecondition-attributes" class="hide-from-toc" data-text="Attributes" tabindex="-1">Attributes</h3> <p>The <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> element has the following attributes:</p> <table class="fixed"> <tbody> <tr> <th width="15%">Attribute</th> <th width="22%">Required?</th> <th width="9%">Type</th> <th>Description</th> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">id</code></span></td> <td><span translate="no"><strong>Required</strong> (if top-level under <code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code>)</span></td> <td><span translate="no">string</span></td> <td><p> A unique identifier for this <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code>. Can be referenced by a <code translate="no" dir="ltr">&lt;RateRule&gt;</code> <code translate="no" dir="ltr">id</code> attribute or by a <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> <code translate="no" dir="ltr">reference_id</code> attribute.</p> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">op</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">enum</span></td> <td><p> The <code translate="no" dir="ltr">op</code> attribute is required when <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> has multiple child elements. The attribute value can be one of the following:</p> <ul> <li><code translate="no" dir="ltr">all</code>: Include end-users that match all of the conditions defined by this rate rule. This value <b>cannot</b> be used when one of the conditions is <code translate="no" dir="ltr">&lt;UserListId&gt;</code>, unless only one other condition&mdash;either <code translate="no" dir="ltr">&lt;AlwaysEligibleMembershipProgram&gt;</code> or <code translate="no" dir="ltr">&lt;MembershipProgram&gt;</code>&mdash;is defined.</li> <li><code translate="no" dir="ltr">any</code>: Include end-users that match any of the conditions defined by this rate rule.</li> <li><code translate="no" dir="ltr">none</code>: Exclude end-users that match any of the conditions defined by this rate rule. This value <b>cannot</b> be used when one of the conditions is <code translate="no" dir="ltr">&lt;UserListId&gt;</code>. </li> </ul> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">reference_id</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">string</span></td> <td><p> Defines this element as a reference to another predefined <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> with a matching <code translate="no" dir="ltr">id</code>.</p> <p>When <code translate="no" dir="ltr">reference_id</code> is present:</p> <ul> <li>Child elements are not be parsed</li> <li><code translate="no" dir="ltr">id</code> and <code translate="no" dir="ltr">op</code> shouldn't be present</li> </ul> </td> </tr> </tbody> </table> <h3 id="userratecondition-children" class="hide-from-toc" data-text="Child elements" tabindex="-1">Child elements</h3> <p>The <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> element has the following child elements:</p> <table class ="fixed"> <tbody> <tr> <th width="25%">Child&nbsp;Element</th> <th width="10%">Required?</th> <th width="21%">Type</th> <th>Description</th> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;AlwaysEligibleMembershipProgram&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">string</span></td> <td><p>Specifies that the rate will use the member rate visible UI treatment.</p> <p>The value of this element can be any membership program name.</p> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;Description&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">string</span></td> <td>Describes the <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code>. This is for documentation purposes and has no effect on its capabilities. </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;LanguageCode&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">string</span></td> <td>Specifies that the rate will be offered to users whose language matches this two-letter <a href="/hotels/hotel-prices/dev-guide/language-codes"> language code</a>. </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;MaxUsersPercent&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">float</span></td> <td><p>Specifies that the rate will be offered randomly to this percentage of end users.</p> <p>The value must be an integer between 0 and 100 (inclusive). For example, 20 will target 20% of end users.</p> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;MembershipProgram&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">string</span></td> <td><p>Specifies that the rate will use a membership program UI treatment as determined by the <code translate="no" dir="ltr">&lt;IneligibilityReason&gt;</code> of <code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code>.</p> <p>For <code translate="no" dir="ltr">&lt;MembershipProgram&gt;</code> to be valid, <code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code> must be specified.</p> <p>The value of <code translate="no" dir="ltr">&lt;MembershipProgram&gt;</code> can be any membership program name.</p> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no"><a href="https://developers.google.com/hotels/hotel-prices/xml-reference/rate-rules#UserRateCondition"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></a></span></td> <td><p>Defines one or more conditions that when matched result in conditional or private rates being served.</p> <p>A <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> with a <code translate="no" dir="ltr">reference_id</code> must have 0 children.</p> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;UserCountry&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">string</span></td> <td><p>A <a href="/hotels/hotel-prices/dev-guide/country-codes">CLDR country code</a>, such as <code translate="no" dir="ltr">DE</code> or <code translate="no" dir="ltr">FR</code>. Note that, for some countries, the CLDR code isn't the same as the 2-letter ISO code. CLDR region codes are not supported.</p> <p>Specifies that the user must be located in the specified country. Google determines the end-user's country from their IP address.</p> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;UserDeviceType&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">enum</span></td> <td>Defines the device type condition. Allowed values are: <ul> <li><code translate="no" dir="ltr">mobile</code></li> <li><code translate="no" dir="ltr">desktop</code></li> <li><code translate="no" dir="ltr">tablet</code></li> </ul> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;UserListId&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">string</span></td> <td>The Google Ads user list ID of an audience list. <p class="note">This condition can only be used with <code translate="no" dir="ltr">&lt;AlwaysEligibleMembershipProgram&gt;</code> or <code translate="no" dir="ltr">&lt;MembershipProgram&gt;</code>, or when <code translate="no" dir="ltr">op</code> is <code translate="no" dir="ltr">any</code>.</p> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;UserSignedIn&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">boolean</span></td> <td>A boolean that specifies whether or not the user must be signed in to their Google Account. A value of <code translate="no" dir="ltr">true</code> indicates that the user must be signed in. A value of <code translate="no" dir="ltr">false</code> indicates that the user must not be signed in. If you don't care whether the user is signed in or out, don't include a <code translate="no" dir="ltr">&lt;UserSignedIn&gt;</code> condition. </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;IsDomestic&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">boolean</span></td> <td>A boolean that specifies whether or not the user must be from the same country where the hotel is located. A value of <code translate="no" dir="ltr">true</code> indicates that the user must be from the same country as the hotel. A value of <code translate="no" dir="ltr">false</code> indicates that the user may be from any country other than the hotel's country. If you want finer-grained control, use the <code translate="no" dir="ltr">&lt;UserCountry&gt;</code> condition. </td> </tr> </tbody> </table> <h3 id="userratecondition-examples" class="hide-from-toc" data-text="Conditional rates examples" tabindex="-1">Conditional rates examples</h3> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="percentage-of-users" data-text="Percentage of users" tabindex="-1">Percentage of users</h3><p>The following conditional rates example specifies that the rate will be offered randomly to twenty percent of the users:</p> <pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;20_percent_users&quot;&gt; &lt;UserRateCondition&gt; &lt;MaxUsersPercent&gt;20&lt;/MaxUsersPercent&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> <section><h3 id="uk-and-mobile-users" data-text="UK and mobile users" tabindex="-1">UK and mobile users</h3><p>The following conditional rates example defines a rate rule that matches all users searching in the United Kingdom with a mobile device by using an inline <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code>:</p> <pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;gb_mobile&quot;&gt; &lt;UserRateCondition op=&quot;all&quot;&gt; &lt;UserCountry&gt;GB&lt;/UserCountry&gt; &lt;UserDeviceType&gt;mobile&lt;/UserDeviceType&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> <section><h3 id="japan-and-not-japan" data-text="Japan and not Japan" tabindex="-1">Japan and not Japan</h3><p>The following conditional rates example shows one rate rule that matches users in Japan and another rate rule that matches users in the rest of the world (RoW):</p> <pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;jp&quot;&gt; &lt;UserRateCondition&gt; &lt;UserCountry&gt;jp&lt;/UserCountry&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;RateRule id=&quot;row_not_jp&quot;&gt; &lt;UserRateCondition op=&quot;none&quot;&gt; &lt;UserCountry&gt;jp&lt;/UserCountry&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> <section><h3 id="any,-all,-and-none" data-text="Any, all, and none" tabindex="-1">Any, all, and none</h3><p>The following conditional rates example shows how the <code translate="no" dir="ltr">op</code> attribute can be used to match on multiple conditions in different ways using the values <code translate="no" dir="ltr">any</code>, <code translate="no" dir="ltr">all</code>, and <code translate="no" dir="ltr">none</code>. For example, as shown in the <code translate="no" dir="ltr">au_nz</code> condition, you can use any to match users in any of several countries. As shown in the <code translate="no" dir="ltr">au_nz_mobile_tablet</code> rate rule, you can use <code translate="no" dir="ltr">all</code> to require that users match multiple conditions. The <code translate="no" dir="ltr">row_mobile_tablet</code> rate rule will match users that are in the rest of the world (row), excluding Australia and New Zealand, and that also match the <code translate="no" dir="ltr">mobile_tablet</code> condition.</p> <pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;UserRateCondition id=&quot;au_nz&quot; op=&quot;any&quot;&gt; &lt;UserCountry&gt;AU&lt;/UserCountry&gt; &lt;UserCountry&gt;NZ&lt;/UserCountry&gt; &lt;/UserRateCondition&gt; &lt;UserRateCondition id=&quot;mobile_tablet&quot; op=&quot;any&quot;&gt; &lt;UserDeviceType&gt;mobile&lt;/UserDeviceType&gt; &lt;UserDeviceType&gt;tablet&lt;/UserDeviceType&gt; &lt;/UserRateCondition&gt; &lt;RateRule id=&quot;au_nz_mobile_tablet&quot;&gt; &lt;UserRateCondition op=&quot;all&quot;&gt; &lt;UserRateCondition reference_id=&quot;au_nz&quot;/&gt; &lt;UserRateCondition reference_id=&quot;mobile_tablet&quot;/&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;RateRule id=&quot;row_mobile_tablet&quot;&gt; &lt;UserRateCondition op=&quot;all&quot;&gt; &lt;UserRateCondition op=&quot;none&quot;&gt; &lt;UserRateCondition reference_id=&quot;au_nz&quot;/&gt; &lt;/UserRateCondition&gt; &lt;UserRateCondition reference_id=&quot;mobile_tablet&quot;/&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> </div> <h3 id="userratecondition-examples-private" class="hide-from-toc" data-text="Private rates examples" tabindex="-1">Private rates examples</h3> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="member-rate-visible-1" data-text="Member rate visible 1" tabindex="-1">Member rate visible 1</h3><pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;member_visible&quot;&gt; &lt;UserRateCondition&gt; &lt;AlwaysEligibleMembershipProgram&gt;[enter your program here]&lt;/AlwaysEligibleMembershipProgram&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> <section><h3 id="member-rate-visible-2" data-text="Member rate visible 2" tabindex="-1">Member rate visible 2</h3><pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;member_visible_es_only&quot;&gt; &lt;UserRateCondition op=&quot;all&quot;&gt; &lt;AlwaysEligibleMembershipProgram&gt;[enter your program here]&lt;/AlwaysEligibleMembershipProgram&gt; &lt;UserCountry&gt;es&lt;/UserCountry&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> <section><h3 id="audience-list-rate-1" data-text="Audience list rate 1" tabindex="-1">Audience list rate 1</h3><pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;audience_list&quot;&gt; &lt;UserRateCondition&gt; &lt;UserListId&gt;[enter an audience list id]&lt;/UserListId&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> <section><h3 id="audience-list-rate-2" data-text="Audience list rate 2" tabindex="-1">Audience list rate 2</h3><p>This private rates example shows how to specify a member rate visible UI treatment for multiple audience lists:</p> <pre class="readonly prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;membership_program&quot;&gt; &lt;UserRateCondition op=&quot;all&quot;&gt; &lt;AlwaysEligibleMembershipProgram&gt;[enter the program name here]&lt;/AlwaysEligibleMembershipProgram&gt; &lt;UserRateCondition op=&quot;any&quot;&gt; &lt;UserListId&gt;[enter one audience list id here]&lt;/UserListId&gt; &lt;UserListId&gt;[enter another audience list id here]&lt;/UserListId&gt; &lt;/UserRateCondition&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> </div> <h2 id="RateIneligibility" data-text="&lt;RateIneligibility&gt;" tabindex="-1"><code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code></h2> <p>Indicates how to display the member rate hidden UI treatment. If not included, the member rate hidden UI treatment is not displayed.</p> <p>To use <code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code> in a <code translate="no" dir="ltr">&lt;RateRule&gt;</code>, <code translate="no" dir="ltr">&lt;MembershipProgram&gt;</code> must also be specified in a <code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code> element for the <code translate="no" dir="ltr">&lt;RateRule&gt;</code>.</p> <p>The <code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code> element appears in the following place in the rate rules XML hierarchy:</p> <pre class="prettyprint devsite-disable-click-to-copy" translate="no" dir="ltr">+ <span class="nocode"> <code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;RateRule&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></span> + <strong><code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code></strong> + <span class="nocode"><code translate="no" dir="ltr">&lt;RateModification&gt;</code></span> </pre> <h3 id="rateineligibility-syntax" class="hide-from-toc" data-text="Syntax" tabindex="-1">Syntax</h3> <p>The <code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code> element uses the following syntax:</p> <pre class="readonly prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt; &lt;RateRuleSettings ...&gt; &lt;UserRateCondition ...&gt; ... &lt;/UserRateCondition&gt; &lt;RateRule ...&gt; &lt;UserRateCondition ...&gt; ... &lt;!-- Required when using RateIneligibility --&gt; &lt;MembershipProgram&gt;<var translate="no">program_name</var>&lt;/MembershipProgram&gt; ... &lt;/UserRateCondition&gt; &lt;RateIneligibility&gt; &lt;IneligibilityType&gt;[exact|price_band|existence]&lt;/IneligibilityType&gt; &lt;IneligibilityReason&gt;[program_member]&lt;/IneligibilityReason&gt; &lt;/RateIneligibility&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre> <h3 id="rateineligibility-attributes" class="hide-from-toc" data-text="Attributes" tabindex="-1">Attributes</h3> <p>The <code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code> element doesn&#39;t have any attributes.</p> <h3 id="rateineligibility-children" class="hide-from-toc" data-text="Child elements" tabindex="-1">Child elements</h3> <p>The <code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code> element has the following child elements:</p> <table class="fixed"> <tr> <th width="23%">Child&nbsp;Element</th> <th width="18%">Required?</th> <th width="18%">Type</th> <th>Description</th> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;IneligibilityType&gt;</code></span></td> <td><span translate="no"><strong>Required</strong></span></td> <td><span translate="no">enum</span></td> <td><p>Defines how the text (displayed next to the crossed-out rate) will describe the hidden rate.</p> <p>Valid values are:</p> <ul> <li><code translate="no" dir="ltr"><strong>exact</strong></code>: A discount percentage. The text will read, "Get X% off with free enrollment."</li> <li><code translate="no" dir="ltr"><strong>price_band</strong></code>: A discount range. The text will read, "Get X-Y% off with free enrollment." For discounts of 1-5%, the text will read "Get up to 5% off." Larger discounts will be shown in 5-point increments, such as "Get 5-10% off" or "Get 10-15% off."</li> <li><code translate="no" dir="ltr"><strong>existence</strong></code>: A non-specific hint. In this case, the text will read: "Get a lower price with free enrollment."</li> </ul> <p>Learn more about UI treatments in <a href="//support.google.com/hotelprices/answer/9984299">Private rates details and examples</a>.</p> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;IneligibilityReason&gt;</code></span></td> <td><span translate="no"><strong>Required</strong></span></td> <td><span translate="no">enum</span></td> <td><p>Valid values are:</p> <ul> <li><code translate="no" dir="ltr"><strong>program_member</strong></code>: Displays the rate using the member rate hidden UI treatment.</li> </ul> </td> </tr> </table> <h3 id="rateineligibility-examples" class="hide-from-toc" data-text="Private rates examples" tabindex="-1">Private rates examples</h3> <p>This section includes member rate hidden examples (basic) and member rate hidden examples (multiple conditions). You can also show your member rates to subsets of users. For examples, see <a href="#userratecondition-examples-private">Private rates examples</a>.</p> <h4 id="member_rate_hidden_examples_basic" data-text="Member rate hidden examples (basic)" tabindex="-1">Member rate hidden examples (basic)</h4> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="exact-discount" data-text="Exact discount" tabindex="-1">Exact discount</h3><pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;membership_program&quot;&gt; &lt;RateIneligibility&gt; &lt;IneligibilityReason&gt;program_member&lt;/IneligibilityReason&gt; &lt;IneligibilityType&gt;exact&lt;/IneligibilityType&gt; &lt;/RateIneligibility&gt; &lt;UserRateCondition&gt; &lt;MembershipProgram&gt;[enter program name here]&lt;/MembershipProgram&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> <section><h3 id="band-discount" data-text="Band discount" tabindex="-1">Band discount</h3><pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;membership_program&quot;&gt; &lt;RateIneligibility&gt; &lt;IneligibilityReason&gt;program_member&lt;/IneligibilityReason&gt; &lt;IneligibilityType&gt;price_band&lt;/IneligibilityType&gt; &lt;/RateIneligibility&gt; &lt;UserRateCondition&gt; &lt;MembershipProgram&gt;[enter program name here]&lt;/MembershipProgram&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> <section><h3 id="hint-discount" data-text="Hint discount" tabindex="-1">Hint discount</h3><pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;membership_program&quot;&gt; &lt;RateIneligibility&gt; &lt;IneligibilityReason&gt;program_member&lt;/IneligibilityReason&gt; &lt;IneligibilityType&gt;existence&lt;/IneligibilityType&gt; &lt;/RateIneligibility&gt; &lt;UserRateCondition&gt; &lt;MembershipProgram&gt;[enter program name here]&lt;/MembershipProgram&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> </div> <h4 id="member_rate_hidden_examples_multiple_conditions" data-text="Member rate hidden examples (multiple conditions)" tabindex="-1">Member rate hidden examples (multiple conditions)</h4> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="op=any" data-text='op="any"' tabindex="-1">op="any"</h3><p><strong>Audience list rate for members + member rate hidden (existence discount) for non-members</strong></p> <p>This private rates example specifies the <code translate="no" dir="ltr">existence</code> type of member rate hidden UI treatment, which will be shown to users and not to the audience list. Users in the audience list will see the audience rate.</p> <pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;membership_program&quot;&gt; &lt;RateIneligibility&gt; &lt;IneligibilityReason&gt;program_member&lt;/IneligibilityReason&gt; &lt;IneligibilityType&gt;existence&lt;/IneligibilityType&gt; &lt;/RateIneligibility&gt; &lt;UserRateCondition op=&quot;any&quot;&gt; &lt;MembershipProgram&gt;[enter program name here]&lt;/MembershipProgram&gt; &lt;UserListId&gt;[enter you audience list id here]&lt;/UserListId&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> <section><h3 id="op=all" data-text='op="all"' tabindex="-1">op="all"</h3><p><strong>Member rate hidden for audience list users only</strong></p> <p>This privates rate example specifies the <code translate="no" dir="ltr">exact</code> type of member rate hidden UI treatment, modified with the additional text &quot;plus free Wi-Fi&quot;. This UI treatment will be shown to users that match the audience list.</p> <pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;membership_program_for_audience_list&quot;&gt; &lt;RateIneligibility&gt; &lt;IneligibilityReason&gt;program_member&lt;/IneligibilityReason&gt; &lt;IneligibilityType&gt;exact&lt;/IneligibilityType&gt; &lt;/RateIneligibility&gt; &lt;RateModification&gt; &lt;HotelAmenity&gt;free_wifi&lt;/HotelAmenity&gt; &lt;/RateModification&gt; &lt;UserRateCondition op=&quot;all&quot;&gt; &lt;MembershipProgram&gt;[enter program name here]&lt;/MembershipProgram&gt; &lt;UserListId&gt;[enter you audience list id here]&lt;/UserListId&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> <section><h3 id="transparentvisible-ui" data-text="Transparent/visible UI" tabindex="-1">Transparent/visible UI</h3><p>This example shows how to specify member rate with two UI treatments (transparent and visible UI) for users in the audience list and hidden rates for all other users.</p> <pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;membership_program&quot;&gt; &lt;RateIneligibility&gt; &lt;IneligibilityReason&gt;program_member&lt;/IneligibilityReason&gt; &lt;IneligibilityType&gt;existence&lt;/IneligibilityType&gt; &lt;/RateIneligibility&gt; &lt;UserRateCondition op=&quot;any&quot;&gt; &lt;MembershipProgram&gt;[enter program name here]&lt;/MembershipProgram&gt; &lt;UserRateCondition op=&quot;all&quot;&gt; &lt;UserListId&gt;[enter you audience list id here]&lt;/UserListId&gt; &lt;AlwaysEligibleMembershipProgram&gt;program_name&lt;/AlwaysEligibleMembershipProgram&gt; &lt;/UserRateCondition&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre><aside class="note"><strong>Note:</strong><span> When <code translate="no" dir="ltr">UserListId</code> evaluates to <code translate="no" dir="ltr">true</code>, the member rate visible condition <code translate="no" dir="ltr">AlwaysEligibleMembershipProgram</code> is populated together, thus triggering the member rate visible and when it evaluates to <code translate="no" dir="ltr">false</code>, the enclosing <code translate="no" dir="ltr">UserRateCondition</code> becomes <code translate="no" dir="ltr">false</code>, which then removes the <code translate="no" dir="ltr">AlwaysEligibleMembershipProgram</code>. In this case, the member rate hidden condition &dash;<code translate="no" dir="ltr">MembershipProgram</code>&dash; triggers all the ineligible rates.</span></aside></section> </div> <h2 id="RateModification" data-text="&lt;RateModification&gt;" tabindex="-1"><code translate="no" dir="ltr">&lt;RateModification&gt;</code></h2> <p>Modifies the UI treatment for private rates.</p> <p>The <code translate="no" dir="ltr">&lt;RateModification&gt;</code> element appears in the following place in the rate rules XML hierarchy:</p> <pre class="prettyprint devsite-disable-click-to-copy" translate="no" dir="ltr">+ <span class="nocode"> <code translate="no" dir="ltr">&lt;RateRuleSettings&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;RateRule&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;UserRateCondition&gt;</code></span> + <span class="nocode"><code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code></span> + <strong><code translate="no" dir="ltr">&lt;RateModification&gt;</code></strong> </pre> <h3 id="ratemodification-attributes" class="hide-from-toc" data-text="Attributes" tabindex="-1">Attributes</h3> <p>The <code translate="no" dir="ltr">&lt;RateModification&gt;</code> element doesn&#39;t have any attributes.</p> <h3 id="ratemodification-children" class="hide-from-toc" data-text="Child elements" tabindex="-1">Child elements</h3> <p>The <code translate="no" dir="ltr">&lt;RateModification&gt;</code> element has the following child elements:</p> <table class="fixed"> <tbody> <tr> <th width="22%">Child&nbsp;Element</th> <th width="18%">Required?</th> <th width="18%">Type</th> <th>Description</th> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;HotelAmenity&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">enum</span></td> <td><p>Combine with <code translate="no" dir="ltr">&lt;MembershipProgram&gt;</code> and <code translate="no" dir="ltr">&lt;RateIneligibility&gt;</code> to modify the member rate hidden UI treatment.</p> <p>Valid values are:</p> <ul> <li><code translate="no" dir="ltr"><strong>free_wifi</strong></code>: Adds <code translate="no" dir="ltr">plus free wifi</code> to the text.</li> </ul> </td> </tr> <tr> <td><span translate="no"><code translate="no" dir="ltr">&lt;PriceMultiplier&gt;</code></span></td> <td><span translate="no">Optional</span></td> <td><span translate="no">float</span></td> <td><p>Modifies the price by multiplying this value to the base rate, taxes, and fees. For example, if <code translate="no" dir="ltr">PriceMultiplier</code> = 0.9, base rate = $100, taxes = $20, fees = $10; then after applying the multiplier: base rate = $90, taxes = $18, fees = $9.</p> <p>This lets you apply a discount to all rates with a certain rate rule.</p> </td> </tr> </tbody> </table> <h3 id="ratemodification-examples" class="hide-from-toc" data-text="Private rates examples" tabindex="-1">Private rates examples</h3> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="hotel-amenity" data-text="Hotel amenity" tabindex="-1">Hotel amenity</h3><p><strong>Member rate hidden for all users (band discounts) + free wifi</strong></p> <pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;membership_program&quot;&gt; &lt;RateIneligibility&gt; &lt;IneligibilityReason&gt;program_member&lt;/IneligibilityReason&gt; &lt;IneligibilityType&gt;price_band&lt;/IneligibilityType&gt; &lt;/RateIneligibility&gt; &lt;RateModification&gt; &lt;HotelAmenity&gt;free_wifi&lt;/HotelAmenity&gt; &lt;/RateModification&gt; &lt;UserRateCondition&gt; &lt;MembershipProgram&gt;[enter program name here]&lt;/MembershipProgram&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> <section><h3 id="price-multiplier" data-text="Price multiplier" tabindex="-1">Price multiplier</h3><p><strong>Apply 5% discount to the mobile rates in the Price Feed</strong></p> <pre class="readonly prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RateRuleSettings&gt; &lt;RateRule id=&quot;mobile&quot;&gt; &lt;RateModification&gt; &lt;PriceMultiplier&gt;0.95&lt;/PriceMultiplier&gt; &lt;/RateModification&gt; &lt;UserRateCondition&gt; &lt;UserDeviceType&gt;mobile&lt;/UserDeviceType&gt; &lt;/UserRateCondition&gt; &lt;/RateRule&gt; &lt;/RateRuleSettings&gt; </code></pre></section> </div> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Hotel Prices" product-id="82128" bucket="Hotels" context="DevSite feedback link" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-feedback-url="https://support.google.com/hotelprices/" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png" project-support-url="https://support.google.com/hotelprices/" > <button> Send feedback </button> </devsite-feedback> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>All rights reserved. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2024-09-18 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Hotel Prices" product-id="82128" bucket="Hotels" context="DevSite feedback link" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-feedback-url="https://support.google.com/hotelprices/" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png" project-support-url="https://support.google.com/hotelprices/" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-09-18 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Connect</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//googledevelopers.blogspot.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.instagram.com/googlefordevs/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Instagram </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.linkedin.com/showcase/googledevelopers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > LinkedIn </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//twitter.com/googledevs" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > X (Twitter) </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/user/GoogleDevelopers" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > YouTube </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Programs</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//www.womentechmakers.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Women Techmakers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/community/gdg" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Google Developer Groups </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/community/experts" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Google Developer Experts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/community/accelerators" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Accelerators </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/community/gdsc" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Google Developer Student Clubs </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Developer consoles</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//console.developers.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Google API Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//console.cloud.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Google Cloud Platform Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//play.google.com/apps/publish" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Google Play Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//console.firebase.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Firebase Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//console.actions.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Actions on Google Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//cast.google.com/publish" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Cast SDK Developer Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//chrome.google.com/webstore/developer/dashboard" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" > Chrome Web Store Dashboard </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//console.home.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" > Google Home Developer Console </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//developer.android.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link" > Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link" > Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//firebase.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link" > Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//cloud.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link" > Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//ai.google.dev/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google AI Link" > Google AI </a> </li> <li class="devsite-footer-sites-item"> <a href="/products" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/terms/site-terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google for Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/subscribe" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> <devsite-concierge data-info-panel data-ai-panel data-api-explorer-panel > </devsite-concierge> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[{&#34;dimensions&#34;: {&#34;dimension11&#34;: false, &#34;dimension4&#34;: &#34;Hotel Prices&#34;, &#34;dimension1&#34;: &#34;Signed out&#34;, &#34;dimension5&#34;: &#34;en&#34;, &#34;dimension3&#34;: false, &#34;dimension6&#34;: &#34;en&#34;}, &#34;gaid&#34;: &#34;UA-24532603-1&#34;, &#34;metrics&#34;: {&#34;ratings_count&#34;: &#34;metric2&#34;, &#34;ratings_value&#34;: &#34;metric1&#34;}, &#34;purpose&#34;: 1}]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}], &#34;ga4p&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}], &#34;gtm&#34;: [], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Hotel Prices&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;developers&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="b4t8NxGTLSgd80sxtIvhYG5xLTfjk2"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers","https://developers-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/developers/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["MiscFeatureFlags__developers_footer_image","Concierge__enable_concierge","TpcFeatures__enable_mirror_tenant_redirects","Cloud__enable_free_trial_server_call","Search__enable_ai_eligibility_checks","Profiles__enable_completecodelab_endpoint","Profiles__enable_page_saving","Profiles__enable_awarding_url","Profiles__enable_complete_playlist_endpoint","Cloud__enable_llm_concierge_chat","Cloud__enable_cloud_shell_fte_user_flow","Cloud__enable_cloudx_ping","Profiles__enable_release_notes_notifications","Cloud__enable_cloud_facet_chat","CloudShell__cloud_shell_button","MiscFeatureFlags__enable_variable_operator","Cloud__enable_legacy_calculator_redirect","TpcFeatures__enable_required_headers","DevPro__enable_developer_subscriptions","Profiles__enable_recognition_badges","Search__enable_page_map","Profiles__enable_public_developer_profiles","MiscFeatureFlags__enable_firebase_utm","Search__enable_dynamic_content_confidential_banner","Search__enable_ai_search_summaries_restricted","Profiles__enable_profile_collections","DevPro__enable_cloud_innovators_plus","Cloud__enable_cloudx_experiment_ids","MiscFeatureFlags__developers_footer_dark_image","Analytics__enable_clearcut_logging","Significatio__enable_by_tenant","MiscFeatureFlags__emergency_css","Search__enable_suggestions_from_borg","Concierge__enable_pushui","Profiles__enable_developer_profiles_callout","Profiles__enable_dashboard_curated_recommendations","Cloud__enable_cloud_shell","CloudShell__cloud_code_overflow_menu","Experiments__reqs_query_experiments","Search__enable_ai_search_summaries","Concierge__enable_concierge_restricted","BookNav__enable_tenant_cache_key","MiscFeatureFlags__enable_project_variables","MiscFeatureFlags__enable_view_transitions","Profiles__require_profile_eligibility_for_signin","EngEduTelemetry__enable_engedu_telemetry","Cloud__enable_cloud_dlp_service","MiscFeatureFlags__enable_explain_this_code"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,null,"https://developerprofiles-pa.clients6.google.com",[1,"developers","Google for Developers","developers.google.com",null,"developers-dot-devsite-v2-prod.appspot.com",null,null,[1,1,[1],null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1,20],"/recommendations/information"],null,null,null,[1,1,1],[1,1,null,1,1]],null,[null,null,null,null,null,null,"/images/lockup-new.svg","/images/touchicon-180-new.png",null,null,null,null,1,null,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme-new.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,20,22,23,29,32,36],null,[[null,null,null,[3,7,10,2,39,17,4,32,24,11,12,13,34,15,25],null,null,[1,[["docType","Choose a content type",[["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"],["Guide",null,null,null,null,null,null,null,null,"Guide"],["Sample",null,null,null,null,null,null,null,null,"Sample"]]],["product","Choose a product",[["Android",null,null,null,null,null,null,null,null,"Android"],["ARCore",null,null,null,null,null,null,null,null,"ARCore"],["ChromeOS",null,null,null,null,null,null,null,null,"ChromeOS"],["Firebase",null,null,null,null,null,null,null,null,"Firebase"],["Flutter",null,null,null,null,null,null,null,null,"Flutter"],["Assistant",null,null,null,null,null,null,null,null,"Google Assistant"],["GoogleCloud",null,null,null,null,null,null,null,null,"Google Cloud"],["GoogleMapsPlatform",null,null,null,null,null,null,null,null,"Google Maps Platform"],["GooglePay",null,null,null,null,null,null,null,null,"Google Pay & Google Wallet"],["GooglePlay",null,null,null,null,null,null,null,null,"Google Play"],["Tensorflow",null,null,null,null,null,null,null,null,"TensorFlow"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"AI and Machine Learning"],["Data",null,null,null,null,null,null,null,null,"Data"],["Enterprise",null,null,null,null,null,null,null,null,"Enterprise"],["Gaming",null,null,null,null,null,null,null,null,"Gaming"],["Mobile",null,null,null,null,null,null,null,null,"Mobile"],["Web",null,null,null,null,null,null,null,null,"Web"]]]]]],[1,1],null,1],[[["UA-24532603-1"],["UA-22084204-5"],null,null,["UA-24532603-5"],null,null,[["G-272J68FCRF"],null,null,[["G-272J68FCRF",2]]],[["UA-24532603-1",2]],null,[["UA-24532603-5",2]],null,1],[[13,10],[11,8],[12,9],[3,2],[5,4],[4,3],[15,12],[14,11],[1,1],[16,13],[6,5]],[[2,2],[1,1]]],null,4,null,null,null,null,null,null,null,null,null,null,null,null,null,"developers.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10