Ad Campaigns

Duplicate an ad

Duplicates a single ad via Meta's native POST /{ad-id}/copies. The copy is created paused. adSetId retargets the copy into another ad set; omitted = the source's own ad set. Accepts the Zernio ad id or the platform ad id. Sync discovery is triggered automatically (syncAfter: false to skip). Creative settings returned by Meta, including explicit promotion metadata and creativeFeatures, are preserved when the native copy requires a creative rebuild. Metadata Meta does not return cannot be recovered. When Meta refuses the native copy with its capability error (code 3), which happens for some creatives built by other tools, the ad is rebuilt instead: a new creative from the source's returned spec and a new ad in the target ad set, carrying the source name, status option, rename options and tracking specs.

post/v1/ads/{adId}/duplicate

Path parameters

adIdstring required

Zernio ad ID or platform ad ID

Headers

Idempotency-Keystring

Optional client-generated unique key (e.g. a UUID) that makes retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409. Only 2xx responses are stored, so a request that failed with a 4xx can be retried with a corrected body under the SAME key.

Request body

adSetIdstring

Destination platform ad set id (defaults to the source's ad set)

statusOption'ACTIVE' | 'PAUSED' | 'INHERITED_FROM_SOURCE'
renameStrategy'DEEP_RENAME' | 'ONLY_TOP_LEVEL_RENAME' | 'NO_RENAME'
renamePrefixstring
renameSuffixstring
syncAfterboolean
reuseSourceCreativeboolean

Point the copy at the source ad's creative object instead of copying it, so the copy keeps the same Facebook post, the same Instagram media, their existing likes, comments and shares, and the full creative setup (text variations included). This is what Ads Manager's "show existing reactions, comments and shares" does. Meta's native copy always publishes new posts. A creative belongs to one ad account, so adSetId must be in the source ad's account. 400 when the source ad has no creative yet.

Response

Ad duplicated

copiedAdIdstring

Platform ID of the new ad

discovery'triggered' | 'skipped' | 'failed'
rawobject

Changes