Ad Spender Detector — Facebook & Instagram Ad Library Scraper
Pricing
from $70.00 / 1,000 active advertiser delivereds
Ad Spender Detector — Facebook & Instagram Ad Library Scraper
Facebook Ad Library scraper that finds businesses running Facebook & Instagram ads. Proof-of-budget B2B leads with a spend-signal score and contact emails.
Pricing
from $70.00 / 1,000 active advertiser delivereds
Rating
0.0
(0)
Developer
Data Runner
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Ad Spender Detector — Find Businesses Actively Running Facebook & Instagram Ads
Find businesses that are spending money on ads right now — and reach them before your competitors do. Ad Spender Detector is a Facebook Ad Library scraper built for lead generation: it searches Meta's public Ad Library by niche keyword and country, surfaces every business currently running Facebook & Instagram ads, scores how strong a spender each one is, and pulls their contact emails. Every result is a company that has already proven the two things agencies pay to find: a marketing budget and the intent to grow.
Also searched as: Facebook Ad Library scraper, Meta Ad Library scraper, Facebook ads scraper by keyword, find businesses running Facebook ads, competitor ad finder.
If a business is paying to run ads today, they are self-selecting as your customer. This Actor hands you a list of them, with contacts, on demand.
Why this is the strongest B2B buying signal there is
Most lead lists tell you a business exists. This one tells you a business is actively spending money to acquire customers — the single most reliable predictor that they will buy marketing, creative, CRO, landing-page, or lead-gen services.
- 💰 Proof of budget, not a guess. An active ad in the Ad Library is money being spent now. No "estimated revenue," no firmographic guessing — a live campaign is the receipt.
- 📈 Proof of growth intent. Businesses that advertise want more customers. That's your entire pitch, pre-qualified.
- 🎯 A 0–100 Spend Signal Score. Rank a whale running 40 ads across every platform above a hobbyist testing one — so your team calls the biggest budgets first.
- ✉️ Contacts included. Emails are pulled straight from each advertiser's own landing pages, filtered for the usual noise.
- 🌐 Public, transparent data source. The Meta Ad Library is Meta's own ad-transparency tool — public by design, no login, showing every active ad on Facebook and Instagram.
Who it's for
| You are… | You get… |
|---|---|
| A marketing / growth agency | Businesses already paying for growth — pitch them a better funnel. |
| A CRO / landing-page shop | Advertisers sending paid traffic to pages you can optimize. |
| A creative / video studio | Brands running ads that need fresh creative — you've seen their current ad. |
| A lead-gen / cold-outreach seller | A list where every record has budget and intent, not just a pulse. |
Pitch businesses that already pay for growth — instead of convincing someone to start.
How it works
- Search the public Ad Library for each of your niche keywords, in your chosen country, for active ads.
- Aggregate by advertiser — many ads collapse into one business record (deduplicated by Facebook Page), tagged with every keyword it matched.
- Score each advertiser's spend signal 0–100 from how many ads it runs, how long they've been live, and how many platforms it's on.
- Extract emails from each advertiser's landing pages through a battle-tested contact-extraction pipeline (plain text,
mailto:, and obfuscated emails). - Deliver one clean record per advertiser, highest spend signal first.
Realistic input
{"searchTerms": ["roof repair"],"country": "US","activeStatus": "active","minActiveAds": 3,"maxAdvertisers": 50,"extractEmails": true,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
minActiveAds: 3is the pro move — it filters out businesses dabbling with a single ad and keeps the ones running multiple creatives at once (i.e. actually scaling spend).
Example output — one advertiser record
{"advertiserName": "Apex Roofing Co","pageUrl": "https://www.facebook.com/apexroofing","pageId": "100200300","spendSignalScore": 87,"activeAdsCount": 14,"platforms": ["audience_network", "facebook", "instagram"],"earliestStartDate": "2026-03-03","adRunningDays": 124,"adCategories": ["Roofing Contractor"],"landingDomains": ["apexroofing.com"],"website": "https://apexroofing.com","emails": ["info@apexroofing.com", "sales@apexroofing.com"],"primaryEmail": "info@apexroofing.com","sampleAdText": "Need a new roof? Get a free inspection this week — financing…","searchTermsMatched": ["roof repair", "roofing contractor"],"scrapedAt": "2026-07-14T15:04:00.000Z"}
At a glance: Apex has been running ads for 124 days across three platforms, has 14 live ads, and you have their inbox. That's a business you call today.
The run also writes a summary to the OUTPUT key (and as a final dataset row): advertisers found, breakdown by platform, average active ads, % with email, per-search-term counts, anything that was blocked, and the exact number of billable events.
The Spend Signal Score, explained (no black box)
spendSignalScore is a transparent, deterministic 0–100 blend of three public signals. The same advertiser always scores the same — there's no hidden model and no randomness.
| Component | Max points | What it measures | How it's scaled |
|---|---|---|---|
| Ad volume | 50 | Distinct active ads running concurrently — more creative in market = more spend. | Saturating (log) curve; reaches full marks at ~30 ads, so a 200-ad brand and a 30-ad brand both read as "clearly spending a lot." |
| Ad longevity | 35 | How long the longest-running ad has been live — advertisers kill losers fast, so a long run = proven ROI. | Linear to 90 days, then flat. |
| Platform breadth | 15 | How many of Meta's placements (Facebook, Instagram, Audience Network, Messenger) it runs on. | 1 platform = 0, each additional adds evenly up to the cap. |
Score = ad volume + ad longevity + platform breadth, clamped to 0–100.
A brand-new single ad on one platform lands a modest floor (well under 20); a business running many ads, for months, everywhere, tops out near 100. It is a relative ranking signal, not a dollar estimate — see limitations.
Works perfectly with the rest of the suite
Ad Spender Detector is the top of the funnel. Chain it with the rest of the Data Runner lead stack:
- Lead Deduplicator & Merger — merge these advertisers with leads from your other sources and de-duplicate cleanly.
- Email Verifier & Enricher — validate every email so your outreach actually lands.
- Phone Number Validator — verify and format phone numbers for calling/SMS.
- Icebreaker Generator — turn each record into a personalized opener. With this source it's lethal: the icebreaker can reference the ads they're literally running right now ("Saw Apex has been running roofing ads for four months straight…").
Pricing
This Actor uses pay-per-event pricing — you pay for results, not for time or servers.
| Event | Price | Charged when |
|---|---|---|
| Active advertiser delivered | $0.07 | Once per unique advertiser pushed to your dataset (passed your filters, aggregated, and scored). |
| Advertiser enriched with emails | $0.02 | Only when the email pipeline actually runs for an advertiser (a landing domain was found and visited). |
| Actor start | $0.00005 | Once per run (the first 5 seconds of compute are free). |
Blocked, filtered-out, and failed advertisers are never charged. Turn extractEmails off and you pay only the $0.07 per advertiser.
One thing to know: the Actor fetches raw ads through a maintained upstream Ad Library scraper, whose small per-ad fee (typically well under a cent per advertiser) is billed to your Apify account in addition to the events above — the same pattern as other Meta-sourcing Actors. Make sure your account has credits.
Example: 50 advertisers with email extraction ≈ 50 × ($0.07 + $0.02) = $4.50 + a few cents of upstream ad fees. A list of 50 businesses proven to be spending on ads, with contacts.
Honest limitations
We'd rather you trust the numbers than be surprised.
- It shows presence, not dollars. The public Ad Library reveals that a business advertises and what the ads are — not how much they spend.
spendSignalScoreis a signal derived from public activity, not a spend estimate. (Exact spend/impression figures exist only for political & social-issue ads, and for EU-delivered ads under transparency law — not for ordinary commercial ads.) - Not every advertiser has a public email. Some send ad traffic to click-to-message (WhatsApp/Messenger) or app installs, or hide contacts behind forms. Those still count as proven spenders — they just arrive without an email. Expect a healthy but not universal email hit rate.
- Meta may rate-limit at volume. The Ad Library is heavily protected. This Actor paces itself, keeps
maxAdvertisersbounded, and if it hits consistent blocks it stops cleanly, marks the runblockedwith an actionable note, and delivers whatever it already collected — it never loops forever or solves CAPTCHAs. - Keyword matching is Meta's. Results reflect how the Ad Library matches your keywords to ad text and advertiser names; very broad terms return broad results. Use
minActiveAdsto raise the quality bar. - Not affiliated with Meta. "Facebook," "Instagram," and "Meta" are trademarks of Meta Platforms, Inc. This Actor is an independent tool that reads Meta's public Ad Library transparency data and is not endorsed by or affiliated with Meta.
FAQ
How do I find businesses that are running Facebook or Instagram ads? Give Ad Spender Detector your niche keywords and a country. It searches Meta's public Ad Library for advertisers matching those terms, deduplicates them into one record per business, scores each one's spend signal, and returns their Page, landing domains, and contact emails — a ready-to-use list of businesses currently advertising on Facebook and Instagram.
Can I scrape the Facebook Ad Library by keyword?
Yes — that's exactly what this Actor does. Add one or more keywords to searchTerms (e.g. "roof repair", "med spa", "personal injury lawyer"), pick a country, and it returns the advertisers whose active ads match, aggregated by business with a spend-signal score and emails.
Does this tell me how much a business spends on ads?
No — and any tool claiming exact commercial spend from the public Ad Library is guessing. Meta publishes spend/impression ranges only for political and social-issue ads (and reach data for EU-delivered ads). For ordinary businesses, the Ad Library shows presence and activity, which is exactly what spendSignalScore ranks. Presence alone is the signal you need: they're spending, and they want customers.
Is scraping the Ad Library allowed? The Ad Library is Meta's public ad-transparency tool — no login required, published deliberately so anyone can inspect active ads. This Actor reads only that logged-out public data. As always, use the output responsibly and in line with your own outreach and privacy obligations.
Why don't all advertisers have an email? Because not every advertiser exposes one. Many run click-to-message or app-install ads, or gate contact behind a form. You still get the business, its Page, its landing domain, and its spend signal — just not always an inbox. Pipe the results through the Email Verifier & Enricher to squeeze out more.
Which countries are supported?
Any country the Ad Library serves — set the country field to an ISO code (US, GB, CA, AU, DE, BR, and dozens more). Results are ads shown to people in that country.
What's the difference between "active" and "all" ad status? "Active only" (default) returns advertisers with ads running right now — the strongest live signal. "All" also includes advertisers whose ads recently stopped, useful for a wider net.
How do I get more (or fewer, cheaper) results?
Add more searchTerms, raise maxAdvertisers (hard cap 300), or lower minActiveAds. To tighten quality and cost, raise minActiveAds to 3–5 so you only get multi-ad spenders.
What happens if Meta blocks the run?
It degrades gracefully: bounded retries, then a clean stop with the run marked blocked and an actionable note, delivering everything collected up to that point. You're never charged for blocked results.
Is this a Meta product? No. It's an independent Actor that reads Meta's public Ad Library. It is not affiliated with, endorsed by, or sponsored by Meta Platforms, Inc.
Built by data-runner.dev — the Data Runner lead-generation suite on Apify.