Duplicate campaigns, ad sets, ads

Right-click row → Duplicate, OR action menu Duplicate. Creates draft mirror, opens in Pro mode for customization. POST /api/v1/campaigns/duplicate.

Written By Salvatore Sinigaglia

Last updated About 1 hour ago

Right-click row → Duplicate, OR action menu Duplicate. Creates draft mirror, opens in Pro mode for customization. POST /api/v1/campaigns/duplicate.

Duplicate campaigns, ad sets, ads

Duplicate a campaign / ad set / ad from its row action (⋮) → Duplicate (there is no right-click context menu). Duplication creates a copy on the ad platform, not a Wevion draft — via per-platform endpoints (POST /api/v1/{google,tiktok,taboola}/campaigns|adgroups|ads/:id/duplicate; Meta uses its own /campaigns|adsets|ads/duplicate with deep-copy + post-id options). There is no generic POST /api/v1/campaigns/duplicate. Meta uses a full duplicate dialog; non-Meta does a quick paused-clone. Use cases: A/B variant, copy a winning campaign, re-launch with a 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

ScenarioWhy duplicate
Found a winning campaignDuplicate + tweak audience to test scale potential
Need same campaign for next quarterDuplicate + change dates, refresh creative
Want A/B variant on creativeDuplicate + swap creative
Geo expansion (US works, try EU)Duplicate + change target country
Client wants matching setup for new productDuplicate + customize per product
Re-launch a paused winnerDuplicate (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

Use the row's action menu (⋮) → Duplicate (there is no right-click context menu). The call routes to the entity's platform-specific duplicate endpoint.

Step 3: Confirm what to duplicate

  • Meta: a full duplicate dialog lets you pick target ad account, whether to include children (deep copy), and post-ID handling.
  • Non-Meta (Google / TikTok / Taboola): a quick paused-clone ("Duplica rapido") — the copy is created paused, typically named ... (Copy).

Step 4: Copy created on the platform

The duplicate is created on the ad platform (not as a Wevion draft). It typically starts paused so you can review before it spends.

Step 5: Customize (in the editor)

To adjust the copy, open it in the Campaign Creator Pro editor (Ads Manager "edit" navigates there):

  • Rename for clarity
  • Adjust audience / budget / creative / dates

Step 6: Activate

Verify the duplicate on the platform, then activate it (inline status toggle) when ready.

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 NameOriginal 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:

  • A confirmation toast that the duplicate was created
  • A new copy on the ad platform (typically paused), visible in Ads Manager
  • 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_duplicate
  • metadata: 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.

FAQ

How do I duplicate a campaign in Wevion?

Use the row's action menu (⋮) → Duplicate (there is no right-click context menu). For Meta, a dialog lets you pick the target ad account, whether to include children, and post-ID handling; for Google/TikTok/Taboola it's a quick paused-clone. The copy is created on the ad platform (usually paused) — not as a Wevion draft. To customize it, open it in the Campaign Creator Pro editor.

What gets copied when I duplicate a campaign?

Wevion copies the campaign's objective, budget structure, schedule, special category, DSA fields, and all ad sets and ads with their audience, budget, creative, copy, CTA, and UTM. It does not copy performance data or platform-side learning — the duplicate starts fresh — and there is no direct link back to the original, since each is an independent campaign.

Can I duplicate a campaign to a different ad account in Wevion?

Yes. In the Duplicate modal, use the Target ad account dropdown to pick a different account for a cross-account duplicate. Be aware the target account may use a different currency (so budgets may need adjustment), a different connected pixel, and different DSA fields if it is in the EU.

What's the difference between Duplicate and Relaunch?

Duplicate creates a new entity with a new ID and fresh history, so platform-side learning starts from scratch — ideal for scaling a winner or testing a variant. Relaunch rebuilds the same entity after a pause or rejection and preserves learning where possible, which suits cases like fixing a rejected creative and relaunching the same ad.

Does duplicating a campaign change the original?

No. In Wevion, each entity is independent, so the original campaign stays unchanged after you duplicate it. The duplicate is created on the ad platform (typically paused) and appears alongside the original in Ads Manager.