Create a Meta flexible ad
meta_create_flexible_adCreate one ad in Meta's flexible format (PAUSED): up to 10 images and videos with up to 5 primary texts and 5 headlines; Meta picks the format and combination per person. Meta allows it only in Sales and App promotion campaigns. Use meta_upload_image / meta_upload_video for the assets. Set url_tags for UTM tracking. Advantage+ creative enhancements are turned OFF unless listed in creative_enhancements. Offer dry_run=true first.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"adset": "<adset>",
"name": "<name>",
"page_id": "<page_id>",
"primary_texts": "<primary_texts>",
"link": "<link>"
},
"name": "meta_create_flexible_ad"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| link | Yes | ||
| name | Yes | ||
| adset | Yes | ||
| folder | No | Client folder name. | |
| account | No | Meta ad account name or ID (act_123 or 123). Optional when only one account is enabled. | |
| dry_run | No | ||
| page_id | Yes | ||
| language | No | Language of the card: the language the user is writing in (ar for any Arabic dialect). | |
| url_tags | No | Query parameters appended to the ad's links, e.g. utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}. Meta fills the {{…}} macros. No leading '?'. | |
| headlines | No | ||
| video_ids | No | ||
| description | No | One description, shown where the placement has room. | |
| image_hashes | No | ||
| primary_texts | Yes | ||
| call_to_action | No | ||
| instagram_user_id | No | ||
| creative_enhancements | No | Advantage+ creative enhancements to turn ON. Leave empty (default) to turn every one off, so Meta shows the creative exactly as given. Only list one when the user asks for it by name. |