LinkedIn Ad Library Scraper
Pricing
from $2.00 / 1,000 ad scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
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
| Field | Description |
|---|---|
adId, url | Stable LinkedIn ad ID and the link back to the Ad Library |
advertiserName, advertiserProfileUrl, advertiserCompanyId, advertiserLogoUrl | Who runs the ad, with the LinkedIn company page behind it |
paidBy | The 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", … |
commentary | The full, untruncated ad text |
headline, destinationUrl | Headline under the creative and the landing page it points to |
imageUrls | Creative image assets |
firstShown, lastShown, availabilityText | The period the ad ran |
totalImpressions, impressionsLow, impressionsHigh | LinkedIn's estimated impression range, parsed into numbers |
impressionsByCountry[] | Country and its share of impressions in percent |
topCountry | The country with the largest impression share |
targeting | Language and location targeting including exclusions, plus a matrix of which parameter groups (audience, demographic, company, education, job, interests) were targeted or excluded |
hasTransparencyData | Whether 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
| Field | Meaning |
|---|---|
queries | Advertiser names, keywords, Ad Library search URLs, ad URLs or bare ad IDs – one per line |
matchBy | advertiser (the LinkedIn page running the ad), payer (the entity that paid – catches a whole group) or keyword (searches the ad text) |
countryCode | ISO country code, e.g. us, de, gb. Empty means all countries |
dateOption + startDate/endDate | last-30-days, current-month, current-year, last-year or a custom range |
maxAdsPerQuery | Stop after N ads per query; 0 means no limit |
includeDetails | Open 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:
hasTransparencyDatatells 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.
Related actors
- Google Ads Transparency Center Scraper – the same competitive picture for Google Search, YouTube, Display, Shopping and Maps.
- Website Tech Stack Detector – what an advertiser's landing pages are built with.
- Career Page Jobs Scraper – hiring signals for the same companies.