Meta Ad Library - Competitor Ad Scaling Tracker avatar

Meta Ad Library - Competitor Ad Scaling Tracker

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Meta Ad Library - Competitor Ad Scaling Tracker

Meta Ad Library - Competitor Ad Scaling Tracker

Scrape live competitor ads from the public Meta Ad Library (Facebook & Instagram): ad copy, creative images/videos, landing page URL, start date, and active status. No account or API key required.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Xtractoo

Xtractoo

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Share

Meta Ad Scraper — Competitor Ad Scaling Tracker

Extract the live ads any brand is running on Facebook & Instagram straight from Meta's public Ad Library — the ad creative, the copy, when it started, the raw image/video files, and the landing-page link it sends people to. Built for e-commerce and affiliate marketers who want to see which competitor creatives are being aggressively scaled, without paying for a heavyweight ad-spy subscription.

Why use this actor

  • No account, no login, no API key — searches the public Ad Library directly.
  • Find competitors by name or keyword — give it nike, gymshark, or any brand and it returns every matching advertiser's active ads.
  • The creative, not just the headline — direct .jpg / .mp4 URLs for every image and video in the ad, ready to download and review.
  • Knows what's being scaled — each ad's start date and active status let you spot the creatives a brand is doubling down on right now.
  • The full funnel — primary ad copy plus the call-to-action and its landing-page link.
  • Stable JSON output suitable for pipelines, spreadsheets, or a database — with automatic retries built in.

How it works

  1. You give the actor one or more search terms (brand names or keywords) and a country.
  2. The actor looks each term up in the Meta Ad Library and pulls the matching ads — advertiser, ad copy, start date, media files, and the call-to-action link.
  3. It keeps turning the pages for each term until it reaches your maxAdsPerTerm limit, pausing politely between pages so the search stays reliable.
  4. Results stream into your dataset, ready to download as JSON, CSV, or Excel.

You don't manage any scrapers, browsers, or sessions — just provide the brands you want to watch and press Run.

Use Cases

Competitor creative intelligence Track what your top 5 competitors are running right now — the exact copy, visuals, and offer angles — and set a weekly schedule to catch when they launch a new campaign. Use collationCount as a scaling signal: a creative with many grouped variants is one they're actively pushing budget behind.

Winning product & offer discovery (e-commerce / dropshipping) Search category keywords ("posture corrector", "teeth whitening", "minimalist wallet") to surface which brands are actively spending on a product right now, what hook they use, and what landing page they send traffic to — without a paid ad-spy subscription.

Ad creative swipe file Build a rolling library of tested creatives by running weekly searches for brands in your niche. Filter on isActive: true and displayFormat: "VIDEO" to focus on the video ads getting current budget — the richest source of copywriting and creative inspiration.

Brand launch & campaign monitoring Watch a specific brand's new launches by scheduling daily runs on their name. When a new startDate appears in the output that wasn't there yesterday, you know they just went live — useful for both competitive intel and affiliate/media buying timing.

Landing page & funnel research Pull landingPageUrl for every ad a brand is running to map their full funnel — which offer pages, quiz funnels, or product bundles they're driving paid traffic to. Stack against ctaType to understand which call-to-action is paired with which destination.

Input

{
"searchTerms": ["nike", "gymshark"],
"country": "US",
"activeStatus": "active",
"adType": "all",
"mediaType": "all",
"maxAdsPerTerm": 100,
"maxConcurrency": 2,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}
FieldTypeDescription
searchTermsarrayRequired. Brand names or keywords to track, e.g. ["nike", "gymshark"]. Each term is searched independently.
countrystringTwo-letter country code of the ad market to search (where the ads are shown). Default US. Use ALL for worldwide.
activeStatusstringactive (currently running — default), inactive, or all.
adTypestringAd category. all (default) covers standard commercial ads. Others: political_and_issue_ads, employment_ads, housing_ads, financial_products_and_services_ads.
mediaTypestringFilter by creative format: all (default), image, video, meme, image_and_meme, none.
maxAdsPerTermintegerStop after this many unique ads per term. Default 100.
maxConcurrencyintegerHow many terms to process in parallel. Default 2. Keep low to stay reliable.
pageSizeintegerAdvanced: ads requested per page. Default 30.
proxyConfigurationobjectResidential proxy is strongly recommended. Default groups: ["RESIDENTIAL"].

Every string field is prefilled — you can open the actor and press Run without typing anything to get a sample of Nike ads in the US.

Output

Each ad becomes one record. The most useful fields are lifted to the top level for easy reading, and the complete raw ad data from Meta is kept alongside them so nothing is lost. Long media URLs are shortened below for readability.

Sample — a video ad (keyword nike):

{
"_input": "nike",
"_scrapedAt": "2026-05-29T08:48:20Z",
"adArchiveId": "1502078871070045",
"pageName": "Whatnot",
"pageId": "112727500143177",
"isActive": true,
"startDate": "2025-11-14",
"endDate": "2026-05-29",
"publisherPlatform": ["FACEBOOK", "INSTAGRAM", "MESSENGER"],
"displayFormat": "VIDEO",
"adCopy": "Yup, you can buy new outfits without breaking the bank. Save on fashion ⚡️ Shop on Whatnot!",
"ctaType": "INSTALL_MOBILE_APP",
"ctaText": "Install now",
"landingPageUrl": "http://play.google.com/store/apps/details?id=com.whatnot_mobile",
"imageUrls": ["https://scontent.fcgk28-1.fna.fbcdn.net/v/t39.35426-6/583053533_....jpg"],
"videoUrls": ["https://video.fcgk28-1.fna.fbcdn.net/o1/v/t2/f2/m366/AQMOGXdjy7j_....mp4"],
"collationCount": 2,
"adLibraryUrl": "https://www.facebook.com/ads/library/?id=1502078871070045"
}

Sample — an image/carousel ad (keyword gymshark):

{
"_input": "gymshark",
"_scrapedAt": "2026-05-29T08:48:20Z",
"adArchiveId": "2352951151882109",
"pageName": "Gymshark",
"pageId": "129669023798560",
"isActive": true,
"startDate": "2026-04-30",
"endDate": "2026-05-28",
"publisherPlatform": ["INSTAGRAM"],
"displayFormat": "DCO",
"landingPageUrl": "https://gym.sh/Shop_Gymshark",
"imageUrls": [
"https://scontent.fcgk10-1.fna.fbcdn.net/v/t39.35426-6/681237441_....jpg",
"https://scontent.fcgk10-2.fna.fbcdn.net/v/t39.35426-6/684673644_....jpg"
],
"videoUrls": ["https://video.fcgk10-2.fna.fbcdn.net/o1/v/t2/f2/m366/AQNiDKqerby....mp4", "... 3 more"],
"collationCount": 3,
"adLibraryUrl": "https://www.facebook.com/ads/library/?id=2352951151882109"
}
FieldTypeDescription
adArchiveIdstringThe ad's unique ID in the Meta Ad Library.
pageNamestringThe advertiser's Facebook Page name.
pageIdstringThe advertiser's Page ID.
isActivebooleanWhether the ad is currently running.
startDatestringDate the ad started running (YYYY-MM-DD).
endDatestringDate the ad last ran / was last seen (YYYY-MM-DD).
publisherPlatformarrayWhere the ad runs, e.g. ["FACEBOOK", "INSTAGRAM"].
displayFormatstringCreative format, e.g. VIDEO, IMAGE, DPA, DCO, CAROUSEL.
adCopystringThe primary ad text.
title / captionstringHeadline and caption, when present.
ctaTypestringCall-to-action type, e.g. SHOP_NOW, INSTALL_MOBILE_APP (may be empty).
ctaTextstringButton label, e.g. Install now.
landingPageUrlstringThe destination link the ad sends people to.
imageUrlsarrayDirect .jpg image URLs in the ad.
videoUrlsarrayDirect .mp4 video URLs in the ad.
collationCountnumberHow many near-identical variants of this creative are grouped together (a signal of scaling).
adLibraryUrlstringDirect link to view this ad in the Meta Ad Library.
snapshotobjectThe complete raw creative block from Meta (cards, byline, page profile, etc.) — kept for full fidelity.
(plus all raw Meta fields)spend, currency, reach_estimate, impressions_with_index, categories, targeted_or_reached_countries, and more are passed through verbatim.
_inputstringThe search term this record came from.
_scrapedAtstringUTC timestamp (ISO 8601) of when the record was collected.

A search term that cannot be reached returns an error record carrying _error and _errorDetail — it is never silently dropped.

Notes & limits

  • Keyword search returns all advertisers matching the term, not only the exact brand — e.g. nike surfaces Nike, Jordan, and resellers running Nike-related ads. Filter on pageName downstream if you want a single advertiser.
  • Reach, spend, and impressions are only disclosed by Meta for political/issue ads; standard commercial ads show these as ranges or null.
  • Media URLs are time-limited by Meta's CDN — download the creatives you need promptly.
  • Residential proxy is strongly recommended; Meta rate-limits datacenter addresses.

Other actors in this collection

ActorWhat it extracts
Crexi Commercial Real Estate Yield & Off-Market ScraperCommercial property listings with Cap Rate, NOI, asking price, and broker details.
ThomasNet US B2B Supplier & Manufacturer ScraperUS/North-American manufacturers & suppliers: capabilities, certifications, revenue, employees, location.
Myfxbook Community Outlook / Retail Sentiment ScraperRetail FX long/short sentiment, positions, and volume by currency pair.