> ## 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

> Create TikTok Ads campaigns for manual, Search, and Upgraded Smart+ campaign types

Create TikTok Ads campaigns for manual, Search, and Upgraded Smart+ campaign types.

| | |
| - | - |
| **App** | TikTok Ads |
| **Operation ID** | `tiktok_ads_create_campaign` |
| **Type** | Action |
| **Connection** | `tiktok_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 TikTok Ads account (advertiser) to create the campaign in. |
| `campaign_mode` | string or SelectableOption | Yes | - | Campaign creation path: manual for regular campaigns, search for Search Ads, upgraded\_smart\_plus for Upgraded Smart+. Smart+ supports campaign-level or ad-group budgets; CBO defaults to true unless explicitly disabled. Search uses budget\_optimize\_on false. |
| `campaign_name` | string | Yes | - | Campaign name to create in TikTok. Keep it human-readable, 512 characters or less, and do not include emoji. |
| `objective_type` | string or SelectableOption | Yes | - | Campaign objective. The Upgraded Smart+ campaign API supports APP\_PROMOTION, WEB\_CONVERSIONS, and LEAD\_GENERATION; Ads Manager Smart+ Traffic availability does not imply API support for objective TRAFFIC. For website clicks or landing-page views under Smart+, use WEB\_CONVERSIONS with WEBSITE and the matching ad-group goal. Manual/search availability depends on TikTok objective eligibility. |
| `operation_status` | string or SelectableOption | No | - | Initial campaign status. Use DISABLE to create safely paused campaigns; use ENABLE only when the campaign is ready to run. Defaults to DISABLE. |
| `budget_optimize_on` | boolean | No | - | Use true for one campaign budget across ad groups or false for ad-group budgets, optionally with a campaign cap. Smart+ defaults to true when omitted. Manual defaults to true when a campaign budget or finite budget\_mode is supplied, otherwise false. Search always uses false. |
| `budget_mode` | string or SelectableOption | No | - | With CBO enabled, use BUDGET\_MODE\_DYNAMIC\_DAILY\_BUDGET (default) or BUDGET\_MODE\_TOTAL. With CBO disabled, use BUDGET\_MODE\_INFINITE (default), BUDGET\_MODE\_DAY, or BUDGET\_MODE\_TOTAL for an optional campaign cap. Applies to manual and Smart+; Search always has CBO disabled. |
| `budget` | number | No | - | Campaign budget or cap in account currency. Required with BUDGET\_MODE\_DAY, BUDGET\_MODE\_TOTAL, or BUDGET\_MODE\_DYNAMIC\_DAILY\_BUDGET. Omit with BUDGET\_MODE\_INFINITE. For Smart+ ad-group budgets, explicitly set budget\_optimize\_on false and provide budgets on the ad groups. |
| `budget_auto_adjust_strategy` | string or SelectableOption | No | - | Smart+ only, allowlist dependent. Use AUTO\_BUDGET\_INCREASE only when the campaign uses daily budget and app\_promotion\_type is not MINIS. |
| `request_id` | string | No | - | Optional numeric idempotency key. Smart+ requires one, and Markifact generates it if omitted. Provide a 64-bit integer string only when you need a stable retry key. |
| `app_promotion_type` | string or SelectableOption | No | - | Required when objective\_type is APP\_PROMOTION. Choose the app promotion subtype, such as APP\_INSTALL for install campaigns or APP\_RETARGETING for re-engagement. |
| `virtual_objective_type` | string or SelectableOption | No | - | Manual/search only. Set SALES when the user wants TikTok's Sales objective; also provide sales\_destination. |
| `sales_destination` | string or SelectableOption | No | - | Where sales/conversions happen. Required for Smart+ WEB\_CONVERSIONS and when virtual\_objective\_type is SALES. Use WEBSITE for website sales, APP for app sales, TIKTOK\_SHOP for shop sales, or WEB\_AND\_APP when both apply. |
| `campaign_type` | string or SelectableOption | No | - | App campaign iOS 14 setting. Use IOS14\_CAMPAIGN only for eligible iOS app campaigns that need dedicated iOS 14 handling; otherwise omit and Markifact defaults app campaigns to REGULAR\_CAMPAIGN. |
| `app_id` | string | No | - | TikTok App ID. Required for iOS14 app promotion or app sales campaigns; omit for website-only campaigns. |
| `is_advanced_dedicated_campaign` | boolean | No | - | Manual/search only. Set true only when the campaign should use TikTok Advanced Dedicated Campaign behavior; otherwise omit. |
| `disable_skan_campaign` | boolean | No | - | Use for eligible iOS14 app campaigns when SKAN attribution should be disabled. Omit for non-iOS14 or website campaigns. |
| `campaign_app_profile_page_state` | string or SelectableOption | No | - | App campaigns only. Set ON to use the app profile page for delivery optimization, OFF to disable it, or omit when not relevant. |
| `rf_campaign_type` | string or SelectableOption | No | - | Manual/search RF\_REACH only. Set PULSE for TikTok Pulse campaigns; otherwise omit or use STANDARD for normal reach and frequency. |
| `campaign_product_source` | string or SelectableOption | No | - | Manual/search PRODUCT\_SALES only. Use CATALOG for catalog product sales or STORE for TikTok Shop/showcase sales. |
| `catalog_enabled` | boolean | No | - | Smart+ only. Set true when the Smart+ campaign should use a product catalog. For manual catalog campaigns, use objective\_type PRODUCT\_SALES and campaign\_product\_source CATALOG instead. |
| `catalog_type` | string or SelectableOption | No | - | Smart+ catalog type. ECOMMERCE (default), TRAVEL\_ENTERTAINMENT, MINI\_SERIES, or GENERIC for web catalogs; GENERIC for lead catalogs; ONLINE\_TO\_OFFLINE for app O2O catalogs. Availability depends on campaign objective and advertiser access. |
| `is_promotional_campaign` | boolean | No | - | Smart+ WEB\_CONVERSIONS only. Set true when the campaign should use TikTok promotional campaign settings; otherwise omit. |
| `gaming_ad_compliance_agreement` | string or SelectableOption | No | - | Smart+ app install iOS14 gaming campaigns only. Set ON when the advertiser has agreed to TikTok's gaming policy; omit for non-gaming campaigns. |
| `special_industries` | array of string or SelectableOption | No | - | Use only for regulated campaigns. Select HOUSING, EMPLOYMENT, or CREDIT when the campaign belongs to those special ad categories; otherwise omit. |
| `postback_window_mode` | string or SelectableOption | No | - | iOS14/SKAN campaigns only. Choose the SKAN 4.0 postback window mode when TikTok requires it; otherwise omit. |
| `po_number` | string | No | - | Optional purchase order number for advertiser billing or invoice tracking. Omit when the user does not provide one. |
| `rta_id` | string | No | - | Optional Realtime API strategy ID. Provide only when the advertiser has a TikTok RTA strategy to attach. |
| `rta_bid_enabled` | boolean | No | - | Set true only for eligible campaigns that should use RTA bidding with rta\_id; otherwise omit. |
| `rta_product_selection_enabled` | boolean | No | - | Set true only when an eligible RTA campaign should let TikTok select products automatically; otherwise omit. |

### SelectableOption

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

## Output

**Type**: `Dict`

Returns created TikTok campaign details.

**Fields**: `campaign_id`, `campaign_name`, `campaign_mode`


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