資料には具体的なスキルの内容や手順が記載されていないため、用途や得られる結果を特定できません。
- 用途を確認したいとき
- 入力や手順を確認したいとき
- 期待する結果を確認したいとき
Meta、TikTok、Google、LinkedInの広告ライブラリを調べ、競合広告の訴求や形式、遷移先を整理します。見えている情報を根拠に、広告の傾向や差別化の切り口を検討できます。
Scrape competitor ads from Meta, TikTok, Google, and LinkedIn ad libraries, analyze creative patterns (hooks, formats, CTAs), reverse-engineer landing page funnels, and produce a strategic teardown with vulnerability analysis and counter-play recommendations. Use when you need to understand the competitive ad landscape, find new creative directions, or identify weaknesses in a competitor's paid strategy.
実行スコア 未検証
インストール方法を見るMeta、TikTok、Google、LinkedInの広告ライブラリから競合広告を集め、見出しや冒頭の訴求、画像・動画などの形式、CTA、掲載先を整理します。広告からランディングページまでをたどり、ページの見出しや申込導線、社会的証明などを確認して、広告とのメッセージの一致度やキャンペーンの構成を分析します。複数社の訴求の偏り、使われていない切り口、広告戦略上の弱点をまとめ、試す候補となる対抗案も提案します。
新しい広告を出す前に市場の見え方を確認したいときや、競合の訴求・広告形式を比べたいときに役立ちます。自社の広告案を考える材料がほしい担当者や、競合の広告から遷移先まで一続きで把握したい人に向いています。調査結果では、公開ライブラリで確認できる情報と推測を区別します。
広告収集にはscrapecreators-apiなどの外部手段を使い、動画の分析にはtranscript-intelligence、ページ確認にはweb_searchやfetch_webpageなどを使う場合があります。利用可能なAPIや接続環境により調査範囲は変わります。広告の掲載期間や件数は成果、予算、因果関係の証明ではありません。Google広告をワークスペースに保存する場合は、広告主の確認と明示的な上限設定が必要です。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Scrape competitor ads from Meta, TikTok, Google, and LinkedIn, analyze creative patterns, reverse-engineer landing page funnels, and produce a full strategic teardown — hooks, formats, positioning bets, vulnerabilities, and counter-plays.
Core principle: A competitor's ad portfolio is evidence about its growth strategy, not access to its results. Long-running ads suggest sustained use. New ads suggest active testing. Landing pages reveal positioning bets. Use these signals to form differentiated tests without claiming conversion, spend, or causality the libraries do not expose.
Gather from the user:
apollo.io, clay.run)For each competitor domain, scrape ads from Meta Ad Library.
Use scrapecreators-api as the primary collection path. Resolve the advertiser first, then fetch its ads and individual ad details:
- provider: scrapecreators
method: GET
path: /v1/facebook/adLibrary/search/companies
query:
query: "[competitor_name]"
- provider: scrapecreators
method: GET
path: /v1/facebook/adLibrary/company/ads
query:
companyName: "[competitor_name]"
- provider: scrapecreators
method: GET
path: /v1/facebook/adLibrary/ad
query:
id: "[ad_id]"
If the structured endpoint cannot resolve an advertiser, verify the name in the public Meta Ad Library and use web search as a documented fallback. Keep the library URL and ad ID with every result.
Collect per ad:
transcript-intelligence to extract hooks, claims, proof, objections, and CTA structureFor each competitor or category, use scrapecreators-api to resolve the current TikTok Ad Library search and ad-detail operations from the official provider reference.
Collect the advertiser, ad ID, caption or script, format, landing page, first-seen date, market, and available performance or reach indicators. Keep organic TikTok posts separate from paid-library ads.
Use transcript-intelligence when the ad includes spoken content. Analyze TikTok-native mechanics such as creator-led openings, product demonstrations, comment-style hooks, native captions, sounds, offer timing, and the first visible payoff.
For each competitor domain, scrape ads from Google Ads Transparency Center.
When the user wants saved research and the connected app exposes ads_library_scrape, use the durable import path. First identify the exact public advertiser URL/AR ID and the existing brand competitor ID. Ask the user to confirm that advertiser belongs to the selected competitor and approve the ad, request and provider USD limits. Do not infer that confirmation from a name or the first discovery result.
{
"tool": "ads_library_scrape",
"arguments": {
"brand_id": "<active brand UUID>",
"library_provider": "google",
"advertiser_id": "AR01614014350098432001",
"relationship": "competitor",
"competitor_id": "<existing competitor UUID in this brand>",
"name": "<confirmed advertiser label>",
"confirmed": true,
"max_ads": 10,
"max_provider_requests": 11,
"max_spend_usd": 0.10,
"refresh": false
}
}
max_ads accepts 1–25; max_provider_requests accepts 1–26 and includes the listing; max_spend_usd must be positive and at most 5. The USD cap uses the app's configured provider tariff; imports use managed workspace credits. The example limits are examples, not permission to spend. An exact advertiser URL can replace advertiser_id using ad_library_url.
Poll the returned stable source_id using job_get { "kind": "library_scrape", "brand_id": "<same brand UUID>", "job_id": "<source_id>" }. Read the saved entries, canonical Google creative citations, added/changed/unchanged/failed counts and actual/null cost receipts from result. Report queued/running/partial/empty/failed states honestly. A saved source can be imported again with source_id; refresh:true incurs detail requests and needs fresh explicit limits/confirmation. Complete saved details are reused otherwise. Research is reference-only: no activation, remix rights, guaranteed downloadable videos or approved claims.
Unconfirmed discovery stays separate. Browse the public library to select an advertiser; generic provider results are temporary until this confirmed import succeeds. If the live app does not expose the Google fields, report that limitation and retain cited temporary research rather than claiming it was saved. The generic data_call_provider operation, does not persist a Google source.
Use the structured advertiser endpoints for temporary research only after any required paid-call approval. This path alone does not save entries in the brand:
- provider: scrapecreators
method: GET
path: /v1/google/company/ads
query:
domain: "[competitor_domain]"
get_ad_details: true
- provider: scrapecreators
method: GET
path: /v1/google/ad
query:
url: "[adUrl returned by the advertiser listing]"
Pass the full public Google creative URL to the detail endpoint; a creative ID alone is not its input. See the official detail contract.
Use the public Google Ads Transparency Center or web search only when the structured endpoint is incomplete. Mark fallback records so coverage limits remain visible.
Collect per ad:
For each relevant competitor, use scrapecreators-api to resolve the current LinkedIn Ad Library search and ad-detail operations from the official provider reference.
Collect the advertiser, ad copy, creative format, CTA, landing page, dates, and visible targeting or company context. Keep organic company posts separate from paid-library ads.
LinkedIn is optional for consumer brands. Include it when the competitor sells high-consideration products, wholesale or retail partnerships, franchises, professional education, recruiting, or another business-facing offer.
After collecting all ads, perform structured analysis.
Group all ad headlines/openers by hook type:
| Hook Type | Pattern | Example |
|---|---|---|
| Fear/Loss | Risk of missing out or falling behind | "Your competitors are already using AI SDRs" |
| Outcome | Direct result promise | "10x your pipeline in 30 days" |
| Question | Challenges current assumption | "Still doing outbound manually?" |
| Social proof | Names customers or numbers | "Join 500+ B2B teams using [product]" |
| Contrarian | Challenges conventional wisdom | "Cold email isn't dead. Your copy is." |
| Empathy | Validates their pain | "We know SDR ramp time is brutal" |
| Product-led | Feature as hook | "[Feature] is live — see what's new" |
Count how many ads per competitor use each hook type. This reveals their primary messaging strategy.
| Format | Meta | TikTok | ||
|---|---|---|---|---|
| Static image | [N] | [N] | [N] | [N] |
| Video | [N] | [N] | [N] | [N] |
| Carousel | [N] | [N] | N/A | [N] |
| Search text | N/A | N/A | [N] | N/A |
| Display banner | N/A | N/A | [N] | [N] |
List all unique CTAs found. Common patterns:
For each unique landing page URL found in ads, fetch and analyze:
fetch_webpage: [landing_page_url]
Or use curl if fetch_webpage is unavailable.
Extract per landing page:
Group all ads into logical campaigns by:
For each campaign cluster:
| Dimension | Analysis |
|---|---|
| Strategic intent | What is this campaign trying to achieve? (Awareness / Lead gen / Free trial / Competitive displacement) |
| Target persona | Who is this ad speaking to? (Role, pain, stage) |
| Positioning bet | What market position are they claiming? |
| Hook strategy | Fear / Outcome / Social proof / Contrarian / Product-led |
| Conversion path | Ad → LP → CTA → [Demo call / Free trial / Content download] |
| Longevity signal | How long has this been running? Treat duration as sustained use, not proof of performance. |
| A/B tests detected | Multiple creatives to same LP = active testing |
Use ad volume and platform distribution to describe where the visible portfolio is concentrated:
| Platform | Ad Count | % of Visible Portfolio | Likely Objective |
|---|---|---|---|
| Meta (Facebook) | [N] | [X%] | [Awareness / Retargeting] |
| Meta (Instagram) | [N] | [X%] | [Visual / younger audience] |
| TikTok | [N] | [X%] | [Creator-led discovery / conversion] |
| Google Search | [N] | [X%] | [Bottom-funnel capture] |
| Google Display | [N] | [X%] | [Awareness / retargeting] |
| YouTube | [N] | [X%] | [Education / awareness] |
| [N] | [X%] | [Professional / partnership / high-consideration] |
Treat ad count as portfolio emphasis, not spend. Never label this table a budget estimate unless the library provides defensible spend data.
Identify across all competitors:
Identify weaknesses in each competitor's ad strategy:
| Vulnerability Type | Description |
|---|---|
| Message-LP mismatch | Ad promises one thing, LP delivers another |
| Single-persona dependency | All ads target the same persona — missing segments |
| Platform concentration | Heavy on one platform, absent from others |
| No social proof | Ads or LPs lack credibility markers |
| Weak CTA | Asking for too much too soon (demo before value) |
| Generic positioning | Claims anyone could make — not differentiated |
| Stale creative | Same ads running unchanged for months — fatigue risk |
If Web Archive data exists for their landing pages:
# Competitor Ad Intelligence Report — [DATE]
## Coverage
- Competitors analyzed: [list]
- Meta ads collected: [N]
- TikTok ads collected: [N]
- Google ads collected: [N]
- LinkedIn ads collected: [N]
- Unique landing pages analyzed: [N]
- Estimated active campaigns: [N]
---
## Executive Summary
[3-5 sentence summary: What is the competitive ad landscape? What's working? Where are the gaps and vulnerabilities?]
---
## Meta Ad Analysis
### Hook Distribution
| Hook Type | [Comp1] | [Comp2] | [Comp3] |
|-----------|---------|---------|---------|
| Fear/Loss | 40% | 10% | 0% |
| Outcome | 30% | 50% | 60% |
...
### Longest-Running Ads (Not Performance Proof)
**[Competitor] — [Ad Title/Hook]**
> [Ad copy excerpt]
- Format: [type]
- CTA: [text]
- Running since: [date]
- Why it may have been sustained: [evidence and hypotheses to test]
---
## Google Ad Analysis
### Headline Patterns
[Top headline structures with examples]
### Most Common CTAs
[ranked list]
---
## TikTok Ad Analysis
### Native Creative Patterns
[Creator style, opening hooks, demonstrations, sounds, captions, offers, and CTA timing]
### Reusable Script Structures
[Sourced structures and why they may be working]
---
## LinkedIn Ad Analysis
### Professional and Partnership Angles
[Relevant messages, proof, formats, and landing-page paths; omit this section when LinkedIn is not relevant]
---
## Campaign Breakdown
### Campaign 1: [Inferred Campaign Name]
- **Competitor:** [name]
- **Ads in cluster:** [N]
- **Platform(s):** [Meta / Google / Both]
- **Strategic intent:** [Awareness / Lead gen / Competitive displacement / etc.]
- **Target persona:** [Description]
- **Hook strategy:** [Type]
- **Landing page:** [URL]
- Hero: "[Headline text]"
- CTA: "[Button text]"
- Message match: [Score/10]
- **Longevity:** [First seen date → status]
- **A/B tests detected:** [Yes/No — what they're testing]
**Sample ad:**
> **Headline:** [text]
> **Body:** [text]
> **CTA:** [button]
> **Format:** [Image/Video/Carousel]
**Assessment:** [1-2 sentences — is this working? Why/why not?]
### Campaign 2: ...
---
## Funnel Map
[Ad: Hook/Angle] → [LP: /landing-page-url] → [CTA: Book Demo] ↓ [Ad: Different angle] → [LP: /same-or-different] → [CTA: Free Trial]
---
## Portfolio Emphasis
| Platform | Share | Focus Area |
|----------|-------|-----------|
| [Platform] | [X%] | [Intent] |
---
## Creative Gap Analysis
### Angles Nobody Is Running
1. [Angle] — Why it could work for you: [reasoning]
2. [Angle] — ...
### Overcrowded Angles (Avoid or Differentiate)
- [Angle] — [N] of [N] competitors use this
### Format White Space
- [Format] is not being used by competitors on [platform]
---
## Vulnerability Report
### 1. [Vulnerability]
**Competitor:** [name]
**Evidence:** [What we observed]
**Your opportunity:** [How to exploit this gap]
### 2. ...
---
## Recommended Counter-Plays
### Counter-Play 1: [Name]
- **Target their weakness:** [Which vulnerability]
- **Your ad angle:** [Hook]
- **Platform:** [Where to run]
- **Proposed headline:** "[headline]"
- **Proposed body:** "[copy]"
- **LP strategy:** [What your landing page should emphasize]
- **Why test this:** [rationale]
### Counter-Play 2: ...
scrapecreators-api — structured Meta, TikTok, Google, and LinkedIn ad-library collectiontranscript-intelligence — spoken-hook, claim, proof, objection, sponsorship, and CTA analysis for video adsweb_search — verify advertiser identity and fill documented gapsfetch_webpage or curl — fetch and analyze landing pagesまだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
資料には具体的なスキルの内容や手順が記載されていないため、用途や得られる結果を特定できません。
顧客の課題や商品情報、広告事例を調べ、根拠のある広告訴求と静止画・動画・コピー案にまとめます。動画案は実際の制作フォーマットとの相性も確認し、商品単位の角度集として整理します。
Google、Meta、LinkedInなどの広告実績を分析し、成果の出た広告や予算の無駄を特定します。停止・拡大・テスト案や、具体的な予算配分を提案します。
広告費と登録後の成果を照合し、質の高いリード獲得にかかった実コストを算出します。広告素材ごとに拡大・維持・調査・停止の判断材料を整理するスキルです。
Meta広告を始める前にブランド情報を調べ、予算や広告表現に関わる不明点だけを質問して準備を整えます。確認事項と仮定を記録し、ブランド情報とキャンペーン概要を作成します。
広告文や画像内の表現を配信先と商品カテゴリのルールに照らして確認し、直せる箇所を修正しながら、法務や人の判断が必要なリスクを広告ごとに整理します。