Each variant is a member of the campaign run group. When a member succeeds, its deliverable is a Files library object (same as chat OUTPUTS).
How to fetch
- Campaigns pane — Campaigns: per-SKU tiles + download when a file exists.
- REST —
GET /campaigns/{campaignId}returns the run-group projection plus SKU-keyed variant status/outputs.campaignId=runGroupId. - Run groups —
GET /run-groups/{id}is the same driver; FilesGET /files/{id}for bytes. - MCP —
get_campaign.
Retired: GET /api/v1/dco/campaigns/{id}/manifest, public cdn.wavemakr.com/dco/… URLs, VAST tags, dco.variant.updated webhooks, activation kits. Those return 410 or were never mounted on platform-api.
Trafficking
Manual download is always available: download files (or copy file URLs from the library) into your ad account. There is no hosted supplemental video_link / image_link feed writer on the platform DCO path. Re-engage when creatives need to change — see Sync.
Publish to a connected ad account (rolling out)
Where ad connections are enabled for your workspace, you can skip the manual upload:
POST /ad-connections— connect an ad account (direct token or OAuth code exchange). Credentials are stored encrypted; no read path ever returns them.POST /campaigns/{campaignId}/publish— pushes each finished variant to the connected account as PAUSED creatives. Publishing never activates spend — you review and enable in the ad account.GET /campaigns/{campaignId}/insights— per-variant insight windows and impression-weighted aggregates. A winner is only flagged significant once it clears the impressions floor (5,000 by default).POST /deliveries— create a draft/private delivery job.
Ad connections are rolling out; until they are enabled for your workspace these endpoints return 404, and the download path above remains the way to traffic.
Caps
24 variants per engage. For a larger catalog, slice rowIds and run sequential engages; each is its own campaign/run-group. Campaign batches (rolling out) scale one signed quote to up to 240 cells as an axis matrix with a budget cap — POST /campaign-batches (+ /preview, /{id}/cancel, /{id}/retry), chunked into ≤24-variant run groups under the hood.