Meta Ad Library Page Resolver avatar

Meta Ad Library Page Resolver

Pricing

Pay per event

Go to Apify Store
Meta Ad Library Page Resolver

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

Stas Persiianenko

Maintained by Community

Actor 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 Nike or Patagonia
  • ๐ŸŒ 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

  1. Paste brand names, domains, or Facebook Page URLs.
  2. Select a country and optional ad status.
  3. Run the actor.
  4. Export resolved pageId and metaAdLibraryUrl values.
  5. Feed those URLs into facebook-ads-library or your monitoring system.

Data returned

FieldDescription
queryOriginal normalized query used for resolution
inputTypeQuery, domain, Facebook Page URL, or Ad Library URL
rankMatch rank for this input
pageNameResolved advertiser page name
pageIdMeta/Facebook page ID
facebookPageUrlPublic Facebook Page URL
metaAdLibraryUrlPage-specific Meta Ad Library URL
matchScoreSimple score based on query/name similarity
activeAdCountEstimate from inspected ads when enabled
matchedFromAdArchiveIdsEvidence 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: 3 for broad discovery.
  • Use maxMatchesPerQuery: 1 for enrichment pipelines.
  • Raise maxAdsToInspect only when you need more possible pages.

Integrations

Use this actor before:

  • facebook-ads-library for 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 ApifyClient
import os
client = 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.

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.