Launch a campaign with Pro mode

Pro mode — full editor with structure tree, configuration area, preview panel, keyboard shortcuts. Multi-adset and multi-ad in one campaign.

Written By Salvatore Sinigaglia

Last updated About 1 hour ago

Pro mode — full editor with structure tree, configuration area, preview panel, keyboard shortcuts. Multi-adset and multi-ad in one campaign.

Launch a campaign with Pro mode

Pro mode is the full-control editor for users who need more than Express's opinionated defaults. Structure tree on the left (campaign → adsets → ads), configuration area in the center (edit what's selected), preview panel on the right (live ad preview). Multi-adset + multi-ad in a single campaign supported. Keyboard shortcuts for fast navigation.

Who is this for

Mediabuyers who:

  • Need multiple adsets in one campaign (CBO with audience tests)
  • Want multiple ads per adset (creative A/B within audience)
  • Use advanced bid strategies (Cost Cap, Bid Cap, Min ROAS)
  • Configure fine-grained per-placement controls
  • Are comfortable with the platform's full feature set

Before you start

  • Comfortable with Express mode basics — Pro shares the same backend
  • Clear plan: which adsets, which ads per adset, what's the testing strategy
  • All prerequisites of Express (ad account connected, pixel ready, creative + copy)

Switch to Pro

At /campaign-creator/new (Express loads by default), click the Pro mode toggle at the top-right.

Layout switches to the 3-panel editor.

The Pro layout (3 panels)

Left: structure tree

Hierarchical view of your campaign:

[Campaign Name]├── adset_1 (Audience A)│   ├── ad_1 (Creative X)│   ├── ad_2 (Creative Y)│   └── + Add ad├── adset_2 (Audience B)│   ├── ad_1 (Creative X)│   └── + Add ad├── + Add adset

Click any node to edit it in the center panel. Each node has inline buttons (duplicate, delete) directly in the tree — there is no right-click context menu; duplicating a node copies it locally in the draft.

Center: configuration area

Edits the currently-selected node:

  • Campaign-level: objective, budget (if CBO), special ad categories, DSA fields, schedule
  • Adset-level: audience, budget (if ABO), placements, optimization goal, bid strategy, schedule
  • Ad-level: creative + copy + CTA + destination URL + UTM

Form fields with inline validation (red highlight + tooltip on errors). Verified via POST /api/v1/campaign-drafts/:id/validate-field on blur.

Right: preview panel

Live preview of the selected ad as it'll appear on platform:

  • Toggle placement (Feed / Stories / Reels / Marketplace / etc.)
  • Toggle device (mobile / desktop / tablet)
  • Updates as you type copy and pick creative

Multi-adset workflow

Add a second adset

In structure tree → + Add adset → name it → fill configuration in center.

Common patterns:

  • CBO with audience tests: one campaign budget, multiple adsets each targeting a different audience. CBO lets the platform distribute spend toward best-performing adset.
  • ABO with fixed splits: per-adset budget for explicit control.

Add ads within an adset

Select adset in tree → + Add ad inside that adset. Fill ad fields in center.

Common pattern: 3-5 ads per adset, each with a creative variation, for in-adset A/B.

Canonical structure under the hood

Verified apps/backend/src/types/campaigns/canonical.types.ts:

CanonicalCampaign {  campaign: CampaignLevel       // objective, budget (if CBO), category  adSets: CanonicalAdSet[]      // one or many  accountId: string             // ad account ID  sessionId: string             // workspace data isolation}CanonicalAdSet {  ads: CanonicalAd[]            // one or many per adset  audience: AudienceTargeting  budget?: AdSetBudget           // present only if ABO  bidStrategy: BidStrategy  optimizationGoal: OptimizationGoal  placements: PublisherPlatform[]  ...}CanonicalAd {  creative: AdCreative  copy: AdCopy                  // headline, primary text, description  cta: CallToAction  destinationUrl: string  ...}

This structure is platform-agnostic — Wevion translates to per-platform format at publish time via launch providers.

Advanced bid strategies

In adset configuration → Bid strategy dropdown (verified BidStrategy enum):

StrategyUse
LOWEST_COST_WITHOUT_CAPDefault; platform spends to maximize results within budget
LOWEST_COST_WITH_BID_CAPYou set max bid; platform won't pay more
COST_CAPTarget CPA; platform tries to deliver at or below
LOWEST_COST_WITH_MIN_ROASTarget ROAS; platform delivers above min ROAS threshold

Most strategies require 30+ conversions in the optimization window to learn — see cc-106 objectives.

Optimization goal

Per adset → Optimization goal (OptimizationGoal enum, 30+ values verified):

Common: OFFSITE_CONVERSIONS (pixel events), LANDING_PAGE_VIEWS, LINK_CLICKS, LEAD_GENERATION, THRUPLAY (15s video views), IMPRESSIONS, REACH.

Picking the right goal aligns the platform's auction logic with your business outcome.

Keyboard shortcuts

Verified apps/frontend/src/pages/campaign-creator/pro/use-keyboard-shortcuts.ts:

ShortcutAction
Cmd+S / Ctrl+SSave draft now
Cmd+Enter / Ctrl+EnterPublish
Cmd+Shift+V / Ctrl+Shift+VRun validation

These are the only three keyboard shortcuts in Pro mode. Duplicate and delete are available as inline buttons on each node in the structure tree.

Pre-flight + dry-run before publish

Before clicking Publish:

  • Preflight (POST /api/v1/campaign-drafts/:id/preflight): runs full validation suite. Returns ValidationResult with errors + warnings + info per field.
  • Dry-run (POST /api/v1/campaign-drafts/:id/dry-run): simulates the publish without committing. Returns what would happen + per-adset estimates.

Both surfaceable via Pro mode buttons in the top toolbar.

Publish

When validation passes:

  1. Click Publish in the top-right (or press Cmd+Enter)
  2. Decide whether to turn ON the "Launch as paused" toggle — it starts OFF, so by default the campaign publishes ACTIVE and spends immediately (Wevion asks you to confirm the live publish)
  3. Wevion publishes via the platform-specific launch path (Meta via a publish worker + adapter; Google, TikTok, Taboola via their launch providers; Snapchat via its service)
  4. Toast confirms
  5. Campaign appears in Ads Manager

For paused → activate flow: same as Express (cc-119 paused vs active).

Saving as draft

Drafts auto-save continuously. Manual save: Cmd+S. Drafts visible at GET /api/v1/campaign-drafts. Pick up later from the same point.

Duplicating a campaign

There is no generic /api/v1/campaigns/duplicate endpoint. Duplication happens in two places:

  • Inside a Pro draft: use the inline duplicate buttons in the structure tree to copy an adset or ad within the draft you're building (a local copy in the draft).
  • A published campaign: duplicate it from Ads Manager. This creates a copy on the ad platform via the platform-specific endpoint (POST /api/v1/{google,tiktok,taboola}/campaigns/:campaignId/duplicate), not a Pro-mode draft. See am-106 duplicate campaign.

What you'll see

Pro mode active:

  • 3-panel layout
  • Structure tree shows current campaign hierarchy
  • Save status indicator (auto-saved N seconds ago)
  • Validation badges per node (red for errors, yellow for warnings)
  • Publish button enabled when all validation passes

Common issues

  • "Structure tree empty": brand new draft. Click + Add adset to start.
  • "Add ad button disabled": the parent adset must have audience + budget configured first.
  • "Pro mode shows fewer placements than Meta has": Wevion exposes the most common placements. Edit advanced placements in Meta Ads Manager post-publish.
  • "Multiple adsets but campaign uses ABO budget": switch to CBO for a campaign-level budget OR set per-adset budget on each adset.
  • "Bid strategy LOWEST_COST_WITH_MIN_ROAS rejected": needs ad account with conversion history; switch to lower-bid strategy until learning settles.
  • "Lost work after browser refresh": drafts auto-save but if you cleared cookies or workspace switched, you may lose unsaved. Check /campaign-drafts list.

When to NOT use Pro

Don't use Pro for:

FAQ

What does the Wevion Pro mode layout look like?

Wevion Pro mode is a 3-panel editor: a structure tree on the left showing the campaign → adsets → ads hierarchy, a configuration area in the center to edit the selected node, and a live preview panel on the right. It supports multiple adsets and multiple ads in a single campaign, plus keyboard shortcuts for fast navigation.

What bid strategies does Wevion Pro mode offer?

In an adset's configuration, Wevion Pro exposes four bid strategies: LOWEST_COST_WITHOUT_CAP (default), LOWEST_COST_WITH_BID_CAP, COST_CAP (target CPA), and LOWEST_COST_WITH_MIN_ROAS (target ROAS). Most require 30+ conversions in the optimization window to learn, and Min ROAS needs an ad account with conversion history, so start lower until learning settles.

What keyboard shortcuts does Wevion Pro mode support?

Wevion Pro mode has three keyboard shortcuts: Cmd/Ctrl+S saves the draft, Cmd/Ctrl+Enter publishes, and Cmd/Ctrl+Shift+V runs validation. Duplicate and delete are inline buttons on each node in the structure tree rather than shortcuts.

How do I check a campaign before publishing in Pro mode?

Wevion Pro offers two pre-publish checks from the top toolbar: Preflight runs the full validation suite and returns errors, warnings, and info per field, while Dry-run simulates the publish without committing and returns per-adset estimates of what would happen. When validation passes, click Publish; by default the campaign goes ACTIVE (spends immediately) unless you turn ON the "Launch as paused" toggle.

Can I duplicate an existing campaign in Wevion Pro mode?

Within a Pro draft you can duplicate an adset or ad using the inline buttons in the structure tree (a local copy in the draft). To duplicate an already-published campaign, do it from Ads Manager — that creates a copy on the ad platform via the platform-specific duplicate endpoint, not a Pro draft. Drafts auto-save continuously, and you can save manually with Cmd+S.

Steps

  1. Click Publish in the top-right (or press Cmd+Enter)
  2. Decide whether to turn ON the "Launch as paused" toggle — it starts OFF, so by default the campaign publishes ACTIVE and spends immediately (Wevion asks you to confirm the live publish)
  3. Wevion publishes via the platform-specific launch path (Meta via a publish worker + adapter; Google, TikTok, Taboola via their launch providers; Snapchat via its service)
  4. Toast confirms
  5. Campaign appears in Ads Manager

Last updated: 2026-05-17