Meta Ad Library Page Resolver
Pricing
Pay per event
Meta Ad Library Page Resolver
Resolve brands, domains, Facebook Pages, and Ad Library URLs to Meta advertiser page IDs and page-specific Ad Library URLs.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
9 days ago
Last modified
Categories
Share
Resolve brands, company domains, Facebook Page URLs, and existing Meta Ad Library links into page IDs you can use in Meta/Facebook ad research workflows.
What does Meta Ad Library Page Resolver do?
Meta Ad Library Page Resolver turns messy advertiser inputs into clean Meta Ad Library page targets.
You can submit:
- ๐ Brand names such as
NikeorPatagonia - ๐ Company domains such as
apple.com - ๐ Facebook Page URLs such as
https://www.facebook.com/nike - ๐งญ Existing Meta Ad Library search URLs
The actor returns resolved advertiser page IDs, page names, Facebook Page URLs, page-specific Meta Ad Library URLs, ranking signals, and evidence ad IDs.
Who is it for?
This resolver is built for paid-social and competitive-intelligence teams that need clean page IDs before scraping ads.
- ๐งโ๐ผ Paid-social agencies mapping a client or competitor list to advertiser pages
- ๐ต๏ธ Competitive-intel teams preparing monitoring seeds
- ๐งพ Compliance and reputation teams auditing brand impersonation or regulated ads
- ๐งฐ Data teams enriching CRM or domain lists with Meta advertiser identifiers
- ๐ Growth teams building repeatable ad-library research pipelines
Why use it?
Meta Ad Library workflows usually need a page ID or a precise page-specific URL. Brand names and domains are ambiguous. This actor handles the resolver step so your downstream ad scraping starts with better seeds.
Typical workflow
- Paste brand names, domains, or Facebook Page URLs.
- Select a country and optional ad status.
- Run the actor.
- Export resolved
pageIdandmetaAdLibraryUrlvalues. - Feed those URLs into
facebook-ads-libraryor your monitoring system.
Data returned
| Field | Description |
|---|---|
query | Original normalized query used for resolution |
inputType | Query, domain, Facebook Page URL, or Ad Library URL |
rank | Match rank for this input |
pageName | Resolved advertiser page name |
pageId | Meta/Facebook page ID |
facebookPageUrl | Public Facebook Page URL |
metaAdLibraryUrl | Page-specific Meta Ad Library URL |
matchScore | Simple score based on query/name similarity |
activeAdCount | Estimate from inspected ads when enabled |
matchedFromAdArchiveIds | Evidence ad IDs used for the match |
How much does it cost to resolve Meta Ad Library page IDs?
The actor uses pay-per-event pricing:
- A small start charge per run
- A per-result charge for each resolved page record
Use low maxMatchesPerQuery and maxAdsToInspect values for cheap first tests. Increase them when you need more recall across ambiguous brands.
Input options
Brand, advertiser, or domain queries
Use queries for brand names and domains. Domains are normalized into likely brand names, for example apple.com becomes apple.
Facebook Page URLs
Use pageUrls when you already have Facebook pages. Numeric profile.php?id= URLs are resolved directly. Named slugs are searched in Meta Ad Library.
Meta Ad Library URLs
Use adsLibraryUrls to normalize and inspect an existing search or page URL.
Country and filters
country, activeStatus, and mediaType are passed through to Meta Ad Library. Start with US and all unless you know your target market.
Output example
{"query": "nike","inputType": "query","rank": 1,"pageName": "Nike","pageId": "15087023444","facebookPageUrl": "https://www.facebook.com/nike/","metaAdLibraryUrl": "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&media_type=all&view_all_page_id=15087023444&search_type=page","matchScore": 100,"activeAdCount": 1}
Tips for better matching
- Use exact brand names when possible.
- Add the official domain for brand disambiguation.
- Use
maxMatchesPerQuery: 3for broad discovery. - Use
maxMatchesPerQuery: 1for enrichment pipelines. - Raise
maxAdsToInspectonly when you need more possible pages.
Integrations
Use this actor before:
facebook-ads-libraryfor ad scraping by page ID- Brand monitoring pipelines that need stable advertiser identifiers
- CRM enrichment workflows that start from company domains
- BI dashboards tracking paid-social activity by advertiser page
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/meta-ad-library-page-resolver').call({queries: ['nike', 'apple.com'],country: 'US',maxMatchesPerQuery: 2,maxAdsToInspect: 20});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/meta-ad-library-page-resolver').call(run_input={'queries': ['nike', 'apple.com'],'country': 'US','maxMatchesPerQuery': 2,'maxAdsToInspect': 20,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~meta-ad-library-page-resolver/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"queries":["nike","apple.com"],"country":"US","maxMatchesPerQuery":2}'
MCP usage
You can connect the actor to Claude through Apify MCP:
https://mcp.apify.com/?tools=automation-lab/meta-ad-library-page-resolver
Claude Code setup:
$claude mcp add apify-meta-page-resolver https://mcp.apify.com/?tools=automation-lab/meta-ad-library-page-resolver
Claude Desktop JSON config:
{"mcpServers": {"apify-meta-page-resolver": {"url": "https://mcp.apify.com/?tools=automation-lab/meta-ad-library-page-resolver"}}}
Example prompts:
- "Resolve these competitor domains to Meta Ad Library page IDs."
- "Find page-specific Ad Library URLs for this brand list."
- "Prepare page IDs that I can pass to the Facebook Ads Library scraper."
Reliability notes
Meta uses edge protection and dynamic pages. This actor uses a browser/proxy flow rather than plain HTTP. If a query fails, try fewer inputs, a different country, or a more precise brand/domain.
Limitations
The activeAdCount field is an estimate from inspected ads, not Meta's full advertiser total. Ambiguous names may return multiple pages. The actor returns evidence IDs so you can review why a page matched.
Legality
Meta Ad Library data is public transparency data. Use the output for lawful research, monitoring, compliance, and competitive analysis. Respect Apify and Meta terms and avoid collecting personal data unnecessarily.
Troubleshooting
Why did I get zero matches?
The brand may have no ads in the selected country/status, the query may be too broad, or Meta may have returned a temporary challenge. Try activeStatus: all, a different country, or the official domain.
Why are there multiple pages for one brand?
Large brands often have regional, product, or franchise pages. Use rank, matchScore, page name, categories, likes, and evidence ad IDs to choose the right page.
Related scrapers
facebook-ads-libraryโ scrape ads after resolving page IDsfacebook-pages-scraperโ collect public Facebook Page metadatafacebook-posts-scraperโ scrape public Facebook posts
Changelog
0.1
Initial resolver for brand, domain, Facebook Page URL, and Meta Ad Library URL inputs.
FAQ
Can I resolve domains directly?
Yes. Domains are normalized into likely brand terms and searched in Meta Ad Library.
Can I feed results into another actor?
Yes. Use metaAdLibraryUrl or pageId with facebook-ads-library.
Does the actor need my Facebook login?
No. It uses public Meta Ad Library data and does not require user credentials.
Is this a full ad scraper?
No. It resolves advertiser pages. Use facebook-ads-library when you need full ad creative records.
Example inputs
{"queries": ["nike", "apple.com", "patagonia"],"country": "US","maxMatchesPerQuery": 3,"maxAdsToInspect": 30}
Operational guidance
For scheduled enrichment, batch 10โ25 brands per run and keep maxMatchesPerQuery low. For one-off discovery, increase maxMatchesPerQuery to review alternatives.