Overview
This skill defines exactly what to produce for a TikTok ad. It is platform-spec only: the slots TikTok exposes, the limits per format, the 9:16 safe zone, the CTA enum, and the native-feel rules that decide whether the platform pushes the ad or buries it.
Instructions
Ad Formats Covered
| Format |
What You Produce |
| In-Feed Ad |
Vertical video + caption + display name + CTA — runs in For You feed |
| Spark Ad |
Boosted version of an existing organic post — uses the original creator's account. Caption is inherited and NOT editable in Ads Manager |
| TopView |
First impression a user sees on opening TikTok — premium placement |
| Brand Takeover |
Largely consolidated into TopView since 2023-24 — treat as legacy |
| Branded Effect |
Custom AR effect / filter built via Effect House, ≤5 MB, safety review (5-10 business days) |
| Branded Mission |
UGC challenge — brand briefs creators to make videos |
| Carousel Ads |
2–35 images, swipeable, with caption + CTA. ONE shared CTA across all cards. 9:16 or 1:1, 720×720 min |
| Lead Gen |
In-Feed Ad + native Instant Form, ≤10 questions, privacy URL required |
| TikTok Shop — Video Shopping Ads (VSA) |
9:16, ≤10 min. As of July 2025, GMV Max is the default and only supported campaign type for Shop ads. Product Card pops in bottom — safe zone bottom must be 450px |
| TikTok Shop — LIVE Shopping Ads |
Promote active livestream; ad asset = vertical thumbnail/clip + headline |
| TikTok Shop — Product Shopping Ads (PSA) |
Catalog-driven, product-image-led, no required video. Image: 1:1 or 4:5, ≥600×600. Served on Shop tab + search + For You |
| TikTok Search Ads (GA late 2024) |
Keyword-bid, served on Search Results Page. Spec mirrors In-Feed BUT first frame must mirror the query (on-screen text matching keyword). Min 20 keywords per ad group |
| Pulse Suite (Premiere/Core/Mentions/Tastemakers) |
Contextual placement adjacent to premium content. Standard In-Feed video spec; copy/tone must match the lineup context |
In-Feed Ad — Slots and Limits
| Slot |
Limit |
Notes |
| Caption |
100 chars (incl. CTA) |
Hard cap; overlays bottom-left on video |
| Display name |
2–20 chars |
The advertiser name shown |
| Profile image |
1:1, ≥98×98 px |
Round-cropped on display |
| Video |
9:16, 5–60s (up to 3 min available) |
MP4 or MOV; 540×960 minimum, 1080×1920 recommended |
| CTA button |
Enum |
See CTA section |
| Landing URL |
URL |
Where the click goes |
Video Asset Specs
| Spec |
Value |
Notes |
| Aspect ratio |
9:16 recommended; 1:1 and 16:9 supported but visibly down-weighted in feed |
Use 9:16 unless you have a specific reason |
| Resolution |
≥540×960 (9:16); ≥640×640 (1:1); ≥960×540 (16:9). 1080×1920 production target |
Higher quality preferred |
| File format |
MP4, MOV, MPEG, AVI |
MP4 strongly recommended. GIF dropped. |
| Duration |
5–60s sweet spot, up to 10 minutes allowed |
15–30s outperforms longer |
| File size |
≤500 MB |
Compress without losing motion |
| Bitrate |
≥516 kbps |
Higher recommended |
| Audio |
Required — sound-on platform |
Music + voiceover + captions (all three) |
Safe Zones (9:16 Canvas)
The TikTok UI overlays the bottom and right edges. Critical copy must stay in the safe zone.
| Region |
Use |
| Top 130px |
Mostly safe; status bar overlays first ~80px on some devices |
| Right 270px |
Reserved for Like / Comment / Share / Profile icons — never put copy here |
| Bottom 480px |
Reserved for caption, display name, CTA, and music attribution — never put critical copy here |
| Effective safe zone |
Center, top ~130px to bottom ~480px, left edge to ~810px from left |
CTA Button Enum
- Download
- Shop Now
- Sign Up
- Watch More
- Learn More
- Apply Now
- Book Now
- Contact Us
- Get Quote
- Get Showtimes
- Install Now
- Listen Now
- Order Now
- Play Game
- Read More
- Subscribe
- View Now
- Visit Store
- See Menu
Caption Rules
- 100 chars hard cap including the CTA — every char counts
- Lead with the hook, not the brand
- Specificity wins — "5 mins to set up" beats "easy to use"
- Avoid hashtag spam — 1–3 hashtags max
- Avoid "link in bio" copy — the CTA button is right there
- Use vowel-light shorthand only if it reads natural on TikTok (e.g., "POV:", "tell me you…")
Native-Feel Rules — What Wins on TikTok
- Founder voice or UGC creator > polished studio voice. Selfie-cam outperforms tripod cinematography.
- Hook in first 1–3 seconds. The skip rate is brutal. Visual + text overlay + spoken word must all hit in second 0.
- Sound-on platform but caption everything anyway — accessibility + watch-time signal.
- Show, don't pitch. The product must appear and demonstrate value, not be described.
- Use trending audio when it fits — but only via Spark Ads or with proper licensing. Stolen trending audio = take-down.
- Avoid HD studio polish, drone shots, brand-jingle outro. They scream "ad."
- 1 message per video. Multi-product or multi-feature videos underperform.
- End on action — what to do next must be the last beat.
Spark Ad Rules
Spark Ads boost an existing organic post — either yours or a creator's (with permission). Specs match In-Feed Ad. The advantage: comments, likes, shares accumulate to the original post, building social proof.
- Always seek creator permission via the Branded Content Toggle or paid arrangement before boosting
- Disclose the partnership via the Branded Content Toggle (TikTok's #ad equivalent)
- A Spark Ad pulling 3× the CPM/CTR of a fresh In-Feed Ad is normal — the social proof matters
Branded Mission Rules
Brand briefs creators to produce videos under a campaign tag. The brand pays a fixed pool, creators compete for top performance.
- Brief must be tight: hook idea + product moment + CTA — let creators handle the rest
- Sound-on, vertical, native creator voice — the whole point is creator authenticity
- Hashtag mandatory — the campaign tag is the search index
Policy Constraints (Common Rejections)
- Misleading claims, before/after weight/fitness — auto-disapproval
- Trademark / copyrighted music without licensing — take-down
- Restricted verticals: alcohol, dating, financial, gambling, healthcare, weight loss — region-specific certification
- Personal attribute targeting in copy — Personal Attributes policy
- Shock content, violence, dehumanising language — disapproval + account risk
- Content claiming health benefits without certification — disapproval
- Ads aimed at users under 18 — strict content rules
Output Format
# TikTok Ads — [Product] [Campaign Name]
## Format
[In-Feed / Spark / TopView / Branded Mission / Carousel]
## Landing URL
[URL]
## Caption (≤100 char incl. CTA)
> [Caption text] — [chars]
## Display Name (2–20 char)
[Name] — [chars]
## CTA Button (from enum)
[Selected CTA]
## Video Spec
- Ratio: 9:16
- Duration: [Xs — 15–30s sweet spot]
- Resolution: 1080×1920
- Audio: [music + VO / VO only / native sound]
- Captions: yes (every spoken line)
## Scene Plan
| Time | Scene | Spoken / VO | Text Overlay | Notes |
|------|-------|-------------|--------------|-------|
| 0:00–0:02 | Hook | "[opening line]" | "[overlay]" | First frame must stop scroll |
| 0:02–0:08 | Setup | "[VO]" | "[overlay]" | Problem or context |
| 0:08–0:18 | Reveal | "[VO]" | "[overlay]" | Product / solution moment |
| 0:18–0:25 | Proof | "[VO]" | "[overlay]" | Demo, metric, testimonial |
| 0:25–0:30 | CTA | "[VO]" | "[overlay]" | What to do next |
## Safe Zone Check
- [ ] Critical copy stays out of right-rail (icons) and bottom 480px (caption/CTA area)
- [ ] First frame hook is in center safe zone
## Variant Set
| # | Angle | Hook (first 2s) | Caption | CTA | Aesthetic |
|---|-------|-----------------|---------|-----|-----------|
| 1 | [angle] | "[opening]" | [≤100] | [enum] | [founder POV / UGC / native] |
| 2 | ... | ... | ... | ... | ... |
## Pre-Submit Checklist
- [ ] 9:16 vertical, 1080×1920 minimum
- [ ] Hook in first 1–3 seconds
- [ ] Sound-on with captions
- [ ] Native feel — no studio polish, no jingle outro
- [ ] Caption ≤100 char incl. CTA
- [ ] CTA from enum
- [ ] Safe zone respected
- [ ] Music licensed (or Spark Ad with permissions)
- [ ] No misleading claims, no restricted vertical issues
- [ ] Show, don't pitch
- [ ] One message per video
When NOT to Use This Skill
- Audience setup, custom audiences → out of scope
- Pixel events, conversion tracking → out of scope
- Branded content disclosure rules → covered briefly, full compliance review separate
1---2name: ad-tiktok3description: What to produce for a TikTok ad — In-Feed Ads, Spark Ads, TopView, Branded Effect, and Branded Mission. Encodes the exact slots (caption, display name, CTA), character limits, the 9:16 vertical asset spec, sound-on requirements, the safe-zone map that decides what's visible on phones, and the native-feeling creative rules that decide whether the algorithm pushes or buries. Use whenever the task is producing TikTok ad copy or video briefs. Strictly platform-specific — does not cover audience setup or pixel events.4license: Apache-2.05---67## Overview89This skill defines exactly what to produce for a TikTok ad. It is platform-spec only: the slots TikTok exposes, the limits per format, the 9:16 safe zone, the CTA enum, and the native-feel rules that decide whether the platform pushes the ad or buries it.1011## Instructions1213### Ad Formats Covered1415| Format | What You Produce |16|--------|------------------|17| In-Feed Ad | Vertical video + caption + display name + CTA — runs in For You feed |18| Spark Ad | Boosted version of an existing organic post — uses the original creator's account. Caption is inherited and NOT editable in Ads Manager |19| TopView | First impression a user sees on opening TikTok — premium placement |20| Brand Takeover | Largely consolidated into TopView since 2023-24 — treat as legacy |21| Branded Effect | Custom AR effect / filter built via Effect House, ≤5 MB, safety review (5-10 business days) |22| Branded Mission | UGC challenge — brand briefs creators to make videos |23| Carousel Ads | 2–35 images, swipeable, with caption + CTA. ONE shared CTA across all cards. 9:16 or 1:1, 720×720 min |24| Lead Gen | In-Feed Ad + native Instant Form, ≤10 questions, privacy URL required |25| TikTok Shop — Video Shopping Ads (VSA) | 9:16, ≤10 min. As of July 2025, GMV Max is the default and only supported campaign type for Shop ads. Product Card pops in bottom — safe zone bottom must be 450px |26| TikTok Shop — LIVE Shopping Ads | Promote active livestream; ad asset = vertical thumbnail/clip + headline |27| TikTok Shop — Product Shopping Ads (PSA) | Catalog-driven, product-image-led, no required video. Image: 1:1 or 4:5, ≥600×600. Served on Shop tab + search + For You |28| TikTok Search Ads (GA late 2024) | Keyword-bid, served on Search Results Page. Spec mirrors In-Feed BUT first frame must mirror the query (on-screen text matching keyword). Min 20 keywords per ad group |29| Pulse Suite (Premiere/Core/Mentions/Tastemakers) | Contextual placement adjacent to premium content. Standard In-Feed video spec; copy/tone must match the lineup context |3031### In-Feed Ad — Slots and Limits3233| Slot | Limit | Notes |34|------|-------|-------|35| Caption | 100 chars (incl. CTA) | Hard cap; overlays bottom-left on video |36| Display name | 2–20 chars | The advertiser name shown |37| Profile image | 1:1, ≥98×98 px | Round-cropped on display |38| Video | 9:16, 5–60s (up to 3 min available) | MP4 or MOV; 540×960 minimum, 1080×1920 recommended |39| CTA button | Enum | See CTA section |40| Landing URL | URL | Where the click goes |4142### Video Asset Specs4344| Spec | Value | Notes |45|------|-------|-------|46| Aspect ratio | 9:16 recommended; 1:1 and 16:9 supported but visibly down-weighted in feed | Use 9:16 unless you have a specific reason |47| Resolution | ≥540×960 (9:16); ≥640×640 (1:1); ≥960×540 (16:9). 1080×1920 production target | Higher quality preferred |48| File format | MP4, MOV, MPEG, AVI | MP4 strongly recommended. GIF dropped. |49| Duration | 5–60s sweet spot, up to 10 minutes allowed | 15–30s outperforms longer |50| File size | ≤500 MB | Compress without losing motion |51| Bitrate | ≥516 kbps | Higher recommended |52| Audio | Required — sound-on platform | Music + voiceover + captions (all three) |5354### Safe Zones (9:16 Canvas)5556The TikTok UI overlays the bottom and right edges. Critical copy must stay in the safe zone.5758| Region | Use |59|--------|-----|60| Top 130px | Mostly safe; status bar overlays first ~80px on some devices |61| Right 270px | Reserved for Like / Comment / Share / Profile icons — never put copy here |62| Bottom 480px | Reserved for caption, display name, CTA, and music attribution — never put critical copy here |63| Effective safe zone | Center, top ~130px to bottom ~480px, left edge to ~810px from left | Where headline + product reveal must live |6465### CTA Button Enum6667- Download68- Shop Now69- Sign Up70- Watch More71- Learn More72- Apply Now73- Book Now74- Contact Us75- Get Quote76- Get Showtimes77- Install Now78- Listen Now79- Order Now80- Play Game81- Read More82- Subscribe83- View Now84- Visit Store85- See Menu8687### Caption Rules8889- 100 chars hard cap including the CTA — every char counts90- Lead with the hook, not the brand91- Specificity wins — "5 mins to set up" beats "easy to use"92- Avoid hashtag spam — 1–3 hashtags max93- Avoid "link in bio" copy — the CTA button is right there94- Use vowel-light shorthand only if it reads natural on TikTok (e.g., "POV:", "tell me you…")9596### Native-Feel Rules — What Wins on TikTok9798- Founder voice or UGC creator > polished studio voice. Selfie-cam outperforms tripod cinematography.99- Hook in first 1–3 seconds. The skip rate is brutal. Visual + text overlay + spoken word must all hit in second 0.100- Sound-on platform but caption everything anyway — accessibility + watch-time signal.101- Show, don't pitch. The product must appear and demonstrate value, not be described.102- Use trending audio when it fits — but only via Spark Ads or with proper licensing. Stolen trending audio = take-down.103- Avoid HD studio polish, drone shots, brand-jingle outro. They scream "ad."104- 1 message per video. Multi-product or multi-feature videos underperform.105- End on action — what to do next must be the last beat.106107### Spark Ad Rules108109Spark Ads boost an existing organic post — either yours or a creator's (with permission). Specs match In-Feed Ad. The advantage: comments, likes, shares accumulate to the original post, building social proof.110111- Always seek creator permission via the Branded Content Toggle or paid arrangement before boosting112- Disclose the partnership via the Branded Content Toggle (TikTok's #ad equivalent)113- A Spark Ad pulling 3× the CPM/CTR of a fresh In-Feed Ad is normal — the social proof matters114115### Branded Mission Rules116117Brand briefs creators to produce videos under a campaign tag. The brand pays a fixed pool, creators compete for top performance.118119- Brief must be tight: hook idea + product moment + CTA — let creators handle the rest120- Sound-on, vertical, native creator voice — the whole point is creator authenticity121- Hashtag mandatory — the campaign tag is the search index122123### Policy Constraints (Common Rejections)124125- Misleading claims, before/after weight/fitness — auto-disapproval126- Trademark / copyrighted music without licensing — take-down127- Restricted verticals: alcohol, dating, financial, gambling, healthcare, weight loss — region-specific certification128- Personal attribute targeting in copy — Personal Attributes policy129- Shock content, violence, dehumanising language — disapproval + account risk130- Content claiming health benefits without certification — disapproval131- Ads aimed at users under 18 — strict content rules132133### Output Format134135```markdown136# TikTok Ads — [Product] [Campaign Name]137138## Format139[In-Feed / Spark / TopView / Branded Mission / Carousel]140141## Landing URL142[URL]143144## Caption (≤100 char incl. CTA)145> [Caption text] — [chars]146147## Display Name (2–20 char)148[Name] — [chars]149150## CTA Button (from enum)151[Selected CTA]152153## Video Spec154- Ratio: 9:16155- Duration: [Xs — 15–30s sweet spot]156- Resolution: 1080×1920157- Audio: [music + VO / VO only / native sound]158- Captions: yes (every spoken line)159160## Scene Plan161| Time | Scene | Spoken / VO | Text Overlay | Notes |162|------|-------|-------------|--------------|-------|163| 0:00–0:02 | Hook | "[opening line]" | "[overlay]" | First frame must stop scroll |164| 0:02–0:08 | Setup | "[VO]" | "[overlay]" | Problem or context |165| 0:08–0:18 | Reveal | "[VO]" | "[overlay]" | Product / solution moment |166| 0:18–0:25 | Proof | "[VO]" | "[overlay]" | Demo, metric, testimonial |167| 0:25–0:30 | CTA | "[VO]" | "[overlay]" | What to do next |168169## Safe Zone Check170- [ ] Critical copy stays out of right-rail (icons) and bottom 480px (caption/CTA area)171- [ ] First frame hook is in center safe zone172173## Variant Set174| # | Angle | Hook (first 2s) | Caption | CTA | Aesthetic |175|---|-------|-----------------|---------|-----|-----------|176| 1 | [angle] | "[opening]" | [≤100] | [enum] | [founder POV / UGC / native] |177| 2 | ... | ... | ... | ... | ... |178179## Pre-Submit Checklist180- [ ] 9:16 vertical, 1080×1920 minimum181- [ ] Hook in first 1–3 seconds182- [ ] Sound-on with captions183- [ ] Native feel — no studio polish, no jingle outro184- [ ] Caption ≤100 char incl. CTA185- [ ] CTA from enum186- [ ] Safe zone respected187- [ ] Music licensed (or Spark Ad with permissions)188- [ ] No misleading claims, no restricted vertical issues189- [ ] Show, don't pitch190- [ ] One message per video191```192193## When NOT to Use This Skill194195- Audience setup, custom audiences → out of scope196- Pixel events, conversion tracking → out of scope197- Branded content disclosure rules → covered briefly, full compliance review separate