Same ad Format, new model: log three receipt fields on every run
To keep an ad format steady when the model changes, pin the Format, treat model as the orchestrator only, and log version, model and schema.

Short answer
To keep the same ad format when a model changes, keep calling the same Format and log three things from every receipt: format.version, the model that ran, and the name of the output_schema you bound. The Format holds the recipe, and the model field on a run chooses only the orchestrator, not the image or video model the Format's tools use. So a new model name in your request does not rewrite the ad.
The orchestrator defaults to gpt-6-sol. Each receipt shows the model that actually ran, which can differ from what you asked, so log the receipt rather than your request.
What changes and what does not
The table separates the layers, read 2026-10-08.
| Layer | Set by | Changes when you change model? |
|---|---|---|
| Recipe and instructions | The Format, pinned by format.version | No |
| Orchestrating model | model field on the run | Yes |
| Image and video generation models | The Format's tools | No |
| Output contract | output_schema you bind | No |
| Spend ceiling | generation_spend_cap_usd | No |
Log it
Pipe the receipt through jq and keep one line per run. Add the run id so a later regression can be traced back to the exact version. This example prints the fields that matter, and the shell variables are placeholders.
curl -sS "https://api.sume.com/v1/format-runs/$RUN_ID" \
-H "Authorization: Bearer $SUME_API_KEY" \
| jq '(.data // .) | {id, status, version: .format.version, model, schema: .output_schema.name}'Compare before you switch
When you move the orchestrator to a new model, run the same input through both for a small batch with a low spend cap, then compare the outputs and the format.version side by side. If the versions match and the outputs differ, the difference came from the orchestrator. If the versions differ, someone edited the Format.
Because format.version is pinned per run, a receipt from last month still names the recipe it used, even after you edit the Format.
- Keep
Idempotency-Keyvalues distinct per comparison arm. - Use the same
output_schemaso results are comparable. - Do not infer the media model from the orchestrator name.
When a result looks off
Read the receipt before blaming the model. A skipped step, a pending job or a missing primary output has its own error code, and each points to a different fix. Continue a run with previous_run_id instead of firing a fresh one when the work was nearly done.
Three failure modes
First, a changed format.version with no one remembering the edit. Second, a different orchestrator with the same version, which shows up as tone or ordering drift. Third, a schema renamed so old and new outputs cannot be diffed. Logging all three fields makes each one visible in a single query.
A fourth, quieter case: the model on the receipt differs from the one you requested. Alert on that mismatch rather than on the request.
Add this check to your runbook and run it on a schedule, not only after an incident. The cost is a few read requests, and the rate limits are far above what it needs: even the Free plan allows 120 writes and 4,800 reads per minute. Keep the output with the date, so you can show later what the system looked like when a question came up.
- Store receipts for as long as you store the ads.
- Add a weekly diff of the three fields.
- Treat these as working notes you can adapt: the figures are from the Sume docs read on 2026-10-08, and the arithmetic is yours to rerun with your own numbers.
Sources
Related posts
More in Formats
- Shortest ad video: Pinterest 4 s, LinkedIn 3 s, Google action 10 s
Minimum video length per ad platform, read from each vendor page on 2026-10-08, against the 0.2 second floor of Sume video trim. One cut, one duration check.
- Stop a Sume Format bulk run mid-batch: cancel starts the next item
The bulk API has no cancel-queue endpoint, and canceling a running child frees its slot for the next item. How to stop a runaway batch, and how to size queues.
- Sume's 27 catalog Formats: slugs, 404 rule and the io profile
Sume lists 27 catalog Formats at the sume handle. An unlisted slug gives 404. Read description and io before you run one, then fork it to change it.
- Wallet 402 or spend cap: which stops a Sume holiday batch first
A low wallet blocks a Format run at create with 402 insufficient_credits; a spend cap ends a running run as failed. Sizing a cap per item.
Written by Sume