# Google Shopping vs Meta: feed requirements compared

Google Shopping and Meta share almost every attribute name, so a Shopify feed built for one parses on the other, but they disagree about what is mandatory. Meta requires condition on every item and ignores google_product_category; Google treats identifiers as conditional and checks the feed against your product page.

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


## Short answer

These are the two closest specifications of any pair here, and the work is small in one direction and slightly larger in the other. Going from Google to Meta, the one blocking change is condition, which Meta requires on every item rather than only on used goods. Going from Meta to Google, you gain the identifier rules and the landing-page consistency checks, which is where most of the disapprovals come from.

## Attributes treated differently

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

## Every attribute, side by side

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


## Differences a table cannot show

### Meta requires condition on every row

Google only wants condition when an item is not new, so a Shopify feed that omits it passes there. Meta expects the attribute on every item, which means a feed copied straight from Google fails on every row until condition is mapped. Shopify has no condition field, so it comes from a static value for most stores and from a tag or metafield for the rest.

### Google reads your product page, Meta largely does not

Google crawls the landing page and compares the price and availability it finds there against the feed, disapproving items that disagree. Meta is far more tolerant of a stale catalogue. This is why the same regeneration cadence that keeps a Meta catalogue healthy can still produce mismatch disapprovals in Merchant Center.

### Categorisation works differently

Google accepts google_product_category from its own taxonomy and uses it to decide which vertical rules apply to an item. Meta does not use that attribute at all: it has its own category field and infers a great deal from the title and description. Mapping the Google taxonomy is wasted effort on Meta, and omitting it is a real loss on Google.

### Meta can be refreshed more often than Google

Meta offers hourly scheduled fetches and a Catalog Batch API for individual updates. Google schedules daily at the finest, with the Content API for pushes in between. If stock moves quickly, Meta can be kept closer to the truth through scheduling alone, whereas Google needs either the API or a tolerance for being a few hours behind.

### Image expectations diverge by surface, not by channel

Both channels accept a single primary image URL, but Meta enforces stricter minimum resolutions on Shops surfaces than on catalogue ads. The same Shopify feed can therefore pass for advertising and fail for Shops, which is a distinction Google has no equivalent of.




## Reusing one feed for the other channel

1. **Map condition before anything else** — It is the only difference that stops a Meta import outright. If everything you sell is new, a static value is the correct mapping and takes one rule. Only stores selling used, refurbished or vintage goods need this driven from a tag or metafield.
2. **Drop google_product_category and keep the taxonomy work** — Meta ignores the attribute, so it does not need to be in the file. Keep the mapping itself: it still drives your Google and Microsoft feeds, and Microsoft uses the same taxonomy values unchanged.
3. **Keep item_group_id exactly as it is** — Both channels group variants with item_group_id and both expect one row per variant. If your Google feed is already variant level, this part carries over without a change, and it is what makes the variant picker work in Shops.
4. **Check your images against the Shops minimum, not the ads minimum** — If you intend to use Instagram or Facebook Shops rather than only catalogue ads, verify the resolution of the images Shopify is actually serving. Theme-resized images are a common cause of items that appear in ads but never in Shops.
5. **Decide the refresh cadence per channel rather than once** — There is no reason to run both channels on the same schedule. Meta can take an hourly fetch, so give it one if stock moves. Google gains nothing from being regenerated more often than it is fetched, but it does need regenerating before every fetch, or the 30-day expiry starts emptying the catalogue.







## Frequently asked questions

### Can I use the same feed file for Google Shopping and Meta?

Technically yes, and many merchants do, but it means shipping a file that carries attributes one channel ignores and misses one it requires. The reliable approach is one mapping with two published outputs: condition included for Meta, google_product_category included for Google.

### Which channel is stricter, Google or Meta?

Google, on the things that matter. Its identifier rules are more demanding, and it actively compares the feed against your product page, which Meta does not. Meta is stricter in only one obvious way: condition is required on every item.

### Does Meta use google_product_category?

No. Meta has its own category handling and does not read the Google taxonomy attribute, so including it has no effect. Microsoft Advertising does use the Google taxonomy, so the mapping is still worth keeping for that channel.

### Do I need separate variant rows on both channels?

Yes. Both treat each Shopify variant as its own item with its own id, grouped by a shared item_group_id. A product-level feed loses every size and colour a shopper could pick on either channel.




## Primary sources

- [Google: Product data specification](https://support.google.com/merchants/answer/7052112)
- [Meta: Product catalogue data feed reference](https://www.facebook.com/business/help/120325381656392)



