meta_create_ad
Create a Meta ad under an ad set, using a creative that already exists. Always paused.
On this page
Puts an existing creative into an ad set. This is the step that turns a campaign and an ad set into something that would actually deliver — once you activate it.
Warning
Nothing spends until you say so
Created PAUSED, always. There is no status input at any layer. Activate
with meta_set_status when you’re ready.
Input
| Field | Type | Required | Description |
|---|---|---|---|
advertiserId |
acc_* |
yes | The Meta advertiser. |
adsetId |
string |
yes | Parent ad set — including one created moments ago. |
creativeId |
string |
yes | An ad creative that already exists on the account. |
name |
string |
yes | Ad name, as it appears in Ads Manager. |
The creative must already exist
There is no way to build a creative here, and that is deliberate: an inline creative spec would swallow the widest schema on the platform into the thinnest tool, and it would break creative reuse — one creative referenced by many ads is a normal Meta pattern, not an edge case.
Find one with list_entities using type: 'creative'. Reusing a creative that has already proven itself in another ad set is often the point.
Output
{ workflowId }. Poll get_mutation_status for the new ad’s { id }.
Errors
- A creative that doesn’t exist, or belongs to another account, comes back as Meta’s own rejection — including its error subcode. AdCrunch doesn’t pre-check either parent against its own records, because an ad set or creative created seconds ago legitimately won’t be there yet.
Advertiser not found for this organization— calllist_advertisers.This advertiser is connected without write access— reconnect Meta and grant write permission.