CINXE.COM

Room Bundles  |  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/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/touchicon-180-new.png"><link rel="canonical" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles"><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/dev-guide/room-bundles" /><link rel="alternate" hreflang="x-default" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles" /><link rel="alternate" hreflang="ar" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=fa" /><link rel="alternate" hreflang="fr" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=fr" /><link rel="alternate" hreflang="de" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=de" /><link rel="alternate" hreflang="he" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=he" /><link rel="alternate" hreflang="hi" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=hi" /><link rel="alternate" hreflang="id" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=id" /><link rel="alternate" hreflang="it" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=it" /><link rel="alternate" hreflang="ja" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=th" /><link rel="alternate" hreflang="tr" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles?hl=vi" /><title>Room Bundles &nbsp;|&nbsp; Hotel Prices &nbsp;|&nbsp; Google for Developers</title> <meta property="og:title" content="Room Bundles &nbsp;|&nbsp; Hotel Prices &nbsp;|&nbsp; Google for Developers"><meta property="og:url" content="https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles"><meta property="og:image" content="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/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": "Room Bundles" } </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": "Room Bundles", "item": "https://developers.google.com/hotels/hotel-prices/dev-guide/room-bundles" }] } </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> <a href="#main-content" class="skip-link button"> Skip to main content </a> <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 class="devsite-active"> <a href="https://developers.google.com/hotels/hotel-prices" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/hotels/hotel-prices" track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" aria-label="Guides, selected" 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" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/hotels/hotel-prices/api-reference" 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 > <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/hotel-list-feed" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/hotels/hotel-prices/xml-reference/hotel-list-feed" track-type="nav" track-metadata-position="nav - xml reference" track-metadata-module="primary nav" 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" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/hotels/hotel-prices/dev-guide/where-to-get-help" 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 devsite-nav-active" 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 " 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" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Setup and Configuration</span> </div></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/data-feeds" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/data-feeds" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/data-feeds" ><span class="devsite-nav-text" tooltip>Integration Overview</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/delivery-mode" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/delivery-mode" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/delivery-mode" ><span class="devsite-nav-text" tooltip>Pricing Delivery Modes</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/schemas" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/schemas" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/schemas" ><span class="devsite-nav-text" tooltip>Schemas</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Hotel List</span> </div></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/hlf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/hlf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/hlf" ><span class="devsite-nav-text" tooltip>Setting Up a Hotel List in XML</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Availability, Rates, and Inventory (ARI)</span> </div></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/ari-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/ari-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/ari-overview" ><span class="devsite-nav-text" tooltip>ARI Overview (Push delivery mode)</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/ari-transaction-message" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/ari-transaction-message" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/ari-transaction-message" ><span class="devsite-nav-text" tooltip>Transaction (Property Data) Message</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/ari-rate-message" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/ari-rate-message" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/ari-rate-message" ><span class="devsite-nav-text" tooltip>Rate Message</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/ari-inventory-message" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/ari-inventory-message" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/ari-inventory-message" ><span class="devsite-nav-text" tooltip>Inventory Message</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/ari-availability-message" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/ari-availability-message" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/ari-availability-message" ><span class="devsite-nav-text" tooltip>Availability Message</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/ari-tax-message" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/ari-tax-message" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/ari-tax-message" ><span class="devsite-nav-text" tooltip>Tax and Fee Message</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/ari-promotions-message" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/ari-promotions-message" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/ari-promotions-message" ><span class="devsite-nav-text" tooltip>Promotions Message</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/ari-glossary" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/ari-glossary" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/ari-glossary" ><span class="devsite-nav-text" tooltip>ARI Glossary</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Pull delivery mode for Transactions</span> </div></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/updating-prices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/updating-prices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/updating-prices" ><span class="devsite-nav-text" tooltip>Overview (Pull delivery mode)</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/transaction-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/transaction-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/transaction-overview" ><span class="devsite-nav-text" tooltip>Transaction Messages</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/inventory" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/inventory" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/inventory" ><span class="devsite-nav-text" tooltip>Adding and Updating Inventory</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/removing-inventory" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/removing-inventory" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/removing-inventory" ><span class="devsite-nav-text" tooltip>Removing Inventory</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/room-bundles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/room-bundles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/room-bundles" ><span class="devsite-nav-text" tooltip>Using Room Bundles</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/fenced-rates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/fenced-rates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/fenced-rates" ><span class="devsite-nav-text" tooltip>Conditional Rates</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/qualified-rates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/qualified-rates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/qualified-rates" ><span class="devsite-nav-text" tooltip>Private Rates</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/rate-rule-errors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/rate-rule-errors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/rate-rule-errors" ><span class="devsite-nav-text" tooltip>Rate Rule Error Messages</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>Query &amp; Hint Messages</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/hint-request-messages" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/hint-request-messages" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/hint-request-messages" ><span class="devsite-nav-text" tooltip>Hint Request Messages</span></a></li><li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/hint-response-messages" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/hint-response-messages" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/hint-response-messages" ><span class="devsite-nav-text" tooltip>Hint Response Messages</span></a></li><li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/query-messages" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/query-messages" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/query-messages" ><span class="devsite-nav-text" tooltip>Query Messages</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/feed-status-errors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/feed-status-errors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/feed-status-errors" ><span class="devsite-nav-text" tooltip>Feed Status Error Messages</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Landing Pages</span> </div></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/pos-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/pos-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/pos-overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/pos-syntax" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/pos-syntax" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/pos-syntax" ><span class="devsite-nav-text" tooltip>Landing Pages File Syntax</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/pos-matching" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/pos-matching" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/pos-matching" ><span class="devsite-nav-text" tooltip>Landing Page Matching Rules</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/pos-urls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/pos-urls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/pos-urls" ><span class="devsite-nav-text" tooltip>Using Variables and Conditions</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/pos-tracking" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/pos-tracking" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/pos-tracking" ><span class="devsite-nav-text" tooltip>Using Tracking</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Bidding (Hotel Ads)</span> </div></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/submitting-bids" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/submitting-bids" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/submitting-bids" ><span class="devsite-nav-text" tooltip>Submitting Bids</span></a></li> <li class="devsite-nav-item"><a href="/hotels/hotel-prices/dev-guide/spending-caps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /hotels/hotel-prices/dev-guide/spending-caps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/hotels/hotel-prices/dev-guide/spending-caps" ><span class="devsite-nav-text" tooltip>Setting Spending Caps</span></a></li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" id="main-content" 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> </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-20250211-r00-rc00.466928320959134316" 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/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/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"> Room Bundles </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> <devsite-key-takeaways></devsite-key-takeaways> <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>Room Bundles let you define multiple room types for a single property, or combine an itinerary of a room with rate features&mdash;additional services that come with a rate and conditions of sale&mdash;to your users beyond a standard price.</p> <aside class="key-point"><strong>Key Point:</strong><span> Room Bundles and rate features are different from amenities, which are things a hotel has that aren&#39;t tied to a rate, such as a fitness center or restaurant, and which are defined by <a href="/hotels/hotel-prices/xml-reference/hotel-list-feed#attributes"><code translate="no" dir="ltr">attributes</code> in a Hotel List</a>.</span></aside> <h2 id="overview" data-text="Key concepts and workflow" tabindex="-1">Key concepts and workflow</h2> <p>With Room Bundles, you can offer additional combinations of physical room types with different service packages.</p> <h3 id="examples" data-text="Examples" tabindex="-1">Examples</h3> <p>The following images shows examples of Room bundles in desktop and mobile devices:</p> <div> <devsite-nav-buttons name="device"> <button value="desktop" default>Desktop</button> <button value="mobile">Mobile</button> </devsite-nav-buttons> </div> <h3 id="room-bundles-with-images" data-text="Room Bundles with images" tabindex="-1">Room Bundles with images</h3> <img class="screenshot" style="max-width:500px;" src="/static/hotels/images/Room-bundle-price-mobile.png" alt> <p>This example is mobile version of Room bundles which consists of all the different room types for the required number of occupants and their respective room images.</p> <p class="note"><strong>Note:</strong> Room bundles without images are replaced with a bed placeholder image.</p> <h3 id="rate_features" data-text="Rate features" tabindex="-1">Rate features</h3> <p>The following images show examples of rate features:</p> <p><img class="screenshot" src="/static/hotels/images/hotel_credit2.png"></p> <p><img class="screenshot" src="/static/hotels/images/car-rental.png"></p> <p><img class="screenshot" src="/static/hotels/images/program-benefits.png"></p> <aside class="key-point"><strong>Key Point:</strong><span> Your TAM (Technical Account Manager) needs to enable your account to use rate features.</span></aside> <p>Displaying Room Bundles and rate features in search results is governed by the same selection process as standard room rates.</p> <h3 id="syntax" data-text="Room Bundles" tabindex="-1">Room Bundles</h3> <p>You define Room Bundles and rate features in Transaction messages. The root element of a Transaction message is <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#Transaction"><code translate="no" dir="ltr">&lt;Transaction&gt;</code></a>.</p> <p>The structure of the Transaction message depends on what you are doing: defining the metadata about the Room Bundle or rate feature, or updating the Room Bundle&#39;s pricing or availability.</p> <dl> <dt>Metadata</dt> <dd>Define Room Bundle and rate feature metadata with <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#PackageData"><code translate="no" dir="ltr">&lt;PackageData&gt;</code></a> in a <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#PropertyDataSet"><code translate="no" dir="ltr">&lt;PropertyDataSet&gt;</code></a> element. For more information, see <a href="#metadata">Define room and package metadata</a>. Room Bundles use existing <code translate="no" dir="ltr">&lt;RoomData&gt;</code> elements for their physical room descriptions.</dd> <dt>Pricing and availability</dt> <dd>Define Room Bundle pricing and availability with the <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#RoomBundle"><code translate="no" dir="ltr">&lt;RoomBundle&gt;</code></a> element in a <code translate="no" dir="ltr">&lt;Result&gt;</code> for each package/itinerary combination. For more information, see <a href="#pricing">Define pricing and availability</a>.</dd> </dl> <p>The base room&#39;s rate, taxes, and other fees are mandatory under <code translate="no" dir="ltr">&lt;Result&gt;</code> when they&#39;re not used with Room Bundles, and can be removed when used with Room Bundles. If you&#39;re implementing Room Bundles using a live account, follow these steps:</p> <ol> <li><p>Include the base room&#39;s rate, taxes, and other fees under <code translate="no" dir="ltr">&lt;Result&gt;</code> and add one Room Bundle that matches the base Room Bundle.</p></li> <li><p>If needed, define additional Room Bundles within the same <code translate="no" dir="ltr">&lt;Result&gt;</code> block for other room types at that property or different packages of services.</p></li> <li><p>After the Room Bundle is launched, remove the base room&#39;s rate, taxes, and other fees.</p></li> </ol> <h3 id="room_bundle_metadata" data-text="Room Bundle metadata" tabindex="-1">Room Bundle metadata</h3> <p>When defining Room Bundles and rate features, you typically define the description, additional services that are part of the rate, and other information about the Room Bundle ahead of time. This information is known as the Room Bundle metadata. You then reference this metadata in your pricing updates, but don&#39;t include it in the pricing update messages.</p> <p>When you define Room Bundles, use existing <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#RoomData"><code translate="no" dir="ltr">&lt;RoomData&gt;</code></a> elements for the physical room descriptions and <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#PackageData"><code translate="no" dir="ltr">&lt;PackageData&gt;</code></a> elements for the rate features and terms that aren&#39;t part of the physical room description.</p> <p>Using the <code translate="no" dir="ltr">&lt;RoomData&gt;</code> and <code translate="no" dir="ltr">&lt;PackageData&gt;</code> elements can significantly reduce the size of your Hotel List and <a href="/hotels/hotel-prices/dev-guide/updating-prices">Hotel Price Feed</a> because it reduces the amount of repetitive data sent in Transaction messages.</p> <p>For example, data such as a room name and description is typically repeated for every itinerary. You can use the <code translate="no" dir="ltr">&lt;RoomData&gt;</code> and <code translate="no" dir="ltr">&lt;PackageData&gt;</code> elements to define this type of data once. Itinerary-specific Room Bundle data is then merged with the stored room and package definitions for display to the end user.</p> <p>Google matches your metadata with your itinerary-specific data to render the contents of your ads. There is special processing to combine the names and descriptions from the <code translate="no" dir="ltr">&lt;RoomData&gt;</code> and <code translate="no" dir="ltr">&lt;PackageData&gt;</code> elements, allowing the physical room to be described in <code translate="no" dir="ltr">&lt;RoomData&gt;</code> and rate features and package details to be in <code translate="no" dir="ltr">&lt;PackageData&gt;</code>.</p> <p>If you define both the room data and package data for a single room or Room Bundle, Google includes both in the ad output, separated by a hyphen.</p> <h3 id="photo_guidelines" data-text="Photo guidelines" tabindex="-1">Photo guidelines</h3> <p>When sending room photos, here are some guidelines you should follow to make sure your photos are shown to users:</p> <ul> <li><p>Send photos for each room type, including photos of accessible rooms&mdash;for example, designated accessible rooms with various bathroom fixtures, such as roll-in shower.</p></li> <li><p>Include at least four photos of the room and at least one photo of the bathroom.</p></li> <li><p>Photos should be of the room itself rather than of the property. The most important photos are of the bed, the whole room, the bathroom, living space, and the view from the room (with the rest of the room in the same photo), and, if applicable, the balcony, patio, or terrace.</p> <p>It is also helpful to capture photos of the desk, kitchen, coffee/tea makers, and distinct room features.</p></li> <li><p>Avoid photos of people and property&mdash;for example, exterior or property amenities&mdash;sightseeing/tourism, and food.</p></li> <li><p>Avoid close-up shots of objects, such as closeups of stemware.</p></li> <li><p>Avoid branding and brands, though labeled or branded toiletries are fine to include within a photo that captures the entire bathroom area. Photos shouldn&#39;t feature large blocks of text, logos, or watermarks.</p></li> <li><p>Provide standard, landscape (horizontal) photos with a wide field of view; avoid fisheye and distorted photos. Capture photos at the highest resolution for improved ranking. You don&#39;t need to submit the same photo in various resolutions.</p></li> </ul> <h3 id="data_precedence" data-text="Data precedence" tabindex="-1">Data precedence</h3> <p>Room Bundle data is gathered from all sources and combined, using precedence rules, to produce the final data for a given hotel, itinerary, and Room Bundle. The ordering is as follows, from lowest to highest precedence:</p> <ol> <li>(Lowest) Partner data</li> <li>Property data</li> <li><a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#RoomData"><code translate="no" dir="ltr">&lt;RoomData&gt;</code></a>, where the <code translate="no" dir="ltr">&lt;RoomID&gt;</code> matches the <code translate="no" dir="ltr">&lt;RoomID&gt;</code> in the <code translate="no" dir="ltr">&lt;RoomBundle&gt;</code> block</li> <li><a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#PackageData"><code translate="no" dir="ltr">&lt;PackageData&gt;</code></a>, where the <code translate="no" dir="ltr">&lt;PackageID&gt;</code> matches the <code translate="no" dir="ltr">&lt;PackageID&gt;</code> in the <code translate="no" dir="ltr">&lt;RoomBundle&gt;</code> block</li> <li>(Highest) <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#RoomBundle"><code translate="no" dir="ltr">&lt;RoomBundle&gt;</code></a></li> </ol> <h2 id="pricing" data-text="Define pricing and availability" tabindex="-1">Define pricing and availability</h2> <p>To define Room Bundle pricing and availability, use a <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#RoomBundle"><code translate="no" dir="ltr">&lt;RoomBundle&gt;</code></a> element in a Transaction message for each package or itinerary combination. The <code translate="no" dir="ltr">&lt;RoomBundle&gt;</code> element should be inside the <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#Result"><code translate="no" dir="ltr">&lt;Result&gt;</code></a> element. Sample code for two <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#RoomBundle"><code translate="no" dir="ltr">&lt;RoomBundle&gt;</code></a> elements is shown below. Note that, in this example, the two <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#RoomBundle"><code translate="no" dir="ltr">&lt;RoomBundle&gt;</code></a> elements reference room and package metadata using <code translate="no" dir="ltr">&lt;RoomID&gt;</code> and <code translate="no" dir="ltr">&lt;PackageID&gt;</code>.</p> <p>For each <code translate="no" dir="ltr">&lt;Result&gt;</code>, the contained set of Room Bundles overwrites the existing set for that property or itinerary combination. If you don&#39;t define any Room Bundles or rate features in the <code translate="no" dir="ltr">&lt;Result&gt;</code> element, then all Room Bundles are removed and only the basic room for that hotel or itinerary shows up in search results.</p> <p>Be sure to use elements such as <code translate="no" dir="ltr">&lt;Name&gt;</code> to make your Room Bundles more attractive to potential customers and be sure they match the hotel&#39;s landing page. In this example, you would define names and other descriptive information in the metadata.</p> <p><code translate="no" dir="ltr">&lt;RatePlanID&gt;</code> is optional and represents the unique identifier for a room and package combination. We strongly recommend using RatePlanID as a variable to build your dynamic landing page (formerly Point of Sale) URL. For details, see <a href="/hotels/hotel-prices/dev-guide/pos-urls">Using Variables and Conditions</a>.</p> <p>The following elements are optional in Room Bundles:</p> <p><code translate="no" dir="ltr">&lt;Baserate&gt;</code></br> <code translate="no" dir="ltr">&lt;Tax&gt;</code></br> <code translate="no" dir="ltr">&lt;OtherFees&gt;</code></br> <code translate="no" dir="ltr">&lt;RoomID&gt;</code></br> <code translate="no" dir="ltr">&lt;PackageID&gt;</code></br> <code translate="no" dir="ltr">&lt;Occupancy&gt;</code></br> <code translate="no" dir="ltr">&lt;OccupancyDetails&gt;</code></br></p> <p>When you implement Room Bundle in a live account, remove <code translate="no" dir="ltr">&lt;Baserate&gt;</code> after the Room Bundle is enabled.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="XML"><code translate="no" dir="ltr">&lt;Result&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Note:<span class="devsite-syntax-w"> </span>When<span class="devsite-syntax-w"> </span>using<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>Bundles,<span class="devsite-syntax-w"> </span>the<span class="devsite-syntax-w"> </span>top<span class="devsite-syntax-w"> </span>level<span class="devsite-syntax-w"> </span>result<span class="devsite-syntax-w"> </span>price<span class="devsite-syntax-w"> </span>is<span class="devsite-syntax-w"> </span>no <span class="devsite-syntax-w"> </span>longer<span class="devsite-syntax-w"> </span>necessary.<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;Property&gt;180054&lt;/Property&gt; <span class="devsite-syntax-w"> </span>&lt;Checkin&gt;2017-10-07&lt;/Checkin&gt; <span class="devsite-syntax-w"> </span>&lt;Nights&gt;2&lt;/Nights&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Base<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>Bundle<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;RoomBundle&gt; <span class="devsite-syntax-w"> </span>&lt;RoomID&gt;060773&lt;/RoomID&gt; <span class="devsite-syntax-w"> </span>&lt;PackageID&gt;P54321&lt;/PackageID&gt; <span class="devsite-syntax-w"> </span>&lt;Baserate<span class="devsite-syntax-w"> </span>currency="USD"&gt;199.99&lt;/Baserate&gt; <span class="devsite-syntax-w"> </span>&lt;Tax<span class="devsite-syntax-w"> </span>currency="USD"&gt;25.12&lt;/Tax&gt; <span class="devsite-syntax-w"> </span>&lt;OtherFees<span class="devsite-syntax-w"> </span>currency="USD"&gt;2.00&lt;/OtherFees&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>RatePlanID<span class="devsite-syntax-w"> </span>is<span class="devsite-syntax-w"> </span>optional<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>represents<span class="devsite-syntax-w"> </span>the<span class="devsite-syntax-w"> </span>unique<span class="devsite-syntax-w"> </span>identifier<span class="devsite-syntax-w"> </span>for<span class="devsite-syntax-w"> </span>a <span class="devsite-syntax-w"> </span>room<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>package<span class="devsite-syntax-w"> </span>data<span class="devsite-syntax-w"> </span>combination.<span class="devsite-syntax-w"> </span>We<span class="devsite-syntax-w"> </span>strongly<span class="devsite-syntax-w"> </span>recommend<span class="devsite-syntax-w"> </span>using<span class="devsite-syntax-w"> </span>RatePlanID <span class="devsite-syntax-w"> </span>as<span class="devsite-syntax-w"> </span>a<span class="devsite-syntax-w"> </span>variable<span class="devsite-syntax-w"> </span>to<span class="devsite-syntax-w"> </span>build<span class="devsite-syntax-w"> </span>your<span class="devsite-syntax-w"> </span>dynamic<span class="devsite-syntax-w"> </span>landing<span class="devsite-syntax-w"> </span>page<span class="devsite-syntax-w"> </span>(formerly<span class="devsite-syntax-w"> </span>Point<span class="devsite-syntax-w"> </span>of<span class="devsite-syntax-w"> </span>Sale) <span class="devsite-syntax-w"> </span>URL.<span class="devsite-syntax-w"> </span>For<span class="devsite-syntax-w"> </span>details,<span class="devsite-syntax-w"> </span>see<span class="devsite-syntax-w"> </span>Using<span class="devsite-syntax-w"> </span>Variables<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>Conditions.<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;RatePlanID&gt;060773-P54321&lt;/RatePlanID&gt; <span class="devsite-syntax-w"> </span>&lt;/RoomBundle&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Premium<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>Bundle<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;RoomBundle&gt; <span class="devsite-syntax-w"> </span>&lt;RoomID&gt;436233&lt;/RoomID&gt; <span class="devsite-syntax-w"> </span>&lt;PackageID&gt;P12345&lt;/PackageID&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Price<span class="devsite-syntax-w"> </span>for<span class="devsite-syntax-w"> </span>4<span class="devsite-syntax-w"> </span>("occupancy")<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;Baserate<span class="devsite-syntax-w"> </span>currency="USD"&gt;298.88&lt;/Baserate&gt; <span class="devsite-syntax-w"> </span>&lt;Tax<span class="devsite-syntax-w"> </span>currency="USD"&gt;42.12&lt;/Tax&gt; <span class="devsite-syntax-w"> </span>&lt;OtherFees<span class="devsite-syntax-w"> </span>currency="USD"&gt;10.00&lt;/OtherFees&gt; <span class="devsite-syntax-w"> </span>&lt;RatePlanID&gt;436233-P12345&lt;/RatePlanID&gt; <span class="devsite-syntax-w"> </span>&lt;/RoomBundle&gt; &lt;/Result&gt; </code></pre></devsite-code> <h2 id="metadata" data-text="Define room and package metadata" tabindex="-1">Define room and package metadata</h2> <p>To define Room Bundle metadata, use <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#PackageData"><code translate="no" dir="ltr">&lt;PackageData&gt;</code></a> and <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#RoomData"><code translate="no" dir="ltr">&lt;RoomData&gt;</code></a> elements inside the <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#PropertyDataSet"><code translate="no" dir="ltr">&lt;PropertyDataSet&gt;</code></a> element of a Transaction message.</p> <p>You define room and package metadata in a Transaction message that is separate from the <a href="#pricing">pricing and availability data</a>. By defining this data ahead of time, your pricing updates don&#39;t need to include repetitive information such as descriptions, photo URLs, amenities, and other data about each and every room or package for each and every itinerary.</p> <p>Google stores the metadata for you and inserts it into your ads when they are displayed. You can update room and package metadata at any time with a new Transaction message.</p> <p>In the Transaction message, you set a package ID and a room ID on each block that you then reference in your <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#Result"><code translate="no" dir="ltr">&lt;Result&gt;</code></a> blocks of pricing updates.</p> <p>If the room and package data changes&mdash;for example, if you add a new room type in a property, send a new Transaction message that contains the updated room and package data&mdash;Google replaces the existing metadata about a room or package with the new data.</p> <p>Google recommends that you define metadata during your initial setup. After predefining the metadata, you only need to reference the <code translate="no" dir="ltr">&lt;RoomID&gt;</code> and <code translate="no" dir="ltr">&lt;PackageID&gt;</code> values in your <a href="/hotels/hotel-prices/dev-guide/updating-prices">pricing updates</a> rather than include all that information again. Google uses those IDs to match rooms and Room Bundles with the stored metadata. This can greatly reduce the overall size of your Transaction messages.</p> <p>Because prices for room or itinerary combinations change much more frequently than the room or package descriptions, defining metadata once and then referring to it is a much more efficient use of Transaction messages. In addition, errors such as mismatching room descriptions can be eliminated by using metadata rather than defining data inline.</p> <p>The recommended and most efficient method of defining metadata and pricing separately is shown below:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="XML"><code translate="no" dir="ltr">&lt;!--<span class="devsite-syntax-w"> </span>Efficient<span class="devsite-syntax-w"> </span>method<span class="devsite-syntax-w"> </span>of<span class="devsite-syntax-w"> </span>defining<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>Bundles<span class="devsite-syntax-w"> </span>--&gt; &lt;!-----<span class="devsite-syntax-w"> </span>Occupancy<span class="devsite-syntax-w"> </span>of<span class="devsite-syntax-w"> </span>2<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>4<span class="devsite-syntax-w"> </span>example<span class="devsite-syntax-w"> </span>------&gt; &lt;Transaction<span class="devsite-syntax-w"> </span>timestamp="2019-04-18T16:20:00-04:00"<span class="devsite-syntax-w"> </span>id="12345678"&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Part1:<span class="devsite-syntax-w"> </span>Define<span class="devsite-syntax-w"> </span>RoomData<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>PackageData<span class="devsite-syntax-w"> </span>in<span class="devsite-syntax-w"> </span>PropertyDataSet<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Note:<span class="devsite-syntax-w"> </span>Once<span class="devsite-syntax-w"> </span>defined<span class="devsite-syntax-w"> </span>it<span class="devsite-syntax-w"> </span>does<span class="devsite-syntax-w"> </span>not<span class="devsite-syntax-w"> </span>have<span class="devsite-syntax-w"> </span>to<span class="devsite-syntax-w"> </span>be<span class="devsite-syntax-w"> </span>repeated<span class="devsite-syntax-w"> </span>for<span class="devsite-syntax-w"> </span>future<span class="devsite-syntax-w"> </span>Transaction<span class="devsite-syntax-w"> </span>Messages.<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>PropertyDataSets<span class="devsite-syntax-w"> </span>can<span class="devsite-syntax-w"> </span>also<span class="devsite-syntax-w"> </span>be<span class="devsite-syntax-w"> </span>defined<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>sent<span class="devsite-syntax-w"> </span>in<span class="devsite-syntax-w"> </span>their<span class="devsite-syntax-w"> </span>own<span class="devsite-syntax-w"> </span>Transaction<span class="devsite-syntax-w"> </span>Message<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>separately<span class="devsite-syntax-w"> </span>from<span class="devsite-syntax-w"> </span>pricing.<span class="devsite-syntax-w"> </span>Google<span class="devsite-syntax-w"> </span>can<span class="devsite-syntax-w"> </span>be<span class="devsite-syntax-w"> </span>configured<span class="devsite-syntax-w"> </span>to<span class="devsite-syntax-w"> </span>pull<span class="devsite-syntax-w"> </span>just<span class="devsite-syntax-w"> </span>PropertyDataSets<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>once<span class="devsite-syntax-w"> </span>per<span class="devsite-syntax-w"> </span>day<span class="devsite-syntax-w"> </span>(or<span class="devsite-syntax-w"> </span>on<span class="devsite-syntax-w"> </span>a<span class="devsite-syntax-w"> </span>predefined<span class="devsite-syntax-w"> </span>frequency).<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;PropertyDataSet&gt; <span class="devsite-syntax-w"> </span>&lt;Property&gt;180054&lt;/Property&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Can<span class="devsite-syntax-w"> </span>be<span class="devsite-syntax-w"> </span>reused<span class="devsite-syntax-w"> </span>by<span class="devsite-syntax-w"> </span>multiple<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>Bundles<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;RoomData&gt; <span class="devsite-syntax-w"> </span>&lt;RoomID&gt;060773&lt;/RoomID&gt; <span class="devsite-syntax-w"> </span>&lt;Name&gt; <span class="devsite-syntax-w"> </span>&lt;Text<span class="devsite-syntax-w"> </span>text="Single<span class="devsite-syntax-w"> </span>Queen<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>-<span class="devsite-syntax-w"> </span>Non-Smoking"<span class="devsite-syntax-w"> </span>language="en"/&gt; <span class="devsite-syntax-w"> </span>&lt;Text<span class="devsite-syntax-w"> </span>text="Chambre<span class="devsite-syntax-w"> </span>de<span class="devsite-syntax-w"> </span>la<span class="devsite-syntax-w"> </span>Roi<span class="devsite-syntax-w"> </span>Premium<span class="devsite-syntax-w"> </span>-<span class="devsite-syntax-w"> </span>Pas<span class="devsite-syntax-w"> </span>de<span class="devsite-syntax-w"> </span>Fumeurs"<span class="devsite-syntax-w"> </span>language="fr"/&gt; <span class="devsite-syntax-w"> </span>&lt;/Name&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>can<span class="devsite-syntax-w"> </span>accommodate<span class="devsite-syntax-w"> </span>4,<span class="devsite-syntax-w"> </span>but<span class="devsite-syntax-w"> </span>bundle<span class="devsite-syntax-w"> </span>is<span class="devsite-syntax-w"> </span>for<span class="devsite-syntax-w"> </span>2<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;Capacity&gt;4&lt;/Capacity&gt; <span class="devsite-syntax-w"> </span>&lt;PhotoURL&gt; <span class="devsite-syntax-w"> </span>&lt;URL&gt;http://www.foo.com/static/bar/imageQueen.jpg&lt;/URL&gt; <span class="devsite-syntax-w"> </span>&lt;Caption&gt; <span class="devsite-syntax-w"> </span>&lt;Text<span class="devsite-syntax-w"> </span>text="A<span class="devsite-syntax-w"> </span>bright<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>breezy<span class="devsite-syntax-w"> </span>way<span class="devsite-syntax-w"> </span>to<span class="devsite-syntax-w"> </span>enjoy<span class="devsite-syntax-w"> </span>your<span class="devsite-syntax-w"> </span>mornin' <span class="devsite-syntax-w"> </span>cuppa<span class="devsite-syntax-w"> </span>tea."<span class="devsite-syntax-w"> </span>language="en"/&gt; <span class="devsite-syntax-w"> </span>&lt;Text<span class="devsite-syntax-w"> </span>text="Une<span class="devsite-syntax-w"> </span>façon<span class="devsite-syntax-w"> </span>lumineuse<span class="devsite-syntax-w"> </span>et<span class="devsite-syntax-w"> </span>aérée<span class="devsite-syntax-w"> </span>pour<span class="devsite-syntax-w"> </span>profiter <span class="devsite-syntax-w"> </span>de<span class="devsite-syntax-w"> </span>votre<span class="devsite-syntax-w"> </span>journée<span class="devsite-syntax-w"> </span>tasse<span class="devsite-syntax-w"> </span>de<span class="devsite-syntax-w"> </span>thé."<span class="devsite-syntax-w"> </span>language="fr"/&gt; <span class="devsite-syntax-w"> </span>&lt;/Caption&gt; <span class="devsite-syntax-w"> </span>&lt;/PhotoURL&gt; <span class="devsite-syntax-w"> </span>&lt;/RoomData&gt; <span class="devsite-syntax-w"> </span>&lt;RoomData&gt; <span class="devsite-syntax-w"> </span>&lt;RoomID&gt;436233&lt;/RoomID&gt; <span class="devsite-syntax-w"> </span>&lt;Name&gt; <span class="devsite-syntax-w"> </span>&lt;Text<span class="devsite-syntax-w"> </span>text="Premium<span class="devsite-syntax-w"> </span>King<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>-<span class="devsite-syntax-w"> </span>Non-Smoking"<span class="devsite-syntax-w"> </span>language="en"/&gt; <span class="devsite-syntax-w"> </span>&lt;Text<span class="devsite-syntax-w"> </span>text="Chambre<span class="devsite-syntax-w"> </span>de<span class="devsite-syntax-w"> </span>le<span class="devsite-syntax-w"> </span>Roi<span class="devsite-syntax-w"> </span>Premium<span class="devsite-syntax-w"> </span>-<span class="devsite-syntax-w"> </span>Pas<span class="devsite-syntax-w"> </span>de<span class="devsite-syntax-w"> </span>Fumeurs"<span class="devsite-syntax-w"> </span>language="fr"/&gt; <span class="devsite-syntax-w"> </span>&lt;/Name&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>can<span class="devsite-syntax-w"> </span>accommodate<span class="devsite-syntax-w"> </span>4<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>bundle<span class="devsite-syntax-w"> </span>is<span class="devsite-syntax-w"> </span>for<span class="devsite-syntax-w"> </span>4<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;Capacity&gt;4&lt;/Capacity&gt; <span class="devsite-syntax-w"> </span>&lt;PhotoURL&gt; <span class="devsite-syntax-w"> </span>&lt;URL&gt;http://www.foo.com/static/bar/imageKing.jpg&lt;/URL&gt; <span class="devsite-syntax-w"> </span>&lt;Caption&gt; <span class="devsite-syntax-w"> </span>&lt;Text<span class="devsite-syntax-w"> </span>text="A<span class="devsite-syntax-w"> </span>bright<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>breezy<span class="devsite-syntax-w"> </span>way<span class="devsite-syntax-w"> </span>to<span class="devsite-syntax-w"> </span>enjoy<span class="devsite-syntax-w"> </span>your<span class="devsite-syntax-w"> </span>mornin' <span class="devsite-syntax-w"> </span>cuppa<span class="devsite-syntax-w"> </span>tea."<span class="devsite-syntax-w"> </span>language="en"/&gt; <span class="devsite-syntax-w"> </span>&lt;Text<span class="devsite-syntax-w"> </span>text="Une<span class="devsite-syntax-w"> </span>façon<span class="devsite-syntax-w"> </span>lumineuse<span class="devsite-syntax-w"> </span>et<span class="devsite-syntax-w"> </span>aérée<span class="devsite-syntax-w"> </span>pour<span class="devsite-syntax-w"> </span>profiter <span class="devsite-syntax-w"> </span>de<span class="devsite-syntax-w"> </span>votre<span class="devsite-syntax-w"> </span>journée<span class="devsite-syntax-w"> </span>tasse<span class="devsite-syntax-w"> </span>de<span class="devsite-syntax-w"> </span>thé."<span class="devsite-syntax-w"> </span>language="fr"/&gt; <span class="devsite-syntax-w"> </span>&lt;/Caption&gt; <span class="devsite-syntax-w"> </span>&lt;/PhotoURL&gt; <span class="devsite-syntax-w"> </span>&lt;/RoomData&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Can<span class="devsite-syntax-w"> </span>be<span class="devsite-syntax-w"> </span>reused<span class="devsite-syntax-w"> </span>by<span class="devsite-syntax-w"> </span>multiple<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>Bundles<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;PackageData&gt; <span class="devsite-syntax-w"> </span>&lt;PackageID&gt;P54321&lt;/PackageID&gt; <span class="devsite-syntax-w"> </span>&lt;Occupancy&gt;2&lt;/Occupancy&gt; <span class="devsite-syntax-w"> </span>&lt;ChargeCurrency&gt;web&lt;/ChargeCurrency&gt; <span class="devsite-syntax-w"> </span>&lt;Refundable<span class="devsite-syntax-w"> </span>available="1"<span class="devsite-syntax-w"> </span>refundable_until_days="7" <span class="devsite-syntax-w"> </span>refundable_until_time="18:00:00"/&gt; <span class="devsite-syntax-w"> </span>&lt;ParkingIncluded&gt;1&lt;/ParkingIncluded&gt; <span class="devsite-syntax-w"> </span>&lt;InternetIncluded&gt;1&lt;/InternetIncluded&gt; <span class="devsite-syntax-w"> </span>&lt;/PackageData&gt; <span class="devsite-syntax-w"> </span>&lt;PackageData&gt; <span class="devsite-syntax-w"> </span>&lt;PackageID&gt;P12345&lt;/PackageID&gt; <span class="devsite-syntax-w"> </span>&lt;Occupancy&gt;4&lt;/Occupancy&gt; <span class="devsite-syntax-w"> </span>&lt;ChargeCurrency&gt;web&lt;/ChargeCurrency&gt; <span class="devsite-syntax-w"> </span>&lt;Refundable<span class="devsite-syntax-w"> </span>available="1"<span class="devsite-syntax-w"> </span>refundable_until_days="1" <span class="devsite-syntax-w"> </span>refundable_until_time="18:00:00"/&gt; <span class="devsite-syntax-w"> </span>&lt;BreakfastIncluded/&gt; <span class="devsite-syntax-w"> </span>&lt;ParkingIncluded&gt;1&lt;/ParkingIncluded&gt; <span class="devsite-syntax-w"> </span>&lt;InternetIncluded&gt;1&lt;/InternetIncluded&gt; <span class="devsite-syntax-w"> </span>&lt;/PackageData&gt; <span class="devsite-syntax-w"> </span>&lt;/PropertyDataSet&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Efficient<span class="devsite-syntax-w"> </span>method<span class="devsite-syntax-w"> </span>of<span class="devsite-syntax-w"> </span>defining<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>Bundles<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Part<span class="devsite-syntax-w"> </span>2:<span class="devsite-syntax-w"> </span>Reference<span class="devsite-syntax-w"> </span>RoomData<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>PackageData<span class="devsite-syntax-w"> </span>through<span class="devsite-syntax-w"> </span>ID<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;Result&gt; <span class="devsite-syntax-w"> </span>&lt;Property&gt;180054&lt;/Property&gt; <span class="devsite-syntax-w"> </span>&lt;Checkin&gt;2017-10-07&lt;/Checkin&gt; <span class="devsite-syntax-w"> </span>&lt;Nights&gt;2&lt;/Nights&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Base<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>Bundle<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;RoomBundle&gt; <span class="devsite-syntax-w"> </span>&lt;RoomID&gt;060773&lt;/RoomID&gt; <span class="devsite-syntax-w"> </span>&lt;PackageID&gt;P54321&lt;/PackageID&gt; <span class="devsite-syntax-w"> </span>&lt;Baserate<span class="devsite-syntax-w"> </span>currency="USD"&gt;199.99&lt;/Baserate&gt; <span class="devsite-syntax-w"> </span>&lt;Tax<span class="devsite-syntax-w"> </span>currency="USD"&gt;25.12&lt;/Tax&gt; <span class="devsite-syntax-w"> </span>&lt;OtherFees<span class="devsite-syntax-w"> </span>currency="USD"&gt;2.00&lt;/OtherFees&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>RatePlanID<span class="devsite-syntax-w"> </span>is<span class="devsite-syntax-w"> </span>optional<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>represents<span class="devsite-syntax-w"> </span>the<span class="devsite-syntax-w"> </span>unique<span class="devsite-syntax-w"> </span>identifier<span class="devsite-syntax-w"> </span>for<span class="devsite-syntax-w"> </span>a <span class="devsite-syntax-w"> </span>room<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>package<span class="devsite-syntax-w"> </span>data<span class="devsite-syntax-w"> </span>combination.<span class="devsite-syntax-w"> </span>We<span class="devsite-syntax-w"> </span>strongly<span class="devsite-syntax-w"> </span>recommend<span class="devsite-syntax-w"> </span>using<span class="devsite-syntax-w"> </span>RatePlanID <span class="devsite-syntax-w"> </span>as<span class="devsite-syntax-w"> </span>a<span class="devsite-syntax-w"> </span>variable<span class="devsite-syntax-w"> </span>to<span class="devsite-syntax-w"> </span>build<span class="devsite-syntax-w"> </span>your<span class="devsite-syntax-w"> </span>dynamic<span class="devsite-syntax-w"> </span>landing<span class="devsite-syntax-w"> </span>page<span class="devsite-syntax-w"> </span>(formerly<span class="devsite-syntax-w"> </span>Point<span class="devsite-syntax-w"> </span>of<span class="devsite-syntax-w"> </span>Sale) <span class="devsite-syntax-w"> </span>URL.<span class="devsite-syntax-w"> </span>For<span class="devsite-syntax-w"> </span>details,<span class="devsite-syntax-w"> </span>see<span class="devsite-syntax-w"> </span>Using<span class="devsite-syntax-w"> </span>Variables<span class="devsite-syntax-w"> </span>and<span class="devsite-syntax-w"> </span>Conditions.<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;RatePlanID&gt;060773-P54321&lt;/RatePlanID&gt; <span class="devsite-syntax-w"> </span>&lt;/RoomBundle&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Premium<span class="devsite-syntax-w"> </span>Room<span class="devsite-syntax-w"> </span>Bundle<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;RoomBundle&gt; <span class="devsite-syntax-w"> </span>&lt;RoomID&gt;436233&lt;/RoomID&gt; <span class="devsite-syntax-w"> </span>&lt;PackageID&gt;P12345&lt;/PackageID&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Price<span class="devsite-syntax-w"> </span>for<span class="devsite-syntax-w"> </span>4<span class="devsite-syntax-w"> </span>("occupancy")<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;Baserate<span class="devsite-syntax-w"> </span>currency="USD"&gt;298.88&lt;/Baserate&gt; <span class="devsite-syntax-w"> </span>&lt;Tax<span class="devsite-syntax-w"> </span>currency="USD"&gt;42.12&lt;/Tax&gt; <span class="devsite-syntax-w"> </span>&lt;OtherFees<span class="devsite-syntax-w"> </span>currency="USD"&gt;10.00&lt;/OtherFees&gt; <span class="devsite-syntax-w"> </span>&lt;RatePlanID&gt;060773-P12345&lt;/RatePlanID&gt; <span class="devsite-syntax-w"> </span>&lt;/RoomBundle&gt; <span class="devsite-syntax-w"> </span>&lt;!--<span class="devsite-syntax-w"> </span>Continue<span class="devsite-syntax-w"> </span>providing<span class="devsite-syntax-w"> </span>all<span class="devsite-syntax-w"> </span>available<span class="devsite-syntax-w"> </span>RoomBundle<span class="devsite-syntax-w"> </span>rates<span class="devsite-syntax-w"> </span>under<span class="devsite-syntax-w"> </span>matched <span class="devsite-syntax-w"> </span>property<span class="devsite-syntax-w"> </span>for<span class="devsite-syntax-w"> </span>any<span class="devsite-syntax-w"> </span>other<span class="devsite-syntax-w"> </span>occupancies<span class="devsite-syntax-w"> </span>--&gt; <span class="devsite-syntax-w"> </span>&lt;/Result&gt; &lt;/Transaction&gt; </code></pre></devsite-code> <h2 id="capacity" data-text="Occupancy and capacity" tabindex="-1">Occupancy and capacity</h2> <p>When defining Room Bundles, you must understand the difference between <em>occupancy</em> and <em>capacity</em>:</p> <dl> <dt>Occupancy</dt> <dd>The number of guests that a Room Bundle is intended to apply to. For example, the &quot;Honeymoon Package&quot; has an <em>occupancy</em> of two. You set the value of a package&#39;s occupancy by using the <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#PackageData"><code translate="no" dir="ltr">&lt;PackageData&gt;</code></a> or <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#RoomBundle"><code translate="no" dir="ltr">&lt;RoomBundle&gt;</code></a> elements&#39; <code translate="no" dir="ltr">&lt;Occupancy&gt;</code> child element.</dd> <dt>Capacity</dt> <dd>The maximum number of people that a room can physically accommodate. The capacity of a room is always equal to or higher than the occupancy. For example, the &quot;Honeymoon Suite&quot; in your hotel has a maximum capacity of six people, but you price a bundle for two guests. You set the value of a package&#39;s capacity by using the <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#RoomData"><code translate="no" dir="ltr">&lt;RoomData&gt;</code></a> element&#39;s <code translate="no" dir="ltr">&lt;Capacity&gt;</code> child element.</dd> </dl> <p>When pricing a Room Bundle, you must give the price for the number of guests that the bundle is intended to be for (the value specified in the bundle&#39;s <code translate="no" dir="ltr">&lt;Occupancy&gt;</code> element). If <code translate="no" dir="ltr">&lt;Occupancy&gt;</code> is set to two, then the price in that package must be for two people. You cannot set <code translate="no" dir="ltr">&lt;Occupancy&gt;</code> to four guests, and set the bundle&#39;s price for two guests.</p> <h3 id="hostel" data-text="Shared rooms" tabindex="-1">Shared rooms</h3> <p>You also use Occupancy and Capacity in Room Bundles to set prices for shared room accomodations&mdash;for example, hostel. As an example, to set a per person price for a dorm room that has 8 beds, you would set Occupancy to <code translate="no" dir="ltr">1</code> and Capacity to <code translate="no" dir="ltr">8</code>, and identify it as such in the <code translate="no" dir="ltr">&lt;RoomData&gt;</code> name. <a href="/hotels/hotel-prices/xml-reference/transaction-messages#hostel-example">See example</a>.</p> <h2 id="updating" data-text="Update Room Bundles" tabindex="-1">Update Room Bundles</h2> <p>This section describes how to remove a Room Bundle that is no longer available and how to update the price of an existing Room Bundle.</p> <aside class="key-point"><strong>Key Point:</strong><span> Every time you update a room/itinerary&#39;s <code translate="no" dir="ltr">&lt;Result&gt;</code> block in your Transaction messages, you must include a complete set of available Room Bundles for each <code translate="no" dir="ltr">&lt;Result&gt;</code>.</span></aside> <h3 id="removing" data-text="Room Bundle removal" tabindex="-1">Room Bundle removal</h3> <p>Room Bundles are different from hotel prices in the way that you remove them.</p> <p>To remove a room or itinerary combination from inventory, you set the <code translate="no" dir="ltr">&lt;Result&gt;</code> element&#39;s <code translate="no" dir="ltr">&lt;Baserate&gt;</code> to <code translate="no" dir="ltr">-1</code>. To remove a Room Bundle for a given room or itinerary, remove the <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#RoomBundle"><code translate="no" dir="ltr">&lt;RoomBundle&gt;</code></a> element from the <code translate="no" dir="ltr">&lt;Result&gt;</code> block in the Transaction message.</p> <p>Room Bundles in your data feeds are considered a set, which number anywhere from 0 to tens of them. When you send Room Bundles to Google, you send the current, complete set. You don&#39;t change values of an individual Room Bundle to mark a previously available one as unavailable. Whatever set of bundles is in the most recent Transaction message replaces the current set.</p> <p>For example, there are bundles A, B, C, and D. You first send a message that defines the set of room bundles A, B, C and D. Later, if bundle B sells out, you resend the entire set with bundles A, C, and D only. If all Room Bundles have sold out, send an empty set of Room Bundles.</p> <h3 id="price_adjustments" data-text="Price adjustments" tabindex="-1">Price adjustments</h3> <p>To change the price of a Room Bundle, set the new <code translate="no" dir="ltr">&lt;Baserate&gt;</code> in the <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages#Result"><code translate="no" dir="ltr">&lt;Result&gt;</code></a> element.</p> <p>Every time you update a room/itinerary&#39;s <code translate="no" dir="ltr">&lt;Result&gt;</code> block in your Transaction messages, you must include a complete set of available Room Bundles for each <code translate="no" dir="ltr">&lt;Result&gt;</code>. Google replaces the existing set of Room Bundles with the new set. If you don&#39;t include any Room Bundles in <code translate="no" dir="ltr">&lt;Result&gt;</code>, then Google removes all Room Bundles for that room or itinerary.</p> <h3 id="metadata_updates" data-text="Metadata updates" tabindex="-1">Metadata updates</h3> <p>You update Room Bundle metadata with a response to a <a href="https://developers.google.com/hotels/hotel-prices/xml-reference/queries#Query"><code translate="no" dir="ltr">&lt;Query&gt;</code></a> from Google.</p> <p>You respond to a Query message with a Transaction message that defines the room and package metadata for the specified hotels. For more information, see <a href="/hotels/hotel-prices/dev-guide/query-messages">Query Messages</a>.</p> </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-20250211-r00-rc00.466928320959134316" 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/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/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-10-24 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-20250211-r00-rc00.466928320959134316" 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/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/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-10-24 UTC."],[[["Room Bundles combine room types and extra services (rate features) to create attractive offerings for guests, going beyond basic amenities."],["Rate features, such as parking or breakfast, are linked to specific rates and require activation in your TAM account."],["Define Room Bundle metadata and pricing separately to ensure efficiency and accuracy in managing your hotel listings."],["When updating Room Bundles, include all available bundles to avoid unintentional removals, and leverage RatePlanID for dynamic landing pages."],["Ensure high-quality photos showcasing room features are included, adhering to Google's guidelines, and understand data precedence rules for accurate information display."]]],[]] </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="/community" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > 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 2)" > 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 3)" > Accelerators </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/womentechmakers" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Women Techmakers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.techequitycollective.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Tech Equity Collective </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/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/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;dimension6&#34;: &#34;en&#34;, &#34;dimension1&#34;: &#34;Signed out&#34;, &#34;dimension3&#34;: false, &#34;dimension5&#34;: &#34;en&#34;, &#34;dimension4&#34;: &#34;Hotel Prices&#34;, &#34;dimension11&#34;: false}, &#34;gaid&#34;: &#34;UA-24532603-1&#34;, &#34;metrics&#34;: {&#34;ratings_value&#34;: &#34;metric1&#34;, &#34;ratings_count&#34;: &#34;metric2&#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="R3OGNT+RDnJ7RTxb0Dhtt0eCnsQU1W"> (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/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers","https://developers-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/developers/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/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,116,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,["Profiles__enable_join_program_group_endpoint","Search__enable_page_map","MiscFeatureFlags__emergency_css","Concierge__enable_concierge","MiscFeatureFlags__enable_explain_this_code","BookNav__enable_tenant_cache_key","Cloud__enable_cloud_shell_fte_user_flow","MiscFeatureFlags__enable_project_variables","Profiles__enable_awarding_url","Cloud__enable_cloudx_ping","CloudShell__cloud_shell_button","Cloud__enable_llm_concierge_chat","Concierge__enable_concierge_restricted","Search__enable_suggestions_from_borg","Profiles__enable_page_saving","DevPro__enable_developer_subscriptions","Profiles__enable_release_notes_notifications","Cloud__enable_free_trial_server_call","Cloud__enable_cloud_dlp_service","Experiments__reqs_query_experiments","Cloud__enable_cloudx_experiment_ids","MiscFeatureFlags__developers_footer_image","Profiles__enable_stripe_subscription_management","Concierge__enable_pushui","DevPro__enable_cloud_innovators_plus","Significatio__enable_by_tenant","Profiles__enable_profile_collections","Cloud__enable_cloud_shell","Search__enable_ai_search_summaries","Profiles__enable_public_developer_profiles","Profiles__enable_completecodelab_endpoint","EngEduTelemetry__enable_engedu_telemetry","TpcFeatures__enable_unmirrored_page_left_nav","Search__enable_dynamic_content_confidential_banner","CloudShell__cloud_code_overflow_menu","Cloud__enable_legacy_calculator_redirect","Search__enable_ai_search_summaries_restricted","Analytics__enable_clearcut_logging","Profiles__enable_developer_profiles_callout","Profiles__enable_completequiz_endpoint","MiscFeatureFlags__enable_variable_operator","Profiles__require_profile_eligibility_for_signin","MiscFeatureFlags__developers_footer_dark_image","Profiles__enable_dashboard_curated_recommendations","Cloud__enable_cloud_facet_chat","TpcFeatures__enable_mirror_tenant_redirects","MiscFeatureFlags__enable_view_transitions","MiscFeatureFlags__enable_firebase_utm","Concierge__enable_key_takeaways","Profiles__enable_recognition_badges","Profiles__enable_complete_playlist_endpoint","Search__enable_ai_eligibility_checks"],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],[[11,8],[13,10],[4,3],[1,1],[14,11],[12,9],[3,2],[5,4],[15,12],[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",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

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