POST /api/v2/buyer/campaigns/:id/execute
Executes any DRAFT media buys on the campaign, submitting them to ADCP. On a freshly-created campaign the call transitions DRAFT → ACTIVE. You can also call it on an ACTIVE or PAUSED campaign to execute newly-added media buys without affecting the rest of the campaign.
execute submits DRAFT media buys to ADCP. It does not resume a PAUSED campaign — reactivate is the only way to do that. They are different endpoints. COMPLETED, ARCHIVED, and CANCELLED campaigns cannot be executed.Request
Parameters
Response
success is false and errors[] carries one entry per failure:
previousStatus/newStatus— campaign status before and after the call.mediaBuysAttempted/mediaBuysSucceeded/mediaBuysFailed— separate execution outcomes.mediaBuysExecutedkeeps its published meaning and equalsmediaBuysAttempted, so it can include failed attempts. UsemediaBuysSucceededto identify successful executions.errors[]—{ mediaBuyId, salesAgentId, message }per failed submission. Typed Storefront routes use their stable public Storefront Agent identity. Withdebug: true, each entry also includes the full ADCP request/response payloads.
Ledger error after dispatch
If posting the campaign’s committed-spend ledger entry fails after the dispatch drain, the error keeps its original code and cause. Its message confirms that the campaign state was persisted and that media buys already markedSENT were
dispatched. Retry execute to post the accounting entry again; previously
SENT buys are not dispatched again.
This does not mean every attempted buy reached a seller. Check the campaign or
media buy status for each
buy’s current delivery state.
Errors
See Errors for the full error shape and recovery semantics.
Related
Pause campaign
Halt spend across all media buys
Reactivate campaign
Resume a PAUSED campaign back to ACTIVE
Media buy status
Poll live ADCP status after execute
Campaign overview
The campaign object and lifecycle