LinkedIn Ad Library Scraper - Competitor Ads & Targeting avatar

LinkedIn Ad Library Scraper - Competitor Ads & Targeting

Pricing

from $1.90 / 1,000 ad delivered with details

Go to Apify Store
LinkedIn Ad Library Scraper - Competitor Ads & Targeting

LinkedIn Ad Library Scraper - Competitor Ads & Targeting

Scrape LinkedIn Ad Library ads by advertiser, keyword, payer, country and date: ad copy, advertiser, creative (images, video, carousel, document), CTA, landing page, run dates, impressions and targeting where LinkedIn shows them. Daily only-new mode for competitor alerts. No login.

Pricing

from $1.90 / 1,000 ad delivered with details

Rating

0.0

(0)

Developer

Scrapewise Data

Scrapewise Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

LinkedIn Ad Library Scraper: competitor ads, creatives, run dates, impressions and targeting

LinkedIn Ad Library Scraper collects the ads any company runs on LinkedIn, straight from the public LinkedIn Ad Library, without a LinkedIn account or cookies. Search by advertiser, keyword, payer, country and date, and every ad comes back as one clean row: the full ad copy, the advertiser and who paid for it, the format, the creative (images, video, carousel cards, document, event), the call to action and landing page, and, for ads shown in the EU, the run dates, estimated impressions by country and the targeting the advertiser chose.

It is built for B2B marketers, agencies and founders who watch competitors: see which offers, webinars, reports and free trials a company is pushing right now, which landing pages it sends LinkedIn traffic to, how long each ad runs and which countries and languages it targets. Together with Meta and Google ad libraries it gives a full picture of a competitor's paid social.

At a glance

WhatPrice
Ad delivered with full detailsUS$ 2.50 per 1,000 ads (US$ 0.0025 each)
Ad delivered as a summary row (includeDetails off)US$ 1.00 per 1,000 ads (US$ 0.001 each)
Run startUS$ 0.005 per run
  • 5 competitors with 50 ads each = 250 detailed ads = US$ 0.63 + US$ 0.005.
  • Error rows, duplicates and ads already delivered in earlier runs (onlyNew) are never charged. maxItems caps each search, and a spending limit set on the run stops it cleanly with everything delivered so far.
  • No LinkedIn account, no cookies, no extra tools to pay for.

Quick start

All recent ads of one company shown in Germany, with full details:

{
"advertisers": ["Adobe"],
"countries": ["DE"],
"maxItems": 50
}

Several competitors, only ads that mention a webinar, last 30 days, any country:

{
"advertisers": ["Canva", "Figma"],
"searchQueries": ["webinar"],
"dateRange": "last-30-days",
"maxItems": 100
}

Daily alert of new ads (run it on a schedule):

{
"advertisers": ["Adobe"],
"onlyNew": true,
"maxItems": 0
}

You can also paste search links copied from the Ad Library after setting filters there, or single ad links such as https://www.linkedin.com/ad-library/detail/1595643974, in startUrls.

Input

FieldWhat it does
advertisersCompany or advertiser names as LinkedIn shows them, one per line. A name also matches the company's showcase pages (for example Adobe returns Adobe, Adobe for Business, Adobe Acrobat and Adobe Creative Cloud).
searchQueriesWords to find in the ads. Alone, each keyword searches every advertiser; with advertisers, each advertiser is searched with each keyword.
payerOnly ads paid for by this name (the "Paid for by" line, often an agency or the legal entity).
countries2-letter country codes where the ads were shown (US, DE, GB...). Several codes = any of them. Empty = all countries.
dateRangeany, last-30-days, current-month, current-year, last-year or custom with startDate and endDate (YYYY-MM-DD).
startUrlsAd Library search links or single ad links.
includeDetailsOn (default): every ad with its full detail. Off: faster and cheaper summary rows from the search results.
maxItemsAds per search, newest first (default 50; 0 = every ad the search has).
onlyNewRemembers the ads delivered before for the same search and delivers only new ones.
proxyConfigurationApify Proxy by default.

accountOwner, keyword, urls, maxResults and scrapeDetails are accepted too, so inputs written for other LinkedIn ad tools keep working.

Output

One row per ad (type: ad):

FieldWhat it is
adId, adUrlAd Library id and permanent link of the ad
advertiserName, advertiserCompanyId, advertiserUrl, advertiserLogoUrlThe company page that runs the ad
paidByThe "Paid for by" entity (agency or legal entity)
adFormat, creativeTypeSingle Image Ad, Video Ad, Carousel Ad, Document Ad, Message Ad, Event Ad, LinkedIn Article Ad... and LinkedIn's own creative code
isThoughtLeaderAdThe ad promotes a post written by a member on behalf of the company (the company stays the advertiser)
adTextFull ad copy, line breaks kept
headline, subheadlineHeadline under the creative
ctaText, ctaButtonsCall to action button(s), for example Learn more, Register, Sign Up
destinationUrlLanding page the ad sends people to
imageUrlsCreative images (carousel cards, document cover and event image included)
videoUrl, videoThumbnailUrlVideo file in the best resolution offered, and its cover
carouselCardsEach card of a carousel: title, imageUrl, url
documentDocument ads: title, pageCount, coverImageUrl
eventEvent ads: name, startsAt, organizer, location
startDate, endDate, daysRunningWhen the ad ran (YYYY-MM-DD) and for how many days
totalImpressions, impressionsMin, impressionsMaxEstimated impressions as LinkedIn shows them (1k-5k) and as numbers
impressionsByCountryShare of impressions per country: country, share, sharePercent
targetingLanguages, targetingLocations, targetingExcludedLocationsLanguages and locations the advertiser targeted or excluded
targetingEvery targeting group LinkedIn lists, with included and excluded values
targetingParametersWhich audience, company, demographic, education, job and interest targeting was used (targeted, excluded)
hasEuTransparencyDataTrue when the ad carries run dates, impressions or targeting
variantCountNumber of versions of the ad
detailsIncludedFalse for summary rows
sourceType, sourceQuery, scrapedAtWhich search found the ad and when it was collected

Run dates, impressions and targeting are published by LinkedIn for ads shown in the European Union. For ads shown only elsewhere those fields are empty, and hasEuTransparencyData is false.

One real row from the first quick start (lists shortened):

{
"type": "ad",
"adId": "1600920164",
"adUrl": "https://www.linkedin.com/ad-library/detail/1600920164",
"advertiserName": "Adobe for Business",
"advertiserCompanyId": "3509272",
"advertiserUrl": "https://www.linkedin.com/company/3509272",
"isThoughtLeaderAd": false,
"paidBy": "ADOBE SYSTEMS SOFTWARE IRELAND LIMITED",
"adFormat": "Single Image Ad",
"creativeType": "SPONSORED_STATUS_UPDATE",
"adText": "Von Kostensenkungen über kürzere Zykluszeiten bis hin zu höheren Volumina: KI-Vorreiter holen mehr aus derselben Technologie heraus. Entdeckt die fünf Erfolgsfaktoren, die den Unterschied machen.",
"headline": "Wie KI-Vorreiter bessere Ergebnisse erzielen.",
"ctaText": "Mehr erfahren",
"destinationUrl": "https://business.adobe.com/de/resources/sdk/state-of-ai-readiness.html?sdid=K42KVFY8&mv=social&mv2=paidsoc",
"imageUrls": ["https://media.licdn.com/dms/image/v2/D4E10AQGP0ZOItAN7Ig/image-shrink_1280/..."],
"startDate": "2026-10-16",
"endDate": "2026-10-21",
"daysRunning": 6,
"totalImpressions": "1k-5k",
"impressionsMin": 1000,
"impressionsMax": 5000,
"impressionsByCountry": [
{"country": "Germany", "share": "99%", "sharePercent": 99.0},
{"country": "France", "share": "< 1%", "sharePercent": null}
],
"targetingLanguages": ["Deutsch"],
"targetingLocations": ["Deutschland"],
"targetingParameters": [
{"parameter": "Audience", "targeted": true, "excluded": true},
{"parameter": "Company", "targeted": false, "excluded": true},
{"parameter": "Job", "targeted": true, "excluded": true}
],
"hasEuTransparencyData": true,
"variantCount": 1,
"detailsIncluded": true,
"sourceType": "advertiser",
"sourceQuery": "Adobe"
}

In the same test run (30 ads from the search plus one ad link): 9 single image ads, 8 carousels, 8 message ads, 4 videos and 2 article ads, all with advertiser, payer and full copy, and 30 of the 31 with run dates, impressions and targeting.

Errors you may see

Every error is a row with errorCode and is never charged:

errorCodeMeaning
INVALID_INPUTA field has a wrong value (country code, date, number)
INVALID_URLNot a LinkedIn Ad Library search or ad link
NO_RESULTSThe Ad Library has no ad for this search and filters; check the advertiser name as LinkedIn shows it
NOT_FOUNDThe ad link does not exist or was removed
PERSONAL_PROFILE_ADThe ad runs from a personal profile, not from a company page (left out, see below)
BLOCKEDLinkedIn refused every attempt; run it again in a few minutes
NOT_REACHEDThe run timeout arrived before this search

Integrations, scheduling and AI agents

  • Schedule a daily or weekly run in Apify schedules with onlyNew: true to get only the ads your competitors launched since the last run.
  • Export as JSON, CSV, Excel or XML, or read the dataset from the Apify API.
  • Connect it to Make, n8n, Zapier, Slack or Google Sheets through Apify integrations, for example to post every new competitor ad to a channel.
  • AI agents: call it as a tool through the Apify MCP server in Claude, ChatGPT, Cursor or any MCP client, for example "get the LinkedIn ads Canva ran in Germany this month and group them by offer and landing page".

FAQ

Do I need a LinkedIn account? No. The Ad Library is public, and everything comes from it without login or cookies.

Which companies can I search? Any company page that ran ads in the last 12 months. Type the name as LinkedIn shows it; the search also returns the company's showcase pages.

Why do some ads have no dates, impressions or targeting? LinkedIn publishes those only for ads shown in the European Union. Filter by an EU country (DE, FR, NL...) to get them for most ads.

What about ads from personal profiles? Ads that a private person runs from their own profile are left out, free. Thought leader ads (a member's post promoted by a company) are kept with the company as the advertiser, without the member's name, photo or profile. In message ads the sender's name is replaced by [sender], and email addresses and phone numbers in any ad copy are removed.

Is it legal? The Actor reads the public Ad Library only, which LinkedIn publishes for ad transparency. You are responsible for how you use the data under the laws that apply to you.

Something broke or a field is missing? Open an issue on the Actor page; issues are answered within a day.

Limitations

  • The Ad Library keeps about 12 months of ads, newest first.
  • Impressions are ranges as LinkedIn estimates them, not exact counts.
  • For ads with several versions, the row shows the first version and variantCount.
  • Message ads have no landing page link in the Ad Library; their CTA text is still delivered.
  • The impressions-range and targeting-type filters of the Ad Library website are not inputs yet; filter the dataset by impressionsMin or targetingParameters instead.

Changelog

  • 21 Oct 2026: first version: search by advertiser, keyword, payer, country and date, full ad detail with creative, CTA, landing page, run dates, impressions by country and targeting, summary mode and only-new mode.