Skip to content
feedlab Request early access

Channel comparison

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.

Where the two specifications diverge

The 5 attributes one channel treats differently from the other. Everything else is identical and is listed further down.

Attributes treated differently by Google Shopping and Meta
Attribute Google Shopping Meta What that means
brand Required in some cases Recommended Stricter on Google Shopping.
condition Required in some cases Required Stricter on Meta.
google_product_category Recommended Not supported Only Google Shopping accepts it.
gtin Required in some cases Recommended Stricter on Google Shopping.
mpn Required in some cases Optional Stricter on Google Shopping.

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.

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

What actually has to change, in the order it is worth doing.

  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.

Every attribute, side by side

All 16 attributes documented in this knowledge base, as Google Shopping and Meta each treat them.

Full attribute comparison between Google Shopping and Meta
Attribute Google Shopping Meta
availability Required availability Required availability
brand Required in some cases brand Recommended brand
condition Required in some cases condition Required condition
custom_label_0 Optional custom_label_0 Optional custom_label_0
description Required description Required description
google_product_category Recommended google_product_category Not supported
gtin Required in some cases gtin Recommended gtin
id Required id Required id
identifier_exists Optional identifier_exists Not documented here
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 Required in some cases mpn Optional mpn
price Required price Required price
sale_price Optional sale_price Optional sale_price
title Required title Required title

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.

Both specifications in full

Errors on either channel

Related concepts

Primary sources

Channel specifications change. These are the official documents this page is based on.

Last reviewed View as markdown