LinkedIn Ad Library Scraper - B2B Ad Spy
Pricing
from $1.50 / 1,000 results
LinkedIn Ad Library Scraper - B2B Ad Spy
Scrape LinkedIn Ad Library without login. Export advertiser ads & creatives to CSV/JSON. A LinkedIn ads API alternative for competitor intel.
Pricing
from $1.50 / 1,000 results
Rating
5.0
(2)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
26
Total users
10
Monthly active users
3 days ago
Last modified
Categories
Share
LinkedIn Ad Library Scraper — Spy on Competitor B2B Ads (No Login, No API Key)
Extract every public ad from LinkedIn's official Ad Library at scale — advertiser names, ad copy, headlines, creative images, video posters and detail-page URLs — all without login, cookies or risking your LinkedIn account. Pure HTTP (no browser), 250+ countries in one run, custom date ranges and creative-type filters. Built for B2B competitor intelligence, ad-creative research, market analysis and lead generation.
🏆 Why this LinkedIn Ad Library scraper?
No login, no cookies, zero account-ban risk · pure HTTP (10× faster than Playwright) · 250+ countries in one run · 5 creative-type filters + custom date ranges · optional detail-page enrichment (impressions, CTA URL, active dates) · export to JSON / CSV / Excel. The unofficial LinkedIn Ad Library API alternative for competitor ad spy, swipe files and ad-spend lead signals.
✨ What this Actor does / Key features
- 🕵️ Competitor ad spy — pull every active and historical ad an advertiser ran in LinkedIn's 12-month transparency window.
- 🔓 No login, no cookies, no API key — reads LinkedIn's public transparency endpoints anonymously; your LinkedIn account is never used or put at risk.
- 🔎 Two search modes —
accountOwnermatches an advertiser's brand name (track specific competitors);keywordruns full-text search across ad copy and headlines (industry/topic research). - 🌍 250+ countries in one run — ISO 3166-1 alpha-2 country codes, multiple markets combined in a single job.
- 📅 Flexible date targeting —
current-month,last-30-days,last-year, or a customstartDate/endDaterange. - 🎨 Creative-type filtering — 5 formats: single image, video, article promotion, event ad and carousel.
- 🔬 Optional detail enrichment —
fetchAdDetailspulls each ad's impressions range, CTA landing URL and active dates. - ⚡ Pure HTTP, no browser — server-rendered HTML parsed with Cheerio; ~2,000–4,000 ads/minute under normal load.
- 🧱 Clean structured output — one row per ad, auto-deduplicated by
adId, ready for JSON, CSV, Excel or the Apify API.
🚀 Quick start (3 steps)
- Configure — enter a
keyword(a competitor brand name withkeywordType: accountOwner, or an industry term withkeywordType: keyword), pick yourcountriesand a date option. - Run — click Start. The Actor paginates the Ad Library via LinkedIn's cursor token and streams ads into your dataset.
- Get your data — open the Output tab and export to JSON, CSV, Excel or XML, or pull it via the Apify API.
📥 Input
Everything is optional — an empty keyword browses all ads in the selected countries.
Example — track a specific competitor's current campaigns
{"keyword": "monday","keywordType": "accountOwner","countries": ["US"],"dateOption": "current-month","maxResults": 200}
Example — industry-wide CRM ad research across Europe
{"keyword": "crm software","keywordType": "keyword","countries": ["GB", "DE", "FR", "NL", "IE"],"dateOption": "last-year","maxResults": 1000}
Example — video ads only, with full detail enrichment
{"keyword": "saas","keywordType": "accountOwner","countries": ["US"],"creativeTypes": ["SPONSORED_VIDEO"],"fetchAdDetails": true,"maxResults": 100}
| Field | Type | Default | Description |
|---|---|---|---|
keyword | string | "" | Search term — advertiser brand name OR ad copy text. Empty = browse all ads in selected countries. |
keywordType | string | "accountOwner" | "accountOwner" searches advertiser names; "keyword" searches ad copy/headlines. |
countries | array | ["US"] | ISO 3166-1 alpha-2 country codes. 250+ supported. Multiple countries combined. |
dateOption | string | "last-year" | current-month, last-30-days, or last-year. Ignored if startDate is set. |
startDate | string | null | Custom range start, YYYY-MM-DD. Overrides dateOption. |
endDate | string | null | Custom range end, YYYY-MM-DD. |
creativeTypes | array | [] | Filter ad formats. Empty = all formats. |
maxResults | integer | 1000 | Hard cap on ads scraped. 0 = unlimited. |
fetchAdDetails | boolean | false | Fetch each ad's detail page for impressions, payer and CTA URL. Slower, adds cost per detail fetched. |
Creative types supported
| Code | Description | Use case |
|---|---|---|
SPONSORED_STATUS_UPDATE | Single image post | Most common B2B format |
SPONSORED_VIDEO | Video ad | High-engagement creative |
SPONSORED_UPDATE_LINKEDIN_ARTICLE | LinkedIn article promotion | Thought-leadership ads |
SPONSORED_UPDATE_EVENT | Event registration ad | Webinars, conferences |
SPONSORED_UPDATE_CAROUSEL | Multi-card carousel | Product showcases |
📤 Output
One row per ad — deduplicated by adId, exportable to JSON, CSV, Excel or XML. Here is a trimmed sample record:
{"adId": "1251883283","adUrl": "https://www.linkedin.com/ad-library/detail/1251883283","creativeType": "SPONSORED_STATUS_UPDATE","advertiserName": "monday CRM","advertiserLogoUrl": "https://media.licdn.com/dms/image/v2/.../mondaycrm_logo","headline": "Know what's really happening in your pipeline","adCopy": "Spreadsheets are great for numbers; not for knowing what's actually happening in your pipeline. But with monday CRM, your team gets real-time visibility…","creativeImageUrl": "https://media.licdn.com/dms/image/v2/.../CRM_Dashboard.gif","videoPosterUrl": null,"ariaLabel": "monday CRM, Single Image Ad, View details","ctaUrl": "https://monday.com/crm","detailFields": {"Total impressions": "10K-50K","First shown": "2025-12-26","Last shown": "2026-05-07"},"detailDates": ["2025-12-26", "2026-05-07"],"searchKeyword": "monday","searchKeywordType": "accountOwner","searchCountries": ["US"],"scrapedAt": "2026-07-06T12:00:00.000Z"}
💡 Use cases
- B2B competitor ad intelligence — track every active and historical ad a rival runs, spot their messaging angles, and catch the creatives they keep running (a strong signal of what works). Schedule daily to catch new ads within hours.
- Winning ad-copy swipe file — build a searchable database of high-performing ad copy in your industry; filter by keyword to see how leading brands write hooks and CTAs.
- Lead generation by ad-spend signal — companies running LinkedIn ads have budget; filter by industry keyword, extract advertiser names, and hand SDRs a list of verified active advertisers.
- Creative-format trend research — filter by creative type and track the video-vs-static-vs-carousel mix over time to inform your own production.
- Agency reporting & pitch decks — pull a competitor's last-30-day ad output as concrete slides: "your competitor ran 47 ads with these 3 themes — here's how we'd outflank them."
- Ad-creative dataset for AI/LLM training — assemble clean headline + copy + creative-type pairs from LinkedIn's transparency archive.
- Market & investor intelligence — track which funded companies are spending on LinkedIn and cross-reference with funding announcements for post-raise marketing pushes.
👥 Who uses it
B2B SaaS & performance marketers · ad agencies & growth teams · competitive-intelligence analysts · sales & prospecting teams mining ad-spend signals · ad-creative studios & copywriters · market-research firms · VC scouts & M&A analysts.
💰 Pricing
This Actor runs on a pay-per-result model — you pay only for the ads you actually receive, with no per-run charges and no failed-run costs. Enabling fetchAdDetails adds a charge per detail page fetched (richer data: impressions range, payer info, CTA URL, active dates) — use it only when you need those deeper fields, as it adds cost and run time. Try it on the free tier first, then scale up. See the Pricing tab on this page for the current rate.
❓ Frequently Asked Questions
Is this legal? Will I get banned from LinkedIn? This scraper accesses only publicly available data from LinkedIn's official transparency portal — the same data anyone can see in a browser without logging in. No login or authentication is performed, so your LinkedIn account is never touched. You are responsible for complying with LinkedIn's Terms of Service and applicable privacy laws (GDPR, CCPA) when processing the data downstream.
Does this require a LinkedIn account, login or cookies? No. LinkedIn's Ad Library is a public transparency tool. This scraper accesses it anonymously — no cookies, no session, no account required.
What's the difference between accountOwner and keyword search?
accountOwner matches the advertiser's brand name — use it to track specific competitors (searching "monday" returns all ads run by accounts containing "monday"). keyword performs a full-text search across ad copy and headlines — use it for industry/topic research (searching "crm software" returns ads from any advertiser mentioning those terms).
Can I see paused or stopped ads?
Yes. LinkedIn's Ad Library shows all ads from the past 12 months by default, including paused and stopped ones. Use dateOption: "current-month" if you only want currently running ads.
Why are some fields like impressions or CTA URL empty?
Impressions, payer info and CTA landing URLs live only on each ad's detail page. By default the scraper reads search-result pages (faster, cheaper). Set fetchAdDetails: true to retrieve these additional fields.
How fresh is the data? LinkedIn updates the Ad Library in near real-time; new ads appear within hours of going live, and stopped ads remain visible for the 12-month transparency window. Schedule the Actor daily/hourly for up-to-date monitoring.
How many countries are supported? 250+ via ISO 3166-1 alpha-2 codes — every country LinkedIn operates in — and you can scrape multiple in a single run.
Can I monitor competitor ad changes over time?
Yes. Schedule the Actor with the same input and diff result sets to detect new ads launched (new adId), ads removed (missing adId) and creative refreshes (same adId, different creativeImageUrl).
Is this a LinkedIn Ad Library API alternative?
Yes. LinkedIn's official Ads API only returns your own ads and needs OAuth approval. This Actor works as an unofficial LinkedIn Ad Library API alternative — query any advertiser's public ads and get structured data back, no developer account needed.
Can I scrape LinkedIn ads without login or cookies?
Yes. This is a no-login LinkedIn ad scraper — it reads LinkedIn's public transparency archive over plain HTTP with no cookies, session or API key.
How do I export LinkedIn ads to CSV or JSON?
Every run produces a dataset you can export as CSV, JSON, Excel or XML in one click from the Storage tab, or pull via the Apify API.
Can I scrape ads from a specific company's LinkedIn page?
Yes — set keywordType: "accountOwner" and pass the company name as keyword. Narrow further with countries and date filters.
🔗 More ad-intelligence & research scrapers by logiover
Building a full cross-platform ad-intelligence stack? Pair the LinkedIn Ad Library scraper with the rest of the suite:
| Actor | What it does |
|---|---|
| Meta Ad Library Scraper | Facebook & Instagram ads with spend & impressions |
| Google Ads Transparency Scraper | Advertiser creatives & reach from Google's Ad Transparency Center |
| Competitor Ad Intelligence | Monitor rivals' live ad campaigns across networks |
| Influencer Authenticity Audit | Vet creators' engagement & brand safety before sponsoring |
| Company Deep Research Scraper | Build a full company dossier from public sources |
| News Intelligence Scraper | Track brand mentions across the news |
| Google News Scraper | Real-time headlines by keyword, topic or brand |
| SERP Keyword Research | Search-demand and keyword intelligence |
| B2B AI Visibility Tracker | See how brands surface in AI assistant answers |
| GitHub Repository Scraper | Open-source momentum & competitor repo tracking |
| Discussion Intelligence Scraper | Surface what audiences say across forums & communities |
👉 Browse all logiover scrapers on Apify Store — 180+ actors across real estate, jobs, crypto, social media & B2B data.
⏰ Scheduling & integration
Schedule this Actor to run daily or hourly for up-to-date competitor monitoring. Export results as JSON, CSV, Excel or XML and stream them into Zapier (Slack alerts on new competitor ads), Make (auto-add ads to a Google Sheet swipe file), n8n (ad-monitoring → AI-summarization → CRM), webhooks, the REST API, Airtable/Notion, LangChain/LlamaIndex RAG pipelines, or BigQuery/Snowflake warehouses.
🛠️ Technical details
- Endpoints used:
linkedin.com/ad-library/search,linkedin.com/ad-library/searchPaginationFragment,linkedin.com/ad-library/detail/{adId}(optional). - Method: pure HTTP GET, server-rendered HTML responses parsed with Cheerio.
- Pagination: cursor-based via the embedded
paginationToken, 24 ads per page. - Authentication: none — anonymous public access with a realistic Chrome desktop fingerprint.
- Reliability: automatic retries with friendly surfacing for 403/429; Datacenter proxy is sufficient for most workloads (add Residential only at very high volume).
- Footprint: runs comfortably in 256 MB; ~50 ms/ad without detail enrichment, ~250 ms with details.
⭐ Support & feedback
Found a bug or need an extra field (impression-range filtering, a new creative type)? Open an issue on the Issues tab — response is usually fast. If this Actor helps you outflank a competitor, a ★★★★★ review on the Store page genuinely helps and is hugely appreciated. 🙏
⚖️ Legal & Compliance
This scraper accesses only publicly available data from LinkedIn's official Ad Library — a transparency tool LinkedIn provides for research, journalism and ad accountability. No private user data is accessed, no login is performed, and no internal API is used. You are responsible for ensuring your use complies with LinkedIn's Terms of Service, GDPR, CCPA, local data-protection laws and anti-spam regulations (CAN-SPAM, CASL) if you use advertiser data for outreach. Not affiliated with LinkedIn Corporation. LinkedIn® is a registered trademark of LinkedIn Corporation.
Keywords: linkedin ad library scraper, linkedin ad spy tool, linkedin competitor ads, scrape linkedin ads, linkedin ad library api alternative, linkedin ads transparency, linkedin ad creative scraper, linkedin ad copy extractor, linkedin B2B ads, linkedin ad spend signals, linkedin advertiser scraper, scrape linkedin ads without login, export linkedin ads to csv, linkedin ads dataset json.
📝 Changelog
2026-07-06
- ✨ README overhaul: shields badge row, green highlight callout, trimmed output sample, collapsible full field reference with completeness rates, ad-intelligence suite cross-links and clearer quick-start.
2026-07-01
- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.
- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.
- Added ready-to-run example tasks that cover common real-world use cases.
2026-06-15
- Reliability pass: re-verified end-to-end on live data with real-world inputs. Routine maintenance build.
2026-06-07
- Docs: added coverage for using this as a LinkedIn Ad Library API alternative, exporting LinkedIn ads to CSV/JSON, and scraping ads without login.
2026-06-05
- 🛡️ Reliability fix: results are no longer dropped by strict output validation — runs now complete cleanly even at high volume (thousands of results).
- ⚡ Stability & performance hardening; fresh rebuild.
2026-06-04
- Verified live & refreshed build — reliability/maintenance pass.
2026-05-20
- Maintenance pass: reviewed the input schema and default values for a smooth one-click start, and rebuilt the Actor on the latest base image.