Duplicate campaigns, ad sets, ads
Last updated: May 19, 2026
Duplicate campaigns, ad sets, ads
Right-click any row → Duplicate OR action menu → Duplicate. Creates a draft mirror of the selected campaign / ad set / ad. Opens in Pro mode for customization before publish. Endpoint: POST /api/v1/campaigns/duplicate (verified). Use cases: A/B variant, copy winning campaign to new audience, re-launch with creative refresh.
Who is this for
Mediabuyers iterating on what's working. Scaling a winning campaign with audience variants. Cloning a campaign for a different country / vertical / season.
When to duplicate
Scenario | Why duplicate |
|---|---|
Found a winning campaign | Duplicate + tweak audience to test scale potential |
Need same campaign for next quarter | Duplicate + change dates, refresh creative |
Want A/B variant on creative | Duplicate + swap creative |
Geo expansion (US works, try EU) | Duplicate + change target country |
Client wants matching setup for new product | Duplicate + customize per product |
Re-launch a paused winner | Duplicate (gets fresh learning) vs Resume (preserves learning but starts on stale audience signals) |
How to duplicate
Step 1: Find the source
In Ads Manager, navigate to what you want to copy: campaign, ad set, or ad.
Step 2: Trigger duplicate
Two ways:
Right-click the row → context menu → Duplicate
Action menu (⋮) → Duplicate
Both call POST /api/v1/campaigns/duplicate with the selected entity ID.
Step 3: Confirm what to duplicate
Modal asks:
Target ad account: same account (default) OR different (cross-account duplicate)
Include children?:
For campaign: include all ad sets + ads (full clone) OR just shell
For ad set: include ads
Name suggestion: Wevion suggests
[Original Name] (Copy); you can rename
Click Duplicate.
Step 4: Draft created + opens in Pro
Wevion creates a draft in /campaign-drafts (verified endpoint family). The draft opens in Pro mode with all the source's config pre-filled.
Step 5: Customize
In Pro mode:
Rename for clarity
Adjust audience (if variant testing)
Adjust budget (if scaling)
Swap creative (if creative refresh)
Change dates (if reusing for new period)
Step 6: Publish
Standard publish flow: Pause-first by default (cc-119).
Verify the duplicate on the platform before activating.
What gets copied
When you duplicate a campaign:
Campaign-level: objective, budget structure (CBO/ABO), name (+ "(Copy)"), schedule, special category, DSA fields
All ad sets (each with their audience, budget, optimization goal, bid strategy, placements)
All ads (each with their creative, copy, CTA, destination URL, UTM)
What's NOT copied:
Performance data (the duplicate starts fresh)
Platform-side learning (Meta's algorithm starts from scratch on the duplicate)
Direct link back to the original (each is an independent campaign)
Cross-account duplicate
Useful for agencies cloning a successful campaign across multiple client accounts:
In modal: Target ad account dropdown → pick different account
Caveats:
Different account = different currency (budget may need adjustment)
Different account = different connected pixel
Different account = different DSA fields if EU
For multi-account at scale: see am-107 bulk duplicate + cc-105 multi-account Bulk Launch.
Cross-level duplicate
You can duplicate at different hierarchy levels:
Campaign: full clone (recommended for most variants)
Ad set: clone within same campaign (add another audience variant to existing campaign)
Ad: clone within same ad set (creative A/B test)
For ad-level duplicate: useful to spin up a creative variant without restructuring the campaign.
Bulk duplicate
For duplicating multiple campaigns at once: see am-107 bulk duplicate.
Naming the duplicate
Best practice: clearly identify variants.
Original Campaign Name→Original Campaign Name (Copy)(default)Better:
Original Campaign Name v2(semantic version)Even better:
Original Campaign Name — Audience Test 2(descriptive)
Naming convention article: am-108.
Duplicate vs Relaunch
Two related but different operations:
Duplicate: creates new entity (new ID, new history); platform-side learning starts fresh
Relaunch (
apps/backend/src/services/meta-relaunch-ads-service.ts): rebuilds the SAME entity after pause/rejection; preserves learning where possible
Relaunch use case: ad rejected by Meta → fix creative → relaunch (same ad ID + learning).
Duplicate use case: ad working great → clone to scale or test variant.
What you'll see
After Duplicate action:
Toast: "Campaign duplicated — opened in Pro editor"
New draft entity in
/campaign-draftsPro mode opens with the duplicate's structure
Original entity unchanged
After publishing duplicate:
Both original + duplicate visible in Ads Manager
Same name visible (with "(Copy)" or your custom rename)
RBAC
Duplicate requires same role as publishing (mediabuyer+). See team-101 roles.
Audit log
Each duplicate logged:
action: campaign_duplicatemetadata: source campaign ID + new campaign ID
Filter audit log by this action to see "what was duplicated this week".
Common issues
"Duplicate modal asks for ad account I don't have access to": cross-account requires access to target account. Either get added to that ad account (team-108) or pick an account you can access.
"Duplicated successfully but creative missing": source ad's creative may have been deleted. Re-upload + edit duplicate.
"Duplicate slow > 10 sec": complex campaign with many ads + variants. Wait. If > 1 min, contact support.
"Duplicate published but original got modified": shouldn't happen. Each entity is independent. If observed, file bug report.
Best practices
Duplicate to test, not to backup
Don't duplicate as a "backup" before editing — backups should be Wevion's audit log. Duplicate for variant testing or genuine new campaigns.
Clearly name variants
Use a system: Campaign Name v2-LookalikeBroad, Campaign Name v2-LookalikeNarrow. Future you needs to know what each variant tests.
Cross-account: align prerequisites first
Before cross-account duplicate, verify the target account has: pixel set up, DSA fields, audience parity, currency budget alignment. Otherwise the duplicate fails validation post-publish-attempt.
Limit duplicate-then-edit cycles
If you find yourself duplicating + editing repeatedly: extract the pattern as a Campaign Template for reuse.
Related
Bulk duplicate — multi-campaign clone
Launch with Pro mode — Pro mode hosts the duplicate edit
Bulk actions — pause / resume / etc.