Replace ad creative (edit ad content) (adsap_replace_ad_creative)
Platform: Meta · Read or write: Write · Plan: Early Access · Consumes a task: Yes · Preview supported: Yes
What it does
Edits the content of a live Meta ad: primary text, headline, description, call to action, destination link, display link, URL parameters, and the image or video. Meta creatives cannot be edited in place, so the copilot builds a new creative and points the ad at it. The ad keeps its id. Ask for a preview first: it returns the before and after diff plus the current media slots.
Parameters
Descriptions are shortened from the tool schema. Your assistant sees the full text.
| Name | Type | Required | Description |
|---|---|---|---|
ad_id | string | Yes | The Meta AD id to edit (the ad, not the creative). The ad keeps this id; only its creative is replaced. |
ad_account_id | string | Yes | act_<digits>. |
creative_spec | object | Yes | The content fields to change. Text fields are ARRAYS: send the complete set with edits applied; unchanged entries are kept. Media swaps use creative-library assets only (image->image, video->video). |
creative_spec.primary_texts | array of string | No | Full ordered set of primary-text (body) variations, WITH your edits applied. Send ALL of them: entries you don’t change are preserved verbatim. Omit to leave every primary text unchanged. |
creative_spec.headlines | array of string | No | Full ordered set of headlines, WITH your edits applied. Send ALL of them: unedited entries are preserved. Omit to leave headlines unchanged. |
creative_spec.description | string | No | Link description (single value). Omit to leave unchanged. |
creative_spec.cta_type | string | No | Call-to-action button enum, e.g. SHOP_NOW, LEARN_MORE, SIGN_UP. Omit to leave unchanged. |
creative_spec.link | string | No | Destination URL. Omit to leave unchanged. |
creative_spec.display_link | string | No | The display link / caption domain shown on the ad (e.g. example.com). Omit to leave unchanged. |
creative_spec.url_tags | string | No | URL tracking parameters (UTM) appended to the destination, e.g. ‘utm_source=facebook&utm_medium=cpc’. Omit to leave unchanged. |
creative_spec.image_hash | string | No | Single-image shorthand: a creative-library image hash to swap the ad’s one image. For multi-image ads (e.g. square + vertical) use media instead. Like-for-like only: you can’t put an image on a video ad. |
creative_spec.video_id | string | No | Single-video shorthand: a creative-library video id to swap the ad’s one video. For multi-asset ads use media. Like-for-like only. |
creative_spec.media | array of object or null | No | Multi-slot media swap. One entry per existing media slot, IN THE ORDER returned by a dry_run’s current_media; null = keep that slot unchanged. Each entry sets image_hash OR video_id matching that slot’s type. |
dry_run | boolean | No | Preview only: the request is validated and the resolved payload returned, nothing is created or changed. |
Example prompts
- “Change the headline on the Blue Sneaker ad to ‘Now 30% off’ and keep everything else.”
- “Swap the image on the Blue Sneaker ad for the new lifestyle shot from the creative library.”
- “Preview replacing the destination URL on this ad with the new landing page.”
Notes
Editing a spending ad can reset its likes, comments and shares and restart the learning phase. Media swaps are like for like: image to image, video to video, from the creative library only.
Related tools
adsap_create_ad_from_ig_post: Turn an existing Instagram post, video, or reel into an ad inside an EXISTING ad set: Meta Ads Manager’s “Use existing post”.adsap_get_ad_library_snapshot: Show what an Ad Library ad ACTUALLY LOOKS LIKE (creative, copy, page name), in a SELF-CONTAINED card.adsap_get_ad_preview: Render a pixel-accurate visual preview of an existing Meta ad (real Meta render; video ads also get an animated clip in the interactive…adsap_get_creative_performance: Ranked creative performance analysis with fatigue detection.adsap_get_import_status: Check progress of a Meta historical-asset import started with adsap_import_account_creatives: status, phase (images then videos)…adsap_get_preview_clip: Fetch the animated placement-preview clip (recorded video of the real Meta preview) for an ad+placement previously rendered with…adsap_get_upload_status: Check status of an async video upload.adsap_import_account_creatives: Import ALL historical creative assets (images + videos) that already exist in a Meta ad account into the Adsap Creative Library.adsap_list_creative_assets: List uploaded Meta creative images and videos in the ad account asset library.adsap_list_drive_files: Browse Google Drive for creative image/video files to upload to Meta.adsap_list_dropbox_files: Browse Dropbox for creative image/video files to upload to Meta.adsap_list_ig_media: List an Instagram account’s recent media/posts (live from Meta): the posts, reels, and stories that can be promoted.adsap_search_ad_library: Search Meta’s public Ad Library for ads (competitor research / ad transparency).adsap_upload_creative: Upload image/video from Google Drive or Dropbox to a Meta ad account.
Guide
Read Creatives for the workflow around this tool, and the Tool reference for every tool.