Channel comparison
Meta vs Pinterest: feed requirements compared
Meta and Pinterest are the two most image-driven channels documented here, and their feed requirements are correspondingly light on identifiers. The differences are in cadence, in market structure and in what a good image means: Meta enforces resolution minimums on Shops, Pinterest rewards vertical crops.
Where the two specifications diverge
The 4 attributes one channel treats differently from the other. Everything else is identical and is listed further down.
| Attribute | Meta | What that means | |
|---|---|---|---|
| brand | Recommended | Optional | Stricter on Meta. |
| condition | Required | Optional | Stricter on Meta. |
| gtin | Recommended | Optional | Stricter on Meta. |
| item_group_id | Required in some cases | Optional | Stricter on Meta. |
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, Pinterest does not
Condition is mandatory on every Meta item and optional on Pinterest. If you already feed Meta, you have the mapping and can leave it in place. It is the only requirement-level difference that would block anything.
Pinterest needs one feed per market
Meta handles multiple countries within a catalogue through its own market settings. Pinterest expects a separate data source per country and language combination. A store selling into several markets goes from one Meta catalogue to several Pinterest feeds, which is a pipeline change rather than a mapping one.
Cadence is hourly versus daily
Meta supports hourly scheduled fetches and a batch API for individual updates. Pinterest fetches once every 24 hours with no sub-daily option and no routine push API. A product that sells out will be wrong on Pinterest for longer than on Meta, and no amount of regeneration changes that.
Both care about images, for different reasons
Meta enforces minimum resolutions on Shops surfaces, so an undersized image fails a check. Pinterest has no equivalent gate but displays the image so large that a landscape theme crop underperforms visibly. One is a validation problem, the other is a performance problem, and they have different fixes.
Variant grouping is required on one and optional on the other
Meta uses item_group_id to build the variant picker in Shops, so it is required wherever a product has variants. Pinterest treats it as optional. Sending it anyway keeps one mapping serving both, and costs nothing.
Reusing one feed for the other channel
What actually has to change, in the order it is worth doing.
-
Publish the Meta mapping as a starting point
Nothing in a Meta feed will cause a Pinterest rejection, so start by pointing Pinterest at the same output and confirm it ingests cleanly before changing anything.
-
Split the output by country and language
Generate one feed per market, each carrying its own currency, prices and product URLs. This is the step that most often gets skipped, because a single multi-market file uploads successfully and then behaves oddly.
-
Reconsider which image you send
Meta pushed you towards a large square image to satisfy Shops. Pinterest rewards vertical. If the store has a portrait image in a metafield or as a second product image, map it for this channel only.
-
Align regeneration with the daily fetch
Pick the fetch time in Pinterest and regenerate shortly before it. On Meta you could regenerate on any cadence and let hourly fetches catch up; here the timing is the only lever you have.
-
Set expectations about stock accuracy
With a single daily fetch, a sold-out item can stay pinned as available for most of a day. That is a channel limitation rather than a feed defect, and it is worth saying out loud before someone reports it as a bug.
Every attribute, side by side
All 15 attributes documented in this knowledge base, as Meta and Pinterest each treat them.
| Attribute | Meta | |
|---|---|---|
| availability | Required availability | Required availability |
| brand | Recommended brand | Optional brand |
| condition | Required condition | Optional condition |
| custom_label_0 | Optional custom_label_0 | Not documented here — |
| description | Required description | Required description |
| google_product_category | Not supported — | Not documented here — |
| gtin | Recommended gtin | Optional gtin |
| id | Required id | Required id |
| image_link | Required image_link | Required image_link |
| item_group_id | Required in some cases item_group_id | Optional item_group_id |
| link | Required link | Required link |
| mpn | Optional 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 my Meta catalogue feed for Pinterest?
Yes, with one structural change: Pinterest wants a separate data source for each country and language pair, so a multi-market catalogue needs splitting into one feed per market.
Does Pinterest require condition like Meta does?
No. Condition is mandatory on every Meta item and optional on Pinterest. If you already map it for Meta, leave it in place for both.
Which channel keeps stock more current?
Meta, clearly. It fetches as often as hourly and accepts pushed updates through its batch API. Pinterest fetches once every 24 hours, so its catalogue is structurally further behind.
Should I send different images to Meta and Pinterest?
If you have the images, yes. Meta enforces a resolution minimum on Shops surfaces, while Pinterest displays images large and favours vertical crops. A square image that satisfies Meta is rarely the best-performing image on Pinterest.
Both specifications in full
- Meta Meta's product catalogue is the data source behind Facebook and Instagram Shops, Advantage+ catalogue ads and dynamic retargeting, populated by a product feed uploaded to Commerce Manager. Its attribute names largely mirror Google's, but its accepted values and its handling of variants differ enough to break a feed copied straight across.
- Pinterest Pinterest turns an uploaded product feed into Product Pins, which are shoppable pins that carry live price and availability from the catalogue. Its feed specification borrows Google's attribute names, and its distinguishing requirement is that every item needs a genuinely usable image, because the image is the entire unit of discovery on Pinterest.
Errors on either channel
- Image link cannot be crawled An image crawl failure means the channel could not retrieve the file at image_link, or retrieved it and judged it unusable. On Shopify the URL itself is rarely wrong, so the cause is usually a rate limit hit during a first full crawl, a temporary CDN response, or an image whose content breaks policy rather than one that is genuinely missing.
- Mismatched value: availability The availability mismatch error means the feed says an item is purchasable but the crawled landing page suggests otherwise, or the reverse. On Shopify it is usually a stale feed after a sell-out, or an availability value derived from inventory quantity alone without accounting for variants that do not track inventory or that allow overselling.
Related concepts
- Variant-level feed A variant-level feed emits one row for each purchasable variant rather than one row per product, because sales channels treat every size, colour and material as a separately buyable item with its own price, stock and barcode. A Shopify product with four sizes in three colours is one product in the admin and twelve items to a channel.
- Feed scheduling Feed scheduling is the arrangement where a sales channel fetches a feed from a fixed URL on a repeating timetable instead of the merchant uploading a file. It matters because the interval between regenerations is the window in which a channel can be wrong about a price or a stock level, and most mismatch disapprovals are caused by that window being too wide rather than by a bad mapping.
Primary sources
Channel specifications change. These are the official documents this page is based on.