POST /ads/campaigns
Create a campaign (objective or goal, optional CBO budget, specialAdCategories). PAUSED by default; requires confirm: true
POST
BearerAuthheader
AuthorizationBearer <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
name*stringobjective?stringValue in
"OUTCOME_AWARENESS""OUTCOME_TRAFFIC""OUTCOME_ENGAGEMENT""OUTCOME_LEADS""OUTCOME_SALES""OUTCOME_APP_PROMOTION"goal?stringAlternative to objective: engagement, traffic, awareness, ...
dailyBudget?integerCampaign (CBO) daily budget, in the ad account currency's minor units (cents)
Range
100 <= valuelifetimeBudget?integerCampaign lifetime budget, in the ad account currency's minor units (cents)
Range
100 <= valuespendCap?integerSpend cap, in the ad account currency's minor units (cents)
Range
100 <= valuebidStrategy?stringspecialAdCategories?array<string>startTime?stringFormat
date-timestopTime?stringFormat
date-timestatus?stringPAUSED (default) or ACTIVE (only together with confirm: true)
Value in
"PAUSED""ACTIVE"{campaign, mock}
application/json- response
campaign?mock?booleancurl -X POST 'https://example.com/api/v1/ads/campaigns' \ -H 'Content-Type: application/json' \ -d '{ "accountId": "string", "adAccountId": "string", "confirm": true, "name": "string"}'Example Response
{ "campaign": {}, "mock": true}