Get started with Transaction Messages

Note

This beta release of Hotel Ads is available to select participants only. For information about participating in the beta release program, please contact your account manager.

If you create hotel ad campaigns in Bing Ads, use transaction messages to update your itinerary data (pricing and availability).

Before you can send Bing transaction messages, you must contact your account manager to sign up.

Different modes for sending Bing your transaction data

Bing supports the following modes that you can use to provide your transaction data.

  • Push mode
  • Pull mode
  • Pull mode with hints

With the push mode, you send Bing your unsolicited updates at the intervals you choose. To use this mode, you must provide the IPv4 addresses (or address ranges in CIDR format) of all servers that you will use to send transaction messages. For information, see Pushing Transaction Messages to Bing.

With the pull mode options, Bing sends you Query messages that specifies the hotel itinerary data you should return. The difference between the two pull modes is the amount of data that you send to Bing. With pull mode, you return data for all itineraries and all hotels. But with pull with hints, you tell Bing what data changed and it requests only that data. For information, see Having Bing Pull Transaction Messages.

What's a transaction message

A transaction message is an XML document that contains pricing and availability data for one or more hotel properties. For each hotel property, specify one Result element for each Checkin and Nights combination (also know as an itinerary) in your advanced booking window. If you allow five days advanced booking and stays of up to three-nights, your message would contain 15 Result elements. The following example shows one day's worth of itineraries.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-05-25T20:44:56-04:00" id="de0be689-d094-406e-
8027-724309deb373">
  <Result>
    <Property>13579</Property>
    <Checkin>2017-05-26</Checkin>
    <Nights>1</Nights>
    <Baserate currency="USD">100.00</Baserate>
    <Tax currency="USD">10.00</Tax>
    <OtherFees currency="USD">4.00</OtherFees>
  </Result>
  <Result>
    <Property>13579</Property>
    <Checkin>2017-05-26</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">200.00</Baserate>
    <Tax currency="USD">20.00</Tax>
    <OtherFees currency="USD">8.00</OtherFees>
  </Result>
  <Result>
    <Property>13579</Property>
    <Checkin>2017-05-26</Checkin>
    <Nights>3</Nights>
    <Baserate currency="USD">300.00</Baserate>
    <Tax currency="USD">30.00</Tax>
    <OtherFees currency="USD">12.00</OtherFees>
  </Result>
</Transaction>

You may specify up to 180 days advanced booking with stays of up to 14 nights. For example, if the message's timestamp is 2017-06-10, the last Checkin date that the message may specify is 2017-09-08.

The document must use UTF-8 encoding.

Read more.

Validate the message before sending it

Before sending Bing the transaction message, use the Transaction XSD to validate the message. This saves time and round trips by catching document syntax errors and constraints imposed by the XSD.

The following example shows using xmllint to validate the message contained in SampleTransaction.xml.

xmllint.exe --schema transaction.xsd SampleTransaction.xml

Note

There are constraints not defined by the XSD that may generate errors at the time Bing processes the message. Be sure that your message complies with all constraints defined in this document.