/ads endpoint or create a standalone ad creative using the /adcreatives endpoint. With either approach, specify the individual opt-in features in the creative_features_spec parameter.image_touchups, inline_comment, and image_templates opt-in features:// creative example
curl -X POST \
-F 'name=Advantage+ Creative Creative' \
-F 'degrees_of_freedom_spec={
"creative_features_spec": {
"image_touchups": {
"enroll_status": "OPT_IN"
},
"inline_comment": {
"enroll_status": "OPT_IN"
},
"image_template": {
"enroll_status": "OPT_IN"
}
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives
// ad example
curl -X POST \
-F 'adset_id=<ADSET_ID>' \
-F 'creative={
"name": "Advantage+ Creative Adgroup",
"object_story_spec": {
"link_data": {
"image_hash": "<IMAGE_HASH>",
"link": "<URL>",
"message": "You got this.",
},
"page_id": "<PAGE_ID>"
},
"degrees_of_freedom_spec": {
"creative_features_spec": {
"image_touchups": {
"enroll_status": "OPT_IN"
},
"inline_comment": {
"enroll_status": "OPT_IN"
},
"image_template": {
"enroll_status": "OPT_IN"
}
}
}
}' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/ads
creative_features_spec parameter.| Name | Description |
|---|---|
adapt_to_placement | Optional. Default is opt-in. Opt-in if you want to automatically fit images to placements based on what is predicted to work best. By default, 4:5 and 9:16 placements are enabled. If you wish to control how the images are adjusted, you can use the customizations field to control the settings. See the aspect_ratio_config and image_crop_style fields in the Ad Creative Feature Customizations reference documentation for more details.The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled *Image touch-ups in Ads Manager. |
add_text_overlay | Optional. Opt-in if you want to add information from catalog items as visually-unique overlays The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Add dynamic overlays in Ads Manager. If you want to have manual control on how the overlay is rendered, see the Ad Creative Link Data Image Layer Spec reference documentation for more details. |
creative_stickers | Optional. Opt-in if you want to add AI-generated stickers to help tell your story better and make your call-to-actions easier to understand. We’ll automatically place CTA stickers based on where they’re likely to perform best. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Create sticker CTA in Ads Manager. |
description_automation | Optional. For Advantage+ catalog ads, opt-in if you want item information from your catalog to be used for your ad’s description based on what each person who views your ad is likely to engage with. For static carousel ads, opt-in if you want your carousel description to be dynamically chosen when to show. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Dynamic description in Ads Manager. |
enhance_cta | Optional. Opt-in if you want keyphrases from your ad sources to be paired with your CTA. The enroll_status field can be set to OPT_IN or OPT_OUT.The customizations field can be set to below to use potential high-performing phrases identified by AI:
Note: This feature is labeled Enhance CTA in Ads Manager. |
image_background_gen | Optional. Opt-in if you want different backgrounds for eligible product images to be created and the version that your audience is most likely to respond to delivered. This feature is generated with AI. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Generate backgrounds in Ads Manager. |
image_brightness_and_contrast | Optional. Opt-in if you want the brightness and contrast of your image to be adjusted when likely to improve performance. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Adjust brightness and contrast in Ads Manager. |
image_templates | Optional. Opt-in if you want overlays added that show text you have provided along with your selected ad creative when it is likely to improve performance. This feature is generated with AI. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Add overlays in Ads Manager. |
image_text_translation | Optional. Automatically translates text within ad images for international audiences. When enabled, Meta will detect text in your ad image and generate translated versions for viewers in supported languages. The enroll_status field can be set to OPT_IN or OPT_OUT.Supported placements: Mobile Feed, Mobile Reels. Supported format: Single image. Note: This feature is labeled Translate image text in Ads Manager. |
image_touchups | Optional. Opt-in if you want your chosen media to be automatically cropped and expanded to fit more placements. Only applicable to image ads. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Visual-touch ups in Ads Manager. |
image_uncrop | Optional. Opt-in if you want your image to be automatically expanded to fit more placements. This feature is generated with AI. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Expand image in Ads Manager. |
inline_comment | Optional. Opt-in if you want the most relevant comment to be displayed below your ad on Facebook and Instagram. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Relevant comments in Ads Manager. |
media_type_automation | Optional. Opt-in if you want videos from your catalog to be displayed (along with images) in supported placements. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Dynamic media in Ads Manager. See Dynamic Media for more information. |
pac_relaxation | Optional. Opt-in if you want to show media you chose for a specific aspect ratio across all placements when it’s likely to improve performance. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Flex media or Flexible media in Ads Manager. |
product_extensions | Optional. Opt-in if you want items from your catalog to be shown next to your selected media when it’s likely to improve performance. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Show products in the Collection dropdown within format display options in Ads Manager. See Product Extensions (Add Catalog Items) Features on Marketing API for more details. |
reveal_details_over_time | Optional. Opt-in if you want information from your website or app store product page to be revealed when people spend a few seconds looking at your ad. This can help people feel more confident before they click your call-to-action. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Reveal details over time in Ads Manager. |
text_optimizations | Optional. Opt-in if you want text options you provide appear as primary text, headline or description when it’s likely to improve performance. We may add a caption introduction from your headline options and highlight key sentences when it’s likely to improve performance. The enroll_status field can be set to OPT_IN or OPT_OUT.The customizations field can be set to below to use potential high-performing phrases identified by AI:
Note: This feature is labeled Text improvements in Ads Manager. |
text_translation | Optional. Opt-in if you want your ad to be translated to different languages on Facebook and Instagram. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Translate Text in Ads Manager. |
translate_voiceover | Optional. Opt-in if you want the spoken audio in your video ad to be automatically translated into supported languages, generating a voiceover that sounds similar to the original speaker. This helps your ads resonate with users who prefer a different language, improving relevance and engagement within your existing target audience. This feature is generated with AI. The enroll_status field can be set to OPT_IN or OPT_OUT.Supported source language: English. Supported target language: Spanish. Supported placements: Facebook Feed, Facebook Reels, Instagram Feed, Instagram Reels. Supported format: Single video. Note: This feature is labeled Translate voiceover in Ads Manager. |
video_auto_crop | Optional. Opt-in if you want your chosen media to be automatically cropped and expanded to fit more placements. Only applicable to video ads. The enroll_status field can be set to OPT_IN or OPT_OUT.Note: This feature is labeled Visual-touch ups in Ads Manager. |
OPT_IN but ineligible for the given ad setup will be automatically removed from the creative_features_spec parameter. For example, image_templates (or Add overlays) is not eligible to be applied to video format creatives — if you opt-in to this feature on a video ad, it will be automatically removed as ineligible.GET request to retrieve the creative_features_spec parameter.standard_enhancements or any standard enhancements sub-features appended to creative_features_spec when you retrieve it. As long as they are not set to OPT_IN, they will not be applied. Standard enhancements are in the process of being deprecated, and this behavior will be phased out once the deprecation is complete.creative_features_spec parameter with the exception of the music feature which is implemented with the asset_feed_spec parameter. To opt out of the music feature, pass the assest_feed_spec.audios parameter in as empty.music feature using the asset_feed_spec parameter:curl -X POST \
-F 'name="Advantage+ Creative Music"' \
-F 'object_story_spec={
"page_id": "<PAGE_ID>"
}' \
-F 'asset_feed_spec={
"audios": [
{
"type": "random"
}
]
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives
translate_voiceover feature automatically translates spoken audio in video ads, generating a voiceover that sounds similar to the original speaker.image_text_translation feature. To translate ad copy text, use the text_translation feature.curl -X POST \
-F 'name=Advantage+ Creative Voiceover Translation' \
-F 'object_story_spec={
"video_data": {
"video_id": "<VIDEO_ID>",
"message": "Check out our latest product!",
"link_description": "Learn more",
"call_to_action": {
"type": "LEARN_MORE",
"value": {
"link": "<URL>"
}
}
},
"page_id": "<PAGE_ID>"
}' \
-F 'degrees_of_freedom_spec={
"creative_features_spec": {
"translate_voiceover": {
"enroll_status": "OPT_IN"
}
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives
curl -X POST \
-F 'adset_id=<ADSET_ID>' \
-F 'status=PAUSED' \
-F 'creative={
"name": "Advantage+ Creative Voiceover Ad",
"object_story_spec": {
"video_data": {
"video_id": "<VIDEO_ID>",
"message": "Check out our latest product!",
"link_description": "Learn more",
"call_to_action": {
"type": "LEARN_MORE",
"value": {
"link": "<URL>"
}
}
},
"page_id": "<PAGE_ID>"
},
"degrees_of_freedom_spec": {
"creative_features_spec": {
"translate_voiceover": {
"enroll_status": "OPT_IN"
}
}
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/ads
translate_voiceover feature can be combined with other translation features such as text_translation in the same creative_features_spec. This allows both ad copy text and video voiceover to be translated simultaneously.curl -X POST \
-F 'degrees_of_freedom_spec={
"creative_features_spec": {
"translate_voiceover": {
"enroll_status": "OPT_IN"
},
"text_translation": {
"enroll_status": "OPT_IN"
}
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives
PAUSED status, then follow Step 2 and Step 3 below to complete the publishing process. If no AI-generated features are included, Step 2 and Step 3 are optional, and you can create the ad with an ACTIVE status./ads endpoint, the status field on the ad is set to PAUSED by default.creative_feature parameter to your existing preview request with the desired feature name specified.image_templates, image_touchups, video_auto_crop, enhance_cta, text_optimizations, image_background_gen, image_uncrop, description_automation, and translate_voiceover.curl -X GET -G \
-d 'ad_format="DESKTOP_FEED_STANDARD"' \
-d 'creative_feature=<FEATURE_NAME> \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<AD_ID>/previews
{ "data": [ { "body": "<iframe src='<PREVIEW_URL>'></iframe>", "transformation_spec": { "<FEATURE_NAME>": [ { "body": "<iframe src='<PREVIEW_URL>'></iframe>", "status": "eligible" } ] } } ] }
transformation_spec object is not returned, the creative is not eligible for the Advantage+ creative feature on the chosen placement, and the feature will not be applied.ACTIVE, if it is not already. If any of the previews are not acceptable, create a new ad or ad creative without the corresponding features opted-in.ACTIVEACTIVE.curl -X POST \
-F 'status=ACTIVE' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<AD_ID>
adapt_to_placement and media_type_automationproduct_extensionsimage_background_gen and image_uncrop