Delivery Modes

The delivery mode determines how you send pricing updates to Google for hotel/itinerary combinations.

You and your Technical Account Manager (TAM) work together during your initial configuration to set up your delivery mode.

Overview of delivery modes

As a default, our partners can be queried for up to 320 days in advance of room availability and up to 30 nights of stay, but you can choose how many itineraries (combination of check-in date and length of stay) for each hotel.

The more itineraries that you support, the more auctions you will participate in. However, the more itineraries you support, the more data you must send to Google to keep your pricing data accurate.

The typical methods of updating prices use Transaction messages in one of the following ways:

  • Pull: Google queries your service on a regular basis to refresh its cache of pricing and availability data. In this model, Google sends a request to your server, and your server responds with updated data. This model is best for partners who do not know exactly when pricing information changes, or if pricing information changes irregularly throughout the day. For more information, see Using the Pull Delivery Mode.
  • Pull with Hints: Similar to Pull, except that Google only requests data for a subset of properties, not all properties. Using hints can significantly reduce the amount of network traffic when updating prices and availability for your properties. For more information, see Using Pull with Hints.

In addition to updating prices, you can use Transaction messages to remove properties from your inventory. For more information, see Removing Inventory.

For more information about providing pricing updates, including examples of Transaction messages, sees Updating Prices.

Live Queries

Google can also request some price updates at auction-time with Live Queries. Live Queries are pricing requests from Google for a current auction. If you respond within the specified timeframe, then your ad should appear in the auction. Google stores the response to a Live Query just as it does with any other Transaction message. As a result, Google can serve the price from its cache rather than send out another Live Query in the future. For more information, see Live Queries.

Using Pull

With the Pull delivery mode, Google periodically sends Query messages to your server to request price updates. Your server responds to those messages with Transaction messages that contain updated pricing and availability data.

Google determines which properties to request price updates for by using the contents of your QueryControl message. Google fetches a new QueryControl message from your server once per day.

The following image shows the request/response flow of Pull:

After receiving the price updates, Google typically processes the new pricing and availability data within approximately 5 minutes.

The following sections describe each of these steps in more detail.

Step 1: Query message

By default, Google sends Query messages for all properties defined in your Hotel List Feed. This could mean you will receive multiple Query messages during the repricing processes. You can exclude certain hotels from repricing and configure the itinerary capabilities in the QueryControl message (which you can update once per day).

The pricing Query messages that Google sends to your server have the following characteristics:

  • Sent to the endpoint defined during your initial configuration. For more information, contact your Technical Account Manager (TAM).
  • Uses the HTTP POST method.
  • The Content-Type header is set to application/xml.
  • The body of the message conforms to the Query message syntax, as described in Query messages.
  • Each message includes up to 100 properties for which Google requests pricing and availability data.
  • The User-Agent header is set to Google-HotelAdsPrices.
NOTE: There might be many Query messages to update all prices for all hotels, and the resulting Transaction messages might be very large. To reduce the size and number of messages, you can use Pull with Hints.

Step 2: Transaction message

When your server receives a Query message, it must respond with a Transaction message that contains pricing information for the requested itineraries. Use the following guidelines when responding to a Query message with a Transaction message:

  • You should respond directly to our Query message with your Transaction message.
  • The body of the message must conform to the Transaction message syntax, as described in Updating Prices.

For more information, see Transaction Messages and Updating Prices.

If you encounter problems when sending or receiving messages, see Troubleshooting Feeds.

Updating Room and Package Metadata

In addition to updating pricing data with Pull, you can also use Transaction messages to update your your room and package metadata. For more information, see Defining Room and Package Metadata.

Using Pull with Hints

Pull with Hints helps reduce the size and quantity of Query and Transaction messages for pricing updates. When you use Pull with Hints, you send Google a list of properties that have updated prices. Google responds with a Query message that asks only for those properties' prices.

To configure the endpoint that Google sends HintRequest messages to, talk to your Technical Account Manager (TAM). You would have set this up during initial Hotel Ads configuration.

The following image shows the request/response flow for Pull with Hints:

The following sections describe each of the steps in this request/response flow.

Step 1: HintRequest message

The hint request Query messages that Google sends to your server have the following characteristics:

  • Sent to the endpoint defined during your initial configuration. For more information, contact your Technical Account Manager (TAM).
  • Use the HTTP POST method.
  • The Content-Type header is set to application/xml.
  • The body of the message conforms to the Query message syntax, as described in Query messages.
  • At a specified frequency, Google sends a timestamp to your server that defines the last time you responded to a HintRequest message.
  • The User-Agent header is set to Google-HotelAdsPrices.

Google recommends that you set the frequency to 5 minutes. To set or modify the frequency of HintRequest messages, contact us.

When you receive a HintRequest message from Google, you respond with all prices that have been updated since that timestamp. For more information, see HintRequest messages.

Step 2: Hint Response message

Your server responds to a HintRequest message with a Hint Response message. This message includes the hotel IDs and itineraries for properties whose prices have changed since the last time you received and responded to a HintRequest message. For more information, see Hint Response Messages.

Step 3: Query message

Google receives the Hint Response message and responds with a Query message, just as with the standard Pull mode. The difference is that the Query message now contains only the hotel IDs and itineraries for the properties that you specified in the Hint Response message.

When determining which hotel IDs to request prices for with Pull with Hints, Google ignores the contents of your Hotel List Feed. This greatly reduces the size of the Query message that you receive from Google and the size of the Transaction message that you must respond with. In addition, Google can exclude itineraries based on settings in your QueryControl message. For more information, see QueryControl Messages.

Step 4: Transaction message

You send a Transaction message with a pricing update as a response to Google's Query messages, as described in Using Pull.