LinkedIn Ad Library Scraper - Ads, Impressions & Targeting
Pricing
from $0.15 / 1,000 ads
LinkedIn Ad Library Scraper - Ads, Impressions & Targeting
Scrape every ad a company runs on LinkedIn from the public LinkedIn Ad Library. Get ad copy, headlines, images, videos, carousels, CTAs, landing pages, who paid, run dates, impressions by country and targeting. Search by advertiser, keyword or country. No login or cookies.
Pricing
from $0.15 / 1,000 ads
Rating
5.0
(2)
Developer
Mary Lou
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
LinkedIn Ad Library Scraper — ads, impressions & targeting
See every ad a company runs on LinkedIn. Give it a competitor's name and get back their ad copy, headlines, images, videos, carousels, calls to action and landing pages, plus who paid for each ad, when it ran, how many impressions it got in each country, and who it targeted.
The data comes from LinkedIn's public Ad Library. No login, no cookies, no LinkedIn account at risk.
What you can do with it
- Competitor ad intelligence: see every message, offer and creative a competitor is testing on LinkedIn, and how long each one ran
- B2B creative research: collect hundreds of real LinkedIn ads in your industry for swipe files and briefs
- Campaign and spend signals: impressions ranges and per-country splits show where a competitor is investing (published for ads shown in the EU)
- Targeting insight: languages, locations and the audience parameters (company, job, demographic, interests) each EU ad used
- Agency pitches and audits: a prospect's full LinkedIn ad history in minutes
- Lead generation: companies advertising on LinkedIn are companies with a marketing budget
How to scrape the LinkedIn Ad Library
1. Type one or more company names into Advertisers: HubSpot,
Salesforce. Their LinkedIn company page links work too.
2. Optionally narrow it down with Keywords, Countries and a Date range.
3. Press Start. Leave Proxy on for speed.
You can also paste links straight from the Ad Library into Ad Library links: a search, which keeps its own filters, or a single ad.
Output
One row per ad. Export as JSON, CSV, Excel, XML or RSS.
{"ad_id": "1578715144","ad_library_url": "https://www.linkedin.com/ad-library/detail/1578715144","advertiser_name": "HubSpot","advertiser_url": "https://www.linkedin.com/company/68529","paid_by": "Dola Akinduro","format": "Video Ad","ad_type": "SPONSORED_VIDEO","body": "Recently, I have had the privilege of sitting on the other side...","link_url": "https://lnkd.in/g9fp7HSB","video_urls": ["https://dms.licdn.com/playlist/vid/v2/.../mp4-720p-30fp-crf28/..."],"video_poster": "https://media.licdn.com/dms/image/v2/.../videocover-high/...","first_shown": "2026-09-29","last_shown": "2026-09-30","total_days_shown": 2,"impressions": "1k-5k","impressions_min": 1000,"impressions_max": 5000,"impressions_by_country": [{"country": "Germany", "share": "100%", "share_percent": 100.0},{"country": "United Kingdom", "share": "< 1%", "share_percent": 0.5}],"targeting": {"language": {"includes": ["English"]},"location": {"includes": ["Germany"]},"parameters": {"Company": {"targeted": true, "excluded": false},"Job": {"targeted": false, "excluded": false}}},"shown_in_eu": true,"searched_for": "advertiser 'HubSpot' | DE","scraped_countries": ["DE"]}
| Field | Notes |
|---|---|
advertiser_name, advertiser_url, advertiser_id | The company running the ad |
paid_by | Who paid, which is often a different legal entity or an agency |
format, ad_type | Single Image, Video, Carousel, Document, Text, Event, Spotlight, Message and other ads |
body, headline, cta_text, link_url | The creative's copy, button and landing page, with LinkedIn's tracking parameter removed |
image_urls, video_urls, carousel_cards | Creative files: images, MP4s in each quality, each carousel card's image, title and link |
first_shown, last_shown, total_days_shown | When it ran |
impressions, impressions_min, impressions_max | LinkedIn's impressions range, also as numbers you can sort and sum |
impressions_by_country | The share of impressions in each country |
targeting | Language and location, and which audience parameters were targeted or excluded |
shown_in_eu | Whether LinkedIn published EU transparency data for the ad |
Why some ads have no dates, impressions or targeting. LinkedIn publishes
those only for ads shown in the European Union, under the Digital Services
Act. For other ads the library shows the advertiser, who paid, the format and
the creative, and so does this scraper. Add EU countries such as DE, FR,
NL or the group EU to Countries to focus on ads with the full data.
Input
| Field | What it does |
|---|---|
| Advertisers | Company names or LinkedIn company page links. One search each |
| Keywords | Words in the ad. Combined with each advertiser when both are given |
| Ad Library links | Searches or single ads copied from the Ad Library |
| Countries | Where the ads were shown: codes, names, or groups like EU and DACH |
| Date range | All time, last 30 days, this month, this year, last year, or a custom range |
| Sort by | Newest or oldest first |
| Max ads / Max ads per search | Caps for runtime and cost |
| Scrape ad details | On by default: who paid, dates, impressions, targeting, CTA, landing pages, videos |
| Exact advertiser match | Keep only the named company, not partners or agencies whose names contain it |
| Proxy | Apify Proxy by default, which makes the run several times faster |
Inputs are read forgivingly: uk, Deutschland and DEU all mean a
country; last 30 days, 30d and this year all work as date ranges; and
a company page link or a website is read as the advertiser's name. Anything
that cannot be read is skipped with a note in the log. A whole run is never
lost to one odd entry.
Reliable on big runs
- Rate limits handled for you. LinkedIn limits each IP to about one request every two seconds. The scraper paces itself and spreads the work over many exit IPs.
- A refused search is retried. It moves to new IPs, and searches still refused at the end get a second pass on another proxy. The other searches carry on either way.
- Resumable. Progress is saved every 30 seconds and resumes on the exact page it stopped at, so nothing is fetched or charged twice.
- Deduplicated. An ad found by several searches appears once.
FAQ
Do I need a LinkedIn account or cookies? No. The Ad Library is public and the scraper reads it without signing in.
Why do I get ads from companies with similar names?
LinkedIn's advertiser search matches names loosely, so HubSpot also finds
HubSpot Platinum Partner. Turn on Exact advertiser match to keep only
the company itself.
How far back does it go? As far back as the Ad Library itself goes. Use Date range to look at a particular period.
How many ads can I get? Every ad the library returns for your search. Searches of thousands of ads are normal.
Can I run it on a schedule? Yes. Use Date range: Last 30 days and run it weekly to track what your competitors launch.
Is scraping the LinkedIn Ad Library legal? The Ad Library is a public transparency tool that LinkedIn publishes so that anyone can see the ads on its platform. This scraper reads only that public data. As with any data, how you use it is your responsibility.
Related scrapers
- Meta Ads Library Scraper: Facebook and Instagram ads
- Google Ads Transparency Center Scraper: Google Search, YouTube and Display ads
- TikTok Ad Library Scraper: TikTok ads in the EU and UK
- LinkedIn Jobs Scraper: what companies are hiring for