> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Campaign

> Creates a Snapchat Ads campaign with objective, status, budgets, schedule, and optional advanced settings

Creates a Snapchat Ads campaign with objective, status, budgets, schedule, and optional advanced settings. Budgets are entered in the ad account currency and converted to Snapchat micro-currency automatically.

| | |
| - | - |
| **App** | Snapchat Ads |
| **Operation ID** | `snapchat_ads_create_campaign` |
| **Type** | Action |
| **Connection** | `snapchat_ads` (required) |
| **Credits per run** | 1 |
| **Agent / MCP tool** | Yes |
| **Requires approval** | Yes (write operation) |

## Inputs

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `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"} |

### SelectableOption

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `value` | string | Yes | - | |
| `label` | string | Yes | - | |

## Output

**Type**: `Dict`

Returns created Snapchat campaign details.

**Fields**: `campaign_id`, `campaign_name`, `objective_v2_type`, `status`, `start_time`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.