Goal: Pull competitor ad creatives, spend estimates, reach data, and campaign details from Meta’s Ad Library for any company, keyword, or Facebook Page URL.Documentation Index
Fetch the complete documentation index at: https://docs.getcore.me/llms.txt
Use this file to discover all available pages before exploring further.
| Tool | Purpose | Required |
|---|---|---|
| Apify (apify/facebook-ads-scraper) | Scrape ads from Meta’s Ad Library | Yes |
Step 1: Gather Search Parameters
Ask the user for the following in a single prompt:- Target: Company name, keyword, or Facebook Page URL (e.g.
https://www.facebook.com/nike) - Country: 2-letter country code (e.g. US, GB, DE) or ALL (default: ALL)
- Ad status: Active ads only, or all ads including inactive (default: active)
- Max ads: Maximum number of ads to return (default: 50)
“Which company, keyword, or Facebook Page URL do you want to scrape Meta ads for? Any country filter or result limit?”If $ARGUMENTS are provided, extract the target from there and skip the prompt.
Step 2: Scrape Ads
Run the Apifyapify/facebook-ads-scraper actor via MCP with:
searchQueryorpageUrl: the company name/keyword or Facebook Page URL from user inputcountry: from user input (default:ALL)adStatus:activeorallfrom user input (default:active)maxResults: from user input (default: 50)
/mcp to reconnect, then retry.
Step 3: Present Results
Sort results byad_delivery_start_time descending (most recent first). Group by platform.
Present a summary table:
| Ad ID | Page | Platforms | Ad Text (preview) | Spend Range | Impressions | Status | Active Since |
|---|
- Total ads scraped
- Platform breakdown (Facebook, Instagram, Messenger, Threads, WhatsApp counts)
- Spend range summary (min to max across all ads)
- Any image or video URLs listed separately
Output Format
Meta Ads Report — [Company / Keyword] Scraped: [N] ads | Country: [country] | Status: [active / all] Platform Breakdown
- Facebook: [N] ads
- Instagram: [N] ads
- Other platforms: [N] ads
| Page | Platforms | Ad Text | Spend Range | Impressions | Status | Active Since |
|---|---|---|---|---|---|---|
| [page_name] | [platforms] | [ad_text preview] | [upper] | [lower]–[upper] | [status] | [date] |
- [page_name] — [ad_text preview] — [image_url or video_url]
Edge Cases
- No ads returned: Note that EU/UK ads have the most complete coverage. For US-only advertisers, coverage may be limited to political or issue ads. Suggest switching country to
ALLor trying EU. - Company name returns multiple advertisers: List the top matches by ad count and ask the user to confirm which page to use. Suggest passing the Facebook Page URL directly for exact matching.
- MCP not connected: Prompt the user to run
/mcpand reconnect Apify before retrying. - Run times out: Reduce the max ads count and retry. Increase timeout for large advertisers with many active campaigns.
- Spend and impressions show ranges: Meta’s Ad Library reports spend and impressions as ranges (e.g. 499), not exact figures. Present both bounds.
- Active vs all: By default only active ads are returned. If the user wants historical ad creative research, rerun with ad status set to all.
