Skip to main content

Overview

A catalog is an advertiser’s structured list of what it sells — products, offerings, job openings, hotels, vehicle or real-estate listings — made available to the platform as a feed. Once a catalog is synced, sellers can build ads from the actual items: a product carousel showing four of your dresses with live prices and photos, instead of one static banner. Catalog data also closes the measurement loop — conversion events reference item IDs from the catalog, so purchases attribute back to the items that were shown. You don’t build anything to have a catalog. If you run a store, you already have one — it’s your product list. Getting it onto the platform is a matter of exporting or pointing at a feed you already have.

Getting your feed

A catalog is sourced one of two ways — a remote url the platform re-fetches on a schedule, or items supplied inline in the sync request. Each catalog uses one or the other, never both.
Two options, no app required:
  • Product export CSV — in the Shopify admin, go to Products → Export, choose All products and CSV for Excel, Numbers, or other spreadsheet programs. Shopify emails you a download link. That CSV is a supported feed as-is with feed_format: "shopify" — the standard export columns (Handle, Title, Vendor, Variant Price, Image Src, …) parse directly. Supply the rows as inline items, or host the file at a URL.
  • Public JSON feed — many Shopify stores expose their products at https://your-store.com/products.json. If yours does, use that as the feed url; a JSON feed with a top-level products array parses natively.
If you already run a feed app (for example the Google & YouTube sales channel), you can reuse the URL it generates — but note those apps emit Google Merchant Center format, so set feed_format: "google_merchant_center", not "shopify".
Point the feed url at your existing Merchant Center feed (XML or CSV) with feed_format: "google_merchant_center".
Reuse your Facebook catalog feed URL with feed_format: "facebook_catalog".
LinkedIn Jobs XML feeds are supported with feed_format: "linkedin_jobs" and type: "job".
feed_format: "custom" accepts JSON, XML, or CSV. Non-standard field names can be normalized with feed field mappings.

Key fields

Lifecycle

  1. Sync — push the catalog with Sync catalogs. Up to 50 catalogs per call; the response reports per-catalog action (created / updated / unchanged) and per-item review counts.
  2. Review — items are validated and content-reviewed. Rejections come back in item_issues with a field-level reason (for example an unreachable image URL), so you can fix the feed and re-sync.
  3. Use — campaigns and creatives reference the catalog by catalog_id; catalog-driven formats render items dynamically.
  4. Refresh — URL feeds re-fetch on their update_frequency; Refresh catalog re-fetches on demand and creates a new version when the data changed.
Beyond referencing items in creatives, a catalog can drive campaign creation itself: catalog activation fans items out into campaign groups, budget hints, and creative prompts via a saved transform. See Save catalog transform for the transform → preview → execute → refresh flow. The whole flow is also available in the UI under Data sources → Catalogs.

Sync catalogs

Push catalog feeds and items to an advertiser

List catalogs

See synced catalogs and their status

Save catalog transform

Fan catalog items out into campaigns

Glossary

Catalog and catalog activation, defined