TOOL API
smart_ plus_ campaign_ create
Creates an Upgraded Smart+ campaign via /open_api/v1.3/smart_plus/campaign/create/. The endpoint supports APP_PROMOTION, WEB_CONVERSIONS, and LEAD_GENERATION objectives, including iOS 14 dedicated campaigns and catalog-enabled web/app sales flows. Retain key setup constraints when building the payload: some features are allowlist-only, including Mini Series catalog ads, promotional campaign settings, Goal-based budget increase, RTA, RTA bid, disabling SKAN attribution, and the gaming compliance agreement. Some fields are immutable after creation, including sales_destination, is_promotional_campaign, budget_mode, rta_id, rta_bid_enabled, rta_product_selection_enabled, and postback_window_mode once set. Cross-API prerequisites may apply: fetch app IDs from /app/list/, and if you use postback_window_mode, you can also manage disable flows with /smart_plus/campaign/status/update/. For iOS dedicated campaigns, the promoted app must have SAN enabled; for SKAN 4.0 postback settings, the app must have SKAN 4.0 enabled. For a single campaign, use the review-first mode creation flow by default: 1. Use tiktok_ads_mcp.smart_plus_campaign_create to create the Campaign with status DISABLE. 2. Next, call tiktok_ads_mcp.smart_plus_adgroup_create and create all planned Ad Groups with status DISABLE. 3. Next, call tiktok_ads_mcp.smart_plus_ad_create and create all planned Ads with status DISABLE. 4. Next, call review_smart_plus_campaign to present the complete setup for review. Always use review-first mode when: - The user asks to preview or review the ad setup. - The user has not explicitly provided or confirmed all ad settings. - The model supplies or recommends any ad settings. - The user’s intent is ambiguous and only one campaign is being created. On the opposite, use direct-enable mode only when: - The user explicitly asks to skip review and launch campaign immediately; or - The user requests multiple campaigns in the same operation. In direct-enable mode: create the Campaign, Ad Groups, and Ads with status ENABLE, and do not call review_smart_plus_campaign.
Call information
- Tool slug
- tiktok-ads.smart_plus_campaign_create
- Provider
- TikTok for Business
- Average response
- 0 ms
- Calls in 7 days
- 0
Input parameters
advertiser_idrequiredAdvertiser ID.
app_idRequired when both conditions are met: (`objective_type=APP_PROMOTION` and `app_promotion_type=APP_INSTALL`) or (`objective_type=WEB_CONVERSIONS` and `sales_destination=APP`); and `campaign_type=IOS14_CAMPAIGN`. App ID of the app to promote. For iOS Dedicated Campaigns, you cannot use an app that has not activated the SAN module on your MMP.
app_promotion_typeRequired when `objective_type` is `APP_PROMOTION`. `APP_INSTALL` is for acquiring new app installs; `APP_RETARGETING` is for re-engaging existing app users; `MINIS` is for TikTok Minis or Series promotion. Additional dependencies apply: if `app_promotion_type` is `APP_INSTALL` and `campaign_type` is `IOS14_CAMPAIGN`, `app_id` is required; `gaming_ad_compliance_agreement` is valid only when `objective_type=APP_PROMOTION`, `app_promotion_type=APP_INSTALL`, and `campaign_type=IOS14_CAMPAIGN`; `budget_auto_adjust_strategy` is valid only when `app_promotion_type` is not `MINIS`.
budgetRequired when `budget_mode` is `BUDGET_MODE_DYNAMIC_DAILY_BUDGET`, `BUDGET_MODE_TOTAL`, or `BUDGET_MODE_DAY`. When `budget_optimize_on` is `true` or omitted, this is the fixed campaign budget or initial campaign budget: if `budget_auto_adjust_strategy=UNSET`, it is the fixed campaign budget; if `budget_auto_adjust_strategy=AUTO_BUDGET_INCREASE`, it is the initial campaign budget. When `budget_optimize_on` is `false`, this is the limit for all ad groups under the campaign: daily when `budget_mode=BUDGET_MODE_DAY`, or lifetime when `budget_mode=BUDGET_MODE_TOTAL`.
budget_auto_adjust_strategyValid only when all of the following are true: `budget_optimize_on` is `true` or omitted, `budget_mode=BUDGET_MODE_DYNAMIC_DAILY_BUDGET`, and `app_promotion_type` is not `MINIS`. `AUTO_BUDGET_INCREASE` enables Goal-based budget increase. When set, the specified `budget` is the initial daily budget and may automatically increase by 20%, up to 10 times per day, when budget utilization reaches 90% or more; the daily budget resets to the original daily budget each day. This is an allowlist-only feature.
budget_modeBudget mode. When `budget_optimize_on` is `true` or omitted, valid values are `BUDGET_MODE_DYNAMIC_DAILY_BUDGET` and `BUDGET_MODE_TOTAL`; default is `BUDGET_MODE_DYNAMIC_DAILY_BUDGET`. When `budget_optimize_on` is `false`, valid values are `BUDGET_MODE_INFINITE`, `BUDGET_MODE_DAY`, and `BUDGET_MODE_TOTAL`; default is `BUDGET_MODE_INFINITE`. `budget` is required when `budget_mode` is `BUDGET_MODE_DYNAMIC_DAILY_BUDGET`, `BUDGET_MODE_TOTAL`, or `BUDGET_MODE_DAY`. Once set, this field cannot be updated.
budget_optimize_onWhether to enable Campaign Budget Optimization (CBO). Supported values: `true`, `false`. Default is `true`. This setting affects `budget_mode` and `budget`: when `budget_optimize_on` is `true` or omitted, `budget_mode` controls campaign budget mode; when `false`, `budget_mode` controls the fixed limit for the total budget of all ad groups under the campaign.
campaign_app_profile_page_stateWhether to use an App Profile Page to optimize delivery. Default is `OFF`. You can use this field only when `objective_type` is `APP_PROMOTION` and the campaign is an iOS 14 Dedicated Campaign; otherwise an error occurs. When set to `ON`, pass the `page_id` of an App Profile Page.
campaign_namerequiredCampaign name. Maximum length is 512 characters. Emoji is not supported. Each Chinese or Japanese word counts as two characters; each English letter counts as one character.
campaign_typeCampaign type. Default is `REGULAR_CAMPAIGN`. When `campaign_type` is `IOS14_CAMPAIGN`, additional fields may become required or valid, including `app_id`, `gaming_ad_compliance_agreement`, `campaign_app_profile_page_state`, `disable_skan_campaign`, and `postback_window_mode`.
catalog_enabledValid only when `objective_type` is `WEB_CONVERSIONS` or `LEAD_GENERATION`. Whether to use a catalog in the campaign. Supported values: `true`, `false`. When `objective_type` is `WEB_CONVERSIONS` and `catalog_enabled` is `true`, `catalog_type` is required. When `sales_destination` is `APP`, set this field to `true`.
catalog_typeRequired when `objective_type` is `WEB_CONVERSIONS` and `catalog_enabled` is `true`. Catalog type. When `sales_destination` is `APP`, set `catalog_type` to `ECOMMERCE` or `TRAVEL_ENTERTAINMENT`. `MINI_SERIES` is supported but Create Upgraded Smart+ Mini Series Catalog Ads is currently allowlist-only.
disable_skan_campaignValid only when all of the following are true: (`objective_type=APP_PROMOTION` and `app_promotion_type=APP_INSTALL`) or (`objective_type=WEB_CONVERSIONS` and `sales_destination=APP`); `campaign_type=IOS14_CAMPAIGN`; and `app_id` refers to an iOS app eligible for Advanced Dedicated Campaigns. `true` disables SKAN attribution, removes Dedicated Campaign quota limits, and allows SAN metrics but not SKAN reporting metrics. `false` enables SKAN attribution, applies Dedicated Campaign quota limits, and allows SKAN metrics; if `is_advanced_dedicated_campaign=true` simultaneously, both SAN and SKAN reporting metrics are available. For an app eligible for Advanced Dedicated Campaigns, you must enable SKAN attribution or Advanced Dedicated Campaign or both; you cannot disable both simultaneously. This is an allowlist-only feature. Also, if you are allowlisted for disabling SKAN attribution, you cannot set `bid_type` to `BID_TYPE_CUSTOM` when `is_advanced_dedicated_campaign=false`, `disable_skan_campaign=false`, and `optimization_goal` is `INSTALL` or `IN_APP_EVENT`.
gaming_ad_compliance_agreementValid only when all of the following are true: `objective_type=APP_PROMOTION`, `app_promotion_type=APP_INSTALL`, and `campaign_type=IOS14_CAMPAIGN`. Whether to agree to the Compliance Assurance Policy for Gaming Advertisers on TikTok. `ON` agrees to the policy; `OFF` does not. Default is `OFF`. This feature is allowlist-only.
is_promotional_campaignValid only when `objective_type` is `WEB_CONVERSIONS`. Enables promotion campaign settings for theatrical releases and streaming service promotions. Supported values: `true`, `false`. Default is `false`. This is an allowlist-only feature, and once set, this field cannot be updated.
objective_typerequiredAdvertising objective. Use `APP_PROMOTION`, `WEB_CONVERSIONS`, or `LEAD_GENERATION`. This value determines whether companion fields are required: `APP_PROMOTION` requires `app_promotion_type`; `WEB_CONVERSIONS` requires `sales_destination`; `catalog_enabled` is valid only for `WEB_CONVERSIONS` or `LEAD_GENERATION`.
operation_statusStatus to apply when the campaign is created. Default is `ENABLE`.
po_numberPO (purchase order) number for invoice tracking and reconciliation.
postback_window_modeValid only when `campaign_type=IOS14_CAMPAIGN` and `operation_status=DISABLE`. You can set this field when creating a disabled campaign or when disabling an existing campaign with `/smart_plus/campaign/status/update/`; the recommended practice is to specify it when disabling an existing campaign. It determines which SKAN 4.0 postback window to secure. Once set, this field cannot be updated. If `operation_status=ENABLE` or is omitted, this field is ignored. If provided when SKAN 4.0 is not enabled for `app_id`, an error occurs. If omitted while `campaign_type=IOS14_CAMPAIGN`, `operation_status=DISABLE`, and SKAN 4.0 is enabled for the app, it defaults to `POSTBACK_WINDOW_MODE1`. If SKAN 4.0 is enabled for the app, target iOS 16.1+ devices at the ad group level by setting `min_ios_version` to `16.1`.
request_idrequiredClient-supplied request ID used for idempotency and to allow campaigns with duplicate names. If you retry the same request with the same `request_id`, only one request succeeds. This is different from the response `request_id`, which identifies the HTTP request. Must be a string representation of a 64-bit integer, for example `123456789`.
rta_bid_enabledWhether to use RTA bid. Supported values: `true`, `false`. Default is `false`. You can set this field to `true` only in either of these scenarios: (1) `objective_type=WEB_CONVERSIONS`, `sales_destination=APP`, and `rta_id` is passed; or (2) `objective_type=APP_PROMOTION`, `app_promotion_type=APP_RETARGETING`, and `rta_id` is passed. This is an allowlist-only feature. Once set, this field cannot be updated.
rta_idRealtime API (RTA) strategy identifier. RTA lets you integrate real-time audience data to customize auction and targeting. This is an allowlist-only feature and requires onboarding to receive and respond to RTA requests. Once set, this field cannot be updated.
rta_product_selection_enabledWhether to use RTA to automatically select products. Supported values: `true`, `false`. Default is `false`. You can set this field to `true` only when `objective_type=WEB_CONVERSIONS`, `sales_destination=APP`, and `rta_id` is specified. Once set, this field cannot be updated. When `rta_product_selection_enabled=true`, you can only set `product_specific_type` to `ALL` at the ad level.
sales_destinationRequired when `objective_type` is `WEB_CONVERSIONS`. `WEBSITE` drives sales on your website. `APP` drives sales in your app and requires `catalog_enabled=true` plus `catalog_type` set to `ECOMMERCE` or `TRAVEL_ENTERTAINMENT`; if `campaign_type` is `IOS14_CAMPAIGN`, `app_id` is also required. When `sales_destination` is `APP`, the allowed ad-group `catalog_id` types depend on `rta_id`: if `rta_id` is not specified, ad group `catalog_id` may reference catalogs with type `ECOM`, `HOTEL`, `FLIGHT`, `DESTINATION`, or `ENTERTAINMENT`; if `rta_id` is specified, ad group `catalog_id` may reference catalogs with type `ECOM` or `ENTERTAINMENT`. `WEB_AND_APP` drives sales on both website and app. Once set, this field cannot be updated.
special_industriesAd categories. Once specified, the system adjusts targeting options to help comply with advertising policies. Supported only for advertisers registered in the US or Canada.