Contents
UI design reference for TikTok's Upgraded Smart+ Web Conversions campaign creation flow
Screen 1 — Campaign Settings
Objective, budget mode, CBO toggle
Screen 2 — Targeting
Automatic vs Manual, up to 30 ad groups
Screen 3 — Budget, Bidding, Schedule & Placements
Optimization goal, bid strategy, dayparting
Screen 4 — Creatives
Media upload, CTA, destination, preview
| CBO State | Available Budget Modes |
|---|---|
| CBO ON | BUDGET_MODE_TOTAL, BUDGET_MODE_DYNAMIC_DAILY_BUDGET |
| CBO OFF | BUDGET_MODE_INFINITE, BUDGET_MODE_DAY, BUDGET_MODE_TOTAL |
The Upgraded Smart+ Web Conversions campaign type in TikTok Ads Manager uses a four-screen creation flow with the WEB_CONVERSIONS objective pre-selected.1 Each screen collects a distinct category of inputs: campaign-level settings, audience targeting, budget and bidding parameters, and creative assets.2 This guide maps every field, conditional visibility rule, and validation constraint that a UI implementation must account for.
The first screen contains seven primary fields.1
Objective selector displays WEB_CONVERSIONS as the pre-selected value.1 Campaign name is a free-text input.1 Special Ad Categories is a toggle restricted to advertisers in the US and Canada.1 CBO (Campaign Budget Optimization) is a toggle defaulting to true (budget_optimize_on: true).1
Budget mode selector changes its options based on CBO state.1 When CBO is on, the selector offers BUDGET_MODE_TOTAL and BUDGET_MODE_DYNAMIC_DAILY_BUDGET.1 When CBO is off, the selector offers BUDGET_MODE_INFINITE, BUDGET_MODE_DAY, and BUDGET_MODE_TOTAL.1
Budget amount input is conditionally required: it appears when CBO is on (always), or when CBO is off and the budget mode is not BUDGET_MODE_INFINITE.1 PO number is an optional text field.1
The entry point to Upgraded Smart+ is an "Upgraded Smart+" checkbox with an accompanying tooltip.2 This checkbox must be present and enabled before the remaining screens adopt Smart+ behavior.
Targeting supports up to 30 ad groups per campaign, each with independent targeting configuration.1
When the targeting mode toggle is set to Automatic, the form splits into two labeled sections.1
The first section, labeled "Audience Controls", carries the subheading "Delivery to these options is guaranteed."1 It contains three fields: location, gender, and language.1 These fields define hard constraints that the delivery system will always respect.
The second section, labeled "Audience Suggestions", carries the subheading "Suggestions guide automatic targeting; delivery not guaranteed."1 It contains optional fields for interests, age groups, and behaviors.1 All suggestion fields start empty with no preset values.1
When toggled to Manual, the form expands to the full targeting suite: age, gender, language, spending power, location, interests, behaviors, device type, custom audiences, and lookalike audiences.1 The "Smart Audience" field is excluded from the UI in this mode.1
Audience objects that are not compatible with Upgraded Smart+ campaigns appear disabled in the Record Manager with a tooltip reading "Not compatible with Smart+ Campaigns."1
Optimization goal selector offers three values: CONVERT, LANDING_PAGE, and CLICK.1 The LANDING_PAGE option is only available when the selected event source is a Pixel (not Events API alone).15
Pixel selector is a required field.1 When the optimization goal is CONVERT, an optimization event selector appears with values such as COMPLETE_PAYMENT and INITIATE_CHECKOUT.1
Billing event displays OCPM as a read-only label; the user cannot change it.1
Two bid strategies are available: Max Delivery (BID_TYPE_NO_BID) and Cost Cap (BID_TYPE_CUSTOM).1
When Cost Cap is selected and the goal is CONVERT or LANDING_PAGE, a conversion_bid_price input appears.1 When the goal is CLICK, a bid_price input appears instead.1 Cost Cap is only available when the budget mode is daily; it must be disabled when the budget is lifetime.1
When CBO is off, each ad group shows its own budget_mode selector and budget amount input.1 When CBO is on, these fields are hidden.1
min_budget and max_budget fields appear only when three conditions are met simultaneously: CBO is on, the budget mode is daily, and the bid strategy is Max Delivery.1
Two schedule types exist: continuous (SCHEDULE_FROM_NOW) and start/end date.1 SCHEDULE_FROM_NOW is only available when the budget mode is daily.1
Dayparting is an optional time-grid input for restricting delivery to specific hours.1
Placement mode is either automatic (omit all placement fields) or manual.1 Manual placement allows selection from PLACEMENT_TIKTOK, PLACEMENT_PANGLE, and PLACEMENT_GLOBAL_APP_BUNDLE.1
Five boolean toggles control ad interaction features: comment_disabled, share_disabled, video_download_disabled, favorite_counts_disabled, and like_counts_disabled.1
A campaign supports up to 50 media items, counted as the sum of videos, carousels, and TikTok posts.1 The UI must enforce this combined limit across all three media types.
Videos can be uploaded directly or selected from the media library.1 The tooltip reads: "Select or upload up to 50 Videos."1
Carousels support up to 35 images and 1 music track per carousel, with drag-to-reorder functionality.1 The tooltip reads: "Create maximum 50 carousels composed of up to 35 images and 1 music."1
TikTok Posts are selected via a multi-select picker with a non-editable filter "Organic Post not included" pre-selected.1 The tooltip reads: "Select up to 50 organic Video Posts."1
Spark Ads (posts) and non-Spark ads (uploaded videos/carousels) cannot coexist in the same campaign.1 The UI must show a validation error if a user attempts to mix them.
Four identity types are available: CUSTOMIZED_USER, AUTH_CODE, TT_USER, and BC_AUTH_TT.1 When BC_AUTH_TT is selected, an additional BC ID input field appears.1
The form provides up to 5 text input fields for ad copy.1
A three-way toggle controls CTA behavior: No CTA, Dynamic, and Standard.3 TikTok recommends enabling Dynamic CTA to let the system select the highest-performing action button per user.4
When Dynamic is selected, a call_to_action_id selector appears for choosing a single dynamic CTA.1 When Standard is selected, a call_to_action_list input appears allowing up to 3 CTA selections.1
Destination fields appear only when a CTA is enabled.1 Two destination types are available: URL and Custom Page, and they are mutually exclusive.1
When URL is selected, the form shows a landing_page_url input, an optional deeplink input, and a deeplink_type selector.1 When Custom Page is selected, the form shows a page_id selector and hides all URL-related fields.1
When Upgraded Smart+ is active, a banner displays this exact text: "Upgraded Smart+ Campaign is enabled. Ads will be generated based on combinations of your videos and ad texts, and the high-performing combinations will be automatically delivered."2
The embedded preview includes: a post toggle, a placement selector, a sub-placement selector, a video timestamp control, carousel-specific toggles, and a safe content zone checkbox.1
The following table summarizes every conditional field dependency in the flow.
| Trigger | Effect |
|---|---|
| CBO ON | Hide ad group budget fields; show campaign budget input.1 |
| CBO OFF + BUDGET_MODE_INFINITE | Hide campaign budget input; show ad group budget fields with no amount required.1 |
| CBO OFF + non-INFINITE mode | Show ad group budget fields with amount required.1 |
| Cost Cap selected | Show bid price input (conversion_bid_price or bid_price depending on goal).1 |
| Cost Cap + lifetime budget | Disable Cost Cap selection.1 |
| Goal = LANDING_PAGE | Only available when Pixel is the event source; hidden for Events API-only setups.15 |
| CBO ON + daily budget + Max Delivery | Show min_budget and max_budget fields.1 |
| identity_type = BC_AUTH_TT | Show BC ID input field.1 |
| URL destination selected | Show deeplink and deeplink_type fields.1 |
| Custom Page destination selected | Show page_id selector; hide landing_page_url, deeplink, and deeplink_type.1 |
| SCHEDULE_FROM_NOW | Only available with daily budget mode.1 |
| CTA = No CTA | Hide all destination fields.1 |
When CBO is on and the user creates a second or subsequent ad group, six fields must be pre-filled with values from the first ad group and locked (non-editable): promotion_type, optimization_goal, optimization_event, billing_event, bid_type, and the bid price field (bid_price or conversion_bid_price).1 The UI should visually indicate that these fields are inherited, such as by graying them out and showing a lock icon.
Required-when conditions: Budget amount is required whenever it is visible.1 Pixel selector is always required on Screen 3.1 Optimization event is required when goal is CONVERT.1
Mutual exclusivity: URL destination and Custom Page destination cannot both be active.1 Spark Ads and non-Spark ads cannot coexist in the same campaign; display a validation message if the user attempts this combination.1
Limits: Maximum 30 ad groups per campaign.1 Maximum 50 total media items across videos, carousels, and posts.1 Maximum 35 images plus 1 music track per carousel.1 Maximum 3 CTAs in Standard mode.1 Maximum 5 ad text inputs.1
Cost Cap restriction: The UI must prevent Cost Cap selection when the budget mode is lifetime (BUDGET_MODE_TOTAL), either by disabling the option or by showing an inline error.1
CBO uniformity violation: If a user attempts to edit a locked field on a non-first ad group while CBO is on, display an inline message explaining that the value must match the first ad group.1
| Element | Copy |
|---|---|
| Videos tooltip | "Select or upload up to 50 Videos"1 |
| Posts tooltip | "Select up to 50 organic Video Posts"1 |
| Carousels tooltip | "Create maximum 50 carousels composed of up to 35 images and 1 music"1 |
| Non-USP audience tooltip | "Not compatible with Smart+ Campaigns"1 |
| Upgraded Smart+ banner | "Upgraded Smart+ Campaign is enabled. Ads will be generated based on combinations of your videos and ad texts, and the high-performing combinations will be automatically delivered."2 |
The Upgraded Smart+ Web Conversions campaign type in TikTok Ads Manager uses a four-screen creation flow with the WEB_CONVERSIONS objective pre-selected.1 Each screen collects a distinct category of inputs: campaign-level settings, audience targeting, budget and bidding parameters, and creative assets.2 This guide maps every field, conditional visibility rule, and validation constraint that a UI implementation must account for.
Screen 1 — Campaign Settings
Objective, budget mode, CBO toggle
Screen 2 — Targeting
Automatic vs Manual, up to 30 ad groups
Screen 3 — Budget, Bidding, Schedule & Placements
Optimization goal, bid strategy, dayparting
Screen 4 — Creatives
Media upload, CTA, destination, preview
| CBO State | Available Budget Modes |
|---|---|
| CBO ON | BUDGET_MODE_TOTAL, BUDGET_MODE_DYNAMIC_DAILY_BUDGET |
| CBO OFF | BUDGET_MODE_INFINITE, BUDGET_MODE_DAY, BUDGET_MODE_TOTAL |
The first screen contains seven primary fields.1
Objective selector displays WEB_CONVERSIONS as the pre-selected value.1 Campaign name is a free-text input.1 Special Ad Categories is a toggle restricted to advertisers in the US and Canada.1 CBO (Campaign Budget Optimization) is a toggle defaulting to true (budget_optimize_on: true).1
Budget mode selector changes its options based on CBO state.1 When CBO is on, the selector offers BUDGET_MODE_TOTAL and BUDGET_MODE_DYNAMIC_DAILY_BUDGET.1 When CBO is off, the selector offers BUDGET_MODE_INFINITE, BUDGET_MODE_DAY, and BUDGET_MODE_TOTAL.1
Budget amount input is conditionally required: it appears when CBO is on (always), or when CBO is off and the budget mode is not BUDGET_MODE_INFINITE.1 PO number is an optional text field.1
The entry point to Upgraded Smart+ is an "Upgraded Smart+" checkbox with an accompanying tooltip.2 This checkbox must be present and enabled before the remaining screens adopt Smart+ behavior.
Targeting supports up to 30 ad groups per campaign, each with independent targeting configuration.1
When the targeting mode toggle is set to Automatic, the form splits into two labeled sections.1
The first section, labeled "Audience Controls", carries the subheading "Delivery to these options is guaranteed."1 It contains three fields: location, gender, and language.1 These fields define hard constraints that the delivery system will always respect.
The second section, labeled "Audience Suggestions", carries the subheading "Suggestions guide automatic targeting; delivery not guaranteed."1 It contains optional fields for interests, age groups, and behaviors.1 All suggestion fields start empty with no preset values.1
When toggled to Manual, the form expands to the full targeting suite: age, gender, language, spending power, location, interests, behaviors, device type, custom audiences, and lookalike audiences.1 The "Smart Audience" field is excluded from the UI in this mode.1
Audience objects that are not compatible with Upgraded Smart+ campaigns appear disabled in the Record Manager with a tooltip reading "Not compatible with Smart+ Campaigns."1
Optimization goal selector offers three values: CONVERT, LANDING_PAGE, and CLICK.1 The LANDING_PAGE option is only available when the selected event source is a Pixel (not Events API alone).15
Pixel selector is a required field.1 When the optimization goal is CONVERT, an optimization event selector appears with values such as COMPLETE_PAYMENT and INITIATE_CHECKOUT.1
Billing event displays OCPM as a read-only label; the user cannot change it.1
Two bid strategies are available: Max Delivery (BID_TYPE_NO_BID) and Cost Cap (BID_TYPE_CUSTOM).1
When Cost Cap is selected and the goal is CONVERT or LANDING_PAGE, a conversion_bid_price input appears.1 When the goal is CLICK, a bid_price input appears instead.1 Cost Cap is only available when the budget mode is daily; it must be disabled when the budget is lifetime.1
When CBO is off, each ad group shows its own budget_mode selector and budget amount input.1 When CBO is on, these fields are hidden.1
min_budget and max_budget fields appear only when three conditions are met simultaneously: CBO is on, the budget mode is daily, and the bid strategy is Max Delivery.1
Two schedule types exist: continuous (SCHEDULE_FROM_NOW) and start/end date.1 SCHEDULE_FROM_NOW is only available when the budget mode is daily.1
Dayparting is an optional time-grid input for restricting delivery to specific hours.1
Placement mode is either automatic (omit all placement fields) or manual.1 Manual placement allows selection from PLACEMENT_TIKTOK, PLACEMENT_PANGLE, and PLACEMENT_GLOBAL_APP_BUNDLE.1
Five boolean toggles control ad interaction features: comment_disabled, share_disabled, video_download_disabled, favorite_counts_disabled, and like_counts_disabled.1
A campaign supports up to 50 media items, counted as the sum of videos, carousels, and TikTok posts.1 The UI must enforce this combined limit across all three media types.
Videos can be uploaded directly or selected from the media library.1 The tooltip reads: "Select or upload up to 50 Videos."1
Carousels support up to 35 images and 1 music track per carousel, with drag-to-reorder functionality.1 The tooltip reads: "Create maximum 50 carousels composed of up to 35 images and 1 music."1
TikTok Posts are selected via a multi-select picker with a non-editable filter "Organic Post not included" pre-selected.1 The tooltip reads: "Select up to 50 organic Video Posts."1
Spark Ads (posts) and non-Spark ads (uploaded videos/carousels) cannot coexist in the same campaign.1 The UI must show a validation error if a user attempts to mix them.
Four identity types are available: CUSTOMIZED_USER, AUTH_CODE, TT_USER, and BC_AUTH_TT.1 When BC_AUTH_TT is selected, an additional BC ID input field appears.1
The form provides up to 5 text input fields for ad copy.1
A three-way toggle controls CTA behavior: No CTA, Dynamic, and Standard.3 TikTok recommends enabling Dynamic CTA to let the system select the highest-performing action button per user.4
When Dynamic is selected, a call_to_action_id selector appears for choosing a single dynamic CTA.1 When Standard is selected, a call_to_action_list input appears allowing up to 3 CTA selections.1
Destination fields appear only when a CTA is enabled.1 Two destination types are available: URL and Custom Page, and they are mutually exclusive.1
When URL is selected, the form shows a landing_page_url input, an optional deeplink input, and a deeplink_type selector.1 When Custom Page is selected, the form shows a page_id selector and hides all URL-related fields.1
When Upgraded Smart+ is active, a banner displays this exact text: "Upgraded Smart+ Campaign is enabled. Ads will be generated based on combinations of your videos and ad texts, and the high-performing combinations will be automatically delivered."2
The embedded preview includes: a post toggle, a placement selector, a sub-placement selector, a video timestamp control, carousel-specific toggles, and a safe content zone checkbox.1
The following table summarizes every conditional field dependency in the flow.
| Trigger | Effect |
|---|---|
| CBO ON | Hide ad group budget fields; show campaign budget input.1 |
| CBO OFF + BUDGET_MODE_INFINITE | Hide campaign budget input; show ad group budget fields with no amount required.1 |
| CBO OFF + non-INFINITE mode | Show ad group budget fields with amount required.1 |
| Cost Cap selected | Show bid price input (conversion_bid_price or bid_price depending on goal).1 |
| Cost Cap + lifetime budget | Disable Cost Cap selection.1 |
| Goal = LANDING_PAGE | Only available when Pixel is the event source; hidden for Events API-only setups.15 |
| CBO ON + daily budget + Max Delivery | Show min_budget and max_budget fields.1 |
| identity_type = BC_AUTH_TT | Show BC ID input field.1 |
| URL destination selected | Show deeplink and deeplink_type fields.1 |
| Custom Page destination selected | Show page_id selector; hide landing_page_url, deeplink, and deeplink_type.1 |
| SCHEDULE_FROM_NOW | Only available with daily budget mode.1 |
| CTA = No CTA | Hide all destination fields.1 |
When CBO is on and the user creates a second or subsequent ad group, six fields must be pre-filled with values from the first ad group and locked (non-editable): promotion_type, optimization_goal, optimization_event, billing_event, bid_type, and the bid price field (bid_price or conversion_bid_price).1 The UI should visually indicate that these fields are inherited, such as by graying them out and showing a lock icon.
Required-when conditions: Budget amount is required whenever it is visible.1 Pixel selector is always required on Screen 3.1 Optimization event is required when goal is CONVERT.1
Mutual exclusivity: URL destination and Custom Page destination cannot both be active.1 Spark Ads and non-Spark ads cannot coexist in the same campaign; display a validation message if the user attempts this combination.1
Limits: Maximum 30 ad groups per campaign.1 Maximum 50 total media items across videos, carousels, and posts.1 Maximum 35 images plus 1 music track per carousel.1 Maximum 3 CTAs in Standard mode.1 Maximum 5 ad text inputs.1
Cost Cap restriction: The UI must prevent Cost Cap selection when the budget mode is lifetime (BUDGET_MODE_TOTAL), either by disabling the option or by showing an inline error.1
CBO uniformity violation: If a user attempts to edit a locked field on a non-first ad group while CBO is on, display an inline message explaining that the value must match the first ad group.1
| Element | Copy |
|---|---|
| Videos tooltip | "Select or upload up to 50 Videos"1 |
| Posts tooltip | "Select up to 50 organic Video Posts"1 |
| Carousels tooltip | "Create maximum 50 carousels composed of up to 35 images and 1 music"1 |
| Non-USP audience tooltip | "Not compatible with Smart+ Campaigns"1 |
| Upgraded Smart+ banner | "Upgraded Smart+ Campaign is enabled. Ads will be generated based on combinations of your videos and ad texts, and the high-performing combinations will be automatically delivered."2 |