Skip to content

Create a campaign

POST /api/marketing/campaigns

Creates the campaign in Meta and returns the object reread. Without status it is created PAUSED. special_ad_categories is always sent (empty if none is declared) because Meta requires it. daily_budget and lifetime_budget are mutually exclusive: sending both is 400. Amounts are in cents of the account currency, unconverted. The valid combination of objective, optimization and billing is validated by Meta on the server side: Neike only validates that each value belongs to its enum and returns Meta’s error, mapped. Requires the marketing:manage scope.

FieldTypeDescription
ad_account_idstringrequiredMeta ad account, with prefix. Example: "act_123".
namestringrequiredExample: "Tráfico · septiembre".
objectiveAPP_INSTALLS · BRAND_AWARENESS · CONVERSIONS · EVENT_RESPONSES · LEAD_GENERATION · LINK_CLICKS · LOCAL_AWARENESS · MESSAGES · OFFER_CLAIMS · OUTCOME_APP_PROMOTION · OUTCOME_AWARENESS · OUTCOME_ENGAGEMENT · OUTCOME_LEADS · OUTCOME_SALES · OUTCOME_TRAFFIC · PAGE_LIKES · POST_ENGAGEMENT · PRODUCT_CATALOG_SALES · REACH · STORE_VISITS · VIDEO_VIEWSrequired—
special_ad_categoriesNONE · EMPLOYMENT · HOUSING · CREDIT · ISSUES_ELECTIONS_POLITICS · ONLINE_GAMBLING_AND_GAMING · FINANCIAL_PRODUCTS_SERVICES[]optionalSpecial ad categories. Meta always requires it: if omitted, [] is sent. Default: [].
statusACTIVE · PAUSED · DELETED · ARCHIVEDoptionalIf omitted, the campaign is created PAUSED (nobody starts spending without asking for it). Default: "PAUSED".
buying_typeAUCTION · RESERVEDoptional—
daily_budgetnumberoptionalDaily budget in cents. Mutually exclusive with lifetime_budget. Example: 100000.
lifetime_budgetnumberoptionalLifetime budget in cents. Mutually exclusive with daily_budget. Example: null.
bid_strategyLOWEST_COST_WITHOUT_CAP · LOWEST_COST_WITH_BID_CAP · COST_CAP · LOWEST_COST_WITH_MIN_ROASoptional—
spend_capnumberoptionalSpend cap of the campaign, in cents.
start_timestringoptionalExample: "2026-09-01T00:00:00-0300".
stop_timestringoptionalExample: "2026-09-30T23:59:59-0300".
StatusDescriptionSchema
201—CampaignDto
Terminal window
curl -X POST https://api.neike.dev/api/marketing/campaigns \
-H "x-neike-api-key: whk_live_…" \
-H "Content-Type: application/json" \
-d '{
"ad_account_id": "act_123",
"name": "Tráfico · septiembre",
"objective": "APP_INSTALLS"
}'
FieldTypeDescription
idstringrequiredExample: "120210000000000000".
namestringrequiredExample: "Tráfico · septiembre".
objectiveAPP_INSTALLS · BRAND_AWARENESS · CONVERSIONS · EVENT_RESPONSES · LEAD_GENERATION · LINK_CLICKS · LOCAL_AWARENESS · MESSAGES · OFFER_CLAIMS · OUTCOME_APP_PROMOTION · OUTCOME_AWARENESS · OUTCOME_ENGAGEMENT · OUTCOME_LEADS · OUTCOME_SALES · OUTCOME_TRAFFIC · PAGE_LIKES · POST_ENGAGEMENT · PRODUCT_CATALOG_SALES · REACH · STORE_VISITS · VIDEO_VIEWSoptional—
statusACTIVE · PAUSED · DELETED · ARCHIVEDoptional—
effective_statusstringoptionalEffective status computed by Meta (includes review statuses and those inherited from the account). It is read-only and has more values than status. Example: "PAUSED".
special_ad_categoriesNONE · EMPLOYMENT · HOUSING · CREDIT · ISSUES_ELECTIONS_POLITICS · ONLINE_GAMBLING_AND_GAMING · FINANCIAL_PRODUCTS_SERVICES[]optional—
buying_typeAUCTION · RESERVEDoptional—
daily_budgetstringoptionalDaily budget in cents. Example: "100000".
lifetime_budgetstringoptionalLifetime budget in cents. Example: "500000".
spend_capstringoptionalSpend cap in cents. Example: "1000000".
bid_strategyLOWEST_COST_WITHOUT_CAP · LOWEST_COST_WITH_BID_CAP · COST_CAP · LOWEST_COST_WITH_MIN_ROASoptional—
start_timestringoptionalExample: "2026-09-01T00:00:00-0300".
stop_timestringoptionalExample: "2026-09-30T23:59:59-0300".
created_timestringoptional—
updated_timestringoptional—