[null,null,["最后更新时间 (UTC):2025-07-25。"],[[["\u003cp\u003eThis documentation is relevant for Pull and Changed Pricing delivery modes, guiding you on providing and updating hotel prices for Google Hotel Ads.\u003c/p\u003e\n"],["\u003cp\u003eHotel prices should reflect the lowest double-occupancy rate, include the total cost of stay, and adhere to Google's price accuracy policy.\u003c/p\u003e\n"],["\u003cp\u003eYou update prices using Transaction messages, specifying the hotel, check-in date, length of stay, base rate, taxes, and fees for each itinerary.\u003c/p\u003e\n"],["\u003cp\u003ePricing updates should be frequent and aligned with your chosen delivery mode (Pull or Changed Pricing) to keep your hotel information current in Google's system.\u003c/p\u003e\n"],["\u003cp\u003eConsider using all-inclusive pricing, combining the base rate, taxes, and fees, based on the location of your target users, while itemized pricing separates these components.\u003c/p\u003e\n"]]],[],null,["# Pricing overview\n\n| **Key Point:** The following content and subsequent articles within the Inventory \\& Pricing (Transactions) section only apply if you're using the Pull delivery mode or the Changed Pricing (formerly Pull with Hints) delivery mode. If you're using the ARI delivery mode, see [ARI Overview](/hotels/hotel-prices/dev-guide/ari-overview).\n\nA hotel price is the lowest price for a double-occupancy room for the given\nitinerary which is a combination of check-in date and nights of stay.\n\nOverview\n--------\n\nThe prices you define for hotel or itinerary combinations are central to hotel\nsearch results. It is very important that you keep your prices fresh, accurate,\nand competitive.\n\nGoogle typically uses prices from its price cache when displaying search\nresults. Whenever you send Google a Transaction message that contains pricing\nupdates, Google caches that data.\n\nGoogle can also request updated prices from you in real time for Hotel Ads\naccounts. When a user searches for a specific hotel or itinerary\ncombination, Google can send you a \"live\" request or\n[live Pricing Query message](/hotels/hotel-prices/dev-guide/query-messages#live_pricing_queries).\nIf you respond within the specified timeframe, then that price can appear in the\nresults of the user requested itinerary. Google also caches the results of\nLive Pricing Queries so that they can be served for future requests.\n\n### Size of pricing updates\n\nWhen setting prices for a room, you provide advanced booking and length of\nstay (LoS) values, with prices for each combination of those values and room\nID or rate plan ID. The booking and LoS values default to the following:\n\n- Up to 330 days advanced booking\n- Up to 30-night stays\n\nBased on these general guidelines, a single room's pricing can require up to\n9,900 separate entries (330 \\* 30), one for each combination of the check-in date\nand number of nights.\n\nThe following matrix illustrates part of the itinerary data for a single\nhotel. Each cell with a price in the matrix represents one itinerary combination\nof a check-in date and a length of stay; each itinerary represents a separate\nvalue that Google requests for the property:\n\n#### Price Matrix\n\n### Which hotels and itineraries are repriced\n\nThe hotels that Google prices are defined by your [Hotel List](../xml-reference/hotel-list-feed). Unless they\nare disabled, all hotels in the Hotel List Feed are repriced with\nTransaction messages, or, in some cases, Live Pricing Queries.\n\n### Update Pricing\n\nThe general process for updating prices is:\n\n1. You define the hotels to be priced in your [Hotel List](../xml-reference/hotel-list-feed) during\n [initial setup](/hotels/hotel-prices/dev-guide/data-feeds) and then with\n periodic updates when your list changes.\n\n2. *Changed Pricing only* : Google sends your server a\n [Hint Request messages](/hotels/hotel-prices/dev-guide/hint-request-messages).\n\n3. *Changed Pricing only* : Your server responds with a\n [Hint Response message](/hotels/hotel-prices/dev-guide/hint-response-messages)\n that defines which hotel or itinerary combinations should be repriced.\n\n4. Google sends a [Query message](/hotels/hotel-prices/dev-guide/query-messages)\n to your server. The Query message includes hotel IDs and itineraries for\n which Google needs prices.\n\n5. For [Live Pricing\n Queries](/hotels/hotel-prices/dev-guide/query-messages#livequeries),\n Google specifies a time limit in which you must respond in\n order for the hotel or itinerary to appear in the current auction.\n\n6. Your server responds with a\n [Transaction message](/hotels/hotel-prices/dev-guide/transaction-overview)\n that defines the new prices.\n\n7. Google updates its cache with the pricing data from your Transaction\n message.\n\nFor more information about Pull and Changed Pricing, see\n[Delivery Modes](/hotels/hotel-prices/dev-guide/delivery-mode).\n\nPricing with Transaction messages\n---------------------------------\n\nTo set prices for a hotel or itinerary (a combination of the check-in date plus\nthe number of nights), use a\n[Transaction message](/hotels/hotel-prices/dev-guide/transaction-overview)\nwith one [`\u003cResult\u003e`](../xml-reference/transaction-messages#Result) for each itinerary.\n\nUse the following guidelines when setting prices:\n\n- **Rates**: Provide the lowest available double-occupancy rate for each\n itinerary. Setting rates with the Hotel Prices API that are different from\n those that are shown on your site can be confusing to users and result in\n lost bookings.\n\n- **Number of Nights** : Specify the *total cost of the stay* for each itinerary,\n along with *per-night* rate. Google calculates the per-night rate for you.\n\n- **Policies** : Adhere to Google's [price accuracy policy](https://support.google.com/hotelprices/answer/6064419)\n when setting rates. This requires that the prices that show up in Google's\n search results are not markedly different from the final booking price.\n\n- **All-inclusive pricing:** To be eligible to appear in the listings for US and\n Canadian end-users, your hotels must typically break out taxes and fees from\n the base rate. For more information, see\n [Taxes and Fees Policy](https://support.google.com/hotelprices/answer/6064432).\n\n- **Rounding**: Don't round values for prices, taxes, and fees.\n\nFor information on removing hotels from your inventory, see\n[Removing Inventory](/hotels/hotel-prices/dev-guide/removing-inventory).\n\nPricing messages\n----------------\n\nWhen using Transaction messages to reprice itineraries, the following child\nelements of [`\u003cResult\u003e`](../xml-reference/transaction-messages#Result) are **required**:\n\n- `\u003cProperty\u003e`\n- `\u003cBaserate\u003e`\n- `\u003cTax\u003e`\n- `\u003cOtherFees\u003e`\n- `\u003cCheckin\u003e` (itinerary)\n- `\u003cNights\u003e` (itinerary)\n\nYou can `optionally` include the following child elements of `\u003cResult\u003e` in\nyour Transaction message:\n\n- `\u003cAllowablePointsOfSale\u003e`\n- `\u003cChargeCurrency\u003e`\n- `\u003cCustom[1-5]\u003e`\n- [`\u003cRoomBundle\u003e`](../xml-reference/transaction-messages#RoomBundle)\n- `\u003cRoomID\u003e`\n\nFor more information about each of these elements, see [`\u003cTransaction\u003e`](../xml-reference/transaction-messages#Transaction).\n\nPricing example\n---------------\n\nThe following example sets the price for a room (default double occupancy)\nfor 1 through 7 nights with a check-in date of June 7th: \n\n \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n \u003cTransaction timestamp=\"2017-08-24T16:20:00-04:00\" id=\"42\"\u003e\n \u003cResult\u003e\n \u003cProperty\u003e1234\u003c/Property\u003e\n \u003cCheckin\u003e2018-06-07\u003c/Checkin\u003e\n \u003cNights\u003e1\u003c/Nights\u003e\n \u003cBaserate currency=\"USD\"\u003e209.99\u003c/Baserate\u003e\n \u003cTax currency=\"USD\"\u003e25.12\u003c/Tax\u003e\n \u003cOtherFees currency=\"USD\"\u003e2.00\u003c/OtherFees\u003e\n \u003c/Result\u003e\n \u003cResult\u003e\n \u003cProperty\u003e1234\u003c/Property\u003e\n \u003cCheckin\u003e2018-06-07\u003c/Checkin\u003e\n \u003cNights\u003e2\u003c/Nights\u003e\n \u003cBaserate currency=\"USD\"\u003e419.98\u003c/Baserate\u003e\n \u003cTax currency=\"USD\"\u003e25.12\u003c/Tax\u003e\n \u003cOtherFees currency=\"USD\"\u003e2.00\u003c/OtherFees\u003e\n \u003c/Result\u003e\n \u003cResult\u003e\n \u003cProperty\u003e1234\u003c/Property\u003e\n \u003cCheckin\u003e2018-06-07\u003c/Checkin\u003e\n \u003cNights\u003e3\u003c/Nights\u003e\n \u003cBaserate currency=\"USD\"\u003e614.97\u003c/Baserate\u003e\n \u003cTax currency=\"USD\"\u003e21.12\u003c/Tax\u003e\n \u003cOtherFees currency=\"USD\"\u003e2.00\u003c/OtherFees\u003e\n \u003c/Result\u003e\n \u003cResult\u003e\n \u003cProperty\u003e1234\u003c/Property\u003e\n \u003cCheckin\u003e2018-06-07\u003c/Checkin\u003e\n \u003cNights\u003e4\u003c/Nights\u003e\n \u003cBaserate currency=\"USD\"\u003e819.96\u003c/Baserate\u003e\n \u003cTax currency=\"USD\"\u003e21.12\u003c/Tax\u003e\n \u003cOtherFees currency=\"USD\"\u003e2.00\u003c/OtherFees\u003e\n \u003c/Result\u003e\n \u003cResult\u003e\n \u003cProperty\u003e1234\u003c/Property\u003e\n \u003cCheckin\u003e2018-06-07\u003c/Checkin\u003e\n \u003cNights\u003e5\u003c/Nights\u003e\n \u003cBaserate currency=\"USD\"\u003e999.95\u003c/Baserate\u003e\n \u003cTax currency=\"USD\"\u003e21.12\u003c/Tax\u003e\n \u003cOtherFees currency=\"USD\"\u003e2.00\u003c/OtherFees\u003e\n \u003c/Result\u003e\n \u003cResult\u003e\n \u003cProperty\u003e1234\u003c/Property\u003e\n \u003cCheckin\u003e2018-06-07\u003c/Checkin\u003e\n \u003cNights\u003e6\u003c/Nights\u003e\n \u003cBaserate currency=\"USD\"\u003e1193.94\u003c/Baserate\u003e\n \u003cTax currency=\"USD\"\u003e21.12\u003c/Tax\u003e\n \u003cOtherFees currency=\"USD\"\u003e2.00\u003c/OtherFees\u003e\n \u003c/Result\u003e\n \u003cResult\u003e\n \u003cProperty\u003e1234\u003c/Property\u003e\n \u003cCheckin\u003e2018-06-07\u003c/Checkin\u003e\n \u003cNights\u003e7\u003c/Nights\u003e\n \u003cBaserate currency=\"USD\"\u003e1259.93\u003c/Baserate\u003e\n \u003cTax currency=\"USD\"\u003e21.12\u003c/Tax\u003e\n \u003cOtherFees currency=\"USD\"\u003e2.00\u003c/OtherFees\u003e\n \u003c/Result\u003e\n \u003c/Transaction\u003e\n\nEach Transaction message can have any number of [`\u003cResult\u003e`](../xml-reference/transaction-messages#Result) elements, as long as\nthe total size of the message doesn't exceed 100MB.\n\nFrequency of pricing updates\n----------------------------\n\nYou should plan to update your prices as often as they change. How you do\nthis depends on whether you chose the Pull or Changed Pricing method of updating\npricing information. For more information, see\n[choosing a delivery mode](/hotels/hotel-prices/dev-guide/delivery-mode).\n\nThe frequency and number of Live Pricing Queries that Google sends to you is\nalso configurable. For more information, see [Live Pricing\nQueries](/hotels/hotel-prices/dev-guide/query-messages#live_pricing_queries).\n\nAll-inclusive pricing\n---------------------\n\nDepending on the geographic location of your users, you might consider\nusing all-inclusive pricing instead of itemized pricing.\n\n*All-inclusive* pricing includes the total value of the base rate of\nthe room plus the taxes and fees in the `\u003cBaserate\u003e` element in the Transaction\nmessage. `Itemized` pricing separates the price into the `\u003cBaserate\u003e`,\n`\u003cTaxes\u003e`, and `\u003cOtherFees\u003e` elements."]]