Contents
API-driven advertiser guide for TikTok Smart+ Web Campaigns
TikTok's Upgraded Smart+ Web Conversions API replaced the legacy Smart+ Campaign Creation API, splitting campaign setup into three separate endpoints for campaigns, ad groups, and ads.1 The objective code is WEB_CONVERSIONS, which targets website events such as purchases and signups.1 All Smart+ Web campaigns bill on OCPM (Optimized Cost Per Mille).3
Before creating a campaign, advertisers need a TikTok Pixel installed on their website or an Events API integration — TikTok recommends running both simultaneously with deduplication enabled.35 Events API sends server-side event data, which supplements the browser-based Pixel and improves signal reliability when browsers block third-party cookies.5
Advertisers must have API access to the v1.3 Smart+ endpoints; the three calls are POST /v1.3/smart_plus/campaign/create/, POST /v1.3/smart_plus/adgroup/create/, and POST /v1.3/smart_plus/ad/create/.1 Before making the first API call, prepare the following: advertiser account ID, Pixel ID (or Events API access token), at least one video or carousel creative asset, ad text copy (up to 5 variations), and a destination URL.13
The Upgraded API supports up to 30 ad groups per campaign, up from the single ad group allowed in the legacy version.12 Advertisers choose between Campaign Budget Optimization (CBO), where TikTok distributes spend across ad groups automatically, and per-ad-group budgets, where each ad group has its own daily or lifetime allocation.1
CBO works well when ad groups target overlapping audiences and the advertiser wants TikTok to shift spend toward whichever ad group performs best. Per-ad-group budgets give direct control — useful when each ad group targets a distinct audience segment or geographic region and the advertiser needs guaranteed minimum spend on each.34
Three optimization goals are available for WEB_CONVERSIONS campaigns.1
CONVERT optimizes toward a specific website event, such as a purchase or signup. TikTok's algorithm bids to maximize the number of those events within the budget. This is the standard choice for direct-response advertisers with enough conversion volume to exit the learning phase.3
LANDING_PAGE optimizes toward landing page views and requires the TikTok Pixel (Events API alone is not sufficient for this goal). It suits upper-funnel campaigns where the advertiser wants website traffic but lacks sufficient conversion data to run CONVERT effectively.3
CLICK optimizes for link clicks without requiring any Pixel event. It delivers the highest volume of outbound clicks but provides no downstream signal optimization.13
TikTok recommends setting the daily budget to at least 10 times the historical CPA, with 30 times as the preferred starting point.4 For example, an advertiser with a $15 CPA should start at $150/day minimum and ideally $450/day.4
Two bid strategies are available: Max Delivery and Cost Cap.1 Max Delivery spends the full budget as efficiently as possible with no per-conversion cost target. Cost Cap sets a target CPA and attempts to deliver conversions at or below that amount, but it only works with daily budgets — lifetime budgets do not support Cost Cap.13
If the campaign is spending 90% or more of its daily budget consistently, increasing the budget by up to 30% can unlock additional volume without destabilizing optimization.4
Smart+ Web campaigns offer two targeting modes: automatic and manual.13
In automatic targeting, TikTok's algorithm selects the audience. Advertisers can layer on two types of constraints. "Audience Controls" are hard filters — the algorithm will never deliver outside these parameters (e.g., country, minimum age). "Audience Suggestions" are soft hints — the algorithm may use them as starting signals but can expand beyond them.3
Manual targeting gives full control over demographics, interests, behaviors, and custom audiences. It is better suited for advertisers who have well-tested audience definitions from prior campaigns or who need strict audience segmentation for compliance or brand-safety reasons.34
Each ad supports up to 50 creative assets.1 Accepted formats are video, carousel (up to 35 images plus 1 music track), and existing TikTok posts (Spark Ads).1 Spark Ads and non-Spark Ads cannot be mixed within the same campaign.1
Advertisers can provide up to 5 ad text variations and 3 call-to-action options per ad.1 TikTok rotates combinations of creative, text, and CTA to find the best-performing mix. Uploading more variations gives the algorithm more room to optimize, but each variation should be meaningfully different — slight wording changes provide minimal signal.4
For carousel ads, the limit is 35 images and 1 music file per carousel unit.1 Video remains the primary format on TikTok; carousel is available but receives less inventory.3
After launch, TikTok enters a 7-day learning phase during which the algorithm calibrates delivery.4 Advertisers should avoid editing the campaign, ad group, or ad during this window — changes reset the learning phase and delay optimization.4
After the learning phase ends, bid adjustments should not exceed 15% of the current bid, and changes should be spaced at least 2 days apart.4 Larger or more frequent changes force the algorithm back into learning.
Viewthrough attribution credits conversions to users who saw but did not click an ad. Toggling viewthrough attribution off may increase delivery volume if the campaign is not exhausting its daily budget, because it narrows the conversion signal and can cause the algorithm to bid more aggressively for click-based conversions.4
Running both the TikTok Pixel and Events API together provides redundant conversion tracking — the Pixel fires client-side and the Events API fires server-side.5 When both fire for the same event, TikTok deduplicates using the event_id field.5 Both the Pixel event and the corresponding Events API call must send the same event_id value within a 48-hour window for deduplication to work.5
Without deduplication, the same conversion appears twice in reporting and the algorithm optimizes on inflated signals. Without both sources, conversions may be undercounted when browsers suppress the Pixel or when server-side calls fail.5
Do:
event_id values before launching.5Don't:
TikTok's Upgraded Smart+ Web Conversions API replaced the legacy Smart+ Campaign Creation API, splitting campaign setup into three separate endpoints for campaigns, ad groups, and ads.1 The objective code is WEB_CONVERSIONS, which targets website events such as purchases and signups.1 All Smart+ Web campaigns bill on OCPM (Optimized Cost Per Mille).3
Before creating a campaign, advertisers need a TikTok Pixel installed on their website or an Events API integration — TikTok recommends running both simultaneously with deduplication enabled.35 Events API sends server-side event data, which supplements the browser-based Pixel and improves signal reliability when browsers block third-party cookies.5
Advertisers must have API access to the v1.3 Smart+ endpoints; the three calls are POST /v1.3/smart_plus/campaign/create/, POST /v1.3/smart_plus/adgroup/create/, and POST /v1.3/smart_plus/ad/create/.1 Before making the first API call, prepare the following: advertiser account ID, Pixel ID (or Events API access token), at least one video or carousel creative asset, ad text copy (up to 5 variations), and a destination URL.13
The Upgraded API supports up to 30 ad groups per campaign, up from the single ad group allowed in the legacy version.12 Advertisers choose between Campaign Budget Optimization (CBO), where TikTok distributes spend across ad groups automatically, and per-ad-group budgets, where each ad group has its own daily or lifetime allocation.1
CBO works well when ad groups target overlapping audiences and the advertiser wants TikTok to shift spend toward whichever ad group performs best. Per-ad-group budgets give direct control — useful when each ad group targets a distinct audience segment or geographic region and the advertiser needs guaranteed minimum spend on each.34
Three optimization goals are available for WEB_CONVERSIONS campaigns.1
CONVERT optimizes toward a specific website event, such as a purchase or signup. TikTok's algorithm bids to maximize the number of those events within the budget. This is the standard choice for direct-response advertisers with enough conversion volume to exit the learning phase.3
LANDING_PAGE optimizes toward landing page views and requires the TikTok Pixel (Events API alone is not sufficient for this goal). It suits upper-funnel campaigns where the advertiser wants website traffic but lacks sufficient conversion data to run CONVERT effectively.3
CLICK optimizes for link clicks without requiring any Pixel event. It delivers the highest volume of outbound clicks but provides no downstream signal optimization.13
TikTok recommends setting the daily budget to at least 10 times the historical CPA, with 30 times as the preferred starting point.4 For example, an advertiser with a $15 CPA should start at $150/day minimum and ideally $450/day.4
Two bid strategies are available: Max Delivery and Cost Cap.1 Max Delivery spends the full budget as efficiently as possible with no per-conversion cost target. Cost Cap sets a target CPA and attempts to deliver conversions at or below that amount, but it only works with daily budgets — lifetime budgets do not support Cost Cap.13
If the campaign is spending 90% or more of its daily budget consistently, increasing the budget by up to 30% can unlock additional volume without destabilizing optimization.4
Smart+ Web campaigns offer two targeting modes: automatic and manual.13
In automatic targeting, TikTok's algorithm selects the audience. Advertisers can layer on two types of constraints. "Audience Controls" are hard filters — the algorithm will never deliver outside these parameters (e.g., country, minimum age). "Audience Suggestions" are soft hints — the algorithm may use them as starting signals but can expand beyond them.3
Manual targeting gives full control over demographics, interests, behaviors, and custom audiences. It is better suited for advertisers who have well-tested audience definitions from prior campaigns or who need strict audience segmentation for compliance or brand-safety reasons.34
Each ad supports up to 50 creative assets.1 Accepted formats are video, carousel (up to 35 images plus 1 music track), and existing TikTok posts (Spark Ads).1 Spark Ads and non-Spark Ads cannot be mixed within the same campaign.1
Advertisers can provide up to 5 ad text variations and 3 call-to-action options per ad.1 TikTok rotates combinations of creative, text, and CTA to find the best-performing mix. Uploading more variations gives the algorithm more room to optimize, but each variation should be meaningfully different — slight wording changes provide minimal signal.4
For carousel ads, the limit is 35 images and 1 music file per carousel unit.1 Video remains the primary format on TikTok; carousel is available but receives less inventory.3
After launch, TikTok enters a 7-day learning phase during which the algorithm calibrates delivery.4 Advertisers should avoid editing the campaign, ad group, or ad during this window — changes reset the learning phase and delay optimization.4
After the learning phase ends, bid adjustments should not exceed 15% of the current bid, and changes should be spaced at least 2 days apart.4 Larger or more frequent changes force the algorithm back into learning.
Viewthrough attribution credits conversions to users who saw but did not click an ad. Toggling viewthrough attribution off may increase delivery volume if the campaign is not exhausting its daily budget, because it narrows the conversion signal and can cause the algorithm to bid more aggressively for click-based conversions.4
Running both the TikTok Pixel and Events API together provides redundant conversion tracking — the Pixel fires client-side and the Events API fires server-side.5 When both fire for the same event, TikTok deduplicates using the event_id field.5 Both the Pixel event and the corresponding Events API call must send the same event_id value within a 48-hour window for deduplication to work.5
Without deduplication, the same conversion appears twice in reporting and the algorithm optimizes on inflated signals. Without both sources, conversions may be undercounted when browsers suppress the Pixel or when server-side calls fail.5
Do:
event_id values before launching.5Don't: