How to duplicate Facebook ads and campaigns (and what actually gets copied)
Short answer: Duplicating in Meta Ads Manager copies your campaign, ad set, or ad settings into a new object that goes through ad review and starts the learning phase from zero. A duplicated ad usually gets a new Page post, so likes and comments start again from zero; in our API tests every copy got its own new post. To keep existing engagement, create the ad with Use existing post and enter the original Post ID.
How to duplicate in Ads Manager step by step
You can duplicate at the Campaign, Ad Set, or Ad level inside one ad account:
- Open Ads Manager and go to the Campaigns, Ad Sets, or Ads tab.
- Check the box next to the object you want to copy and click Duplicate in the toolbar (or hover over the row and click Duplicate).
- Choose where the copy should live: Original campaign (or Original ad set), Existing campaign, or New campaign.
- Choose the number of copies and click Duplicate.
- Edit the new draft settings (budget, audience, placements, or name) and click Publish.
Meta creates the copies inside the same ad account. If you want the same structure in another ad account, Ads Manager's native Duplicate button does not copy across ad accounts; teams typically export to a spreadsheet and import into the target account, or rebuild the campaign there.
What carries over and what resets
Practitioners often expect a duplicate to behave like a clone of the running ad's performance. In practice, Meta copies configuration, not auction history.
| Element | What happens on standard Duplicate | Notes |
|---|---|---|
| Campaign & ad set settings | Copies objective, Special Ad Categories, budget structure, targeting, placements, optimization goal, and schedule. | Check start/end dates on copied ad sets so past schedules do not block delivery. |
| Learning phase & optimization history | Resets. | Every new ad set enters the learning phase fresh. |
| Ad review status | Resets. | Copies enter IN_PROCESS and PENDING_REVIEW, even if created paused. |
| Likes, comments, and shares | Resets to zero on standard ad duplication. | Standard duplication of an ad built from creative settings generates a new post. |
| Ad creative & tracking | Copied, with caveats if edited afterwards. | Always verify URL parameters (url_tags) when changing creative fields. |
How to keep comments and reactions (Use existing post)
Because comments and reactions live on the underlying Page post rather than on the ad row, keeping social proof across multiple ad sets or campaigns requires pointing every copy to the same post ID:
- Find the original ad in Ads Manager, click Preview, open the share/post menu, and choose Facebook Post with Comments (or view the Instagram post).
- Copy the numeric Post ID from the post URL (or from Page Posts in Ads Manager).
- Open the target ad set, click Create to add a new ad, and make sure the Identity section selects the exact Page that published the original post.
- Under Ad setup, switch from Create ad to Use existing post.
- Click Select post (or Enter post ID), paste the Post ID, confirm, and click Publish.
Two practical limits apply to Use existing post. First, certain conversion locations, dynamic creative setups, or destination configurations do not support using an existing post, so the option may be greyed out. Second, because all ads pointing to that Post ID share one comment thread, hiding or deleting a comment on the post affects every ad using it.
What Meta's API actually does when copying objects
Live Graph API measurements explain several surprises media buyers run into when duplicating ads at scale. The following checks were measured on a paused test ad account (Graph API v25.0) on October 24, 2026 across 41 POST /{id}/copies calls (28 accepted, 13 refused, all created test objects deleted afterwards), alongside single-object write probes on October 21, 2026:
- Copying an ad by creative description always creates a new post. Six consecutive copies of the same source ad produced six distinct Page posts with identical content. Attempting to force the same post ID through
creative_parameters.object_story_idreturned HTTP 500 (code 1). Because copying creates a post, the acting profile must hold at least the Advertiser role on the source ad's Page (10/3858749if missing). - Copying without explicit enhancement flags turns on Meta's defaults. When a carousel creative with only
carousel_to_videoenabled was copied withoutcreative_parameters, Meta automatically enabledvideo_auto_crop,video_filtering, andvideo_uncropon the copy. Passing the source creative's owndegrees_of_freedom_specpreserved the exact enabled features. Conversely, older creatives carrying the deprecatedstandard_enhancementsflag were refused (100/3858504) until that aggregate key was stripped. - Synchronous deep copies cap at 3 total objects, not 3 child ads. Although Meta's documentation states 3 child ads for synchronous deep copy and 51 for async, live v25.0 tests accepted 1 ad set + 2 ads (3 objects total, 13.8 s) and 1 campaign + 1 ad set + 1 ad (3 objects, 11.8 s), while 1 ad set + 3 ads (4 objects) failed with
100/1885194("Copy request is too large"). Copying by level (shallow ad set first, then each ad into the new ad set) bypassed the limit. - Dynamic Creative ad sets copy as empty shells. Deep-copying an ad set with Dynamic Creative returned HTTP 200 and a new ad set containing zero ads (verified 3 s and 18 s later), and copying its single ad separately failed with
100/1885553. - Sources Meta accepts vs. refuses: Legacy
MESSAGESobjectives (100/2490462), objective mismatches (100/1815149), and copying an archived ad set into its own archived campaign (100/1487866) were refused. Copying an archived campaign (shallow), an archived ad, or an archived ad set into a live campaign of the same objective succeeded. - What happens when you edit a copy right after creation: Measured on October 21, 2026 on paused test campaigns, creatives are immutable and any creative edit generates a new creative where omitted fields revert to defaults; a 52-field comparison showed
url_tags(UTM macros) andcontextual_multi_adsdisappeared unless explicitly re-sent. In addition, sending a second edit POST to the same object within seconds triggers Meta's per-object concurrent rate limit (613/4841018, "1 calls per 30 seconds"), though sequential/{id}/copiescalls on the same source ad did not trigger that source lock.
Editing duplicated ads across ad accounts
Multitool ADS does not create ads, bulk upload new campaigns, or duplicate ads; ad creation and duplication happen in Meta Ads Manager. Where Multitool ADS saves time is right after you have created or duplicated campaigns across multiple ad accounts.
Instead of opening ten accounts one by one to adjust budgets, swap creative media, update targeting, or fix URL tags on your new copies, Multitool ADS loads all accounts into one table. You can filter the newly duplicated objects across accounts, stage changes to status, budget, name, placements, creative media, targeting, bid strategy, or schedule in one dialog, and publish them in one step with per-object results. In the Creatives tab, copies across different ads and ad accounts that share the same image or video frames are grouped into one creative row with combined metrics.
You can test filtering and bulk-editing campaigns across multiple accounts in the Multitool ADS live demo, no account needed.
Sources: Marketing API Campaign Copies Reference, Marketing API Ad Set Copies Reference, Marketing API Ad Copies Reference, Meta for Developers: Changing Creative Fields When Duplicating Ads, Meta Business Help Center.