Meta Product Catalog
Why a catalog?β
The Meta Product Catalog is required to enable on the Ads Manager side:
- Dynamic Product Ads (DPA) β personalized retargeting with the exact products a visitor viewed/added to cart.
- Advantage+ Catalog Ads β ML-optimized campaigns over the catalog.
- Instagram / Facebook Shopping tab β organic product visibility.
- Reels Shopping β tagged products in Reels.
Connection with the dataLayerβ
The item_id you push in dataLayer events MUST exactly match the id in the catalog.
| dataLayer | Meta Catalog | Status |
|---|---|---|
item_id: 'BIO-CRM-001' | id: 'BIO-CRM-001' | β Match |
item_id: 'BIO-CRM-001' | id: 'bio-crm-001' | β Case mismatch |
item_id: '4521' (DB id) | id: 'BIO-CRM-001' (SKU) | β No match |
Agree upfront (dev + agency) on the canonical id format (SKU recommended) and use it everywhere.
Accepted feed formatsβ
The catalog is fed by a feed file you expose to Meta. Formats:
- CSV (UTF-8, comma or tab separated)
- XML / RSS / ATOM
- TSV
- Google Sheets (auto-sync)
Refresh: up to once per hour when configured.
Minimum required fieldsβ
| Meta field | Description | Example |
|---|---|---|
id | SKU β matches item_id in dataLayer | BIO-CRM-001 |
title | Commercial name | Hydrating Day Cream 50ml |
description | Long description | Hyaluronic acidβenriched creamβ¦ |
availability | in stock / out of stock / preorder | in stock |
condition | new / refurbished / used | new |
price | With currency | 42.00 EUR |
link | Product page URL | https://biosphereskincare.com/en/product/day-cream |
image_link | Main image HTTPS URL | https://biosphereskincare.com/img/BIO-CRM-001.jpg |
brand | Brand | Biosphere |
Recommended fieldsβ
| Field | Example |
|---|---|
google_product_category | Health & Beauty > Personal Care > Cosmetics > Skin Care |
additional_image_link | Comma-separated URLs, up to 10 |
sale_price | 33.60 EUR (when on sale) |
sale_price_effective_date | ISO 8601 range |
item_group_id | Groups variants (all sizes of the same product) |
color, size, material | Variants |
gtin | EAN/UPC barcode |
mpn | Manufacturer Part Number |
What to deliver as devβ
The agency needs one of the following:
Option A β HTTPS feed (recommended)β
A stable URL like https://biosphereskincare.com/feeds/meta-catalog.xml that:
- Lists all in-stock products.
- Auto-refreshes (cron or real-time) with prices, stock, etc.
- Follows the Meta XML format.
Option B β Recurring exportβ
CSV / shared Google Sheet, regenerated daily.
Option C β Native connectorβ
If you run Shopify / WooCommerce / Magento, use the official Meta connector (coordinate with the agency to avoid duplicates).
Example XML feedβ
<?xml version="1.0"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title>Biosphere Skincare</title>
<link>https://biosphereskincare.com</link>
<description>Product catalog</description>
<item>
<g:id>BIO-CRM-001</g:id>
<g:title>Hydrating Day Cream 50ml</g:title>
<g:description>Hyaluronic acidβenriched creamβ¦</g:description>
<g:link>https://biosphereskincare.com/en/product/day-cream</g:link>
<g:image_link>https://biosphereskincare.com/img/BIO-CRM-001.jpg</g:image_link>
<g:availability>in stock</g:availability>
<g:condition>new</g:condition>
<g:price>42.00 EUR</g:price>
<g:brand>Biosphere</g:brand>
<g:google_product_category>Health & Beauty > Personal Care > Cosmetics > Skin Care</g:google_product_category>
<g:item_group_id>BIO-CRM</g:item_group_id>
</item>
<!-- β¦ -->
</channel>
</rss>
Synergy with Google Merchant Centerβ
The same feed can power:
- Meta Product Catalog
- Google Merchant Center (Shopping ads + dynamic remarketing)
Recommendation: generate one feed, expose it over HTTPS, consume from both platforms. The Google Merchant Spec (g: namespace) is also accepted by Meta.
Pitfallsβ
- β
item_id(dataLayer) βid(catalog) β DPA audiences broken. - β Slow feed (> 2 min to crawl) β Meta aborts.
- β Price without currency β products rejected.
- β Missing
availabilityβ products rejected. - β HTTP images instead of HTTPS β rejected.
- β Image too small (under 500Γ500 px) β rejected in Shopping.