Delivery: files, dashboard & API

Campaign variants land as run-group files — poll GET /campaigns/{id} or the Campaigns pane. Download always works; ad-account publishing is rolling out.

Last updated August 23, 2026

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 paneCampaigns: per-SKU tiles + download when a file exists.
  • RESTGET /campaigns/{campaignId} returns the run-group projection plus SKU-keyed variant status/outputs. campaignId = runGroupId.
  • Run groupsGET /run-groups/{id} is the same driver; Files GET /files/{id} for bytes.
  • MCPget_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.