Back to skills
extension
Category: Content & MediaNo API key required

TikTok Ad Creative Generation

Generate TikTok-native ad creatives using each::sense API - vertical videos, Spark Ads style, trending formats, and UGC aesthetics

personAuthor: jakexiaohubgithub

TikTok Ad Creative Generation

Generate scroll-stopping TikTok ad creatives using the each::sense API. Create native-feeling vertical video content optimized for TikTok's unique format and audience expectations.

Overview

The each::sense API enables you to generate TikTok-optimized ad creatives that blend seamlessly with organic content:

  • TikTok-Native Vertical Video: 9:16 aspect ratio optimized for full-screen mobile experience
  • Spark Ads Style: Authentic, creator-driven aesthetics that feel native to the platform
  • Trending Formats: UGC-style, challenge videos, duets, transitions, and viral hooks
  • Sound-On Design: Visuals designed to complement trending audio and voiceovers
  • Fast Hooks: First-frame impact to capture attention in under 1 second

Quick Start

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Create a TikTok ad video for a skincare brand. UGC style, girl doing her morning routine, showing the product naturally. Vertical 9:16, trendy aesthetic, soft morning light."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

TikTok Ad Formats & Sizes

| Format | Aspect Ratio | Resolution | Duration | Description | |--------|--------------|------------|----------|-------------| | In-Feed Ads | 9:16 | 1080x1920 | 5-60s | Native video ads in For You feed | | TopView | 9:16 | 1080x1920 | 5-60s | First ad users see when opening app | | Spark Ads | 9:16 | 1080x1920 | 5-60s | Boosted organic-style content | | Branded Effects | 9:16 | 1080x1920 | Variable | AR filters and effects | | Collection Ads | 9:16 | 1080x1920 | 5-60s | Shoppable product galleries | | Branded Hashtag | 9:16 | 1080x1920 | Variable | Challenge-based campaigns |

Use Case Examples

1. UGC-Style Product Ad

Generate authentic user-generated content style ads that feel native to TikTok.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Create a UGC-style TikTok ad. A young woman in her bedroom talking directly to camera about her favorite new lip gloss. Natural lighting, casual outfit, authentic vibe. She holds up the product excitedly. Vertical 9:16 format, iPhone selfie camera angle."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

2. Product Showcase with Trending Transition

Create dynamic product reveals using popular TikTok transitions.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "TikTok product showcase video for wireless earbuds. Start with hand covering camera, transition reveal to the earbuds floating with dynamic lighting. Trendy purple and blue gradient background, tech aesthetic. 9:16 vertical, punchy and fast-paced."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

3. Trending Challenge Style

Capitalize on viral challenge formats for maximum engagement.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Create a TikTok challenge-style video for a fitness app. Person doing the popular dance trend but incorporating workout moves. Energetic, fun, gym setting with ring light. Caption space at top. Vertical 9:16, high energy vibe."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

4. Before/After Transformation

Showcase dramatic results with split-screen or transition reveals.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Before and after TikTok ad for a hair styling tool. Left side: messy bedhead hair. Right side: sleek, styled hair. Same person, dramatic transformation. Clean white bathroom background, good lighting. 9:16 vertical split screen style."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

5. Unboxing Experience

Create ASMR-friendly unboxing content that drives curiosity.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "TikTok unboxing video for a luxury subscription box. Hands slowly opening a beautiful pink box, revealing tissue paper, then premium beauty products. ASMR aesthetic, close-up shots, soft overhead lighting. Vertical 9:16, satisfying and aesthetic."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

6. Tutorial Style Ad

Educational content that provides value while showcasing products.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Quick tutorial TikTok ad for a cooking gadget. Hands demonstrating how to use a vegetable spiralizer in 3 easy steps. Bright kitchen, overhead angle, ingredients visible. Text overlay space for step numbers. 9:16 vertical, fast and informative."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

7. POV (Point of View) Format

Immersive first-person perspective that resonates with TikTok audiences.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "POV TikTok ad: you just received your online order. First-person view of hands opening a package, pulling out trendy sneakers, trying them on. Bedroom floor setting, excited energy, millennial aesthetic. Vertical 9:16 format."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

8. Reaction/Review Style

Authentic reaction content that builds trust and relatability.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "TikTok reaction-style ad for a snack brand. Person trying the new flavor for the first time, genuine surprised expression, then excited approval. Casual home setting, ring light, talking to camera. Space for text overlays. 9:16 vertical."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

9. Aesthetic Product Flat Lay

Visually pleasing arrangements perfect for beauty and lifestyle brands.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Aesthetic flat lay TikTok video for a stationery brand. Hands arranging pastel notebooks, pens, and washi tape on a marble desk. Satisfying organization, soft shadows, minimal aesthetic. Stop motion feel. 9:16 vertical format."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

10. Day-in-the-Life Integration

Seamlessly integrate products into lifestyle content.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Day in the life TikTok ad for a coffee brand. Morning routine montage - alarm, stretching, making coffee with the product featured naturally, sipping while checking phone. Cozy apartment, golden hour light, lo-fi aesthetic. 9:16 vertical."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

Using Reference Images

Provide product images or brand references to guide the generation.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Create a TikTok ad featuring this product. UGC style, young creator showing it off in their room. Trendy, authentic, vertical 9:16 format."}],
    "model": "eachsense/beta",
    "stream": true,
    "image_urls": ["https://example.com/product-image.jpg"],
    "mode": "max"
  }'

Best Practices for TikTok Ads

Hook in the First Second

TikTok users scroll fast. Your opening frame must grab attention immediately.

  • Start with movement or action
  • Use bold visuals or unexpected elements
  • Avoid slow intros or logo reveals
  • Lead with the most compelling moment

Native Feel Over Polished Production

TikTok audiences respond better to authentic content than traditional ads.

  • Use natural lighting when possible
  • Embrace imperfection and rawness
  • Mimic creator content, not TV commercials
  • Keep the energy casual and relatable

Sound-On Design

TikTok is a sound-on platform - design visuals that complement audio.

  • Leave space for trending sounds
  • Consider lip-sync moments
  • Use visual cues that match beat drops
  • Design for both sound-on and sound-off viewing

Follow Trends (But Stay Relevant)

Leverage trending formats while maintaining brand relevance.

  • Reference current TikTok trends in prompts
  • Adapt viral formats to your product
  • Keep content timely and fresh
  • Avoid outdated or overused trends

Mobile-First Composition

Design for vertical, full-screen mobile viewing.

  • Keep important elements in the center
  • Leave space for captions and UI elements
  • Use close-ups for product details
  • Ensure text is readable on small screens

Prompt Tips for TikTok Aesthetic

Include These Elements

  • Format: Always specify "9:16 vertical" or "TikTok format"
  • Style: UGC, authentic, native, creator-style, casual
  • Lighting: Natural, ring light, golden hour, soft
  • Setting: Bedroom, bathroom, kitchen, everyday spaces
  • Energy: Fast-paced, punchy, dynamic, engaging
  • Camera angle: Selfie, handheld, POV, overhead

Effective Prompt Structure

[Content type] + [Subject/Action] + [Setting] + [Aesthetic] + [Format] + [Special elements]

Example:

"UGC-style TikTok ad + girl applying skincare + bathroom mirror + clean girl aesthetic + 9:16 vertical + morning light, text overlay space"

Style Keywords That Work

| Category | Keywords | |----------|----------| | Aesthetic | Clean girl, that girl, dark academia, cottagecore, Y2K, minimal | | Energy | Chaotic, chill, energetic, cozy, satisfying, dramatic | | Camera | Selfie angle, overhead, close-up, wide, tracking, shaky | | Lighting | Golden hour, ring light, natural, moody, soft, harsh | | Edit style | Jump cuts, transitions, slow-mo, speed ramp, split screen |

Mode Selection

Max Mode

Use for high-quality ad creatives requiring detailed visuals.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Premium TikTok TopView ad for a luxury perfume. Cinematic close-up of the bottle, light refracting through glass, elegant hands reaching for it. High-end aesthetic, 9:16 vertical."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

Eco Mode

Use for rapid iteration and concept exploration.

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Quick TikTok ad concept for a snack brand. Person snacking while scrolling phone. Casual, relatable. 9:16."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "eco"
  }'

Multi-Turn Iteration with Session ID

Refine your TikTok ad creatives through conversation.

Initial Generation

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Create a TikTok ad for a new energy drink. Young person at the gym, taking a sip, then crushing their workout. High energy, motivational. 9:16 vertical."}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "tiktok-ad-energy-001",
    "mode": "max"
  }'

Iterate on Style

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Make it more UGC style, less polished. Like someone filming themselves with their phone propped up."}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "tiktok-ad-energy-001",
    "mode": "max"
  }'

Adjust for Brand Guidelines

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Add more neon green accents to match our brand colors. Keep the can prominently visible."}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "tiktok-ad-energy-001",
    "mode": "max"
  }'

Error Handling

Rate Limiting

# Implement retry with exponential backoff
for i in 1 2 3; do
  response=$(curl -s -w "\n%{http_code}" -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
    -H "Content-Type: application/json" \
    -H "X-API-Key: $EACHLABS_API_KEY" \
    -H "Accept: text/event-stream" \
    -d '{
      "messages": [{"role": "user", "content": "TikTok ad for a fashion brand, trendy outfit reveal. 9:16 vertical."}],
      "model": "eachsense/beta",
    "stream": true,
      "mode": "max"
    }')

  http_code=$(echo "$response" | tail -n1)

  if [ "$http_code" -eq 200 ]; then
    echo "$response" | head -n -1
    break
  elif [ "$http_code" -eq 429 ]; then
    echo "Rate limited, retrying in $((i * 5)) seconds..."
    sleep $((i * 5))
  else
    echo "Error: HTTP $http_code"
    break
  fi
done

Validation

# Validate required parameters before sending
if [ -z "$EACHLABS_API_KEY" ]; then
  echo "Error: EACHLABS_API_KEY environment variable is not set"
  exit 1
fi

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "TikTok in-feed ad for headphones. 9:16 vertical format."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

Related Skills