LinkedIn Ad Library — B2B Competitor Ad Spy
Pricing
$2.00 / 1,000 ad scrapeds
LinkedIn Ad Library — B2B Competitor Ad Spy
Scrape LinkedIn's public Ad Library — every B2B ad an advertiser has run. Search by keyword or company. Get ad creatives, copy, dates, formats, targeting (EU DSA). Pure HTTP, no Chromium. DSA-mandated public data, stable and free of API auth.
Pricing
$2.00 / 1,000 ad scrapeds
Rating
0.0
(0)
Developer
Walid
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
LinkedIn Ad Library Scraper — B2B Competitor Ad Spy
LinkedIn Ad Library Scraper extracts B2B ads from LinkedIn's official public Ad Library — the only DSA-mandated public source of B2B competitor advertising. Search by company (advertiser) or keyword, optionally enrich each ad with DSA premium data (impressions per country, total impressions, targeting filters). No login, no cookies, no Chromium — pure HTTP, ~7 seconds per query.
⭐ Found this useful? Click the Bookmark button at the top of this page — it's the single strongest signal that keeps this actor visible to others. One click. No signup beyond your existing Apify account.
What can LinkedIn Ad Library Scraper do?
- 🏢 Search by advertiser company (e.g.
Salesforce,HubSpot,Microsoft) - 🔍 Search by keyword — find ads containing a specific phrase in their copy
- 🌍 Filter by countries — ISO 2-letter codes, multi-select supported
- 📅 Date range — last month / 3 months / 6 months / year / all time
- 🎬 All ad formats — Sponsored Status Updates, Sponsored Videos, Sponsored InMails, Native Documents
- 📊 DSA enrichment (opt-in) — total impressions, impressions per country, targeting filters (language, location)
- ⚡ Pure HTTP — no browser, no cookies, no auth. 24 ads in ~7s at 512 MB.
What data can you extract from LinkedIn Ads?
| Field | Description |
|---|---|
ad_id | LinkedIn's internal ad ID |
advertiser_name | Company name running the ad |
advertiser_logo | Company logo URL |
creative_type | SPONSORED_STATUS_UPDATE, SPONSORED_VIDEO, SPONSORED_INMAILS, SPONSORED_UPDATE_NATIVE_DOCUMENT, FOLLOW_COMPANY_V2 |
headline | Ad headline / primary copy |
ad_text | Full body text of the ad |
image_url | Creative image URL (when applicable) |
detail_url | Direct link to the ad's transparency page |
impressions_by_country | (with enrichDetails) Per-country impression %, DSA-compliant |
total_impressions | (with enrichDetails) Estimated total impressions |
How to spy on LinkedIn ads
- Create a free Apify account — no credit card required
- Open LinkedIn Ad Library Scraper in Apify Store
- Enter a company name in
accountOwner(e.g.Salesforce) — or a keyword - Pick countries (optional) and a date range (default: last year)
- Click Start — ads stream in within seconds
- Optionally enable
enrichDetailsto add DSA impressions + targeting
How much does it cost to spy on LinkedIn ads?
$0.002 per ad ($2 per 1,000 ads). HTTP-only — no Chromium, no proxy, no surprise compute charges.
| Run size | Ads | Apify cost | Time |
|---|---|---|---|
| Quick test | 5 | ~$0.01 | ~7s |
| Per query | 24 | ~$0.05 | ~7s |
| 10 companies | 240 | ~$0.48 | ~1min |
| With DSA enrichment (24 ads) | 24 | ~$0.05 | ~30s |
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
accountOwner | string | ❌* | — | Company name to search (e.g. Salesforce) |
keyword | string | ❌* | — | Keyword to find in ad copy |
countries | array | ❌ | [] | ISO 2-letter codes (e.g. ["US","GB","FR"]) |
dateOption | string | ❌ | last-year | last-month, last-3-months, last-6-months, last-year, all-time |
maxResults | integer | ❌ | 24 | Cap per query (LinkedIn serves ~24 ads per anonymous query) |
enrichDetails | boolean | ❌ | false | Fetch DSA detail page per ad: impressions per country + targeting |
useResidentialProxy | boolean | ❌ | false | Enable only if you hit rate limits on large runs |
*Provide at least one of
accountOwnerorkeyword.
Output example
{"ad_id": "998775576","advertiser_name": "Salesforce","advertiser_logo": "https://media.licdn.com/dms/image/.../salesforce_logo.png","creative_type": "SPONSORED_UPDATE_NATIVE_DOCUMENT","headline": "A future-ready CRM needs continuous evolution.","ad_text": "A future-ready CRM needs continuous evolution. Avanza's managed services keep your Salesforce…","image_url": "https://media.licdn.com/.../ad-creative.jpg","detail_url": "https://www.linkedin.com/ad-library/detail/998775576","impressions_by_country": [{ "country": "United States", "percent": "65%" },{ "country": "United Kingdom", "percent": "12%" }],"total_impressions": null}
Use cases
- B2B competitor ad spy — see every LinkedIn ad your competitors are running
- Agency reporting — track competitor B2B ad strategies over time
- Sales intelligence — discover what messaging high-growth B2B brands use
- DSA compliance research — pull the official transparency record for any advertiser
- Creative inspiration — browse a curated feed of polished B2B ad copy
Use the actor via API
Python:
import requestsrun = requests.post("https://api.apify.com/v2/acts/dltik~linkedin-ad-library/runs",headers={"Authorization": "Bearer YOUR_APIFY_TOKEN"},json={"accountOwner": "Salesforce","countries": ["US"],"dateOption": "last-year","enrichDetails": True}).json()print("Run started:", run["data"]["id"])
curl:
curl -X POST "https://api.apify.com/v2/acts/dltik~linkedin-ad-library/runs" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"accountOwner":"Salesforce","countries":["US"],"enrichDetails":true}'
FAQ
Do I need a LinkedIn account or session cookie? No. LinkedIn's Ad Library is a public DSA transparency tool — the scraper hits it cold without any auth or cookies.
Why does it return at most 24 ads per query? LinkedIn's public Ad Library serves about 24 ads per search; deeper pagination relies on an in-page XHR that isn't exposed publicly. To broaden coverage, stack multiple queries (different companies, keywords, countries, date ranges) — each one is a separate run.
What does the DSA enrichment add? For each ad, the actor fetches the detail page and parses the EU DSA-mandated transparency fields: total impressions, impressions per country, and targeting filters (language, location). Premium B2B intelligence you can't get from the list view alone.
Does it need a proxy? No, datacenter IPs work fine for the public Ad Library. The residential-proxy toggle is only for very large or repeated runs.
Is this only B2B ads? LinkedIn's audience is overwhelmingly professional / B2B — most ads in the library are B2B (SaaS, agencies, consulting, recruitment, enterprise software). That's exactly the differentiator vs Facebook or Google ad libraries.
Connect with Make, Zapier & n8n
This actor integrates with any automation platform via the Apify API.
Make (Integromat)
- Add an Apify module in your Make scenario
- Select Run Actor → choose this actor
- Configure the input (paste your JSON)
- Add a Get Dataset Items module to retrieve results
- Send ads to Google Sheets, HubSpot, Slack, or any downstream app
Zapier
- Use the Apify integration on Zapier
- Trigger: Actor Run Finished
- Action: Get Dataset Items
- Pipe results into your CRM, email tool, or spreadsheet
n8n
- Add an HTTP Request node to call the Apify API
- POST to
https://api.apify.com/v2/acts/dltik~linkedin-ad-library/runs - Wait for completion, then fetch dataset items
- Route results into any n8n node
⭐ Found this LinkedIn Ad Library Scraper useful? Bookmark it — Apify ranks actors by bookmarks, so it's the strongest single signal for Store visibility. One click = directly helps this actor stay surfaced.
Other scrapers by dltik
| Actor | What it does | Price |
|---|---|---|
| Facebook Ads Library Scraper | Meta (Facebook + Instagram) ad library spy with DSA detail enrichment | $0.75/1K |
| Google Ads Transparency Scraper | Google Search, YouTube, Display ad spy via official Ad Transparency Center | $1/1K |
| TikTok Scraper | Profiles, videos, hashtags, search, trending | $8/1K |
| Trustpilot Scraper | Reviews, ratings, company profiles with sentiment | $0.50/1K |