skills/capabilities/meta-ad-scraper/SKILL.md
Scrape competitor ads from Meta's Ad Library (Facebook, Instagram, Messenger, Threads, WhatsApp). Search by company name, Facebook Page URL, or keyword. Returns ad creatives, spend estimates, reach, impressions, and campaign details. Use for competitive ad research, messaging analysis, and creative inspiration.
npx skillsauth add athina-ai/goose-skills meta-ad-scraperInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Scrape ads from Meta's Ad Library using the Apify apify/facebook-ads-scraper actor. Covers Facebook, Instagram, Messenger, Threads, and WhatsApp.
Requires APIFY_API_TOKEN env var (or --token flag). Install dependency: pip install requests.
# Search ads by company name
python3 skills/meta-ad-scraper/scripts/search_meta_ads.py \
--company "Nike"
# Search with country filter
python3 skills/meta-ad-scraper/scripts/search_meta_ads.py \
--company "Shopify" --country US
# Search by keyword (broader than company name)
python3 skills/meta-ad-scraper/scripts/search_meta_ads.py \
--company "project management software"
# Limit results
python3 skills/meta-ad-scraper/scripts/search_meta_ads.py \
--company "HubSpot" --max-ads 20
# Search by Facebook Page URL directly
python3 skills/meta-ad-scraper/scripts/search_meta_ads.py \
--page-url "https://www.facebook.com/nike"
# Only active ads (default), or all ads
python3 skills/meta-ad-scraper/scripts/search_meta_ads.py \
--company "Salesforce" --ad-status all
# Human-readable summary
python3 skills/meta-ad-scraper/scripts/search_meta_ads.py \
--company "Stripe" --output summary
apify/facebook-ads-scraper actor via REST APIThe script handles the advertiser lookup automatically:
facebook.com/ads/library/?q=CompanyName — the Apify actor searches Meta's Ad Library for matching advertisers--page-url for exact matchingNo need to manually find Page IDs. The Apify actor resolves the search internally.
| Flag | Default | Description |
|------|---------|-------------|
| --company | required* | Company name or keyword to search |
| --page-url | none | Facebook Page URL for exact advertiser match |
| --country | ALL | 2-letter country code (US, GB, DE, etc.) or ALL |
| --ad-status | active | active or all (includes inactive) |
| --max-ads | 50 | Maximum number of ads to return |
| --output | json | Output format: json or summary |
| --token | env var | Apify token (prefer APIFY_API_TOKEN env var) |
| --timeout | 300 | Max seconds to wait for the Apify run |
*Either --company or --page-url is required.
Each ad in the output contains:
{
"ad_id": "123456789",
"page_name": "Nike",
"page_id": "123456789",
"ad_text": "Just Do It. Shop the latest...",
"ad_creative_link_title": "Nike.com",
"ad_creative_link_description": "Free shipping on orders...",
"ad_creative_link_url": "https://nike.com/...",
"image_url": "https://...",
"video_url": "https://...",
"ad_delivery_start_time": "2026-01-15",
"ad_delivery_stop_time": null,
"currency": "USD",
"spend_lower": 100,
"spend_upper": 499,
"impressions_lower": 1000,
"impressions_upper": 4999,
"platforms": ["facebook", "instagram"],
"status": "ACTIVE"
}
~$5 per 1,000 ads scraped on Apify Free plan. Paid plans are cheaper ($3.40-$5/1K).
python3 skills/meta-ad-scraper/scripts/search_meta_ads.py \
--company "Competitor Name" --country US --max-ads 100 --output summary
# Search by keyword to see all advertisers in a space
python3 skills/meta-ad-scraper/scripts/search_meta_ads.py \
--company "CRM software" --max-ads 50
Run the script multiple times for each competitor and compare creative approaches, messaging, and spend ranges.
--ad-status all to include historical ads.--timeout.See references/apify-config.md for detailed API configuration, token setup, and rate limits.
content-media
Takes an existing screen recording or demo video and adds professional zoom/pan effects synchronized to the narration. Uses transcript-driven zoom targeting and Remotion for rendering. Optionally replaces audio with a soundtrack.
tools
Repurposes long-form video (podcasts, interviews, talks) into short-form vertical clips for Instagram Reels, TikTok, and YouTube Shorts. Handles transcription, moment selection, clip extraction, speaker-tracked reframing (16:9 to 9:16), and animated captions.
development
Creates talking head videos from any source material (docs, changelogs, blog posts, notes, transcripts). Produces multi-scene videos with avatar narration over screenshots/images using HeyGen v2 API. Supports Quick Shot and Full Producer modes.
tools
Generates Instagram-ready product reels from any e-commerce product page URL. Scrapes product images, classifies by type, generates AI-animated clips via Higgsfield API, creates text overlays with style presets, and composes a 15-20 second reel with music. Supports model-based and product-only reels.