Fix Bing Hotel Ads Not Showing (Lodging Campaigns)
Why Bing Hotel Ads Stop Serving
I've worked through dozens of lodging campaign setups where everything looks correct in the Microsoft Advertising dashboard, yet Hotel Price ads (HPA) or Property Promotion ads (PPA) simply refuse to appear on Bing. The silence is maddening , no error banner, no rejection notice, just zero impressions.
Here's the reality: Microsoft's Bing lodging campaign system is a multi-layer pipeline. You have property feeds, landing page feeds, price feeds, and itinerary delivery modes all working together. When one layer is misconfigured , even slightly, the whole ad stack goes dark. The error reporting is minimal. Microsoft won't always tell you which layer broke. That's why this guide exists.
The most common root causes I see, in order of frequency:
- Wrong feed format. Bing requires the property feed in XML format for Property Promotion ads. If you uploaded a CSV, PPA simply won't run, CSV doesn't support the image fields that PPA requires.
- Missing Sunday price data. This one trips up almost every new advertiser. Microsoft requires you to supply price data for the 6th and 7th Sundays from the current date (for a 1-night length of stay) before PPA will serve. Skip those Sunday dates and your ads stay off.
- PPA format not enabled at the Ad Group level. You can have a perfect feed and still get nothing if you forget to switch on the PPA format inside Ad Group settings.
- Property category field missing or malformed. Each property in your feed must carry a valid category value. Get the syntax wrong and the property is effectively invisible to the serving system.
- Pull/push mode mismatch. If you signed up for pull mode but your endpoint isn't responding correctly to Bing's Query messages, your itinerary data goes stale and ads stop showing competitive prices.
Who sees this? Mostly hotel chains managing their own Bing Ads accounts, OTA (online travel agency) technical teams pushing property feeds at scale, and digital agencies onboarding lodging clients for the first time. The Bing hotel advertising configuration docs are thorough but scattered across multiple reference pages, and the error messages in the UI give you almost nothing to work with.
I know this is frustrating, especially when your Google Hotel Ads are running fine and you can't figure out why Bing hotel ads keep failing. Let's fix it systematically. Browse all Microsoft fix guides →
The Quick Fix, Try This First
Before diving into a full feed audit, run through this rapid checklist. About 60% of Bing hotel ads not showing cases resolve with one of these three checks alone.
Check 1: Verify PPA is enabled in Ad Group settings. Open Microsoft Advertising, navigate to your lodging campaign, click into the specific Ad Group, and look for the ad format toggle. Property Promotion ads are not enabled by default, you have to turn them on explicitly. It sounds obvious, but this is the single most commonly skipped step I see from agencies onboarding a new lodging client.
Check 2: Confirm your property feed is XML, not CSV. Go to your feed management area. If you see a .csv extension on your property feed file, that's your culprit. Download your current data, convert it to a valid XML property feed, re-upload it, and allow up to 24 hours for Bing to re-process.
Check 3: Check your Sunday price coverage. Calculate the 6th and 7th Sundays from today's date. Pull up your price feed and verify you have price entries covering those two Sunday-night stays (check-in Sunday, check-out Monday, length of stay = 1 night). If those dates are missing, add them immediately. Here's the math made simple: if today is April 20, 2026, count forward six Sundays, that lands on June 1, 2026. Your 7th Sunday is June 8, 2026. You need price data for the June 1–2 and June 8–9 overnight stays.
Once you've confirmed or corrected all three, give the system 2–4 hours to re-crawl and serve. If ads still don't appear, work through the full step-by-step section below.
The property feed is the foundation of every Bing hotel ads campaign. It's an XML document describing each property you want to advertise, name, address, phone number, and geographic coordinates. If this document is malformed or in the wrong format, nothing downstream works.
First, confirm you're using XML. Microsoft is explicit: the property feed must be XML format, not CSV. CSV cannot carry image data, which means CSV feeds will silently block Property Promotion ads from ever serving. Open your feed file in a text editor and verify it starts with something like:
<?xml version="1.0" encoding="UTF-8"?>
<listings>
<listing>
<id>your-property-id</id>
<name>Your Hotel Name</name>
...
</listing>
</listings>
Next, validate the file against the Property Feed XSD schema. Run it through an XML validator, there are free online tools, or use xmllint on the command line:
xmllint --noout --schema property_feed.xsd your_property_feed.xml
Pay close attention to encoding. UTF-8 is required. Any special characters in hotel names, accented letters, ampersands, must be properly encoded. An unescaped & in a hotel name will break the entire feed silently.
When the feed is valid, the Microsoft Advertising feed processing system should accept it within a few hours. You'll see a status update in the feed management section of the UI showing the number of properties successfully imported. If the count is lower than expected, individual property records have validation errors, drill into the feed diagnostic report to identify which property IDs failed and why.
Property Promotion ads have specific image requirements that differ from standard text ads. Getting these right is what separates a visually rich PPA from an ad that never serves.
Each property in your XML feed needs between one and five images (you can include more). The recommended aspect ratio is 4:3. Width and height are flexible, Microsoft doesn't enforce pixel minimums the way some other ad platforms do, but go with at least 800×600 pixels to ensure quality rendering across devices. Add your images to the property feed as <image> elements within each property listing record.
Once images are in the feed, you still have one more required action: enabling the PPA format at the Ad Group level. Here's exactly where to find it:
- Open Microsoft Advertising and navigate to your lodging campaign.
- Click Ad Groups in the left sidebar.
- Select the specific Ad Group you want to enable PPAs for.
- Click Settings (gear icon or Settings tab depending on your UI version).
- Find the Ad format section and toggle on Property Promotion ads.
- Save the changes.
This toggle defaults to off. Every new Ad Group you create needs this step repeated. I've seen large agencies spend hours debugging feed issues when the entire problem was this single toggle sitting in the off position.
After saving, allow up to 4 hours for the system to register the change. Verify by checking the Ad Group overview, it should now show PPA as an active format alongside HPA.
You can optionally provide a 32×32 favicon to appear next to your ads. Accepted formats are .ico, .jpg, and .png. Upload this through the feed management area. It's a small detail but noticeably improves click-through rates for recognized hotel brands.
This is the step that breaks more Bing lodging campaigns than any other. Microsoft has a specific requirement: for Property Promotion ads to serve, you must supply price data for the 6th and 7th Sundays from the current date, where the length of stay is one night.
Let's walk through the math concretely. Say today is April 20, 2026. Count forward:
- Sunday 1: April 26
- Sunday 2: May 3
- Sunday 3: May 10
- Sunday 4: May 17
- Sunday 5: May 24
- Sunday 6: June 1
- Sunday 7: June 8
Your price feed must include entries for June 1 (check-in Sunday, check-out Monday June 2) and June 8 (check-in Sunday, check-out Monday June 9), with a length of stay of 1 night for each. In your price feed XML, these entries look like this:
<Result>
<Property>your-property-id</Property>
<Checkin>2026-06-01</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">149.00</Baserate>
<Tax currency="USD">22.35</Tax>
<OtherFees currency="USD">0.00</OtherFees>
</Result>
<Result>
<Property>your-property-id</Property>
<Checkin>2026-06-08</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">159.00</Baserate>
<Tax currency="USD">23.85</Tax>
<OtherFees currency="USD">0.00</OtherFees>
</Result>
These required Sunday dates shift forward every week. If you're using static price feeds rather than dynamically generated ones, you need a recurring process, weekly at minimum, to recalculate and add the new 6th and 7th Sunday entries. Miss a week and your PPAs go dark again. Build this date calculation into your feed generation pipeline, not as a manual task.
Every property in your feed must have a category value assigned. This is how Bing knows whether to display the property in hotel search results versus vacation rental results, and getting the syntax wrong means the property simply won't show up in either.
Microsoft accepts two base category values: hotel and vacation_rental. You can optionally append a custom value after a pipe character. The valid formats are:
hotel
vacation_rental
hotel|boutique
vacation_rental|beachfront villa
hotel|resort
Case sensitivity matters here. Use lowercase for the base category value. The custom value after the pipe can be any descriptive string you want, it's for your internal organizational use and won't directly affect how the ad displays to users.
One important default behavior to know: if you don't assign any category, Microsoft defaults the property to the "Hotel" category. This means vacation rentals without an explicit vacation_rental category tag will be classified as hotels, which can affect targeting, matching, and ultimately ad relevance. Always be explicit.
In your XML property feed, the category element belongs inside each property's listing block:
<listing>
<id>property-456</id>
<name>Sunset Beach House</name>
<category>vacation_rental|beachfront</category>
...
</listing>
If you manage a mixed portfolio (both hotels and vacation rentals), double-check every property record. Bulk imports sometimes strip or overwrite category fields. Run a quick search on your feed file for properties missing a <category> element before uploading, catching this pre-upload beats waiting 24 hours to discover the issue.
Microsoft gives you three options for how you send price and availability data (itinerary data) to Bing. Choosing the wrong one, or misconfiguring it, results in stale pricing data, which means your ads either stop serving or show inaccurate prices that lead to a poor user experience and policy violations.
Your three options are:
- Push mode: You proactively send price feed updates to Bing whenever your prices change. You control the cadence. Good if you have a robust feed generation pipeline that runs on schedule.
- Pull mode: Bing sends you a Query message to an endpoint you specify, asking for full itinerary data. Bing controls the cadence. Good if you want Microsoft to manage the request timing.
- Pull with hints: You send a lightweight Hint message to Bing flagging which properties and dates have changed. Bing then sends a targeted Query message requesting only that changed data. Most efficient for large property portfolios.
If you chose push mode, confirm your price feed pipeline is actually running. Check your automation logs. I've seen setups where a cron job failed silently for days, leaving Bing with a week-old price feed and ads serving incorrect rates.
If you chose pull mode, Bing sends Query messages like this to your endpoint:
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>2026-05-15</Checkin>
<Nights>1</Nights>
<PropertyList>
<Property>223</Property>
<Property>256</Property>
</PropertyList>
</Query>
Your endpoint must respond with a valid price feed containing <Result> elements for each requested property and check-in date. For large property portfolios, Microsoft may split one logical query into several smaller Query messages, each carrying a subset of property IDs. Your endpoint needs to handle multiple concurrent Query requests gracefully, don't assume it's always one-at-a-time. If your endpoint times out or returns malformed XML, Bing silently skips those properties until the next pull cycle.
Verify your endpoint is reachable from Microsoft's IP ranges and responds within a reasonable timeout window. A response time over 5–10 seconds risks a timeout on Bing's side.
Advanced Troubleshooting for Bing Hotel Ads
If you've worked through all five steps and your Bing lodging campaign ads are still not serving, or serving inconsistently, it's time to go deeper. Here are the less-obvious failure modes I've encountered on more complex setups.
Query Message Schema Errors
If you're using pull mode or pull with hints mode, the Query messages Bing sends must be processed correctly. Microsoft defines the Query message schema via a Query XSD. A common issue: developers parse the Query message with assumptions that don't match the XSD. For example, the <combinedQueryGroup> element can contain either a pointQueryGroup (specifying exact check-in dates, used for plain pull requests and pull-with-hints when the hint includes a <Stay> element) or a rangeQueryGroup (specifying a check-in date range, used for pull-with-hints when the hint specifies a date range). If your parser handles only one of these formats and Bing sends the other, your response will be wrong and your prices won't update.
Check your implementation handles both pointQueryGroup and rangeQueryGroup branches. Log the raw incoming Query XML from Bing for 24 hours and verify what type you're actually receiving.
Landing Pages Feed Issues
The Landing pages feed is a separate XML document from your property feed. It tells Bing which booking site URLs to send travelers to and the matching criteria to use. A missing or outdated landing pages feed means travelers clicking your HPA may get routed incorrectly, or the ad system may suppress the ad entirely if no valid landing page is found for the matching criteria.
Audit your Landing pages feed to confirm:
- All active properties have matching landing page entries.
- The display name, URL, and matching criteria are current (URL redirects and domain changes break this).
- The feed has been re-submitted to Bing after any updates.
Hint Message Misconfiguration (Pull with Hints)
If you use pull with hints mode, the quality of your Hint messages directly determines how efficiently Bing requests updated data. If your hints over-report changes (flagging every property as changed every cycle), you're essentially using full pull mode, inefficiently. If your hints under-report, stale pricing data persists in Bing's system and your PPA rates go out of sync with actual availability. Review your Hint message generation logic and align it with the Creating a Hint Message specifications from Microsoft's official documentation.
Favicon Delivery Failures
The optional 32×32 favicon (supporting .ico, .jpg, or .png formats) enhances brand visibility in ads. If your favicon URL returns a 404 or has an SSL certificate error, it can sometimes interfere with ad rendering validation. Host your favicon on a stable, HTTPS URL and test it independently in a browser before submitting.
Prevention & Best Practices for Bing Hotel Ads
The best time to fix a broken Bing hotel ads campaign is before it breaks. After helping set up and troubleshoot lodging campaigns across dozens of accounts, here's what I consistently see working well as a long-term maintenance strategy.
Automate the Sunday date calculation. This is non-negotiable for any production setup. Every feed generation run should programmatically compute the current 6th and 7th Sundays and include price entries for those dates. Hard-coding dates is a reliability disaster, it works until it silently stops working. A small script that runs date arithmetic at feed build time pays for itself the first time it saves you from a week of zero PPA impressions.
Treat your property feed as a living document. Properties change: new images get added, addresses update, phone numbers change, amenities shift. Build a feed update cadence, at minimum weekly, that reconciles your internal property database against the submitted feed. Don't let the feed drift from reality. Stale feed data is one of the leading causes of Microsoft Advertising policy flags on lodging campaigns.
Separate your feed environments. Maintain a staging version of your property and price feeds that you validate against the XSD schema before pushing to production. Running xmllint or an equivalent validator as a pre-upload check catches malformed XML, missing required elements, and encoding errors before they cause live campaign failures.
Monitor your pull endpoint uptime separately. If you use pull mode or pull with hints, your pricing endpoint is mission-critical infrastructure for your ad campaigns. Add it to your standard uptime monitoring stack. An endpoint outage that lasts 12 hours means 12 hours of stale pricing data flowing into Bing, which can translate to policy violations if displayed prices diverge significantly from actual booking prices.
- Set a weekly calendar reminder to verify the 6th and 7th Sunday prices are present in your current price feed, takes 2 minutes, prevents the most common PPA outage.
- Upload your 32×32 favicon early in the campaign setup; it consistently improves CTR for recognized brands and takes under 5 minutes to configure.
- Always specify the
vacation_rentalcategory explicitly for non-hotel properties, never rely on the default Hotel fallback for properties that aren't hotels. - After any property feed update, check the feed processing report in Microsoft Advertising within 24 hours to catch import errors before they affect serve rates.
Frequently Asked Questions
Why are my Property Promotion ads not showing even though my Hotel Price ads are running fine?
HPA and PPA have different requirements. Hotel Price ads can run from a basic property and price feed setup, but PPAs additionally require: XML format (not CSV) for the property feed, at least one image per property in that feed, price data covering the 6th and 7th Sundays from today's date for 1-night stays, and, most importantly, the PPA format explicitly enabled in your Ad Group settings. Check each of those four things in order. The Ad Group toggle being off is the single most common reason PPAs don't serve when HPAs are running fine.
What's the difference between push mode and pull mode for sending itinerary data to Bing?
In push mode, you actively send price feed updates to Microsoft whenever your pricing changes. You're in control of the timing and frequency. In pull mode, Microsoft sends Query messages to an endpoint you provide, and your system responds with the requested price data, Bing controls the timing. There's also a third option, pull with hints, where you send lightweight Hint messages to flag which properties and dates have changed, and then Bing sends targeted Query requests for only that data. Pull with hints is the most bandwidth-efficient for large property portfolios. Choose based on whether you have a reliable outbound pipeline (push) or a reliable inbound endpoint (pull).
Can I use a CSV file for my Bing lodging property feed?
For Hotel Price ads only, a CSV feed may work at a basic level. But for Property Promotion ads, the answer is no, CSV format doesn't support images, and images are a hard requirement for PPAs. You need to convert your property data to XML format before PPA will serve. Think of the XML feed as the full-featured format that unlocks all of Bing's hotel ad capabilities, while CSV is a limited alternative that locks you out of the more visual ad format.
How many images do I need per property for Property Promotion ads, and what size should they be?
Microsoft requires a minimum of one image per property and allows up to five (or more) in the property feed. The recommended aspect ratio is 4:3, think landscape orientation, similar to how hotels appear in Google hotel searches. Width and height are flexible with no enforced pixel minimum, but I'd recommend at least 800×600 to ensure crisp rendering on high-DPI displays and across mobile devices where lodging campaigns often get their highest click volume. Make sure images are in standard web formats and the URLs are publicly accessible HTTPS links.
What happens if I don't set a category for a property in my feed?
Microsoft will default the property to the "Hotel" category automatically. For actual hotels, this is harmless. For vacation rentals, short-term lets, or any non-hotel accommodation, this default is a real problem, your property will be categorized and matched as a hotel, which affects where and when the ad appears, how it's labeled, and whether it matches the right user queries. Always explicitly set vacation_rental for non-hotel properties. The category field also supports a custom sub-value (like vacation_rental|beach cottage) which you can use for your own organizational purposes.
Bing's pull mode Query messages stopped arriving at my endpoint, what should I check?
Start by verifying your endpoint URL is still correctly registered in your Microsoft Advertising lodging campaign settings and that it resolves correctly over HTTPS. Then check whether your endpoint has been returning errors or timeouts, Microsoft may temporarily reduce pull frequency or pause queries if your endpoint has been unreliable. Review your server logs for the time period when Query messages stopped and look for 4xx/5xx responses or timeout patterns. If the endpoint is healthy and Query messages still aren't arriving after 24 hours, contact Microsoft Support directly, this can indicate an account-level configuration issue that needs their backend team to investigate.