Channel comparison
Meta vs Microsoft Advertising: feed requirements compared
Meta and Microsoft Advertising both borrowed Google's attribute names, which makes them look interchangeable, but they disagree on almost every conditional field. Microsoft wants the Google product taxonomy and a strict identifier chain; Meta ignores the taxonomy entirely and requires condition on every item instead.
Where the two specifications diverge
The 5 attributes one channel treats differently from the other. Everything else is identical and is listed further down.
| Attribute | Meta | Microsoft Advertising | What that means |
|---|---|---|---|
| brand | Recommended | Required in some cases | Stricter on Microsoft Advertising. |
| condition | Required | Optional | Stricter on Meta. |
| google_product_category | Not supported | Recommended | Only Microsoft Advertising accepts it. |
| gtin | Recommended | Required in some cases | Stricter on Microsoft Advertising. |
| mpn | Optional | Required in some cases | Stricter on Microsoft Advertising. |
Differences a table cannot show
Requirement levels are the easy part. These are the differences in values, structure and delivery that break a feed copied from one channel to the other.
Microsoft needs the taxonomy Meta ignores
Microsoft accepts Google's product category taxonomy and uses it to place your items. Meta does not read that attribute at all. A store that has only ever fed Meta has usually never mapped a taxonomy value, and that mapping is the largest single piece of work in this direction.
condition is required on Meta and optional on Microsoft
Meta expects condition on every item. Microsoft treats it as optional throughout. The attribute is worth sending to both regardless, but only one of them will stop your feed over it.
Identifier enforcement runs the other way
Meta recommends gtin and treats mpn as optional, so a catalogue of own-brand goods is comfortable there. Microsoft expects the gtin, mpn and brand chain and can reject items outright where Google would only warn. The same catalogue can be healthy on Meta and heavily rejected on Microsoft.
Refresh cadence differs by an order of magnitude
Meta offers hourly scheduled fetches and a Catalog Batch API for individual updates. Microsoft fetches daily with no finer option and no push API to fall back on. If your stock moves within the day, the two channels need genuinely different accuracy expectations rather than one shared schedule.
Delimited formats are not the same file
Meta accepts CSV, TSV and Google Sheets. Microsoft's delimited format is tab separated. A comma-delimited file that Meta reads happily is not a Microsoft feed, and the fix is regenerating rather than renaming.
Reusing one feed for the other channel
What actually has to change, in the order it is worth doing.
-
Map google_product_category before anything else
This is the field Meta let you skip. Map it from product type, tags or a metafield, and map it properly: it is what decides which vertical rules apply to your items on Microsoft, and the same values then serve a Google feed unchanged.
-
Audit identifier coverage across the catalogue
Count the variants with no structurally valid barcode and no brand and mpn pair. On Meta those items simply performed a little worse. On Microsoft they can be rejected, so you need the number before you launch rather than after.
-
Regenerate the file as tab-delimited text
Same columns, different delimiter, and check that a tab cannot appear inside a description after HTML is stripped.
-
Keep condition mapped even though Microsoft does not require it
You already have it for Meta. Leaving it in place costs nothing and it is what stops a shopper arriving on a refurbished item expecting a new one.
-
Give each channel its own schedule
Meta can take an hourly fetch and benefits from one. Microsoft cannot, so regenerate before its daily fetch and accept the window rather than pretending the two channels behave alike.
Every attribute, side by side
All 16 attributes documented in this knowledge base, as Meta and Microsoft Advertising each treat them.
| Attribute | Meta | Microsoft Advertising |
|---|---|---|
| availability | Required availability | Required availability |
| brand | Recommended brand | Required in some cases brand |
| condition | Required condition | Optional condition |
| custom_label_0 | Optional custom_label_0 | Optional custom_label_0 |
| description | Required description | Required description |
| google_product_category | Not supported — | Recommended google_product_category |
| gtin | Recommended gtin | Required in some cases gtin |
| id | Required id | Required id |
| identifier_exists | Not documented here — | Optional identifier_exists |
| image_link | Required image_link | Required image_link |
| item_group_id | Required in some cases item_group_id | Required in some cases item_group_id |
| link | Required link | Required link |
| mpn | Optional mpn | Required in some cases mpn |
| price | Required price | Required price |
| sale_price | Optional sale_price | Optional sale_price |
| title | Required title | Required title |
Frequently asked questions
Can I reuse a Meta catalogue feed for Microsoft Advertising?
Partly. The attribute names carry over, but Microsoft wants google_product_category, which Meta ignores, and enforces the identifier chain far more strictly. Expect to add a taxonomy mapping and to look hard at identifier coverage first.
Which channel refreshes a feed more often?
Meta, by a wide margin. It offers hourly scheduled fetches plus a batch API for individual updates, where Microsoft fetches once a day with no push option.
Does Microsoft Advertising require condition?
No, it treats condition as optional. Meta requires it on every item. Sending it to both is still the right call for any store selling anything that is not new.
Is it easier to go from Google to Microsoft than from Meta?
Considerably. A Google feed already carries the taxonomy values and the identifier logic Microsoft expects, so the work is a format change. From Meta, those are both missing.
Both specifications in full
- Meta Meta's product catalogue is the data source behind Facebook and Instagram Shops, Advantage+ catalogue ads and dynamic retargeting, populated by a product feed uploaded to Commerce Manager. Its attribute names largely mirror Google's, but its accepted values and its handling of variants differ enough to break a feed copied straight across.
- Microsoft Advertising Microsoft Advertising runs product ads across Bing, Yahoo and the Microsoft Audience Network from a catalogue uploaded to Microsoft Merchant Center. Its feed specification is closely modelled on Google's, which makes it the cheapest additional channel to launch once a Google Shopping feed already exists.
Errors on either channel
- Missing value: GTIN The "Missing value: GTIN" issue means a channel believes a product has a manufacturer-assigned barcode but the feed did not supply one. On Shopify it almost always traces back to the variant barcode field, which is optional in the admin and therefore left empty across large parts of most catalogues.
- Missing value: brand The "Missing value: brand" issue means a channel expects a brand name for a product and the feed did not supply one, or supplied a placeholder it treats as empty. On Shopify it usually means the vendor field is blank, or holds a supplier or internal category rather than the brand a shopper would recognise.
- Invalid value: GTIN The "Invalid value: GTIN" error means the feed supplied a value in the gtin attribute that is not a structurally valid Global Trade Item Number. Unlike a missing GTIN this is usually a disapproval rather than a warning, because a wrong identifier matches the item to the wrong product rather than to none.
Related concepts
- Product identifiers Product identifiers are the values that let a sales channel recognise that your listing and someone else's describe the same physical product: a GTIN, or a manufacturer part number together with a brand. They matter because a channel that can identify a product can attach reviews, specifications and competing offers to it, and one that cannot has to treat your listing as an unknown object.
- Feed scheduling Feed scheduling is the arrangement where a sales channel fetches a feed from a fixed URL on a repeating timetable instead of the merchant uploading a file. It matters because the interval between regenerations is the window in which a channel can be wrong about a price or a stock level, and most mismatch disapprovals are caused by that window being too wide rather than by a bad mapping.
Primary sources
Channel specifications change. These are the official documents this page is based on.