account | DynamicAccount | Yes | - | Select the Meta Ads account, ask the user for it if not provided |
campaign_name | string | Yes | - | Name for the campaign |
objective | string or SelectableOption | Yes | - | Campaign’s objective. Select the marketing goal for this campaign |
buying_type | string or SelectableOption | No | - | Buying type for the campaign. Available options: ‘AUCTION’ (Auction - default), ‘RESERVED’ (Reach and Frequency) |
status | string or SelectableOption | No | - | Initial status of the campaign. Available options: ‘ACTIVE’, ‘PAUSED’ (default) |
special_ad_categories | array of string or SelectableOption | No | ['NONE'] | Special ad categories. Defaults to [‘NONE’] if not provided |
special_ad_category_country | array of string or SelectableOption | No | - | Countries for special ad category. Required if special_ad_categories is not [‘NONE’] |
bid_strategy | string or SelectableOption | No | - | Campaign bid strategy for campaign budgets or shared ad-set budgets. Defaults to LOWEST_COST_WITHOUT_CAP when applicable. Omitted for independent ad-set budgets (no campaign budget and is_adset_budget_sharing_enabled=false); set bidding on the ad sets instead. Options: LOWEST_COST_WITHOUT_CAP, COST_CAP, LOWEST_COST_WITH_BID_CAP, LOWEST_COST_WITH_MIN_ROAS. |
budget_type | string or SelectableOption | No | - | Budget type for the campaign. Available options: ‘DAILY’ (Daily Budget), ‘LIFETIME’ (Lifetime Budget), ‘ADSET_BUDGET’ (Budget set at ad set level) |
budget_value | number | No | - | Budget amount in the account currency exactly as shown in Ads Manager (e.g. 100 for $100, 300000 for COP 300,000); the backend applies Meta’s currency offset automatically, never multiply yourself. Required if budget_type is not ‘ADSET_BUDGET’. |
spend_cap | number | No | - | Spend cap in the account currency as shown in Ads Manager (e.g. 100 for USD 100, 300000 for COP 300,000). The backend applies Meta’s currency offset automatically. Campaign will not spend more than this amount. Not applicable when using lifetime budget. |
is_adset_budget_sharing_enabled | boolean | No | - | Only for budget_type ‘ADSET_BUDGET’ (Meta requires a value then; defaults to true). True lets Meta move budget between the campaign’s ad sets and needs a campaign bid strategy. Set false when ad sets need independent budgets, e.g. lifetime budgets on different dates, which Meta rejects while sharing is on. |
start_time | integer or string | No | - | Start time for campaign delivery: Unix seconds, YYYY-MM-DD, or an ISO datetime (UTC). Leave empty to start immediately |
stop_time | integer or string | No | - | End time for campaign delivery: Unix seconds, YYYY-MM-DD, or an ISO datetime (UTC). Leave empty for no end time |
is_skadnetwork_attribution | boolean | No | - | Enable SKAdNetwork attribution for an iOS 14+ app promotion campaign. Meta only accepts this at creation (it cannot be added later) and then requires promoted_object with application_id and object_store_url. |
promoted_object | object or string | No | - | Campaign-level promoted object as JSON, sent as-is. Required by Meta for iOS 14+ app promotion (SKAdNetwork) campaigns, for example {“application_id”: “893126232356131”, “object_store_url”: “http://itunes.apple.com/app/id6502289375”}. Use meta_list_promotable_apps to find the application_id. |
validate_only | boolean | No | False | When true, ask Meta to validate the request without creating anything. No new object ID is returned. |