Platform Catalog Video starts from a file already in Files (feedFileId), not from a live Shopify or Merchant Center connection.
What to upload
A CSV (header row) or JSON array of products. Headers are mapped with Merchant-Center aliases (sku → id, image_link → image, product name → title, …).
Required per row:
- id — unique SKU within the feed
- title
- an image —
image_link(https URL fetched at engage) orimage_file_id(library file; wins when both are set)
Optional: description, price (verbatim string, never arithmetic), custom_label_0 … custom_label_4.
What happens at engage
POST /campaigns/engage (or MCP engage_campaign):
- Loads the file from your org library.
- Canonicalizes + validates rows (duplicate ids, missing title/image → 422
rowErrors, no credit movement). - Optionally filters to
rowIds. - Projects variant count (
rows × formatIds). Over 24 →campaign_variant_cap_exceededbefore image ingest. - Fetches/ingests row images into Files, then stamps the FanOut graph.
There is no visual shop-URL picker, no remembered column-mapping UI, and no scheduled re-scrape on this path. Re-upload a feed and engage again when products change. See Sync.
Site research (related, not DCO)
POST /research/site can scrape a shop into a brand brief + stills. That is site acquisition, not a catalog feed. To run DCO you still produce a CSV/JSON and pass feedFileId.