If you have ever tried using the Official Meta Ad Library API (graph.facebook.com/ads_archive) to monitor e-commerce, SaaS, or D2C competitors in the United States, Canada, Australia, or Latin America, you run into three immediate roadblocks:
- Mandatory Government ID & App Verification: Before making a single API request, Meta requires government-issued ID identity verification, physical address confirmation, and developer app setup.
- Zero Non-EU / Non-UK Commercial Ads: For
ad_type=ALL, the official Graph API only returns commercial ads delivered in the European Union or United Kingdom. Querying commercial ads inUS,CA,AU,BR, orSGreturns zero results unless the ad is classified as a regulated political, social issue, housing, employment, or credit ad. - No Direct Video or Image File URLs: Even where the official API returns records, it omits direct
MP4video streams and high-resolution image CDN linksβreturning only an authenticatedad_snapshot_urlbrowser render link instead of structured creative assets.Why Teams Automate Meta Ad Library Extraction: Growth marketers, creative strategists, D2C agencies, and compliance researchers need structured JSON/CSV feeds containing playable HD MP4 video URLs, multi-card carousel copy, destination CTA links, active longevity (
activeDays&isLongRunningWinner), cross-run launch/stop tracking, and EU/UK reach breakdownsβwithout manual browser scrolling or $99β$299/month SaaS spy-tool seats.
In this guide, we compare the three specialized engines in the UnitBytes Meta Ads Library Suite ($0.50 / 1,000 ads on Apify Gold+ plans, $0.75 / 1,000 on the Free plan, $0.0005 run start), break down exact field availability by country and ad category, and show how to automate competitor ad tracking in Python and n8n.
1. Official Meta Ad Library API vs. UnitBytes Meta Ads Suite#
| Capability | Official Meta Graph API (ads_archive) | SaaS Ad-Spy Tools ($99β$299/mo) | UnitBytes Meta Ads Suite ($0.50β$0.75/1K) |
|---|---|---|---|
| Setup & Identity Verification | Government ID + Developer App required | Account seat subscription | Zero Meta login or ID required |
| US / CA / AU / Global Commercial Ads | Blocked (EU/UK or Political only) | Supported (UI-focused) | All 240+ countries + ALL |
Direct Playable MP4 Video URLs | Not returned (ad_snapshot_url only) | Manual single-ad download | primaryVideoHdUrl & primaryVideoSdUrl in JSON/CSV |
Instagram @handle & FB Page URL Resolution | Numeric search_page_ids only | Manual brand search | Auto-resolves FB Page URLs & IG @handles |
Cross-Run Competitor Diffing (new / stopped) | Manual database engineering | Dashboard alerts only | Built-in stateful monitorStatus tracking |
EU DSA & UK (GB) Demographic Reach | Supported | Partial | euTotalReach + euAgeGenderBreakdown |
| Pricing Model | Free (restricted scope) | $99β$299 / month fixed | Pay-Per-Event ($0.50β$0.75 / 1,000 ads) |
With Apify's $5.00 free monthly platform credit, you can extract roughly 6,600 enriched Facebook & Instagram ads every month at $0.00 out-of-pocket cost.
2. Choosing the Right Engine out of the 3 Specialized Scrapers#
While all three Actors share the same lightweight cloud extraction engine and $0.50β$0.75 / 1,000 pricing, each is tailored around a distinct workflow and dataset view:
1. Facebook/Meta Ads Library Scraper API (unitbytes/meta-ads-library-scraper)
The all-in-one flagship engine for keyword discovery, direct Ad Library URLs (facebook.com/ads/library/?...), Facebook Page URLs, Instagram handles, and specific adIds lookups across 240+ countries.
- Best for: Market-wide creative research, filtering by
mediaType(video,image,meme),publisherPlatforms(facebook,instagram,messenger,threads,audience_network,whatsapp),contentLanguages,startDateMin/startDateMax, and multi-runresumptionTokenpagination.
2. Facebook, Instagram & Meta Ad Spy (unitbytes/facebook-instagram-ad-spy-scraper)
Built specifically for competitor roster monitoring when your team tracks a list of rival brands by their Facebook Page URLs (https://www.facebook.com/gymshark) or Instagram handles (@sephora, @lululemon).
- Best for: Automated weekly or daily competitor ad monitoring. Resolves vanity URLs and Instagram
@handlesinto numeric Metapage_ids automatically, distributesmaxItemsfairly across multiple brands in a single run, and tracksmonitorStatus(baseline,new,continuing,stopped) across scheduled runs via a namedstateStoreName.
3. Meta Ad Reach & Political Ad Spend (unitbytes/facebook-ad-reach-spend-scraper)
Purpose-built for European Union DSA transparency, United Kingdom (UK / GB) reach intelligence, and global political/issue ad spend auditing.
- Best for: Media planners estimating competitor European campaign scale (
euTotalReach,euAgeMin,euAgeMax,euGenderAudience,euLocationCountriesText,euAgeGenderBreakdown,payer,beneficiary) and researchers auditing regulatedpolitical_and_issue_ads(spendLower,spendUpper,impressionsLower,impressionsUpper,currency,byline,disclaimerLabel).
3. Realistic Field Coverage: What Meta Publishes by Region & Ad Type#
Not every field exists on every ad. Understanding what Meta's Ad Library actually exposes upstream prevents wasted queries and helps you design accurate analytics pipelines:
| Field Group | Key Output Fields | Global Commercial Ads (US, CA, AU, etc.) | EU / EEA & UK Commercial Ads (DE, FR, GB, etc.) | Political & Issue Ads (political_and_issue_ads) |
|---|---|---|---|---|
| Core Ad & Longevity | adArchiveId, adUrl, isActive, startDate, endDate, activeDays, isLongRunningWinner, collationCount, publisherPlatforms | 100% | 100% | 100% |
| Creative Copy & Funnel | title, bodyText, caption, linkDescription, linkUrl, linkDomain, ctaText, ctaType, displayFormat, carouselCards | 95β100% | 95β100% | 90β100% |
| Media CDN Assets | primaryImageUrl, imageUrls, primaryVideoHdUrl, primaryVideoSdUrl, videoPreviewImageUrl | 100% (per format) | 100% (per format) | 100% (per format) |
| Advertiser Profile | pageId, pageName, pageCategory, pageLikes, igUsername, igFollowers, igVerified | 95β100% | 95β100% | 95β100% |
| EU DSA & UK Reach | euTotalReach, euAgeMin, euAgeMax, euGenderAudience, euTargetLocations, euAgeGenderBreakdown, payer, beneficiary | null (Not published by Meta outside EU/UK) | 95β100% (when scrapeAdDetails: true) | Populated if delivered in EU/UK |
| Spend & Impressions | spendLower, spendUpper, spendText, impressionsLower, impressionsUpper, byline, disclaimerLabel | null (Meta hides spend on commercial ads) | null (Commercial ads expose reach, not spend) | 98β100% |
How to Spot Winning Commercial Ads in the US (Where Spend Is Not Published)
Because Meta does not disclose dollar spend for commercial e-commerce ads in the United States, performance marketers combine three objective fields emitted on every record:
activeDays >= 21&isLongRunningWinner: true: Brands rarely pay to keep unprofitable direct-response creatives live for 3+ weeks.collationCount >= 3: Indicates the advertiser is actively running multiple creative/copy variations of the same winning concept simultaneously.monitorStatus: "continuing"vs."stopped": Scheduling the Competitor Ad Spy daily or weekly lets you separate short-lived 48-hour creative tests from evergreen scaling winners.
4. Sample Output Payload (Enriched Ad Record)#
Every extracted ad is normalized into a flat, spreadsheet-ready JSON object (with full carouselCards and euAgeGenderBreakdown arrays preserved for programmatic analysis):
{
"adArchiveId": "1952066089105921",
"adUrl": "https://www.facebook.com/ads/library/?id=1952066089105921",
"collationId": "884120394810293",
"collationCount": 4,
"isActive": true,
"startDate": "2026-10-14T00:00:00Z",
"endDate": null,
"activeDays": 29,
"isLongRunningWinner": true,
"pageId": "20409006880",
"pageName": "Zalando",
"pageLikes": 8540210,
"igUsername": "zalando",
"igFollowers": 1240500,
"igVerified": true,
"displayFormat": "VIDEO",
"publisherPlatforms": ["facebook", "instagram"],
"publisherPlatformsText": "facebook, instagram",
"title": "Shop New Season Styles",
"bodyText": "Autumn essentials have landed. Discover over 1,500 brands with free returns.",
"ctaText": "Shop Now",
"ctaType": "SHOP_NOW",
"linkUrl": "https://www.zalando.de/damen-home/",
"linkDomain": "zalando.de",
"primaryVideoHdUrl": "https://video.xx.fbcdn.net/v/t42.1790-2/...",
"videoPreviewImageUrl": "https://scontent.xx.fbcdn.net/v/t39.35426-6/...",
"payer": "Zalando SE",
"beneficiary": "Zalando SE",
"euTargetsEu": true,
"euTotalReach": 48250,
"euGenderAudience": "All",
"euAgeMin": 18,
"euAgeMax": 44,
"euLocationCountriesText": "Germany, Austria",
"detailLevel": "full"
}
5. Python Quickstart: Competitor Video Ad Spy & EU Reach Audit#
Install the official apify-client SDK (pip install apify-client pandas) and run either keyword creative discovery or multi-brand competitor tracking in under 20 lines of Python:
import os
import pandas as pd
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
# Monitor active video ads across rival D2C brands + track new/stopped launches
run = client.actor("unitbytes/facebook-instagram-ad-spy-scraper").call(
run_input={
"pageUrls": [
"https://www.facebook.com/gymshark",
"https://www.facebook.com/lululemon",
],
"instagramHandles": ["@aloyoga"],
"country": "US",
"activeStatus": "active",
"mediaType": "video",
"enableChangeTracking": True,
"stateStoreName": "d2c-activewear-spy",
"maxItems": 60,
}
)
ads = client.dataset(run["defaultDatasetId"]).list_items().items
# Filter evergreen scaling winners (active 14+ days with playable HD video)
winners = [
ad for ad in ads
if (ad.get("activeDays") or 0) >= 14 and ad.get("primaryVideoHdUrl")
]
print(f"Extracted {len(ads)} competitor ads ({len(winners)} evergreen video winners)")
pd.DataFrame(winners).to_csv("competitor_winning_video_ads.csv", index=False)
6. Frequently Asked Questions (FAQ)#
Do I need a Facebook account, Meta developer app, or government ID?
No. All three UnitBytes Meta Ads Library Actors extract public Ad Library records in the cloud without requiring Facebook cookies, Business Manager access, developer App Review, or identity verification.
Why are euTotalReach, payer, and beneficiary null when I scrape country: "US"?
Meta only publishes commercial ad reach, target age/gender demographics, and payer/beneficiary disclosures for ads delivered in European Union / EEA member states (under the Digital Services Act) and the United Kingdom (GB / UK). For US commercial ads, use activeDays, isLongRunningWinner, collationCount, and monitorStatus to gauge creative performance, or set adType: "political_and_issue_ads" when researching regulated political spend (spendLower / spendUpper).
How do I paginate past maxItems across scheduled batches without duplicate ads?
When meta-ads-library-scraper pauses at your maxItems limit while more upstream results exist, it saves a signed resumptionToken inside the run's Default Key-Value Store (PAGINATION_STATE) and logs instructions. Pass that resumptionToken into your next run to resume seamlessly with zero duplicate adArchiveId records.
Can I automate competitor ad alerts in n8n without writing code?
Yes. Visit the UnitBytes n8n Automation Hub to copy or download 18-node AI workflow templates for Meta Ads Library Scraper, Facebook & Instagram Competitor Ad Spy, and Meta Ad Reach & Political Spendβcomplete with adArchiveId deduplication, OpenAI (gpt-4o-mini) creative hook analysis, Google Sheets logging, Gmail briefs, and Slack alerts.
π Start Extracting Competitor Ads & Reach Telemetry Today#
Choose the specialized engine that fits your workflow on Apify ($0.50/1K on Gold+, $5.00 free monthly credit included):
- π― Facebook/Meta Ads Library Scraper API ($0.50/1K β Keyword, URL & Ad ID Search)
- π΅οΈ Facebook, Instagram & Meta Ad Spy ($0.50/1K β Page URLs, IG @Handles & Change Tracking)
- π Meta Ad Reach & Political Ad Spend ($0.50/1K β EU DSA, UK Reach & Spend Brackets)
Need a custom recurring multi-brand ad intelligence feed delivered directly to BigQuery, Snowflake, S3, or Excel? Request a quote via the Done-For-You Dataset Form below or email contact@unitbytes.com.
Bypass Meta Ad Library API Limits β Extract Commercial Ads, HD Videos & EU Reach from $0.50/1K
Extract commercial Facebook & Instagram ads across 240+ countries without government ID verification or App Reviewβincluding playable HD MP4 URLs, carousel cards, CTA links, cross-run competitor change tracking, EU DSA / UK reach demographics, and political spend brackets.
Related Technical Guides & Teardowns
How to Scrape Facebook Marketplace Seller Profiles, Active/Sold Inventory & Detect Undisclosed Dealers (2026 Guide)
How to extract Facebook Marketplace seller profiles (exact join date, 5-star ratings, review counts, vanity URLs), unmask undisclosed car dealers ('curbstoners') and real estate brokers posing as private owners, and discover active + recently sold listings from any Facebook or Marketplace Profile URL, Seller ID, handle, or Item URL.
The US Auto Dealership Street-Purchase Playbook: Automating Private-Party Vehicle Acquisition Across Craigslist, Facebook Marketplace & OfferUp (2026)
How US franchise and independent auto dealerships eliminate $1,200+ wholesale auction fees by automating private-party ('By Owner') vehicle sourcing, 17-character VIN extraction, competitor lot audits, and price-drop alerts across Craigslist, Facebook Marketplace, and OfferUp.
Used Car VIN, Auto Dealer & FSBO Real Estate Scraping Guide in 2026 (FB Marketplace, Craigslist & OfferUp)
Complete guide to extracting private-party used cars (VIN, odometer mileage, title status), auto dealer inventories, and FSBO real estate across Facebook Marketplace, Craigslist, and OfferUp ($0.50/1K).