Meta Ad Intelligence
Pricing
from $0.34 / 1,000 ads
Meta Ad Intelligence
Meta Ad Intelligence scrapes Facebook Ads Library to discover who is advertising in your niche, rank competitors by dominance score and share of voice, flag new entrants, and reveal top ad formats, CTAs, hooks, and creative trends for market research.
Pricing
from $0.34 / 1,000 ads
Rating
0.0
(0)
Developer
DeepMine
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
0
Monthly active users
5 hours ago
Last modified
Categories
Share
Meta Ad Intelligence: Competitor Ads & Creatives
Type a market keyword and see who advertises for it on Facebook and Instagram, ranked, with every ad and free tables by advertiser, landing domain, format and what changed since your last run.
| Advertiser | Ads (of 30) | Share | Avg days running | Formats | Landing domain |
|---|---|---|---|---|---|
| KURU Footwear | 7 | 23.33% | 98 | Dynamic creative (7) | kurufootwear.com |
| HOKA | 4 | 13.33% | 156 | Image (3), Catalog (1) | hoka.com |
| Cholesterol Relief Community | 4 | 13.33% | 142 | Image (4) | shop.pipitea.com |
$0.45 per 1,000 ads on Starter ($0.55 Free, $0.39 Scale, $0.34 Business), ad details included. No start fee, and the five tables are free. The prefilled run (up to 60 ads) costs about $0.03.
What you can do with it
- Map a market. Who advertises for a keyword, product or niche, how many ads each runs, for how long, in which formats and to which sites.
- Rank competitors. The Advertisers table orders them by a dominance score (ads × average days running) and their share of the ads found.
- See where the traffic goes. The Domains table groups the ads by landing site; the Formats table by image, video, carousel, dynamic creative or catalog.
- Track changes. Run it again (or schedule it) and the Changes table lists the ads that are new, back, stopped or no longer listed since the last run of the same search.
- Study creatives. Every ad's text, headline, button, landing page, picture, video and cards, with each variant on request.
- Analyse a competitor. Paste its Facebook page and get the same tables for its own ads.
No login, no cookies, no API key: the data comes from Meta's public Ad Library, and every table is counted from the rows, with no AI or estimate.
Input
| Field | What it does |
|---|---|
🔎 Market keywords (searchQueries) | Ad Library keyword searches, one per line. Each is one market in the tables. |
🏢 Competitors (advertisers) | Facebook page links (facebook.com/gymshark), page ids, Ad Library links of an advertiser, or page names exactly as they show on the ads. |
🌍 Country (country) | Where the ads ran: a two-letter code (US, GB, DE, ...) or ALL. Default US. |
💯 Max ads (maxAdsPerQuery) | Ads per keyword, competitor or URL (default 200), most impressions first. You pay per ad, so this caps the cost. |
🧬 Every variant (includeVariants) | Also get each creative's other ads (other versions, start dates, placements). Each is an ad row. |
📋 Details (includeAdDetails) | The advertiser's verification, Instagram account and followers; for ads shown in the EU or UK, reach, reach by country, ages, gender, payer and beneficiary. |
🔔 Only new ads (onlyNewAds) | Only ads started since the last run that weren't returned before; the tables then count only those. |
| Filters | Ad Library URLs (startUrls), ad IDs (adIds), ad status, media type, ad category, exact phrase, dates shown. |
Row layout (rowLayout) | Current, or the earlier version's (see below). |
Example: {"searchQueries": ["running shoes", "trail running shoes"], "country": "US", "maxAdsPerQuery": 200, "rowLayout": "current"}
Output
Ads (the dataset, one row per ad, the only thing you pay for). The Console shows it as tables; export as JSON, CSV or Excel.
pageName,pageUrl,pageId: the advertiser.adText,headline,ctaText,landingUrl,image,videoUrl,cards: the creative (Meta's media links expire about 5 days after the run).format,platforms: Image, Video, Carousel, Dynamic creative, Catalog; Facebook, Instagram, Messenger, ...startedAt,lastShownAt,daysActive,isActive: the day the ad started and the last day it ran (from the Ad Library), the days between, and whether it still runs.firstObservedAt,previouslyObservedAt: when this Actor first found the ad for the same search, and the last run before this one that did (empty for an ad seen for the first time). These are our observations, not Meta's dates.collationCount,adsCount,adArchiveId,adLibraryUrl,rank,totalCount,searchInput, and Meta's full record after them.
Free tables (Output tab; records in the run's key-value store, not dataset rows, so never charged):
MARKET: one row per search.totalAds,totalAdvertisers,topAdvertiser,topAdvertiserSharePct,topDominanceScore,topFormat,topCta,topAdvertisers,topHooks(most used opening lines),battleTestedCount,gainingTractionCount,newTestCount(ads started 30+, 14-29 and under 14 days ago),avgAdAgeDays,longestRunningAdId,topLandingDomain,formats;scopesays what the counts are of, withmetaCount(Meta's count for the search),sampleCompleteandfoundByEarlierSearches; and the changes:newAds,backAds,stoppedAds,noLongerListed,notInThisSample,previousRunAt.ADVERTISERS: per search and advertiser page.advertiserAdCount,shareOfVoicePct,advertiserAvgAdAgeDays,dominanceScore,isNewEntrant,advertiserTopFormat,advertiserTopCta, thenactiveAds,oldestStartedAt,newestStartedAt,longestRunningDays,formats,topLandingDomain,landingDomains,creativeGroups,platforms,firstObservedAt,newAds,noLongerListed.DOMAINS: per search and landing domain:ads,sharePct,advertisers,topAdvertisers,formats,activeAds,avgAdAgeDays, start dates.FORMATS: per search and format: the same counts, with the age bands.CHANGES: one row per ad that isnew,back,stoppedorno longer listedsince the last run of the same search, with its dates.
The rows of ADVERTISERS, DOMAINS and FORMATS add up to the search's totalAds (ads without a landing page or format have a row of their own).
Signals, and what they mean
daysActiveand the age bands: how long the advertiser kept the ad running.avgAdAgeDaysandadvertiserAvgAdAgeDayscount days since the ad started.dominanceScore: an advertiser's ads × their average days running, among the ads found. Many ads that keep running score high.shareOfVoicePct,sharePct: the advertiser's (domain's, format's) share of the ads this run returned for the search, not of the market, impressions or spend. A search stopped at Max ads counts its most-impressions-first sample;scopesays which.isNewEntrant: the advertiser's oldest ad found started at most 30 days ago.collationCount(same creative) andcreativeGroups: how many ads use the same creative and text, and how many different creatives an advertiser runs.
These are signals of what advertisers keep running, not results: Meta publishes no sales, clicks, conversions or return on ad spend for commercial ads. Spend and impressions ranges exist only for ads about social issues, elections or politics (set Ad category); EU and UK reach comes with Details for ads shown there.
Tracking changes
Every run keeps a snapshot of each search (the keywords or competitor plus country, status, category, media type, dates and exact phrase: change one and it is another market) in the key-value store meta-ad-intelligence-snapshots of your account, and compares with the last run of the same search:
new: not found by any earlier run of the search.back: found before, missing from the last run, found again.stopped: was active, now stopped (only searches with Ad status Active and inactive see stopped ads).no longer listed: the last run found it, this run read the whole search and didn't. A search stopped at Max ads never calls an ad gone; it counts it innotInThisSampleinstead.
The first run of a search is its baseline: it lists no changes. Each ad is one row per run, charged once, even when several searches find it; the later searches count it in foundByEarlierSearches.
Saved inputs from the earlier version
Tasks, schedules and API calls made for the earlier version keep working:
searchQueriesis read as before;advertiserNamesis read as keyword searches, as before (used only whensearchQueriesis empty), andmaxAdsPerAdvertiseras Max ads (whenmaxAdsPerQueryisn't given).- A run with one of those fields and no
rowLayoutgets the earlier rows: its keys first, in the same order and form (rowType,query,advertiser,adArchiveId,adAgeDays,trendLabel,body,headline,ctaas SHOP_NOW,formatas VIDEO or DCO,imageUrl,linkUrl,startDateandendDateas ISO dates, ...), then the fields above.rowLayoutset tocurrentorearlierchooses either way. - The
market_summaryandadvertiser_summaryrows are now the freeMARKETandADVERTISERStables, with the same keys first, instead of paid rows in the dataset. - Max ads is now exact, and each ad is one row even when two searches find it.
Pricing
| Free | Starter | Scale | Business | |
|---|---|---|---|---|
| Ad | $0.55 | $0.45 | $0.39 | $0.34 |
Prices per 1,000 ads; ad details included; no start fee. You pay only for ad rows: the five tables, ads not found and failed searches are free. With Only new ads you pay only for the new ads. Set a maximum charge in the run options to cap a run.
Limitations
- The tables count the ads a run returns: raise Max ads for a bigger sample. Meta lists most impressions first, and counts no more than 50,000 ads per search.
- Meta shows commercial ads' spend and reach only for ads shown in the EU or UK (with Details), and spend ranges only for political and issue ads.
- An advertiser given by name must match its page name exactly; a page link or id always works.
- Image and video links expire about 5 days after the run: download what you want to keep.
- About 3 minutes per 1,000 ads.
FAQ
Do I need a Facebook account, cookies or an AI key? No. It reads Meta's public Ad Library, logged out, and counts the tables itself.
How do I watch a market every week? Schedule the run with the same input. Each run's CHANGES table lists what changed since the one before.
Does it show which ads make money? No one can from the Ad Library: Meta publishes no sales or return on ad spend. Long-running ads and creatives used in many ads are the public signals; this Actor gives you both, with their definitions above.
Related Actors
- Meta Ad Library API: the same ads for any search, with the Ad Library's own filters.
- Meta Ad Spy: every ad of a competitor, with variants and single ads by ID.
- Facebook Ads Monitor: monitor advertisers for new ads.
Feedback
Something missing or wrong? Open an issue in the Issues tab and we'll look at it. If Meta Ad Intelligence helps you, a short review on the Store helps others find it.