POST /ads/adsets
Create an ad set in a campaign: targeting, budget (unless the campaign has one), schedule, optimization goal. PAUSED by default; requires confirm: true
BearerAuthAuthorizationBearer <token>API key sk_...
application/json- body
accountId*stringConnected Facebook Page account id
adAccountId*stringAd account id (act_...)
confirm*booleanRequired (true) for anything that can spend: creates (campaign, ad set, ad, boost), status ACTIVE, budget, bid, schedule or targeting changes. Without it: 400 confirmation_required, nothing is created
campaignId*stringname*stringdailyBudget?integerDaily budget, in the ad account currency's minor units (cents)
100 <= valuelifetimeBudget?integerLifetime budget (needs endTime), in the ad account currency's minor units (cents)
100 <= valuestartTime?stringdate-timeendTime?stringdate-timeoptimizationGoal?stringDefault LINK_CLICKS
billingEvent?stringDefault IMPRESSIONS
bidAmount?integerBid cap, in the ad account currency's minor units (cents)
100 <= valuebidStrategy?stringtargeting?Simplified targeting, mapped to Meta's targeting spec
promotedObject?destinationType?stringstatus?stringPAUSED (default) or ACTIVE (only together with confirm: true)
"PAUSED""ACTIVE"{adSet, mock}
application/json- response
adSet?mock?booleancurl -X POST 'https://example.com/api/v1/ads/adsets' \ -H 'Content-Type: application/json' \ -d '{ "accountId": "string", "adAccountId": "string", "confirm": true, "campaignId": "string", "name": "string"}'{ "adSet": {}, "mock": true}