# 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.

- **Canonical URL:** https://www.feedlab.io/knowledge/compare/meta-vs-microsoft-bing
- **Last reviewed:** 18 September 2026
- **Source:** feedlab knowledge base
- **Licence:** free to quote and cite with attribution to feedlab


## Short answer

Neither of these is a stepping stone to the other. If you have a Google feed, both are cheap; if you only have a Meta catalogue, expect real work for Microsoft, because the taxonomy and identifier mappings Meta never asked for are exactly what Microsoft leans on. Build the Google-shaped mapping once and publish to both.

## Attributes treated differently

| Attribute | Meta | Microsoft Advertising |
| --- | --- | --- |
| `brand` | Recommended | Required in some cases |
| `condition` | Required | Optional |
| `google_product_category` | Not supported | Recommended |
| `gtin` | Recommended | Required in some cases |
| `mpn` | Optional | Required in some cases |

## Every attribute, side by side

| Attribute | Meta | Microsoft Advertising |
| --- | --- | --- |
| `availability` | Required | Required |
| `brand` | Recommended | Required in some cases |
| `condition` | Required | Optional |
| `custom_label_0` | Optional | Optional |
| `description` | Required | Required |
| `google_product_category` | Not supported | Recommended |
| `gtin` | Recommended | Required in some cases |
| `id` | Required | Required |
| `identifier_exists` | Not documented here | Optional |
| `image_link` | Required | Required |
| `item_group_id` | Required in some cases | Required in some cases |
| `link` | Required | Required |
| `mpn` | Optional | Required in some cases |
| `price` | Required | Required |
| `sale_price` | Optional | Optional |
| `title` | Required | Required |


## Differences a table cannot show

### 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

1. **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.
2. **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.
3. **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.
4. **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.
5. **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.







## 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.




## Primary sources

- [Meta: Product catalogue data feed reference](https://www.facebook.com/business/help/120325381656392)
- [Microsoft: Feed file guidelines](https://help.ads.microsoft.com/#apex/ads/en/56895/1)



