Meta catalog ads show video: make a product clip for every SKU

Meta says catalog ad sets with product video saw 20% more conversions per dollar. Queue a Sume Format clip per SKU, up to 100 per bulk run, and poll it.

5 min readSume
All posts

Meta's Advantage+ catalog ads page says ad sets with catalog product video saw 20% more conversions per dollar, and that the system picks image or video per person. If your catalog is all stills, that points to a video per SKU. With Sume you can queue up to 100 product clips in one POST /v1/formats/{handle}/{slug}/bulk-runs call and read results as each finishes.

The 20% figure is Meta's own claim from its catalog ads page, read 2026-10-02. It does not promise your catalog will see that lift, and nothing here is a Sume benchmark.

What does Meta say about catalog ads and video?

The page describes the catalog working across all sales campaigns, not one ad format, and says the system will "show the right format, product images or video, based on what each person responds to best". Next to that sits the 20% claim for ad sets with catalog product video.

Two practical points follow. A catalog that has video gives the system a choice it does not have today, and the choice is made per viewer, so you do not need to guess whether a given product wants a clip.

Meta catalog ads claims used in this post (from Meta's page, read 2026-10-02)
Claim on the pageWhat it is aboutHow to read it
20% more conversions per dollarAd sets with catalog product videoMeta's reported result, not a guarantee
Right format per personImages or video chosen automaticallySupply both so there is a choice
Catalog works across sales campaignsNot tied to one ad formatOne catalog feeds every campaign

How does a bulk run fit a catalog of products?

A bulk run is a server-side queue of ordinary Format runs. Each item is the same body as a single run, with its own instruction and input. You send concurrency from 1 to 16 and between 1 and 100 items; the first concurrency items start at once and the server starts the next as each finishes.

The Format catalog lists sume-product-commercial among its product Formats. One item per SKU, with the product photo URL under input, gives you a queue whose rows line up with your catalog rows.

What does the Python look like?

The example below sends three SKUs and polls the queue until every item is terminal. The input shape ({"url": ...} here) is a placeholder: read the Format's io.input_kind from the Format catalog and shape input to match. It uses a fresh Idempotency-Key per batch, because replaying a spent key returns the old queue.

import os, time, uuid, requests

H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
skus = {"mug-088": "https://example.com/mug-088.jpg",
        "cap-212": "https://example.com/cap-212.jpg",
        "tote-007": "https://example.com/tote-007.jpg"}
items = [{"instruction": f"Product clip for SKU {k}, vertical 9:16", "input": {"url": u}}
         for k, u in skus.items()]
r = requests.post(
    "https://api.sume.com/v1/formats/sume/sume-product-commercial/bulk-runs",
    headers={**H, "Idempotency-Key": str(uuid.uuid4())},
    json={"concurrency": 3, "items": items}, timeout=30)
r.raise_for_status()
q = r.json()["data"]
while q["status"] != "completed":
    time.sleep(10)
    q = requests.get(q["status_url"], headers=H, timeout=30).json()["data"]
print(q["counts"])
for i in q["items"]:
    print(list(skus)[i["index"]], i["status"], i["run_id"])

What should I check before the clips go into a catalog?

Read every clip against the product page. Meta's page is about performance, not accuracy, but a clip that shows a different colour or an extra unit from what ships will cost you in returns and in platform review elsewhere. The same check applies as for any AI product video.

Also check the delivery spec of the place you upload to. Meta's catalog video limits are covered in the post on per-product video limits; reframe or shorten with video trim when a clip is over the cap.

What does this not do?

Sume does not upload to your Meta catalog or read your catalog feed. The queue returns finished runs, and you attach the video files to products through whatever route you already use. The queue also has no webhook of its own; per-item communication.webhook_url is the push option, and polling status_url is the simple one.

Finally, completed on the queue means every item is terminal, not that every item succeeded. Branch on counts.failed before you load anything.

Pick a batch size you can review. Reading 100 clips against 100 product pages is real work, and an unreviewed clip is the one that will be wrong. Start with a dozen SKUs, find what the prompt needs to say about framing and background, and only then queue the rest of the catalog. Because each item takes its own instruction, you can also vary the brief by product type, for example a close crop for jewellery and a wider shot for furniture, without changing the queue shape. Keep the SKU list in the same order as the items so that a result can be matched to a product by its index alone.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume