Three Demand Gen video hooks in one Sume bulk run

Queue three hook variants of one video in a single Sume Format bulk run (up to 100 items per request) so you can test which opening works.

4 min readSume
All posts

To get three video variants in one pass, queue three items in a single Format bulk run with POST /v1/formats/{handle}/{slug}/bulk-runs; one request can hold up to 100 items. How many videos a Demand Gen campaign should carry is Google's call, and this post does not state it; check the current Google Ads guidance.

Make the three differ in the hook

The point of three videos is to give the campaign something to choose between. Three videos that differ only in the first seconds, the hook, test a clear variable and keep the rest of the ad constant.

Create the queue

A bulk request is a server-side queue of ordinary Format runs. Each item is one run with its own receipt. concurrency sets how many are in flight at once. Use a fresh Idempotency-Key for each batch, since replaying a spent key returns the old queue.

curl -sS -X POST "https://api.sume.com/v1/formats/your-handle/your-format/bulk-runs" \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"concurrency":3,"items":[
    {"instruction":"Hook A: open on the problem, 15 s"},
    {"instruction":"Hook B: open on the result, 15 s"},
    {"instruction":"Hook C: open on a question, 15 s"}
  ]}'

Poll and check

The key needs formats:write to create a queue and formats:read to poll it. Poll GET /v1/format-run-queues/{id}. A queue reaching completed means every item is terminal, not that all succeeded, so branch on counts.failed. The queue itself has no webhook; set communication.webhook_url per item.

  • Keys made before the Formats API shipped lack these scopes; create a new key
  • Cancel a single child with POST /v1/format-runs/{run_id}/cancel
  • There is no public cancel-queue endpoint
  • Read each child at GET /v1/format-runs/{run_id}

Test one first

Spend one run on a test first. A bulk request starts the first concurrency items right away, so a wrong instruction costs three runs instead of one.

Sources

Related posts

More in Formats

All Formats posts

Written by Sume