Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
hyperfx-ai avatar

Meta Ads Library

  • 96 installs
  • 67 repo stars
  • Updated August 4, 2026
  • hyperfx-ai/marketing-skills

Helps with ai & agent building tasks.

About

meta-ads-library is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • meta-ads-library
  • AI & Agent Building
  • AI-coding skill

Meta Ads Library by the numbers

  • 96 all-time installs (skills.sh)
  • +9 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #4,561 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/hyperfx-ai/marketing-skills --skill meta-ads-library

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs96
repo stars67
Last updatedAugust 4, 2026
Repositoryhyperfx-ai/marketing-skills

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

Meta Ads Library

Guide for searching the Meta Ads Library and producing structured competitor ad intelligence.

The skill's job is to turn raw scraped ads into useful summaries: top advertisers, common CTAs, recurring hooks, recently launched creatives, and (optionally) enriched lead lists. All output is presented inline in chat — there is no database or persistence layer.

Out of scope — defer to other skills

RequestSend them to
Multi-source competitor research (site, social, search rank, etc., not just ads)`competitor-intel`
Generating new ad creative based on what you found`ad-creative-generation`

Requirements

If search_facebook_ads is not in the tool list, stop and tell the user to enable Hyper MCP and connect Apify.

Tool surface

ToolPurpose
search_facebook_adsSearch the Meta Ads Library by keyword. Returns compact results (title, body, CTA, link, page name, dates, platforms). Max 40 per call.
get_facebook_ad_detailsGet full details for a specific ad. Requires both ad_archive_id and page_id — both come from search_facebook_ads results.
search_facebook_ads_enrichedSearch + enrich each result with page contact info (email, phone, website). Slower (multiple API calls per result). Max 20 per call.
search_facebook_pagesSearch Facebook pages by category + location (not by keyword). Useful for building a lead list from a vertical.
scrape_facebook_pagesScrape detailed data from specific Facebook page URLs.

Critical rules

1. Public-only data. The Meta Ads Library is public. Don't attempt to bypass any access control or scrape private content. 2. Count limits differ between tools. search_facebook_ads allows count up to 40. search_facebook_ads_enriched caps at 20 — exceeding this returns an error. 3. `get_facebook_ad_details` needs two IDs. Both ad_archive_id and page_id are required. Both are returned in every search_facebook_ads result row — pass them through together. 4. Enriched search is slow. It makes a Facebook page scrape per ad and optionally a website scrape. Only use it when contact info matters (lead-gen workflows). For pure ad intelligence, use the regular search_facebook_ads. 5. Apify-backed tools fail intermittently. Expect occasional "fetch failed" responses. Retry once after a short delay before reporting the source as missing. 6. Don't over-interpret a single ad. "Brand X is running a discount" is noise. "5 of the top 10 advertisers in this query are running discounts" is signal. Always aggregate before drawing conclusions.

Workflow

Phase 1 — Define the query

Before running anything, agree on:

1. The search query — keyword(s) competitors would target. Examples: "meal kit delivery", "AI marketing tools", "skincare for sensitive skin". 2. Country — ISO code (e.g. "US", "GB", "AU"). Default to "ALL" only if the user explicitly wants global. 3. Active vs allactive_status="active" is usually what you want. Inactive ads are historical and noisier. 4. Time windowperiod accepts "last24h", "last7d", "last14d", "last30d", or "all_time". Match the window to the user's intent (weekly digest → "last7d", trend research → "last30d"). 5. The job — what is this for?

  • Creative trend report → use search_facebook_ads, summarize patterns across hooks, CTAs, formats.
  • Top advertiser snapshot → use search_facebook_ads, group by page_name.
  • Lead list → use search_facebook_ads_enriched, filter for rows with contact_email or contact_website.

Phase 2 — Pull the ads

search_facebook_ads(
    query="meal kit delivery",
    country="US",
    active_status="active",
    count=40,                # max for this tool
    period="last30d"
)

Each result row includes: ad_archive_id, page_id, page_name, is_active, start_date_formatted, end_date_formatted, title, body, cta_text, link_url, caption, ad_library_url, page_categories, publisher_platform.

For more than 40 ads, paginate by re-calling with offset=40, offset=80, etc.

For lead-gen with contact info:

search_facebook_ads_enriched(
    query="meal kit delivery",
    country="US",
    active_status="active",
    count=20,                # max for the enriched tool
    scrape_websites=True,
    filter_spam=False
)

Enriched rows add: contact_email, contact_phone, contact_website, page_followers, page_rating, address, business hours.

Phase 3 — Get full creative for the most interesting ads (optional)

search_facebook_ads returns truncated bodies for some ads. To get the complete creative — including video URLs and images — call get_facebook_ad_details on the specific ads worth a deeper look:

get_facebook_ad_details(
    ad_archive_id="559220927273823",      # from search results
    page_id="328127803978438"             # from search results
)

Both args come from the same row in search_facebook_ads. Do this for the top 3–5 ads, not all 40 — each detail call is a separate Apify run.

Phase 4 — Surface the intelligence

Present the findings inline in chat. Pick the format that matches the user's job from Phase 1.

Top advertisers (group by page):

PageActive adsCategoriesNotable angle
Brand A12Restaurant, Meal Kit"Skip the grocery store" hook in 8/12 ads
Brand B7Software, SubscriptionHeavy on UGC video, "$1 first week" offer

Common CTAs and hooks:

PatternCountExamples
Sign up CTA18
Shop now CTA12
Price-anchor opener ("From $X/week")9
Founder-story opener4

Recently launched ads (last 7 days):

PageStartedCTAHookLibrary URL
Brand A2026-04-28Sign up"Skip the grocery run this week"<ad_library_url>

Lead list (enriched only):

PageEmailWebsiteFollowersActive ads
Brand Ahello@a.coma.com12K7

Phase 5 — Recurring monitoring (optional)

If the user wants ongoing tracking:

1. Save the query, country, and active_status settings. 2. Re-run weekly with period="last7d". 3. Brief becomes a delta report — new ads since the last run, advertisers that changed posting cadence, CTA / offer shifts.

This is when `competitor-intel` becomes the better skill — it handles multi-source diffing across many surfaces, not just Meta ads.

Output standards

  • Always cite the `ad_library_url` for any specific ad referenced in the brief — the user can click through to verify.
  • Aggregate before quoting. Don't paste raw ad bodies; extract the pattern and quote 1–2 representative examples.
  • Mark interpretation explicitly. "Observation: 8 of 10 top advertisers use a 'first week free' offer. Possible interpretation: …".
  • Note the time window. Every brief should state the search query, country, and date range it was generated from.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.