update_ad_creative
Update an existing ad creative's name or optimization settings, such as ad formats and creative features, without altering content fields limited by the Meta API.
Instructions
Update an existing ad creative's name or optimization settings.
IMPORTANT — Meta API limitation: The Meta API does NOT allow updating content
fields (message, headline, description, CTA, image, video, URL) on existing
creatives. Only the creative `name` and optimization settings (asset_feed_spec)
can be changed. To change ad content, create a new creative with the desired
content and update the ad to reference the new creative via `update_ad`.
Args:
creative_id: Meta Ads creative ID to update
access_token: Meta API access token (optional - will use cached token if not provided)
name: New creative name (this is the most reliable update)
message: New ad copy/text — NOTE: Meta API may reject this on existing creatives
messages: List of primary text variants — NOTE: Meta API may reject this on existing creatives
headline: Single headline — NOTE: Meta API may reject this on existing creatives
headlines: New list of headlines — NOTE: Meta API may reject this on existing creatives
description: Single description — NOTE: Meta API may reject this on existing creatives
descriptions: New list of descriptions — NOTE: Meta API may reject this on existing creatives
optimization_type: Set to "DEGREES_OF_FREEDOM" for FLEX (Advantage+) creatives
dynamic_creative_spec: New dynamic creative optimization settings
call_to_action_type: New call to action button type — NOTE: Meta API may reject this on existing creatives
lead_gen_form_id: Lead generation form ID for lead generation campaigns
ad_formats: List of ad format strings for asset_feed_spec (e.g., ["AUTOMATIC_FORMAT"] for
Flexible ads, ["SINGLE_IMAGE"] for single image)
creative_features_spec: Dict of Advantage+ Creative feature opt-ins/opt-outs.
Each key is a feature name, value is {"enroll_status": "OPT_IN"|"OPT_OUT"}.
Sent as a top-level field (not inside degrees_of_freedom_spec).
Returns:
JSON response with updated creative detailsInput Schema
| Name | Required | Description | Default |
|---|---|---|---|
| creative_id | Yes | ||
| access_token | No | ||
| name | No | ||
| message | No | ||
| messages | No | ||
| headline | No | ||
| headlines | No | ||
| description | No | ||
| descriptions | No | ||
| optimization_type | No | ||
| dynamic_creative_spec | No | ||
| call_to_action_type | No | ||
| lead_gen_form_id | No | ||
| ad_formats | No | ||
| creative_features_spec | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |