Codex / Claude Codeへ渡す初期プロンプト
最初から実装を始めさせず、目的、対象、指標、検証順序を先に整理させます。次の例を自社環境に合わせて置き換えてください。
Instagramの競合分析を、公式APIとAIコーディングエージェントで自作したいです。
目的:
- 次に作る動画を決めるため、参考動画候補を継続的に見つける
条件:
- 対象は公開Business / Creatorアカウント
- 候補動画の投稿日は直近30日
- 同じアカウントの直前20投稿の中央値と比較する
- 再生数、フォロワー数、いいね数、コメント数、公開反応率を確認する
- 投稿発見時、24時間、72時間、7日、14日の累計値を保存できる設計にする
進め方:
1. 公式仕様と必要権限を確認する
2. IDとユーザー名だけの最小クエリで取得可否を試す
3. 成功後に投稿URL、形式、日時、再生数、反応数を追加する
4. APIレスポンスと仮説を分けて記録する
5. 取得できない項目やアカウントの理由を推測で断定しない
6. 人間向けページの大量巡回ではなく、公式APIを収集手段にする
まず、実装前に現状確認項目、必要権限、最小テスト、保存設計、画面案を提示してください。
パスワード、アクセストークン、APIキー、認証コードはプロンプトへ貼り付けないでください。権限変更や本番反映を伴う操作は、影響と確認方法を整理してから進めます。
Instagramの競合分析はAIでどこまで自作できるのか
AIは、取得項目の整理、APIテスト、保存設計、比較指標、画面化を一つの流れで進められます。ただし、「競合を分析して」では足りません。「次に作る動画を決めるための参考動画リストを作る」というゴールを先に決めます。
先に結論:公開投稿の収集・比較から、自社向けの企画づくりまでつなげられた
今回の検証では、認証した自社のInstagram Professionalアカウントを起点に、外部の公開Business/Creatorアカウントの投稿情報を取得できました。リール・動画では、投稿ごとの再生数が返るケースも確認できています。
APIでの取得可否と画面表示までは実測済みです。同じアカウントの過去投稿と比べ、見る動画を絞り、構成をAIで整理する流れまで画面と運用フローへ落とし込みました。投稿後の定点保存と、自社投稿の結果を戻す工程は、継続運用で蓄積する設計です。
ただし、公開Personalアカウントや非公開Insightsは対象外です。
まず完成したInstagram競合分析ダッシュボードを見る
完成画面は、投稿列、Account列、Followers列を白塗りにして掲載します。
取得可能な外部アカウントを確認する画面

対象アカウントの一覧では、取得状態、フォロワー数、参考軸、見る理由、最終成功時刻をまとめます。
「取得可能」と「取得不能」を分け、失敗理由をAIの推測だけで決めません。
同じアカウントの普段より伸びた投稿を探す画面

投稿一覧では、投稿日、形式、再生数、公開反応率、画面上の「アカウント内伸長」、再生数÷フォロワー数を確認します。画面上のアカウント内伸長は、取得時点の累計再生数を同じアカウントの比較対象中央値で割った暫定指標です。後述する「投稿後72時間の再生リフト」とは分けて扱います。公開反応率、アカウント内伸長、再生数÷フォロワー数はAPIの返却値ではなく計算指標です。
大切なのは、フォロワーが多いアカウントの大きな数字をそのまま上位にしないことです。同じアカウント内の通常値と比べることで、規模の違うアカウントからも参考投稿を探しやすくなります。
数値・参考軸・注意点をまとめて確認する
画面には数値だけでなく、テーマなどの参考軸と、競合性に関する注意点も並べました。
AIでInstagram競合分析を自作した全体フロー
進め方は、次の流れです。
- 次に作る動画を決めるという目的を定義する
- 対象アカウントと必要な指標を決める
- Instagram公式APIで取得できる項目を小さく検証する
- 公開投稿を定期取得し、時点ごとの累計値を保存する
- 同一アカウント内の通常値と比較する
- 参考候補を少数に絞り、AIで企画へ変換する
今回は3のAPI実測と画面化まで確認しました。4以降の定点保存と企画への反映は、継続運用の設計です。
Codex / Claude Codeへ最初に渡した情報
次に作る動画を決めるというゴール
最初に伝えたのは、自社の次の動画を決めるため、参考候補を継続的に見つけたいというゴールです。
分析するアカウント・期間・指標
次に、監視したいアカウント、候補動画の投稿日を直近30日とすること、通常値の比較には直前20投稿を使うこと、投稿後72時間を一つの比較時点にすることなどを渡しました。
指標は、再生数、フォロワー数、反応数、公開反応率、同一アカウント内の伸びです。取れない指標が分かったら、名前と計算式を修正します。
一度に実装せず、調査・設計・検証を順番に進める指示
AIには、公式仕様、認証元、最小クエリ、複数アカウントでの実測、保存設計、画面化の順で進めるように指示しました。最小テストではIDとユーザー名だけを求め、成功後に投稿URL、形式、日時、再生数、いいね数、コメント数を足します。APIレスポンスと仮説も分けて記録します。
データ収集の手段としてInstagram公式APIを使った
Business Discoveryなら人間向けページを巡回せずに取得できる
Instagram Graph APIのBusiness Discoveryを使いました。読み取りテストの権限はpages_show_list、instagram_basic、instagram_manage_insights、pages_read_engagementです。投稿、DM、広告管理の権限は追加していません。
今回の実測は2026年7月22日時点のGraph API Explorerによる開発検証です。継続運用では、App Review、必要に応じたBusiness Verification、トークン管理、利用時点のAPIバージョンとフィールド仕様の確認を別工程で行います。
Metaの公式資料では、Facebook Loginを使う構成でBusiness/Creatorの基本データや指標を取得でき、Consumerアカウントにはアクセスできないと説明されています。実装時はMeta公式Instagram APIドキュメントの最新版を確認してください。
自社Insightsを保存する流れは、次の記事で紹介しています。今回は外部Professionalアカウントが対象です。
対象は公開Professionalアカウント
対象は公開Business/Creatorアカウントです。公開Personalアカウントは同じ方法の対象外です。
公開Professionalアカウントでも失敗例があったため、ユーザー名ごとに最小クエリで確かめます。
リール・動画では投稿ごとの再生数が返る場合がある
実測では、VIDEO形式の投稿で再生数が返るケースを確認しました。投稿URL、投稿日、メディア種別、いいね数、コメント数なども比較表へ使えます。
返却条件はAPIバージョンや形式に依存するため、「すべてのリールで必ず取れる」とはせず、レスポンスを確認します。
画像・カルーセルは取得できるが、表示回数は取れない
画像やカルーセル自体は取得でき、投稿ID、URL、日時、形式、反応数などを確認しました。
一方、表示回数やリーチは取得できませんでした。「画像投稿を取得できない」のではなく、「画像投稿の表示実績を取れない」という違いです。
外部投稿のリーチ・保存数・シェア数は取得できない
外部の公開投稿と、自社・許諾アカウントのInsightsは別物です。外部投稿のリーチ、保存数、シェア数は取得できません。
公開情報でも、自由にブラウザで自動収集できるわけではありません。MetaのAutomated Data Collection Termsでは、明示的に許可されていない自動収集に事前の許可を求めています。そこで定量データは公式APIから集め、Computer Useで投稿ページを大量巡回する方法は採用しませんでした。
AIとの自作でつまずき、進め方を変えたこと
Computer UseでMeta画面を進めたところ制限を受け、その操作方法をやめた
認証準備では、Computer Useを使ってMetaの管理画面を進める方法も試しました。その途中で新規事業用アセットに自動制限が発生したため、画面を自動で進める方法はそこでやめました。
原因をComputer Useだとは断定できません。解除を狙って操作を繰り返さず、以後のデータ取得は公式OAuthと公式APIの範囲で進めました。
管理ページが0件になり、OAuthの対象を選び直した
最初のトークンでは、管理ページが0件になりました。権限名を選んでいても、OAuthで対象アセットが許可されているとは限りません。
対象を明示的に選び直してトークンを再発行すると、意図した認証元を確認できました。APIを組む前に、アプリ、Facebookページ、Instagram Professionalアカウント、OAuthの選択を確かめます。
取得できないアカウントの理由を推測で断定しなかった
複数の公開アカウントを試すと、同じクエリでも成功と失敗が分かれました。失敗例は、IDとユーザー名だけの最小構成でもエラーになりました。
レスポンスだけでは原因を確定できないため、「取得不能」と記録し、AIが作ったもっともらしい理由を事実として表示しません。
「再生数順」ではなく「普段より伸びたか」で比較する
現在累計の暫定伸長と、同一経過時間の再生リフトを分ける
フォロワー数が30万人のアカウントと2万人のアカウントを、再生数だけで比べると、大規模アカウントばかりが上位になりがちです。
完成画面では、取得時点の累計再生数を、同じアカウントの比較対象投稿の中央値で割った「アカウント内伸長」を暫定値として表示しています。投稿からの経過時間がそろっていないため、候補発見には使えても厳密な成果比較ではありません。
継続運用では、対象動画の投稿後72時間再生数を、同じアカウントの直前20投稿における同一経過時間の中央値で割る「72時間再生リフト」を別に計算します。これは各投稿を前向きに定点保存し、十分な比較データがたまってから表示する指標です。普段の2倍、5倍と伸びた投稿なら、アカウント規模が違っても異変を見つけやすくなります。
投稿発見時・24時間・72時間・7日・14日で累計値を保存する
APIから得られる再生数は、取得時点の累計値です。今日初めて見つけた過去投稿について、投稿24時間後の再生数を後から復元することはできません。
投稿発見時、投稿後24時間付近、72時間付近、7日、14日に保存します。発見前の時点には戻れないため、初回取得した過去投稿は「現在の累計」として見せ、72時間ランキングには混ぜません。
保存数やシェア数を含まない指標は「公開反応率」と呼ぶ
外部投稿について計算できる反応率は、次の式です。
公開反応率 =(いいね数 + コメント数)÷ 再生数 × 100
この式は再生数が返る動画に限って使います。再生数が0または未返却の場合は0%にせず、算出不能として扱います。保存数やシェア数を含まないため、一般的な意味のエンゲージメント率とは分けました。ダッシュボードの指標名に、データの限界を残すためです。
参考動画をAIで自社向け企画へ変える
APIで多数の投稿から候補を絞る
APIと比較指標の役割は、見るべき候補を減らすことです。投稿日、再生リフト、再生数÷フォロワー数、公開反応率、テーマタグで並べ替えます。
実際に確認する動画を少数に絞る
数値上位の10〜20本から、実際に見る動画を5本程度へ絞ります。自社の商品、顧客、ブランドトーンから離れすぎた動画は、再生数が大きくても参考候補から外します。
AIでフック・構成・訴求を分解する
絞った動画の冒頭0〜3秒、問題提起、解決策、商品登場、テロップ、カット、CTAを整理します。
動画を渡せない場合も、文字起こしや観察メモで共通する型を比較できます。
表現をコピーせず、構造だけを自社向けに組み直す
参考にするのは、出演者の言葉や映像をそのまま複製することではありません。「悩みを冒頭で見せる」「結果を先に出す」「三つの手順で説明する」といった構造や訴求原理を抽出します。
自社の商品特性、顧客の悩み、撮影素材に合わせ、企画、台本、撮影指示へ組み直します。
自社投稿の結果を次の企画へ反映する
継続運用では、自社投稿の再生数、保存数、シェア数、プロフィール遷移を振り返り、次の候補選定へ戻します。
まとめ:AIで参考動画探しを軽くし、自社のInstagram企画につなげる
AIでInstagram競合分析を自作するとき、最初に決めるのはAPIではなく、「次に作る動画を決める」というゴールです。
- CodexやClaude Codeには、対象、期間、指標、検証順序を具体的に渡す
- データ収集にはInstagram公式APIを使い、人間向けページの大量巡回はしない
- 再生数の大きさではなく、同一アカウントの普段に対する伸びで比べる
- 取得できない指標やアカウントの理由を、AIの推測で埋めない
- 候補を少数に絞り、表現ではなく構造を自社向け企画へ変える
APIは競合分析の目的ではなく、AIで参考動画探しを継続するための収集手段です。何を集めるかより、集めたデータから次の企画をどう決めるかまで設計すると、実務で使えるダッシュボードになります。
