競合がどんな広告を出しているのか、どんな切り口を試しているのか、どの広告に費用をかけ続けているのか。その答えは Meta 広告ライブラリにありますが、検索ごとに手作業でスクロールするしかありません。Lovely Router がその代わりに読み取ります。広告ライブラリの検索 URL かページの URL を送れば、広告 1 件につき 1 つの JSON オブジェクトが返り、プリペイド残高から広告 1 件ごとに課金されます。スクリプト、週次レポート、AI エージェントのどこからでも、1 つの API キーで呼び出せます。
AI エージェントに任せる
このプロンプトを Claude Code、Cursor、Codex などのコーディングエージェントに貼り付けてください。ドキュメントの場所と API キーの使い方をエージェントに伝えます。
Meta 広告ライブラリで競合の Facebook 広告を調べる. Use the Lovely Router data tools: each returns JSON and is billed per result.
- Docs (read first): https://lovelyrouter.com/docs/tools/find.md and https://lovelyrouter.com/docs/tools/run.md
- Plan first: POST https://lovelyrouter.com/v1/tools/suggest with `{"task": "<my task in plain words>"}` (free). It returns the tools to run in order, each with an example `input`, the `input_required` fields, an estimated cost and a ready-made `run` request. Replace the example values with my task's; if a field is unclear, read the tool with GET https://lovelyrouter.com/v1/tools/<id>. To browse instead, POST https://lovelyrouter.com/v1/tools/discover searches the catalog.
- Show me the plan and its estimated cost (`total_est_cost_usd`) before running anything large.
- Run: POST https://lovelyrouter.com/v1/tools/<id>/run with `{"input": {...}, "max_results": N}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up.
- If you support MCP, connect https://lovelyrouter.com/mcp instead (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.
My task: <the inputs (links, keywords or accounts) and how many results you need>仕組み
検索 URL を作る
広告ライブラリを開き、国と、キーワードまたは競合名を指定して、ブラウザのアドレスをコピーします。ページの URL でも動作します。
上限を付けてツールを実行する
URL を
urlsに入れ、countとmax_resultsを添えてPOST /v1/tools/facebook-ads/runに送ります。実行は最大費用を残高から仮押さえし、広告を JSON で返します。保存して比較する
実行ごとに日付を付けて保存します。新しく現れた広告は新しいテストで、開始日が古いままの広告は出し続けられているものです。
1 回のリクエストで競合の広告を取得する
Facebook 広告ライブラリを検索するツールは、広告ライブラリの検索 URL またはページ URL を urls に受け取ります。count は広告の合計数、limitPerSource は URL ごとの広告数の上限です。
curl https://lovelyrouter.com/v1/tools/facebook-ads/run \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"input": {
"urls": [
{
"url": "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&q=coffee"
}
],
"count": 10
},
"max_results": 10
}'実行は、その URL についてライブラリが表示する広告を返します。60 秒を過ぎても実行中の場合は 202 が返ります。ポーリングの方法はツールを実行するをご覧ください。
広告ごとの内容
| フィールド群 | 取得できる内容 |
|---|---|
| クリエイティブ | 広告のクリエイティブ |
| 広告文 | 広告のテキスト |
| 時期 | 広告の開始日 |
| 広告主 | 広告を出している主体 |
テキストは広告主が使った言語のまま返ります。同じ処理の中で、モデルに翻訳を頼んだり、広告を切り口(価格、社会的証明、緊急性など)でタグ付けしたり、似た広告をまとめたりできます。
レシピ
競合のページ URL を渡して広告を集め、モデルにオファーと切り口でラベル付けしてもらいます。毎月繰り返せば、方針の変化が見えます。
2 回の実行で開始日を比べます。数か月前に始まり、今も掲載されている広告は、おそらく成果が出ています。
ある国でカテゴリ名を検索し、最初の 200 件の広告文を読んで、よく使われる訴求を把握します。
キーワードで 50 件の広告を取得し、広告文とクリエイティブの種類をライターに渡して、誰も使っていない切り口を 3 つ出してもらいます。
検索 URL の country を変えて同じキーワードを実行し、市場によってオファーがどう変わるかを見ます。
普段の言葉で頼みたい場合は、MCP サーバーを接続して Claude Code や Cursor に次のように伝えます。「広告ライブラリから、米国の 'running shoes' の最新広告を 100 件取得し、広告主ごとにまとめて、広告主ごとによく繰り返されるフレーズを 3 つ挙げてください。max_results は 100 に設定してください。」
ほかの広告ソースと組み合わせる
Facebook は競合が広告を出す場所の 1 つにすぎません。ほかも加えましょう。
検索 URL で Meta 広告ライブラリの広告を取得:クリエイティブ、コピー、開始日、広告主。
Google 広告透明性センターに掲載された広告主の広告:形式、テキスト、表示期間、地域。
広告主またはキーワード検索 URL で LinkedIn 広告ライブラリの広告を取得:コピー、形式、日付。
公開 Facebook ページの投稿:本文、リアクション、コメント数・シェア数、メディア。
Instagram アカウントの最近の投稿:キャプション、いいね、コメント数、メディア URL、日付。
google-ads-transparencyは、広告主が Google で出している広告を表示します。linkedin-adsは、LinkedIn の B2B 広告主について同じ用途を担います。facebook-postsは、有料広告と並べて、競合がオーガニックで投稿している内容を表示します。instagram-postsは、競合の Instagram フィードを加えます。
ネットワークをまたいだワークフロー全体については、広告インテリジェンスをご覧ください。
料金
料金は広告 1 件ごとにかかります。実行を開始すると最大費用(呼び出し料金 + 広告単価 × max_results)が仮押さえされ、実際に返った分で精算されて、仮押さえの残りは残高に戻ります。失敗またはタイムアウトした実行は返した広告の分だけを支払い、開始時に拒否された実行は無料です。
毎週 100 件の広告を読み取れば、毎週 100 件分が課金されます。サブスクリプションや月額の最低利用料はなく、$5 からチャージでき、1 つの残高でツールとモデルの両方を支払えます。現在の価格は上のカードに表示されており、料金ではすべてのツールを一覧できます。
よくある質問
広告ライブラリをキーワードで検索できますか?+
はい。広告ライブラリの検索 URL の q の部分にキーワードを入れ、URL で国を選んで、urls に渡します。
広告の件数を制限するには?+
入力の count で合計数、limitPerSource で URL ごとの数を指定し、リクエストの max_results を実行の上限にします。結果はその件数を超えません。
1 社の広告だけを取得できますか?+
その会社の Facebook ページ URL を urls に渡します。このツールは検索 URL とページ URL の両方に対応しています。
Facebook アカウントは必要ですか?+
いいえ。URL と API キーを送るだけです。
サブスクリプションは必要ですか?+
いいえ。プリペイド残高にクレジットを追加し、実行ごとに残高から差し引かれます。失敗した実行は返した広告の分だけを支払い、自動で更新されるものは何もありません。
Facebook 以外も追跡するなら、広告インテリジェンス、ソーシャルリスニング、ツールカタログをご覧ください。