TikTok Ad Creative Generation について
each::sense API で TikTok 広告動画のクリエイティブを生成するスキルです。マーケターやブランドのコンテンツチーム向けに、縦型、UGC 風、トレンド形式などの制作例を扱います。
主な機能
- 01TikTok 向け縦型広告の生成
- 02UGC 風とクリエイター風に対応
- 03チャレンジやトランジション形式
- 04参照画像による生成ガイド
- 05Max と Eco モード
活用シーン
- 01UGC 風の商品広告の制作
- 02トランジション付き商品紹介の設計
- 03チャレンジやビフォーアフター動画の生成
- 04開封、チュートリアル、日常広告の制作
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ eachlabs/ skills --skill tiktok-ad-creative-generationインストール後、Claude Code で/tiktok-ad-creative-generationを入力して読み込まれたか確認します。
同梱ファイルreferences/SSE-EVENTS.md
詳細
TikTok 広告クリエイティブの生成
each::sense API を使用して、思わずスクロールを止める TikTok 広告クリエイティブを生成します。TikTok 独自のフォーマットと視聴者の期待に合わせて最適化された、プラットフォームになじむ縦型動画コンテンツを作成できます。
概要
each::sense API を使うと、オーガニックコンテンツに自然になじむ、TikTok 向けに最適化された広告クリエイティブを生成できます。
- TikTok になじむ縦型動画:モバイルの全画面表示に最適化された 9:16 のアスペクト比
- Spark Ads スタイル:プラットフォームになじむ、本物らしいクリエイター主導の表現
- トレンドのフォーマット:UGC スタイル、チャレンジ動画、デュエット、トランジション、バズを生むフック
- サウンドオンを意識した設計:トレンドの音源やナレーションを引き立てるビジュアル
- 素早く引き込むフック:最初のフレームでインパクトを与え、1 秒未満で注目を集めます
クイックスタート
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 広告のフォーマットとサイズ
| フォーマット | アスペクト比 | 解像度 | 長さ | 説明 |
|---|---|---|---|---|
| インフィード広告 | 9:16 | 1080x1920 | 5-60s | For You フィードに表示されるネイティブ動画広告 |
| TopView | 9:16 | 1080x1920 | 5-60s | アプリを開いたときにユーザーが最初に目にする広告 |
| Spark Ads | 9:16 | 1080x1920 | 5-60s | オーガニックコンテンツ風の投稿をプロモーション |
| ブランドエフェクト | 9:16 | 1080x1920 | 可変 | AR フィルターとエフェクト |
| コレクション広告 | 9:16 | 1080x1920 | 5-60s | 購入可能な商品ギャラリー |
| ブランドハッシュタグ | 9:16 | 1080x1920 | 可変 | チャレンジ形式のキャンペーン |
ユースケースの例
1. UGC スタイルの商品広告
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. トレンドのトランジションを使った商品紹介
人気の 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": "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. トレンドのチャレンジ風コンテンツ
バズを生むチャレンジ形式を活用し、エンゲージメントを最大化します。
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. ビフォー/アフターの変化
分割画面やトランジションによる切り替えで、劇的な効果を紹介します。
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. 開封体験
好奇心をかき立てる、ASMR に適した開封コンテンツを作成します。
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. チュートリアル風広告
商品を紹介しながら価値も提供する、教育的なコンテンツです。
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(主観視点)形式
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": "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. リアクション/レビュー風コンテンツ
信頼感と親近感を築く、本物らしいリアクションコンテンツです。
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. 商品を美しく並べた俯瞰ショット
美容・ライフスタイルブランドに最適な、見た目の美しい商品配置です。
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. 日常生活への自然な取り入れ
ライフスタイルコンテンツに商品を自然に取り入れます。
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"
}'
参照画像の使用
商品画像やブランドの参考画像を提供して、生成の参考にします。
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"
}'
TikTok 広告のベストプラクティス
最初の 1 秒で心をつかむ
TikTok のユーザーは素早くスクロールします。冒頭のフレームで、すぐに注目を集める必要があります。
- 動きやアクションから始める
- 大胆なビジュアルや意外性のある要素を使う
- ゆっくりした導入やロゴの表示は避ける
- 最も魅力的な瞬間を冒頭に持ってくる
作り込みよりも自然さを重視する
TikTok の視聴者は、従来型の広告よりも本物らしいコンテンツに好反応を示します。
- 可能であれば自然光を使う
- 完璧でないことや、飾らない表現を受け入れる
- テレビ CM ではなく、クリエイターのコンテンツを参考にする
- 気軽で親しみやすい雰囲気を保つ
サウンドオンを意識した設計
TikTok はサウンドオンが前提のプラットフォームです。音声を引き立てるビジュアルを設計しましょう。
- トレンドの音源を加える余地を残す
- リップシンクを取り入れる
- ビートの切り替わりに合った視覚的な合図を使う
- 音声あり、音声なしのどちらでも視聴できるように設計する
トレンドを取り入れる(ただし関連性を保つ)
ブランドとの関連性を保ちながら、トレンドのフォーマットを活用します。
- プロンプトで現在の TikTok トレンドに言及する
- バズを生んだフォーマットを商品に合わせてアレンジする
- 時宜にかなった新鮮なコンテンツにする
- 古くなったトレンドや使い古されたトレンドは避ける
モバイルファーストの構図
モバイルでの縦型全画面表示を想定して設計します。
- 重要な要素は中央に配置する
- キャプションや UI 要素のためのスペースを空ける
- 商品の細部はクローズアップで見せる
- 小さな画面でもテキストが読めるようにする
TikTok らしい美学のためのプロンプトのヒント
含める要素
- 形式:「9:16 vertical」または「TikTok format」を必ず指定します
- スタイル:UGC、本物らしさ、ネイティブ、クリエイターらしさ、カジュアル
- 照明:自然光、リングライト、ゴールデンアワー、ソフト
- 設定:寝室、バスルーム、キッチン、日常的な空間
- 雰囲気:テンポが速い、パンチがある、ダイナミック、惹きつける
- カメラアングル:自撮り、手持ち、POV、真上から
効果的なプロンプトの構成
[Content type] + [Subject/Action] + [Setting] + [Aesthetic] + [Format] + [Special elements]
例:
"UGC-style TikTok ad + girl applying skincare + bathroom mirror + clean girl aesthetic + 9:16 vertical + morning light, text overlay space"
効果的なスタイルキーワード
| カテゴリ | キーワード |
|---|---|
| 美学 | クリーンガール、あの子、ダークアカデミア、コテージコア、Y2K、ミニマル |
| 雰囲気 | カオス、落ち着いた、エネルギッシュ、居心地のよい、満足感のある、ドラマチック |
| カメラ | 自撮りアングル、真上から、クローズアップ、広角、トラッキング、手ブレ |
| 照明 | ゴールデンアワー、リングライト、自然光、ムーディー、ソフト、強い |
| 編集スタイル | ジャンプカット、トランジション、スローモーション、スピードランプ、画面分割 |
モードの選択
Max モード
詳細なビジュアルが求められる高品質な広告クリエイティブに使用します。
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 モード
迅速な反復とコンセプトの検討に使用します。
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"
}'
セッション ID を使った複数ターンの反復
会話を通じて 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 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"
}'
スタイルを反復調整する
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"
}'
ブランドガイドラインに合わせて調整する
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"
}'
エラー処理
レート制限
# 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
バリデーション
# 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"
}'