Meta Ads Presence Enricher avatar

Meta Ads Presence Enricher

Pricing

from $40.00 / 1,000 ads scrapeds

Go to Apify Store
Meta Ads Presence Enricher

Meta Ads Presence Enricher

Check any list of local businesses for live Facebook and Instagram ads. A name and a city is enough: the actor finds the website, resolves the Facebook page, and checks the Ad Library by page ID. Returns true/false verdicts, landing domains, and phone numbers. $0.04 per answered lead.

Pricing

from $40.00 / 1,000 ads scrapeds

Rating

0.0

(0)

Developer

Kyle Riccardi

Kyle Riccardi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Know who's already spending before you pitch

Paste in a list of local businesses. A name and a city is enough. The actor works out which ones are running Facebook or Instagram ads right now and gives you the evidence: the page it found, how many ads it saw, and where those ads send people.

No list yet? Type a niche and a metro instead, something like "med spa" in "Austin, TX", and it builds the list from Google Maps first. Phone numbers come along for free.

Who gets value out of this

Agencies and freelancers use it to split a market into two pitch lists. Businesses already buying ads have budget, so you sell them better creative or management. The verified non-advertisers get the "your competitors are running ads" pitch. The discovered_domain column shows you what funnel an advertiser runs before you ever get them on a call.

Cold email and lead-gen shops use the verdict to segment copy. "Noticed your Facebook ads" is a very different opener than "nobody in your area is advertising yet." When the actor builds the list itself you also get phone numbers, so one run can feed email, SMS, and dialer campaigns at the same time.

If you sell software, payments, insurance, or anything else to small businesses, treat runs_meta_ads as a budget signal. A business paying Meta every month spends money to grow. Sort by ads_sampled and the biggest marketing budgets float to the top of your call list.

Local owners run it on their own niche to see which competitors advertise and where their ads point.

Researchers can measure ad adoption for any vertical in any metro with a single run. Each row carries resolution_method, so you can audit how every answer was reached.

And if you live in Clay, a CRM, or a spreadsheet: this is the enrichment step for lists that have no domain column. Name and city in; page ID, verdict, landing domain, and phone out. Export is plain CSV or JSON.

Why not just search the Ad Library yourself?

Because keyword search misses. We tested it against a hand-checked set of businesses we knew were advertising, and search failed to surface them again and again. Tools like Adyntel need a website or page URL for every row, which local lists rarely have. This actor resolves identity on its own: it finds the website, pulls the Facebook page off it, and reads the Ad Library by numeric page ID. That lookup is deterministic, not a guess.

Every lead comes back one of three ways:

  • true or false means the page was positively identified and its Ad Library was checked. Both are real answers.
  • "unknown" means identity couldn't be resolved. Those rows never pay the answer fee, and a failed lookup is never dressed up as "not advertising."

There's also an optional keyword fallback for unresolved leads. It uses a name-and-geography matcher we hand-verified at 91.7% precision on a 215-business pilot in Phoenix.

How to use it

Have a list already? Open the Input tab and paste it into the Leads field as JSON. Include a domain when you know it, since that skips a lookup and gets you a faster answer:

[
{ "name": "Chas Roberts A/C & Plumbing", "city": "Phoenix", "state": "AZ" },
{ "name": "Parker & Sons", "city": "Phoenix", "state": "AZ", "domain": "parkerandsons.com" },
{ "name": "Sunset Plumbing", "city": "Tempe", "state": "AZ" }
]

If your list lives in a CSV or a spreadsheet, any converter will turn name,city,state rows into that shape.

Don't have a list? Leave Leads empty, fill in a search term and a location, and the actor builds one from Google Maps before enriching it.

Hit Start, then open the Dataset tab when the run finishes. Every lead has a verdict row you can export as CSV, Excel, or JSON.

A few things people figure out after a run or two: sorting by ads_sampled descending puts the heaviest advertisers first. When discovered_domain doesn't match the business website, they're running dedicated landing pages, which usually means serious spend. And the keyword fallback option squeezes some extra matches out of leads that couldn't be resolved.

Output (per lead)

FieldMeaning
runs_meta_adstrue / false / "unknown"
page_id / matched_pageThe advertiser's Facebook page, ID and name
ads_sampledActive ads seen in the sample, capped by the sampling limit
discovered_domainWhere their ads send traffic. Often not their website
phoneBusiness phone, filled in when the list comes from Maps
match_confidence1.0 for page-ID resolution, a 0 to 1 score on the fallback lane
resolution_methodsite-link+page-id, keyword-match, site-link-only, or none

Pricing

$0.04 per definitive answer, and $0.01 per lead when we have to find the business's website for you (leads submitted without a domain). Unresolved leads never pay the answer fee. A 200-lead run comes in around $8 to $10, which is less than most people pay for a single verified lead.