Skip to content
Microsoft Bing
Ad platforms

Microsoft Shopping feed for Shopify

Microsoft Shopping campaigns put your products on Bing and across the Microsoft Advertising Network. The feed borrows Google's attribute names but follows Microsoft's own rules, and the differences are where offers get rejected. Feedflock turns your Shopify catalog into the tab-delimited file Microsoft Merchant Center fetches, with those rules already applied, and regenerates it every hour.

01 · ShopifyProduct in the catalog
Linen shirt SandNordlin · Men's shirtsSKU-2048 · S–XL
Price
49 €
In stock
0 pcs
When out of stock
02 · bing.txtUpdated just now
id title description link image_link price availability brand condition google_product_category item_group_id size
46012345678901 Linen shirt Sand M Breathable linen shirt with a relaxed regular fit. https://shop.example/products/linen-shirt-sand https://cdn.shop.example/img/linen-shirt-sand.jpg 49.00 EUR out of stock Nordlin new Apparel & Accessories > Clothing > Shirts & Tops 8812345678901 M
4.90
Countryshipping columnStatus
DEDE:Standard:4.90Mandatory here
ATAT:Standard:4.90Mandatory here
CZCZ:Standard:4.90Valid
SKSK:Standard:4.90Valid
4countries covered
2of them mandatory
Shipping

Germany and Austria require a shipping column.

Microsoft reads the shipping column as country : service : price, a bare number, no currency, 0 means free. For feeds targeting Germany or Austria the column is mandatory; everywhere else it is optional.

Feed health

Catch feed issues before Microsoft Bing does.

Before every generation Feedflock checks that every field the channel requires is filled, and, on templates verified against the channel's own spec, that the values fit its rules. Most problems are fixed with one click, without editing products in Shopify.

Feed quality · bing.txt
81 / 100
To review: 3
Empty brand on 5 productsThe Shopify vendor is blank. Microsoft requires brand whenever the manufacturer assigns one, and not your store name unless you make the goods.
No image_link on 3 productsThe product has no featured image. image_link is required; the variant photo can fill in.
Empty description on 4 productsdescription is required: plain text, up to 10,000 characters, about the same item as the landing page.

Setup

Live in five steps

From a bare Shopify store to a listed offer: the whole setup fits into one coffee break.

  1. Create a Microsoft Merchant Center store

    In Microsoft Advertising, create a Merchant Center store and verify your domain. The store is approved before it can serve, and a new store link can take up to three business days to review. Product links must be on the same domain and must not sit behind a password page.

  2. Install Feedflock

    Add Feedflock from the Shopify App Store. It reads your products, variants, stock and images directly through the Shopify API.

  3. Pick the Microsoft Shopping template

    Create a new feed and choose Microsoft Shopping (Bing). id, title, description, link, image_link, price, availability and brand are mapped already, with gtin from the Shopify barcode, item_group_id from the product and color and size from your variant options.

  4. Add what Shopify can't supply

    Selling to Germany or Austria? Type the shipping column once, for example DE:Standard:4.90. For handmade or custom goods with no GTIN, brand or MPN, set identifier_exists to FALSE.

  5. Register the feed URL

    In Merchant Center, add the feed by URL on a daily, weekly or monthly schedule. Microsoft downloads a hosted file once every 24 hours. On a new feed, the “Use feed for testing only” switch validates it without serving ads.

    https://feedflock.appfleece.com/f/demo-bing/bing.txt

The feed

What the channel receives

bing.txt
id	title	description	link	image_link	price	availability	brand	condition	google_product_category	item_group_id	size
46012345678901	Linen shirt Sand M	Breathable linen shirt with a relaxed regular fit.	https://shop.example/products/linen-shirt-sand	https://cdn.shop.example/img/linen-shirt-sand.jpg	49.00 EUR	in stock	Nordlin	new	Apparel & Accessories > Clothing > Shirts & Tops	8812345678901	M
Live preview
Linen shirt Sand

Nordlin

Linen shirt Sand

49 €

Feed fields

id

46012345678901

title

Linen shirt Sand M

description

Breathable linen shirt with a relaxed regular fit.

link

https://shop.example/products/linen-shirt-sand

price

49.00 EUR

availability

in stock

brand

Nordlin

condition

new

google_product_category

Apparel & Accessories › Clothing › Shirts & Tops

item_group_id

8812345678901

size

M

The channel

More than Bing

Shopping ads and Performance Max run across the Microsoft Advertising Network (Bing, Yahoo, DuckDuckGo and Microsoft Start) from a single Merchant Center catalog.

The catalog behind Copilot shopping

Microsoft's in-chat checkout in Copilot builds on a Merchant Center account and its product feed. The feed you send for Shopping ads is the same one.

Google's names, Microsoft's rules

Microsoft reads Google's attribute names, so the structure feels familiar. The rules differ, though: no backorder, availability spelled with spaces, identifier_exists as TRUE or FALSE, shipping required for Germany and Austria.

The feed

  • The Microsoft Shopping template maps id, title, description, link, image_link, price, availability and brand, plus gtin, item_group_id, color, size and the category
  • Tab-delimited .txt exactly as Microsoft asks: one header row, no quotes, no trailing tabs, and tabs or line breaks inside a value flattened so no row breaks
  • Prices go out as number, space and ISO currency code; a compare-at price splits into price plus sale_price
  • Availability is always sent, from Shopify's own stock status. An omitted value would be read as in stock and advertise sold-out variants
  • identifier_exists speaks Microsoft's TRUE/FALSE, with an option that derives it from the barcode and vendor
  • Categories from Google's taxonomy, which Microsoft uses with the same IDs; products with a Shopify category map automatically
  • Every generation lists required columns that came out empty, such as a product with no image or no brand
  • Fetch tracking shows when Microsoft last downloaded the feed and alerts you if it stops

Deep dive

01

A tab-delimited file, fetched daily

  • Tab-delimited plain text: TXT, or a ZIP, GZ or TAR.GZ archive of one
  • A header row of attribute names, no quotes around values, no HTML anywhere
  • A hosted URL is downloaded once every 24 hours; manual uploads are capped at 4 MB
  • Items expire 30 days after the last upload, so a stale feed takes your ads down
Technical details

Microsoft Merchant Center reads a tab-delimited plain-text file (TXT, or a ZIP, GZ or TAR.GZ archive of one) with a single header row, no quotes around values and no HTML. A file that breaks these rules is not processed at all. A hosted URL is downloaded once every 24 hours on the daily, weekly or monthly schedule you set; manual uploads are capped at 4 MB.

Feedflock renders exactly this layout and hosts it on a stable URL, regenerating it every hour. Items expire 30 days after the last upload, so a feed that stops refreshing takes your ads down with it. Fetch tracking shows Microsoft's last download and warns you when it stops.

02

Google's names, Microsoft's rules

  • Availability knows only in stock, out of stock and preorder, no backorder
  • An omitted availability silently means in stock, so the template always sends it
  • identifier_exists is TRUE or FALSE, not yes or no; descriptions run to 10,000 characters
  • Categories come from Microsoft's copy of Google's taxonomy, as a full path or a numeric ID
Technical details

The column set mirrors a Google feed (Microsoft accepts and uses Google's attribute names), but the details are Microsoft's. Availability knows only in stock, out of stock and preorder, spelled with spaces, and there is no backorder; an omitted value silently means in stock, which is why the template always sends it. The description may run to 10,000 characters where Google stops at 5,000, and identifier_exists is TRUE or FALSE rather than yes or no.

Microsoft's category list is Google's product taxonomy as of September 2021, with the same IDs. The template sends it in Google's google_product_category column, which Microsoft reads as its own product_category: a full path separated by >, or the numeric ID, which survives renames and works in any language.

03

Identifiers and variants

  • Send gtin, brand and mpn where the manufacturer assigns them
  • Products with none of the three (handmade, custom, antique) carry identifier_exists FALSE
  • Your own SKU is not an MPN, so the template leaves mpn empty unless you map one
  • Variants share item_group_id and send at least one variant attribute, such as size
Technical details

Microsoft wants all three identifiers for products that have a GTIN, brand plus mpn for products without one, and identifier_exists set to FALSE for goods that have none of the three (handmade, custom or antique), so the missing codes are not held against them. MPNs are assigned by the manufacturer, so the template leaves mpn empty rather than sending your SKU.

Variants of one product share item_group_id (up to 50 characters and different from id), and the group must carry at least one variant attribute; the template fills color and size from your Shopify options. Titles cap at 150 characters, and Microsoft recommends naming colour or size in the title, which the default product-plus-variant title does.

04

Prices, tax and shipping

  • Price is a number with two decimals, a space and the ISO 4217 code: 23.99 USD
  • VAT is included for Australia, Germany, France and the UK; US prices exclude sales tax
  • Shipping is country:service:price with a bare number: DE:Standard:4.90, or 0 for free
  • Germany and Austria require it; every price or stock change is re-reviewed within 24 hours
Technical details

Price is a number with two decimals, a space and the ISO 4217 code (23.99 USD), and must equal the landing-page price, which Microsoft verifies. Microsoft's tax policy covers five countries: VAT included for Australia, Germany, France and the United Kingdom, sales tax excluded for the United States. Feedflock sends the price exactly as your Shopify storefront shows it.

Shipping is one or more country:service:price groups with a bare number and no currency, such as DE:Standard:4.90, or 0 for free shipping. It is required for feeds targeting Germany or Austria and optional elsewhere; you type it once in the shipping mapping. Microsoft has no free-above-a-threshold attribute. Every change to price or availability puts the item back into review for up to 24 hours.

The takeaway

One URL, an hourly refresh and a tab-delimited file that already follows Microsoft's rules rather than Google's. Your Shopify catalog stays the single source of truth, and Microsoft's daily download always reads its current state.

Claude · ChatGPT

Or set up your Microsoft Bing feed in chat

Connect Feedflock to Claude or ChatGPT and ask. It creates the feed as a draft, maps your categories to Microsoft Bing's own tree and tells you what is still missing. You approve every change.

feedflock · mcp

Create a Microsoft Bing feed for my store and map my categories.

I'll create it as a draft and show you each change before I make it.

FAQ

Microsoft can import a Google Merchant Center account directly and reads Google-formatted XML. A dedicated feed is worth it when you want Microsoft's own rules applied: availability spelled with spaces and no backorder, TRUE/FALSE identifier_exists, a 10,000-character description and shipping for Germany and Austria.
A hosted URL is downloaded once every 24 hours, on the daily, weekly or monthly schedule you set in Merchant Center. Feedflock regenerates the file every hour, so each download reads current prices and stock. Items expire 30 days after the last upload.
Send brand and mpn where the manufacturer assigns them, and set identifier_exists to FALSE for products that have none of the three, handmade or custom goods, for example. Feedflock can derive it per variant: FALSE only when there is neither a barcode nor a vendor.
Only for feeds targeting Germany or Austria, where it is required. You type it once in the shipping mapping as country:service:price: a bare number without a currency, 0 for free shipping, several groups separated by commas.
Keep it in the feed with availability out of stock, which is Microsoft's way to pause an item. Deleting the item instead takes up to 12 hours to process, and Microsoft recommends switching it to out of stock first.
Yes. Filter by collection, tag, vendor, price or stock level, or leave out individual variants, for example sizes you do not want to advertise.

Get on every marketplace that matters this afternoon.

Install free, connect your first feed in minutes, and let Feedflock keep it fresh and validated.

.myshopify.com