For the complete publishing workflow (validation, preview, create vs update logic, and troubleshooting), see Publishing Workflow and Publishing Decision Logic.
TikTok-Specific Validation Rules
Before publishing, Whathead validates your campaigns against TikTok’s requirements. These rules are enforced by Whathead’s TikTok adapter (adgroupValidator.ts, campaignValidator.ts, adValidator.ts).
Campaign Validation
| Rule | Requirement | Error if Not Met |
|---|---|---|
| Campaign Name | Must be provided | ”Campaign name is required” |
| Objective | Must be selected | ”Campaign objective is required” |
| Budget | Must be ≥ $20/day if set at campaign level | ”Campaign budget must be at least $20 per day” |
| Ad Groups | Must have at least one ad group | ”Campaign must have at least one ad group” |
Ad Group Validation
| Rule | Requirement | Error if Not Met |
|---|---|---|
| Ad Group Name | Must be provided and ≤ 100 characters | ”Ad group name is required” |
| Targeting | Must have at least one location | ”At least one location is required” |
| Budget | Must be ≥ 10 for STORE/SHOWCASE campaigns) | “Minimum ad group budget is 20” |
| Optimization Goal | Must be compatible with objective | ”Optimization goal ‘[goal]’ is not compatible with objective ‘[objective]‘“ |
| Pixel | Required for CONVERT, VALUE optimization goals | ”Pixel ID is required for conversion-based optimization goals” |
| App ID | Required for APP_PROMOTION campaigns | ”App ID is required for App Promotion campaigns” |
| Parent Campaign | Must be connected to a campaign | ”Campaign ID is required” |
Ad Validation
| Rule | Requirement | Error if Not Met |
|---|---|---|
| Ad Name | Must be provided | ”Ad name is required” |
| Creative | Must have image or video | ”Ad must have creative (image or video)“ |
| Ad Text | Must be provided | ”Ad text is required” |
| Call-to-Action | Must be selected | ”Call-to-action is required” |
| Destination | Must have URL or app destination | ”Ad destination is required” |
| Parent Ad Group | Must be connected to an ad group | ”Ad must be connected to an ad group” |
Creative Validation
| Rule | Requirement | Error if Not Met |
|---|---|---|
| Image Format | JPG or PNG | ”Image must be JPG or PNG format” |
| Image Size | ≤ 10 MB | ”Image file size must be under 10 MB” |
| Image Resolution | ≥ 540 × 960 pixels (9:16) or 1200 × 628 pixels (1.91:1) | “Image resolution must meet minimum requirements” |
| Video Format | MP4, MOV, MPEG, or AVI | ”Video must be MP4, MOV, MPEG, or AVI format” |
| Video Size | ≤ 500 MB | ”Video file size must be under 500 MB” |
| Video Duration | 5-60 seconds (recommended) | Warning only |
| Video Resolution | ≥ 540 × 960 pixels (9:16) or 1280 × 720 pixels (16:9) | “Video resolution must meet minimum requirements” |
TikTok strongly prefers vertical video (9:16 aspect ratio) for optimal user experience. Horizontal videos are supported but may not perform as well.
TikTok-Specific Constraints
Lead Generation Instant Messaging
When usingLEAD_GEN_CLICK_TO_SOCIAL_MEDIA_APP_MESSAGE promotion type:
- Messenger or LINE: Requires
messaging_app_account_id(Facebook Page ID or LINE Business ID) - WhatsApp or Zalo: Requires
phone_full(phone number) - Optimization Goal Restriction: Zalo, LINE, and IM_URL only support CLICK optimization goal (not CONVERSATION)
adgroupValidator.ts before publishing.
App Promotion Campaigns
ForAPP_PROMOTION objective:
- App ID: Required at ad group level (except for iOS14 campaigns where it’s inherited from campaign level)
- Optimization Event: Required when optimization goal is
IN_APP_EVENT - App Promotion Type: Choose between APP_INSTALL, APP_RETARGETING, or APP_PREREGISTRATION
Reach Campaigns
ForREACH objective:
- Frequency: Must be greater than 0 if specified
- Frequency Schedule: Must be greater than 0 if specified
Video Views Campaigns
ForVIDEO_VIEWS objective:
- CPV Video Duration: Must be either ‘TWO_SECONDS’ or ‘SIX_SECONDS’
TikTok Publishing Best Practices
- Use vertical video: TikTok performs best with 9:16 vertical video creative
- Budget for TikTok minimums: Remember TikTok’s $20/day minimum when planning campaigns
- Test Spark Ads: Promote organic TikTok posts for better engagement
- Start with Lowest Cost bidding: Let TikTok’s algorithm optimize before using manual bidding
- Monitor Smart+ campaigns: Consider Smart+ for simplified setup with automated optimization
Troubleshooting TikTok-Specific Issues
Budget automatically increased to $20
Budget automatically increased to $20
Cause: You transferred a campaign from Meta or Snapchat with a budget below $20/day.Resolution: This is expected behavior. TikTok requires a minimum $20/day budget, so Whathead automatically increases budgets during cross-platform transfers. Review and adjust budgets as needed before publishing.
Validation error: Optimization goal not compatible
Validation error: Optimization goal not compatible
Error: “Optimization goal ‘[goal]’ is not compatible with objective ‘[objective]’”Cause: The selected optimization goal is not allowed for your campaign objective.Resolution: Open the ad group and select a compatible optimization goal. Whathead shows only compatible options in the dropdown based on your campaign objective.
Validation error: Pixel ID required
Validation error: Pixel ID required
Error: “Pixel ID is required for conversion-based optimization goals”Cause: You selected a conversion optimization goal (CONVERT, VALUE) without connecting a TikTok Pixel.Resolution:
- Install TikTok Pixel on your website
- Connect the pixel in Whathead’s TikTok integration settings
- Select the pixel in your ad group configuration
Validation error: Messaging app configuration
Validation error: Messaging app configuration
Error: “Facebook Page ID is required for Messenger” or “Phone number is required for WhatsApp”Cause: You selected Instant Messaging promotion type without providing required contact information.Resolution:
- Open the ad group configuration
- Navigate to the Instant Messaging section
- Provide the required Facebook Page ID (for Messenger/LINE) or phone number (for WhatsApp/Zalo)