Meta Catalog vs Google Feed: Field Differences for the Same Shopify Products
Where Meta's catalog fields and Google's product feed attributes diverge for identical Shopify products, and how to keep both in sync.
Written by Mantas Jurgutis — Founder, Adsify — builds the Google & Meta automation merchants use daily
Editorially reviewed by Adsify Editorial on May 8, 2026 — Reviewed against Shopify, Google Ads and Meta official documentation.
Same product, two feeds
A Shopify merchant running both Google Shopping/Performance Max and Meta Advantage+ shopping is effectively maintaining two representations of the same catalog. Shopify's native channels — Google & YouTube, and Facebook & Instagram — each generate their own feed independently from the same product data, but the two destinations don't share identical field names, required attributes, or validation rules, so a product can pass one platform's checks and fail the other's.
Identifier fields
Google's feed spec uses id as the unique product identifier and requires gtin (when applicable) and brand together to satisfy its unique product identifier policy for most new listings. Meta's catalog spec uses a similarly named id field but is generally more lenient about GTIN — Meta doesn't enforce GTIN/brand as strictly for basic catalog eligibility, though supplying gtin and brand still improves Meta's own product matching for dynamic ads and catalog-based recommendations.
Availability values
Google's availability attribute accepts in stock, out of stock, preorder, and backorder as its defined values. Meta's equivalent field, also called availability, uses a very similar but not identical set — in stock, out of stock, preorder, and available for order — with 'available for order' being Meta's term where Google instead uses 'backorder' for a similar (but not always equivalent) concept. Feed management tools mapping between the two need an explicit translation rule for this field rather than a direct passthrough.
Condition and age group
Both platforms support condition (new, refurbished, used) with matching values, so this field usually maps cleanly. age_group and gender fields are used similarly for apparel targeting/segmentation, but Google treats them primarily as informational/policy attributes tied to its apparel image requirements, while Meta uses these fields more directly for dynamic catalog ad targeting and Advantage+ audience signals, making accuracy in these fields more consequential for Meta ad delivery quality.
Categories
Google requires or strongly recommends google_product_category, a value from Google's own fixed taxonomy of several thousand categories, used heavily in Shopping and Performance Max matching. Meta uses its own separate category system for catalog products, and doesn't consume Google's taxonomy string directly. Shopify's Facebook & Instagram channel maps Shopify's product type/category to Meta's taxonomy automatically on a best-effort basis, but the mapping is not always precise for niche or newly added Shopify product types, and manual category correction inside Commerce Manager is sometimes necessary.
Custom labels vs no direct equivalent
Google's five custom_label_0-4 attributes (covered in our dedicated article on Shopping segmentation) have no exact Meta equivalent field name, but Meta supports a comparable concept through custom catalog fields you define yourself, referenced in catalog-based product sets used to filter Advantage+ campaigns. The mechanism differs (product sets built from rules/filters in Commerce Manager, versus Google Ads listing group subdivisions) even though the strategic goal — segmenting a catalog for different bidding treatment — is the same.
Price and sale price
Google's feed distinguishes price and sale_price (with sale_price_effective_date for time-bound promotions). Meta's catalog has an equivalent pair, price and sale_price, functioning similarly, but Meta additionally supports marking promotions through its separate Promotions/Deals features tied to catalog items in some regions, which sits outside the basic feed attribute and is managed in Commerce Manager rather than the feed file.
Shipping representation
Google supports the row-level shipping attribute plus account-level Merchant Center shipping settings, as covered in our shipping and returns article. Meta's catalog historically relies more on the destination checkout page to communicate shipping, with catalog-level shipping attributes being a more recent and less universally required addition compared to Google's longer-standing, more rigorously enforced shipping data requirements.
Where Shopify's native mapping usually just works
For a standard physical product with a single variant, a clear title, description, price, and one clean image, Shopify's Google & YouTube and Facebook & Instagram channels both generate usable feeds with minimal manual intervention — most divergence issues show up on edge cases: products with many variants, apparel needing size/color/age_group precision, bundled products, or items without a manufacturer GTIN (private label goods being the most common case).
A practical audit approach
Pick ten representative SKUs spanning your catalog's variety (a simple single-variant product, a multi-variant apparel item, a private-label item without GTIN, and a seasonal/sale item) and pull each one's data as it appears in both Merchant Center's product view and Meta Commerce Manager's catalog view side by side. Differences in category assignment, availability status, or GTIN presence usually surface immediately from this small sample without needing to review the full catalog.
Handling private-label GTIN gaps
For products without a manufacturer GTIN, Google allows setting identifier_exists to false, which relaxes its unique-identifier requirement for that item — Meta has a similar allowance but expects it to be reflected through simply omitting the gtin/mpn fields rather than a dedicated flag, since Meta's basic catalog eligibility doesn't mandate GTIN the way Google's policy does.
Why this divergence persists
Google and Meta built their feed specifications independently and evolve them on separate schedules tied to each platform's own ad product roadmap, so full convergence is unlikely; expecting one feed file to satisfy both platforms without any field-level translation logic is the most common planning mistake merchants make when they're new to running both channels simultaneously.
Keeping both in sync operationally
Adsify launches Google Performance Max and Meta Advantage+ campaigns from the same Shopify catalog and handles the field-level differences (availability value translation, category mapping, GTIN-exists handling) so the underlying product data doesn't need to be duplicated or manually reconciled by the merchant across two separate feed files.
