LinkedIn Ad Library Scraper avatar

LinkedIn Ad Library Scraper

Pricing

from $2.00 / 1,000 ad scrapeds

Go to Apify Store
LinkedIn Ad Library Scraper

LinkedIn Ad Library Scraper

Extract every ad a company runs on LinkedIn from the public Ad Library: ad copy, creative, headline, destination URL, run dates, estimated impressions per country and the advertiser's targeting. Search by advertiser or keyword.

Pricing

from $2.00 / 1,000 ad scrapeds

Rating

0.0

(0)

Developer

PulseData

PulseData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Extract every ad a company runs on LinkedIn from the public LinkedIn Ad Library – ad copy, creative, headline, destination URL, when the ad ran, estimated impressions per country and the targeting the advertiser selected. Search by advertiser, payer, keyword, Ad Library URL or single ad ID.

$2 per 1,000 ads. Impressions and targeting cost $3 per 1,000 – and only for ads that actually carry them (see "What LinkedIn publishes" below). Plus $0.01 per run.

What you get

FieldDescription
adId, urlStable LinkedIn ad ID and the link back to the Ad Library
advertiserName, advertiserProfileUrl, advertiserCompanyId, advertiserLogoUrlWho runs the ad, with the LinkedIn company page behind it
paidByThe legal entity that paid – often the parent company, and a better filter than the page name
adType, creativeType"Single Image Ad", "Video Ad", "Document Ad", "Carousel Ad", …
commentaryThe full, untruncated ad text
headline, destinationUrlHeadline under the creative and the landing page it points to
imageUrlsCreative image assets
firstShown, lastShown, availabilityTextThe period the ad ran
totalImpressions, impressionsLow, impressionsHighLinkedIn's estimated impression range, parsed into numbers
impressionsByCountry[]Country and its share of impressions in percent
topCountryThe country with the largest impression share
targetingLanguage and location targeting including exclusions, plus a matrix of which parameter groups (audience, demographic, company, education, job, interests) were targeted or excluded
hasTransparencyDataWhether LinkedIn published impressions/targeting/run dates for this ad

Example item:

{
"adId": "1552638623",
"url": "https://www.linkedin.com/ad-library/detail/1552638623",
"advertiserName": "ZEOS",
"advertiserProfileUrl": "https://www.linkedin.com/company/112941442",
"paidBy": "Zalando SE",
"adType": "Single Image Ad",
"commentary": "What future is business creating today? …",
"headline": "90 minutes · Live online",
"destinationUrl": "https://unlock.zeos.eu/loyalty-in-the-agentic-era",
"firstShown": "2026-06-19",
"lastShown": "2026-07-06",
"totalImpressions": "5k-10k",
"impressionsLow": 5000,
"impressionsHigh": 10000,
"impressionsByCountry": [
{ "country": "United Kingdom", "sharePercent": 18 },
{ "country": "Germany", "sharePercent": 15 }
],
"targeting": {
"language": "Targeting includes English",
"location": "Targeting includes European Union | Targeting excludes Kazakhstan, India, Russia",
"parameters": [
{ "parameter": "Company", "targeted": true, "excluded": false },
{ "parameter": "Job", "targeted": true, "excluded": false }
]
},
"hasTransparencyData": true
}

Use cases

  • B2B competitor intelligence – every creative a competitor runs, how long each ran, and which countries got the impressions.
  • Find out who a company targets – LinkedIn discloses whether the advertiser targeted by company, job, seniority, education or interests, plus the language and locations.
  • Ad copy and creative research – full ad text and image assets for swipe files or LLM analysis.
  • Agency pitches – walk into a pitch with the prospect's current LinkedIn ads, their run dates and their reach.
  • Lead generation – check which companies advertise on LinkedIn at all: pass a list of names and set "Max ads per query" to 1.
  • Brand monitoring – catch ads that use your brand name in the copy with Match by: keyword.

Input

FieldMeaning
queriesAdvertiser names, keywords, Ad Library search URLs, ad URLs or bare ad IDs – one per line
matchByadvertiser (the LinkedIn page running the ad), payer (the entity that paid – catches a whole group) or keyword (searches the ad text)
countryCodeISO country code, e.g. us, de, gb. Empty means all countries
dateOption + startDate/endDatelast-30-days, current-month, current-year, last-year or a custom range
maxAdsPerQueryStop after N ads per query; 0 means no limit
includeDetailsOpen each ad's detail page for impressions, targeting, full copy and destination URL
{
"queries": ["Salesforce"],
"matchBy": "payer",
"countryCode": "de",
"dateOption": "last-30-days",
"maxAdsPerQuery": 200,
"includeDetails": true
}

What LinkedIn publishes

LinkedIn shows the ad itself for every ad in the library, but impressions, run dates and targeting only for ads that fall under the EU transparency rules. A US-only campaign usually has an "About the ad" box and nothing else. Two consequences:

  • hasTransparencyData tells you which is which, so you can filter.
  • You are only charged the detail price for ads that actually carried that data. Ads without it cost the base price only.

If you mainly want impressions and targeting, set a European countryCode – those searches come back almost fully populated.

Proxies

LinkedIn answers datacenter and residential proxies with a challenge page, so this actor uses the Apify Unblocker by default and there is nothing to configure. Proxy usage is billed to your Apify account as usual; a run of 100 ads with details needs roughly 105 requests.

Speed and limits

The Ad Library returns 24 ads per page and the actor follows LinkedIn's own pagination, so a query with 6,000 matches is paginated, not truncated. Detail pages are fetched four at a time. Expect roughly 2–4 minutes per 100 ads with details, a few seconds per 100 without.

FAQ

Do I need a LinkedIn account or cookies? No. The Ad Library is public; this actor never logs in and never touches private data.

Why does an advertiser search return unrelated companies? LinkedIn matches advertiser names loosely. Use matchBy: payer for the legal entity, or paste an Ad Library search URL you built in the browser – the actor uses its filters verbatim.

Can I get all ads of a company, not just 100? Set maxAdsPerQuery to 0. Large advertisers have thousands of ads; the run charges per ad, so keep an eye on the run's max charge setting.

How current is the data? Live – every run reads the Ad Library at that moment. Ads appear there shortly after they start running.