# Create ad (adsap_create_ad)

Creates a single image or single video ad inside an existing Meta ad set.

Canonical: https://adsap.ai/docs/tools/adsap_create_ad
Updated: 2026-09-13

**Platform:** Meta · **Read or write:** Write · **Plan:** All plans · **Consumes a task:** Yes · **Preview supported:** Yes

## What it does

Creates a single image or single video ad inside an existing Meta ad set. You supply the creative: the asset, primary text, headline, description, call to action and destination URL. The ad starts paused. Ask for a preview first: the copilot validates the ad and shows a launch review card where you confirm, create and activate.

## Parameters

Descriptions are shortened from the tool schema. Your assistant sees the full text.

| Name | Type | Required | Description |
|---|---|---|---|
| `ad_set_id` | string | Yes |  |
| `ad_account_id` | string | Yes |  |
| `name` | string | Yes |  |
| `ad_format` | one of `SINGLE_IMAGE`, `SINGLE_VIDEO` | Yes |  |
| `creative_spec` | object | Yes |  |
| `creative_spec.page_id` | string | Yes |  |
| `creative_spec.instagram_user_id` | string | No | Instagram account id for Instagram placements. OPTIONAL: omit it when the brand has no Instagram account. Adsap then represents the brand on Instagram through its Facebook Page (Meta page-backed Instagram account), exactly like the Use Facebook Page option in Ads Manager. |
| `creative_spec.feed_creative_name` | string | Yes | Feed creative filename (1080x1080). Must exist in creative_metadata table. |
| `creative_spec.vertical_creative_name` | string | No | 1080x1920 filename. |
| `creative_spec.horizontal_creative_name` | string | No | 1200x628 filename. |
| `creative_spec.primary_texts` | array of string | Yes |  |
| `creative_spec.headlines` | array of string | Yes |  |
| `creative_spec.description` | string | No |  |
| `creative_spec.link_url` | string | No | Destination URL (https). Required unless awareness/engagement or lead gen. |
| `creative_spec.display_link` | string | No |  |
| `creative_spec.call_to_action` | one of `SHOP_NOW`, `LEARN_MORE`, `SIGN_UP`, `BOOK_NOW`, `CONTACT_US`, `DOWNLOAD`, `GET_OFFER`, `GET_QUOTE` and 11 more | Yes | CTA button. For profile visit ad sets (destination_type INSTAGRAM_PROFILE / FACEBOOK_PAGE / INSTAGRAM_PROFILE_AND_FACEBOOK_PAGE) the CTA is dictated by the destination: VIEW_INSTAGRAM_PROFILE (Instagram), VISIT_PROFILE (Facebook)... |
| `creative_spec.url_parameters` | string | No | UTM tags. |
| `creative_spec.deep_link` | string | No | Mobile deep link (e.g. myapp://product/123). App-promotion ads only: sent as the CTA's app_link with app-store fallback (applink_treatment). Requires App Links / the Meta SDK configured in the promoted app. |
| `creative_spec.partnership_page_id` | string | No |  |
| `creative_spec.partnership_instagram_user_id` | string | No |  |
| `creative_spec.threads_page_id` | string | No |  |
| `creative_spec.ad_template_id` | string | No |  |
| `creative_spec.product_tags` | array of string | No |  |
| `creative_spec.catalog_id` | string | No |  |
| `creative_spec.catalog_name` | string | No |  |
| `creative_spec.product_set_id` | string | No |  |
| `creative_spec.product_set_name` | string | No |  |
| `creative_spec.leadgen_form_id` | string | No |  |
| `creative_spec.multi_advertiser_opt_in` | boolean | No | Default true. |
| `creative_spec.account_enhancements` | any | No |  |
| `creative_spec.ad_schedule_start` | string | No |  |
| `creative_spec.ad_schedule_end` | string | No |  |
| `status` | one of `PAUSED`, `ACTIVE` | No |  |
| `dry_run` | boolean | No | Preview only: the request is validated and the resolved payload returned, nothing is created or changed. |
| `idempotency_key` | string | No |  |

## Example prompts

- "Create a video ad in the Retargeting ad set using the summer-hero clip, headline 'Free shipping this week', linking to our sale page."
- "Make an image ad from the blue-sneaker asset with three primary text variations and a Shop Now button."
- "Preview an ad for the App Installs ad set that sends people to the App Store listing."

## Notes

For App promotion ad sets, the link is the app store URL and the call to action is Install Mobile App.

## Related tools

- [`adsap_get_ad_review_status`](/tools/adsap_get_ad_review_status): Check review and policy status of all active (optionally paused) ads in an account.
- [`adsap_get_ad_status`](/tools/adsap_get_ad_status): Check the current delivery, review, and effective status of a single Meta ad.
- [`adsap_list_ad_accounts`](/tools/adsap_list_ad_accounts): List Meta ad accounts the user manages.

## Guide

Read [Building the ads](/guides/launch/ads) for the workflow around this tool, and the [Tool reference](/tools) for every tool.
