LinkedIn Ad Library Scraper - Ads, Impressions, Targeting avatar

LinkedIn Ad Library Scraper - Ads, Impressions, Targeting

Pricing

from $0.55 / 1,000 ads

Go to Apify Store
LinkedIn Ad Library Scraper - Ads, Impressions, Targeting

LinkedIn Ad Library Scraper - Ads, Impressions, Targeting

Scrape LinkedIn's public Ad Library by keyword, advertiser, company page, pasted search link, country or date: full ad text, headline, CTA, landing page, images, video, run dates, impressions by country and targeting. No login. $1 per 1,000 ads with full details.

Pricing

from $0.55 / 1,000 ads

Rating

0.0

(0)

Developer

Khandji Omar

Khandji Omar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Share

LinkedIn Ad Library Scraper — Ads, Impressions, Targeting

Scrape LinkedIn's public Ad Library by keyword, advertiser, country or date: the full ad text, headline, call to action, landing page, images and video, run dates, estimated impressions with the split by country, and the targeting the advertiser chose (languages, locations, job / company / audience criteria). No login, no cookies. $1 per 1,000 ads with full details, no start fee.

Free tier — 20 results free on every run

The first 20 results of every run are free, on every run you ever make — not a one-off trial. One guard: the free allowance never covers more than half of a run, so the offer stays sustainable.

What does this LinkedIn Ad Library scraper do?

Give it keywords (crm), advertisers (HubSpot), specific ad links, or just a list of countries. It searches LinkedIn's Ad Library, then opens every ad's detail page so each row is complete: text, media, landing page, dates, impressions and targeting — the data you would otherwise copy by hand, ad by ad.

Why use it

  1. Full details included in the price. Impressions by country, targeting and landing page on every ad, not only the search card. $0.001 per ad, no start fee.
  2. Competitor B2B ad intelligence. See which messages, offers and formats a competitor has been running, where, for how long and to whom.
  3. Landing pages with UTM tags. Reveal the campaigns and funnels behind each ad.
  4. Filters: keyword, advertiser (with optional exact match), countries, date range.
  5. Never charged for incomplete rows. If LinkedIn refuses an ad's detail page, you still get the search card, flagged detailsIncluded: false, and it is not charged.
  6. API, n8n, Make, Zapier and MCP ready.

How to use it in 3 steps

  1. Click Try for free — a keyword and an advertiser are prefilled.
  2. Add keywords, advertisers or ad links; optionally countries and dates.
  3. Click Start and download JSON, CSV or Excel.

Input

FieldWhat it does
searchTermsKeywords (ad text or advertiser).
advertisersCompany or person names that paid for the ads.
exactAdvertiserMatchKeep only ads whose advertiser name equals yours (drops partners and resellers).
adUrlsSpecific linkedin.com/ad-library/detail/... links or ad IDs.
startUrlsPasted LinkedIn links: an Ad Library search link (run again with its filters), a company page like linkedin.com/company/nvidia (every ad of exactly that company), or a single ad link.
countriesTwo-letter codes (US, FR, DE…) where the ads were shown.
dateRangeAll time, last 30 days, this month, this year, last year.
startDate / endDateCustom range (YYYY-MM-DD).
maxAdsPerSearch1 to 5,000. Default 50.
includeDetailsFull details (default on). Off = search cards only, faster.
maxTotalChargeUsdOptional hard cost cap for the run.
{
"advertisers": ["HubSpot"],
"exactAdvertiserMatch": true,
"countries": ["US", "GB"],
"dateRange": "last-30-days",
"maxAdsPerSearch": 200
}

Output

Real example (text, video and targeting lists trimmed):

{
"adId": "1578467644",
"adUrl": "https://www.linkedin.com/ad-library/detail/1578467644",
"advertiser": "Altera",
"advertiserUrl": "https://www.linkedin.com/company/15226690",
"format": "Video Ad",
"text": "Accelerate Design in the AI Era at Altera Innovators Day.\nJoin us on October 28 in San Jose…",
"headline": "Join us on October 28 in San Jose for a full day of technical sessions, demos, and conversations…",
"callToAction": "Register",
"landingUrl": "https://go.altera.com/innovators-day-san-jose-registration?utm_source=linkedin&utm_medium=paid_social&utm_campaign=Raghib-Keynote-alterainnovatorsday2026-sanjose",
"videoUrl": "https://dms.licdn.com/playlist/vid/v2/…/mp4-720p-30fp-crf28/…",
"paidBy": "Altera",
"startDate": "2026-09-28",
"endDate": "2026-09-29",
"totalImpressions": "< 1k",
"impressionsMin": 0,
"impressionsMax": 1000,
"impressionsByCountry": [
{"country": "Japan", "percent": "46%"},
{"country": "United States", "percent": "28%"},
{"country": "India", "percent": "23%"}
],
"targetingLanguages": ["English"],
"targetingLocations": ["Greater Tokyo Area", "San Francisco Bay Area", "Chennai", "Tel Aviv District", "Israel"],
"targetingParameters": {
"Job": {"targeted": true, "excluded": false},
"Company": {"targeted": false, "excluded": true}
},
"detailsIncluded": true,
"status": "ok"
}

How much does it cost?

EventPrice
Ad (with full details)$0.001 ($1 per 1,000)
Start feenone

Up to 20 ads of every run are free (at most half of the run). An ad whose details could not be read is delivered but never charged. Paid Apify plans get lower tier prices.

Use cases

  • Competitor monitoring — every ad a competitor ran this month, with landing pages.
  • B2B ad creative research — hooks, formats and CTAs that run the longest.
  • Agency pitches — show a prospect what their competitors spend attention on.
  • Market research — who advertises on a topic, in which countries, to which jobs.

Use it from code (API)

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("om_kh/linkedin-ad-library-scraper").call(run_input={
"advertisers": ["HubSpot"],
"exactAdvertiserMatch": True,
"dateRange": "last-30-days",
})
for ad in client.dataset(run["defaultDatasetId"]).iterate_items():
print(ad["startDate"], ad.get("totalImpressions"), ad.get("landingUrl"))
curl -X POST "https://api.apify.com/v2/acts/om_kh~linkedin-ad-library-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchTerms": ["crm"], "countries": ["FR"], "maxAdsPerSearch": 24}'

Integrations and MCP

Schedule it weekly per competitor and push new ads to Slack, Google Sheets or Airtable with n8n, Make or Zapier. AI agents can call it through https://mcp.apify.com as om_kh/linkedin-ad-library-scraper.

Tips and limits

  • Run dates, impressions, country split and targeting are published by LinkedIn for ads shown in the EU (DSA transparency). Add an EU country (FR, DE, NL…) to get them; for ads shown only outside the EU these fields are empty — LinkedIn does not publish them.
  • LinkedIn's advertiser search is fuzzy — use exactAdvertiserMatch for one company.
  • Spend and clicks are not public on LinkedIn, so no scraper can provide them.

FAQ

Do I need a LinkedIn account or cookies? No.

Is it legal? It reads the Ad Library LinkedIn publishes for transparency. Use the data in line with the laws and terms that apply to you.

Your feedback

Did this Actor save you time? A short review on the Reviews tab helps other people find it, and every review is read. Something missing or broken? Open an issue on the Issues tab: it is answered and fixed fast.