account | DynamicAccount | Yes | - | Select Snapchat Ads account to create the campaign in. |
campaign_name | string | Yes | - | Name of the Snapchat campaign. Max 375 characters. |
objective_v2_type | string or SelectableOption | No | {'value': 'AWARENESS_AND_ENGAGEMENT', 'label': 'Awareness & Engagement'} | Campaign objective. Options: AWARENESS_AND_ENGAGEMENT (default), SALES, TRAFFIC, APP_PROMOTION, LEADS. Determines which optimization goals are available to ad squads under this campaign. |
promotion_type | string or SelectableOption | No | - | Optional promotion type paired with the objective. APP_INSTALL and APP_REENGAGEMENT require the APP_PROMOTION objective. PROMOTE_PLACES and PROMOTE_SHOWS require AWARENESS_AND_ENGAGEMENT and are generally not available to create via the Snapchat API. |
status | string or SelectableOption | No | {'value': 'PAUSED', 'label': 'Paused'} | Status when the campaign is created: ACTIVE or PAUSED. Default: PAUSED. |
daily_budget | number | No | - | Daily spend cap in the ad account’s currency (for example 50 for $50). Minimum 20. Markifact converts it to Snapchat micro-currency automatically. Note: the campaign daily budget must be at least 0.25 times the sum of its ad squad budgets. |
lifetime_spend_cap | number | No | - | Lifetime spend cap in the ad account’s currency. Minimum 20. Converted to Snapchat micro-currency automatically. Delivery stops when either the ad account spend cap or this campaign lifetime cap is reached. |
start_time | integer or string | No | - | Campaign start as a Unix timestamp or ISO datetime string. Defaults to now when omitted. |
end_time | integer or string | No | - | Optional campaign end as a Unix timestamp or ISO datetime string. Must be after start_time. The campaign runs indefinitely when omitted. |
buy_model | string or SelectableOption | No | {'value': 'AUCTION', 'label': 'Auction'} | Buy model: AUCTION (default) or RESERVED. RESERVED campaigns generally cannot be modified through the API afterwards. |
reserved_type | string or SelectableOption | No | - | Only for Reach & Frequency campaigns: REACH_AND_FREQUENCY. Requires buy_model RESERVED. |
pacing_level | string or SelectableOption | No | - | Where budget pacing is controlled. AD_SQUAD is Snapchat’s default. CAMPAIGN enables Smart Budgets and requires shared_properties plus a daily budget or lifetime spend cap; all ad squads must then mirror the shared_properties values. Smart Budgets cannot be used with Dynamic Ads (product_properties). |
measurement_spec | object or string | No | - | Apps tracked for install and post-install attribution, as a JSON object. Required for campaigns that will contain APP_INSTALL, DEEP_LINK, or app Story/Lens ads. Keys: ios_app_id (App Store ID as a string), android_app_url (Play Store package name). Provide at least one. Example: {“ios_app_id”: “1234567890”, “android_app_url”: “com.snapchat.android”} |
mobile_app_properties | object or string | No | - | SKAdNetwork enrollment enforced on all ad squads under the campaign, as a JSON object. Keys: skad_network_status (ENROLLED or NOT_ENROLLED), mobile_app_id (Snap App ID, required when ENROLLED), app_optimization_type (SKAN, required when ENROLLED). Once set, all ad squads must mirror the same mobile_app_id. Example: {“skad_network_status”: “ENROLLED”, “mobile_app_id”: “78b0a193-5676-4fce-a774-05114e63c321”, “app_optimization_type”: “SKAN”} |
product_properties | object or string | No | - | Attaches a catalog for Dynamic Ads, as a JSON object. Keys: catalog_id. Example: {“catalog_id”: “85b39b4d-8b29-4309-959c-75a3cbbdcd5b”} |
regulations | object or string | No | - | Regulated content flags, as a JSON object. Keys: restricted_delivery_signals (boolean, required for Credit, Housing, or Employment ads; must be enabled at ad account level first), candidate_ballot_information (string, for political ads in certain states). Example: {“restricted_delivery_signals”: true} |
shared_properties | object or string | No | - | Smart Budgets rules mirrored by all ad squads, as a JSON object. Only used when pacing_level is CAMPAIGN. Keys: shared_optimization_goal (required: IMPRESSIONS or PIXEL_PURCHASE), shared_ad_squad_bid_strategy (required: AUTO_BID or LOWEST_COST_WITH_MAX_BID), shared_conversion_location (APP, WEB, CALL, TEXT, or LEAD_FORM), shared_conversion_window (for example SWIPE_28DAY_VIEW_1DAY or SWIPE_7DAY), shared_pixel_id (required when shared_optimization_goal is PIXEL_PURCHASE), target_cost_in_micro (integer in micro-currency, passed as-is). Example: {“shared_optimization_goal”: “PIXEL_PURCHASE”, “shared_ad_squad_bid_strategy”: “AUTO_BID”, “shared_conversion_location”: “WEB”, “shared_conversion_window”: “SWIPE_28DAY_VIEW_1DAY”, “shared_pixel_id”: “f1b73786-8828-4fc1-803f-4f5af6d9082b”} |