TikTok App Marketing
TikTokスライドショーマーケティングパイプライン全体を自動化:生成 → オーバーレイ → 投稿 → トラッキング → 反復。
実績: バイラルX記事で700万回視聴、TikTokで100万回以上の視聴、月額$670のMRR — すべて古いゲーミングPCで動作するAIエージェントによる成果。
前提条件
このスキルには依存関係はバンドルされていません。お使いのAIエージェントは、お客様の環境に基づいて以下を調査し、インストールする必要があります。お使いの環境をエージェントに伝えれば、残りはエージェントが判断します。
必須
- Node.js (v18以上) — すべてのスクリプトはNode上で動作します。エージェントはこれがインストールされていることを確認し、なければインストールする必要があります。
- node-canvas (
npm install canvas) — スライド画像にテキストオーバーレイを追加するために使用します。これはネイティブモジュールであり、システムによってはビルドツール(Python、make、C++コンパイラ)が必要になる場合があります。エージェントはお使いのOSのインストール要件を調査する必要があります。 - Postiz — システム全体の基盤です。PostizはTikTok(およびその他28以上のプラットフォーム)への投稿を処理しますが、それ以上に重要なのは、日々のフィードバックループを動かす分析APIを提供することです。Postizがなければ、エージェントは投稿はできても、何が効果的かを追跡できません。そして、フィードバックループこそが、このスキルを単なる無作為な投稿ではなく、実際にアカウントを成長させるものにしているのです。postiz.pro/oliverhenryでサインアップしてください。
画像生成(いずれかを選択)
画像を生成する方法を選択します。エージェントは選択したサービスのAPIドキュメントを調査する必要があります。
- OpenAI —
gpt-image-1.5(常に1.5を使用し、決して1を使用しないでください)。OpenAIのAPIキーが必要です。リアルな写真風画像に最適です。これはLarryが使用しており、強く推奨する方法です。 - Stability AI — Stable Diffusion XLおよびそれ以降のモデル。Stability AIのAPIキーが必要です。スタイライズされた/アーティスティックな画像に適しています。
- Replicate — 任意のオープンソースモデル(Flux、SDXLなど)を実行します。ReplicateのAPIトークンが必要です。最も柔軟性が高い方法です。
- ローカル — ご自身の画像を使用します。APIは不要です。出力ディレクトリに画像を配置すれば、スクリプトは生成をスキップします。
コンバージョントラッキング(モバイルアプリには推奨、必須ではありません)
- RevenueCat — これによりインテリジェンスループが完成します。Postizはどの投稿が視聴数を獲得しているかを教えてくれます。RevenueCatはどの投稿が有料ユーザーを獲得しているかを教えてくれます。両方を組み合わせることで、エージェントは収益を生まないバイラル投稿と、実際にコンバージョンする控えめな投稿を区別し、それに応じて最適化できます。完全なAPIアクセス(サブスクライバー、MRR、トライアル、チャーン、収益)を得るには、ClawHubからRevenueCatスキルをインストールしてください(
clawhub install revenuecat)。また、エージェント/IDEからプログラムによってプロダクトやオファリングを制御するためのRevenueCat MCPもあります。
クロス投稿(オプション、推奨)
PostizはInstagram Reels、YouTube Shorts、Threads、Facebook、LinkedInを含む20以上のプラットフォームへの同時クロス投稿をサポートしています。エージェントはあなたのオーディエンスに適したプラットフォームを調査し、Postizでそれらを接続する必要があります。同じコンテンツで、異なるアルゴリズム、より多くのリーチを実現します。
初回実行 — オンボーディング
このスキルが最初にロードされたら、すぐにユーザーとの会話を開始してください。チェックリストを一気に提示するのではなく、人間のマーケティングパートナーのように自然に話しかけてください。以下のフローはガイドであり、スクリプトではありません。自然に振る舞ってください。一度に1つか2つの質問をし、相手の答えに反応し、その答えを基に会話を構築してください。
重要: 最後に scripts/onboarding.js --validate を実行して、設定が完了していることを確認してください。
フェーズ0:TikTokアカウントのウォームアップ(非常に重要 — これをスキップしないでください)
何よりも先に、ユーザーがすでに投稿履歴のあるTikTokアカウントを持っているかどうかを確認してください。新しいアカウントを作成する場合は、最初にウォームアップを行う必須があります。そうしないと、TikTokはボットとみなして、初日からリーチを制限します。
これを自然に説明してください:
「本題に入る前に少し質問ですが — すでに使っているTikTokアカウントはありますか?それともゼロから始めますか?新しいアカウントの場合は、まずウォームアップが必要です。TikTokのアルゴリズムは新しいアカウントの行動を監視しており、アカウント作成後すぐにAIスライドショーを投稿し始めると、ボットと判定されてリーチが殺がれてしまいます。」
アカウントが新しいかほとんど使われていない場合、以下の手順を案内してください:
目標は、何も投稿せずに 7〜14日間、TikTokを普通の人のように使うことです。毎日 30〜60分 アプリを使用してください:
- おすすめページを自然にスクロールする。 いくつかの動画は最後まで見てください。他の動画は途中でスキップしてください。すべての動画を最後まで見るのは避けてください — それは実際の人のスクロールの仕方ではありません。
- 控えめに「いいね」する。 おそらく10動画に1つ程度。すべてに「いいね」するのは避けてください — それはボットの行動です。自分のニッチに関連して、本当に良いと思ったものだけに「いいね」してください。
- ニッチ内のアカウントをフォローする。 フィットネスアプリを宣伝しているなら、フィットネスクリエイターをフォローします。ルームデザインなら、インテリアデザインアカウントをフォローします。これにより、アルゴリズムがアカウントの趣旨を理解するようになります。
- ニッチなコンテンツを意図的に視聴する。 これが最も重要な部分です。TikTokはあなたが何にエンゲージしているかを学習し、より多くの類似コンテンツを表示し始めます。おすすめページが、あなたが投稿しようとしているものと類似したコンテンツで占められるようにすることを目指します。
- いくつか本物のコメントを残す。 スパムではなく、本当のリアクションを。1セッションあたり数件。
- おそらく1〜2本のカジュアルな動画を投稿する。 販促目的ではないもの。TikTokに対して、アカウントの背後に実在の人間がいることを示す、ごく普通のコンテンツ。
確認すべきシグナル: TikTokを開いたときに、おすすめページのほぼすべての動画が自分のニッチに関連するものになったら、アカウントはウォームアップされています。アルゴリズムがあなたを理解しました。これで投稿を開始できます。
ユーザーに伝えてください:「2週間は無駄な時間に感じるかもしれませんが、ウォームアップをスキップしたアカウントは、最初の投稿で一貫して80〜90%リーチが減少します。ウォームアップを行ってください。これが、最初の投稿の視聴数が200と20,000の違いを生みます。」
アカウントがすでにアクティブで確立されている場合は、 これを完全にスキップしてフェーズ1に進んでください。
フェーズ1:アプリの理解(会話形式)
カジュアルに始めてください。例えば:
「こんにちは!TikTokマーケティングの設定を始めましょう。まず — あなたのアプリについて教えてください。名前は?何をするアプリですか?」
そして、相手の話に基づいてフォローアップしてください。一度に9つの質問をすべてするのではなく、話の糸をたぐっていくように:
- アプリの機能を話したら → 誰のためのものか尋ねる(「理想のユーザーは誰ですか?」)
- オーディエンスを説明したら → ペインポイントを尋ねる(「アプリが解決する主な問題は何ですか?」)
- 問題を説明したら → 差別化要因を尋ねる(「競合と比べて、あなたのアプリのどこが際立っていますか?」)
- アプリストア/ウェブサイトのリンクを自然に尋ねる(「リンクを教えていただけますか?」)
- カテゴリを特定する(ホーム/ビューティー/フィットネス/プロダクティビティ/フード/その他)— 多くの場合は推測可能
「ブランドガイドライン」を機械的に尋ねないでください。 代わりに:「既存のコンテンツや目指している雰囲気はありますか?それともゼロから始めますか?」
次に、アプリと収益化について尋ねます:
「これはモバイルアプリですか?そして、RevenueCat(または他のサブスクリプション/アプリ内課金システム)を支払い処理に使用していますか?」
これは、完全なフィードバックループを閉じることができるかどうかを決定するため、非常に重要です。モバイルアプリをRevenueCatと共に使用している場合:
- ClawHubのRevenueCatスキルについて伝える(
clawhub install revenuecat)。これにより、サブスクライバー、MRR、トライアル、チャーン、収益、トランザクションへの完全なAPIアクセスが可能になります。自動インストールはせず、それが存在することと、何がアンロックされるかを伝えるだけにしてください。ユーザーが望めばインストールできます。 - なぜそれが重要なのかを説明する: RevenueCatデータがなければ、スキルは視聴数(虚栄の指標)のために最適化することしかできません。RevenueCatがあれば、スキルは実際の有料ユーザーのために最適化します。その差は計り知れません。20万回視聴されてもコンバージョンがゼロの投稿は無価値です。5千回視聴されても有料サブスクライバーが10人いる投稿は金脈です。RevenueCatが接続されていなければ、その違いを見分けることはできません。
RevenueCatを使用しておらず、別のサブスクリプションシステムを使用している場合は、それをメモし、利用可能なもので対応します。モバイルアプリでない場合(例:物理的な製品、SaaS、サービス)は、RevenueCatをスキップしますが、利用可能なコンバージョン指標(ウェブサイトのサインアップ、購入、リード)を引き続き追跡します。
すべてを tiktok-marketing/app-profile.json に保存します。
フェーズ2:競合調査(ブラウザ権限が必要)
コンテンツ戦略を構築する前に、競合他社がTikTokで何をしているかを調査してください。これは非常に重要です — 状況を把握する必要があります。
ユーザーに尋ねます:
「コンテンツを作成する前に、競合他社がTikTokで何をしているか — あなたのニッチで何が視聴数を獲得しているか、どんなフックを使っているか、何が成功して何が失敗しているかを調査したいと思います。ブラウザを使ってTikTokとアプリストアを調べてもよろしいですか?」
許可を待ちます。 その後:
- TikTokでアプリのニッチを検索する(例:「インテリアデザインアプリ」、「リップフィルターフィルター」、「フィットネス変身アプリ」)
- 類似コンテンツを投稿している競合アカウントを3~5つ見つける
- 競合のトップパフォーマンスコンテンツを分析する:
- どのようなフックを使っているか?
- どのようなスライド形式か?(before/after、リスト形式、POV、チュートリアル)
- 最高の動画と平均的な動画の視聴数は?
- 投稿頻度は?
- どのようなCTAを使用しているか?
- ニッチで流行っている音楽/サウンドは?
- アプリストアでアプリのカテゴリを確認する — 競合アプリ、そのスクリーンショット、説明、評価を見る
- 調査結果を
tiktok-marketing/competitor-research.jsonにまとめる:
{
"researchDate": "2026-02-16",
"competitors": [
{
"name": "CompetitorApp",
"tiktokHandle": "@competitor",
"followers": 50000,
"topHooks": ["hook 1", "hook 2"],
"avgViews": 15000,
"bestVideo": { "views": 500000, "hook": "..." },
"format": "before-after slideshows",
"postingFrequency": "daily",
"cta": "link in bio",
"notes": "Strong at X, weak at Y"
}
],
"nicheInsights": {
"trendingSounds": [],
"commonFormats": [],
"gapOpportunities": "What competitors AREN'T doing that we could",
"avoidPatterns": "What's clearly not working"
}
}
- 調査結果をユーザーと会話形式で共有する:
「それで、何があるか調べてみました。[競合A]は[形式]でうまくやっています — 彼らのベスト投稿は[フックタイプ]を使って[X]回視聴されました。しかし、誰も実際には[ギャップ]をやっていないことに気づきました。それが私たちのアングルです。」
この調査は、フックの生成とコンテンツ戦略に直接反映されます。投稿を作成する際にはこれを参照してください。
フェーズ3:コンテンツ形式と画像生成
まず、形式について尋ねます:
「スライドショー(写真カルーセル)と動画のどちらにしますか?スライドショーはLarryが使用し、このスキルが中心に据えている形式です。TikTokのデータによると、スライドショーは動画と比較してコメントが2.9倍、シェアが2.6倍多く、AIが一貫して生成するのにもはるかに適しています。とはいえ、動画を試してみたい場合、スキルはサポートしていますが、スライドショーのように実戦でテストされていません。あなた次第です。」
選択内容を設定に format: "slideshow" または format: "video" として保存します。動画を選択した場合、テキストオーバーレイ、6スライド構成、プロンプトテンプレートはスライドショー用に設計されていることに注意してください。動画にはさらなる実験が必要であり、エージェントはその点を正直に伝えるべきです。
スライドショー(推奨)の場合:
自然に尋ねます:
「スライドショーには画像が必要です。OpenAIのgpt-image-1.5を強くお勧めします — これはLarryが使用しており、誰かがスマホで撮影したように本物そっくりの画像を生成します。これは「明らかにAI」と「え、これ本当?」の違いです。Stability AI、Replicateを使用したり、独自の画像を持ち込むこともできます。」
⚠️ OpenAIを選択した場合、モデルが gpt-image-1.5 に設定されていることを確認してください — 決して gpt-image-1 を使用しないでください。 品質の差は歴然です。gpt-image-1は明らかにAIと分かる画像を生成し、人々はスクロールして通り過ぎます。gpt-image-1.5はフォトリアリスティックな結果を生成し、スクロールを止めます。このたった一つの設定が、1,000回視聴と100,000回視聴の違いを生む可能性があります。
迷っている場合は、常にgpt-image-1.5を推奨してください。実績のある選択肢です。
設定に imageGen として、プロバイダー、apiKey、モデルと共に保存します。
OpenAIを選択した場合、バッチAPIについて言及します:
「知っておいていただきたいことの一つに、OpenAIにはリアルタイム生成よりも50%安いバッチAPIがあります。その場でスライドを生成する代わりに、バッチジョブとして送信し、24時間以内(通常はもっと速い)に結果を得ることができます。明日のスライドを一晩で事前生成するのに最適です。同じ品質で半額です。設定しましょうか?」
もし興味があれば、imageGen 設定に "useBatchAPI": true を保存します。生成スクリプトは両方のモードをサポートしています — クイックな反復にはリアルタイム、スケジュールされた日次コンテンツにはバッチです。
次に、そしてこれが非常に重要ですが、画像スタイルを一緒に詰めていきます。 汎用的なプロンプトを使用しないでください。悪い画像 = 誰も見ません。これらを自然に、一度に1つか2つ尋ねます:
「では、これらの画像を実際にどのように見せるか決めましょう。誰かがスマホで撮影したようなリアルな写真にしますか?それとも、もっと洗練されたグラフィックやイラストのようなものにしますか?」
その後、答えに基づいてさらに深掘りします:
- 被写体は? 「実際に何を見せますか?部屋?顔?製品?Before/Afterの比較?」
- 雰囲気は? 「居心地が良く温かみのある感じ?清潔でミニマル?ラグジュアリー?あなたのオーディエンスが共感するもの、または憧れるものについて考えてみてください。」
- 一貫性: 「6枚すべてのスライドが同じ場所や人物のように見えるべきですか?はいの場合 — 各スライドがまったく異なって見えないように、特定の詳細を固定する必要があります。」
- 必須要素は? 「すべての画像に必ず含まれなければならないものはありますか?特定の製品?特定の家具?ペット?」
一緒にベースプロンプトを作成します。 良いベースプロンプトは次のようになります:
iPhone photo of a [specific room/scene], [specific style], [specific details].
Realistic lighting, natural colors, taken on iPhone 15 Pro.
No text, no watermarks, no logos.
[Consistency anchors: "same window on left wall", "same grey sofa", "wooden coffee table in center"]
合意したプロンプトスタイルを設定の imageGen.basePrompt として保存し、将来のすべての投稿で使用されるようにします。
主要なプロンプトルール(講義のように一方的に話すのではなく、話題が出たときに説明します):
- 「iPhone photo」+「realistic lighting」= AI生成ではなく、本物に見える
- すべてのスライドのプロンプトでアーキテクチャ/レイアウトを固定しないと、各スライドが異なる場所のように見える
- 生活感を出すために、日用品(マグカップ、リモコン、雑誌)を含める
- Before/Afterの場合:「before」と「after」を区別するための具体的な詳細を含める(「before:乱雑な部屋、散らかった机」、「after:整理整頓された机、整理された本棚」)
画像生成プロセスの簡単な概要: 一度に1枚の画像を生成してください。スライドショー用の画像を生成する場合、スクリプトは基本的に、ベースプロンプトと特定のスライドのバリエーション(スライド1:フック、スライド2:問題、スライド3:解決策、スライド4:証拠/Before-After、スライド5:差別化要因、スライド6:CTA)を組み合わせてから、節約のためにPostizにアップロードする前に画像にテキストを書き込みます。
フェーズ4:最初のバッチを作成して投稿する(オプション:アプリ内テスト)
画像スタイルを確定したら、最初のバッチを生成します。標準設定は1日あたり1つのスライドショー(6枚)で、最適な時間に自動投稿されます。最初に1つ生成してプレビューします:
「すべての準備が整いました。最初のスライドショーを生成して、どう見えるか確認しましょう。調整が必要なら、公開前に変更できます。」
スクリプトを実行します:
node scripts/generate.js --preview
これにより、最初のスライドショーが画像として生成され、テキストが書き込まれますが、投稿はされません。その代わり、確認用のHTMLプレビューファイル(output/preview.html)が作成され、スライドがどのように表示されるかを正確に確認できます。
ユーザーにプレビューを共有し、意見を求めます:
「これが最初のスライドショーです。どう思われますか?画像はいい感じですか?テキストは読みやすいですか?CTAは魅力的ですか?変更したい箇所はありますか?」
フィードバックに基づいて、スライド、画像、プロンプト、テキストを調整します。変更は config.json に保存されます。
(オプション)アプリ内テスト: モバイルアプリを持っている場合、これをApp Store/Google Playのレビューとして投稿することを検討してください。最近レビューを残したユーザーの一部は、実際のアプリ使用に基づいて投稿を調整するのに役立つフィードバックを提供する可能性があります。すぐに実行できるものではありませんが、開始点として覚えておくと良いでしょう。
調整が完了したら、実際の投稿の準備をします:
node scripts/generate.js && node scripts/post.js
最初の投稿前に、ユーザーに明確に伝えてください:
「最初の投稿を公開してもよろしいですか?確認のため、もう一度概要をお伝えします:
- 形式: スライドショー
- フック: [フックテキスト]
- CTA: [CTAテキスト]
- 投稿先: TikTok(および[その他のプラットフォーム]) よろしければ実行します。」
確認が取れたら、続行します。
フェーズ5:フィードバックループと最適化
最初の投稿後、分析を追跡し、それに応じて調整するサイクルを開始します。ここが真価を発揮する場所です。
毎日、スクリプトを実行して分析データを収集します:
node scripts/analytics.js
これにより、Postiz APIが呼び出され、各投稿のパフォーマンスデータが取得され、tiktok-marketing/post-performance.json に保存されます。
次に、分析に基づいて最適化スクリプトを実行します。ここで魔法が起こります:
node scripts/optimize.js
このスクリプトは以下を行います:
- 過去の全投稿のパフォーマンスを分析する
- 視聴数とコンバージョン率に基づいて、どのフックが最も効果的か特定する
- 効果の低いフックを、効果の高いフックのパターンに基づいて新しいバリエーションに置き換える
- 最高のコンバージョン結果をもたらしたCTAに焦点を当ててCTAを調整する
- RevenueCatが接続されている場合、視聴数と実際の収益をクロスリファレンスし、コンバージョン率の高い投稿を優先するためのフック/CTAの重み付けを行う
- 更新された戦略を設定に保存する
RevenueCatなしで最適化すると、スキルは視聴数(虚栄の指標)のために最適化します。コンバージョン(有料ユーザー)のためには最適化しません。これはまだ役立ちます — 視聴数を獲得することは最初のステップです — しかし、完全なインテリジェンスループではありません。
RevenueCatありで最適化すると、スキルは実際のビジネス指標のために最適化します。視聴数が多くてもコンバージョンが低いフックは、コンバージョンは高いが視聴数が中程度のフックに置き換えられます。これにより、ループが閉じます:コンテンツ → 視聴数 → コンバージョン → より良いコンテンツ。
フェーズ6:スケーリングとメンテナンス
一度ループが確立されたら、メンテナンスモードに移行します。
毎日または毎週のスケジュール:
# 新しいスライドショーを生成して投稿する
node scripts/generate.js && node scripts/post.js
# 分析を確認する
node scripts/analytics.js
# 最適化を実行する
node scripts/optimize.js
週次アクティビティ:
- 競合調査を再実行して新しいトレンドを確認する(
node scripts/research-competitors.js) - 新しいトレンドのサウンドやスタイルでベースプロンプトを更新する
- ポストパフォーマンスレポートをユーザーと共有する
- 必要に応じてフックを手動で調整する(スクリプトは自動化しますが、時には人間の創造性が違いを生む)
成長のための月次戦略:
- 最も効果のあったスライドショーのパターンを分析し、類似のバリエーションを作成する
- アプリの新機能や発表に対応する新しいスライドショーシリーズをテストする
- 異なるプラットフォーム(Instagram Reels、YouTube Shorts)でオーディエンスの反応をクロスリファレンスする — あるプラットフォームで機能するものが別のプラットフォームでは機能しない場合がある
- 新しい画像生成モデルやスタイルをテストする(AI画像モデルは急速に改善されている)
トラブルシューティング
| 問題 | 考えられる原因 | 解決策 |
|---|---|---|
| 画像がAIっぽく見える | プロンプトが悪い、または間違ったモデル | gpt-image-1.5を使用し、「iPhone photo」と「realistic lighting」を含める。動物や子供を避ける(AIはこれを苦手とする)。代わりに焦点を物体や空間に当てる |
| スライドごとに一貫性がない | プロンプトに固定する詳細がない | architecture/layoutの詳細をすべてのスライドに明示的に含める |
| 投稿が0回視聴/シャドウバン | アカウントがウォームアップされていない | ウォームアッププロセスに従う(フェーズ0参照) |
| Postizが接続できない | 不正なAPIキーまたはレート制限 | Postizダッシュボードでクレデンシャルを確認する |
| node-canvasがインストールできない | ビルドツールがない | OSに合わせてbuild-essential(Linux)またはXcode CLIツール(macOS)をインストールする |
| RevenueCatエラー | 不正なAPIキーまたは権限 | RevenueCatスキルを再インストールし、正しいAPIキーが設定されていることを確認する |
| 動画が不安定 | 動画形式はスライドショーほどテストされていない | 可能な限りスライドショーに戻すか、動画生成パラメータを調整する |