mcpbeat Sign in

Ad Library Teardown Agent Skill

Use when the user wants to analyze active ads from Meta/Facebook, Google, or LinkedIn ad libraries; tear down a competitor's messaging; extract hooks, offers, CTAs, video transcripts, landing page claims, and test ideas from public ads.

946 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
1780
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/ScrapeCreators/social-media-research-skills --skill ad-library-teardown

What it tells the agent to use

found in the instruction text
Bash runs shell commands — read the instruction before connecting
WebFetch fetches pages from the network

The instruction itself

7 sections, as written by the author

Ad Library Teardown

Overview

Analyze public ads to understand a competitor's messaging, offers, creative strategy, and testing angles. The output should be a practical teardown marketers can use to write better ads or decide what to test.

When to Use

Use this skill when the user asks to:

  • analyze a competitor's active ads
  • search Meta/Facebook, Google, or LinkedIn ad libraries
  • extract ad hooks, CTAs, claims, offers, and landing page angles
  • compare ad messaging across competitors
  • summarize video ad transcripts
  • generate ad test ideas from competitor ads

Data Sources

| Ad library | Search/list endpoint | Detail endpoint | Transcript endpoint |

|---|---|---|---|

| Meta/Facebook | /v1/facebook/adLibrary/search/ads, /v1/facebook/adLibrary/company/ads, /v1/facebook/adLibrary/search/companies | /v1/facebook/adLibrary/ad | /v1/facebook/adLibrary/ad/transcript |

| Google | /v1/google/adLibrary/advertisers/search, /v1/google/company/ads | /v1/google/ad | n/a |

| LinkedIn | /v1/linkedin/ads/search | /v1/linkedin/ad | n/a |

Workflow

  • Find the advertiser
  • Use company search endpoints when the user provides only a brand name.
  • Use domain/advertiser/page IDs when available.
  • Fetch active ads
  • Prefer active ads unless the user asks for historical analysis.
  • Capture platform, advertiser/page, ad ID, start date, creative type, text, headline, CTA, destination URL, and source URL.
  • Fetch details for representative ads
  • Enrich the ads with detail endpoints.
  • For video Meta ads, fetch transcripts when available.
  • Cluster messaging

Group ads by:

  • pain point
  • persona
  • offer
  • proof/social proof
  • feature/benefit
  • objection handled
  • comparison/alternative angle
  • urgency/discount
  • Extract swipeable elements
  • hooks
  • headlines
  • primary text patterns
  • CTAs
  • claims
  • offers
  • visual/creative concepts
  • Recommend tests

Suggest tests based on repeated patterns and gaps, not random ideas.

Output Format

# Ad Library Teardown: {brand}

## Summary
- Ads analyzed: {count}
- Platforms: Meta / Google / LinkedIn
- Main positioning:
- Strongest repeated offer:

## Messaging Angles
| Angle | Evidence | Example ads | Notes |
|---|---|---|---|

## Hooks and Headlines Swipe File
- "..."
- "..."

## Offers and CTAs
| Offer | CTA | Platform | Example |
|---|---|---|---|

## Video Transcript Notes
- [Ad](url): summary, hook, best quote

## What They Appear to Be Testing
1. ...
2. ...

## Recommended Tests for Us
1. ...
2. ...
3. ...

## Sources
- [Ad](url)

Common Pitfalls

  • Do not claim an ad is winning just because it is active. Say it is active or repeated; performance is not public unless the endpoint returns it.
  • Do not ignore repeated ads. Repetition is often a useful signal.
  • Do not invent spend, conversion rate, or targeting unless public data includes it.
  • Do not skip video transcripts when the user asks for hooks or messaging from video ads.

How to use it

Copy the folder

Take scrapecreators/ad-library-teardown from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.