Pricing
Pay per event
LinkedIn Ad Library Scraper
Scrape LinkedIn Ad Library for B2B competitor ad monitoring. Extract ad creatives, headlines, media URLs, CTAs, impression ranges, countries, and date ranges. No login required. 50% cheaper than competitors.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
34
Total users
16
Monthly active users
2 days ago
Last modified
Share
Extract ads, creatives, headlines, media URLs, CTAs, and funding entities from the LinkedIn Ad Library β no login, no API key, no browser required.
What does it do?
LinkedIn Ad Library Scraper pulls publicly available ad data from LinkedIn's Ad Transparency tool. It is the B2B/LinkedIn source in a cross-channel ad monitoring workflow with Google Ads Transparency Center and Meta/Facebook Ad Library data. For any company, brand, or keyword you search, it returns up to 24 ads per query including:
- π Ad copy β full headline and body text
- πΌ Creative URL β direct link to the ad image or video
- π Call-to-action β CTA label and destination URL
- π’ Advertiser details β company name and LinkedIn URL
- π° Funding entity β who paid for the ad (useful for agency clients)
- π Format β Single Image, Video, Carousel, Text, Dynamic, Follow Company
The scraper uses direct HTTP requests with Cheerio HTML parsing β no Playwright, no headless browser. It's fast, cheap, and runs at 256 MB memory.
Webinar prospecting workflow: find companies advertising webinars
Use this actor as the discovery step in a webinar-prospecting workflow for B2B sales, field marketing, webinar platforms, event agencies, and demand-gen teams.
- Search webinar-intent keywords in LinkedIn Ad Library Scraper:
webinar,webinar series,on-demand webinar,live demo,fireside chat,virtual event, andvirtual roundtable. - Export advertiser companies and ad copy so you can deduplicate companies, keep the
advertiserName,advertiserLinkedInUrl,headline,bodyText,ctaUrl, anddetailUrl, and summarize the advertised webinar topic/date. - Find likely owners with LinkedIn Company Employees Scraper. Run the deduplicated company URLs/slugs and filter people by titles such as
Field Marketing,Events,Webinar,Demand Generation,Growth Marketing, andMarketing Programs. - Enrich and verify before outreach with LinkedIn Company Scraper, Website Contact Finder, Bulk Email MX Verifier, or your CRM.
This workflow is based on Apify's Sponja case study: seven webinar-related LinkedIn Ad Library searches found 897 US companies advertising webinars; employee scraping across 36 priority accounts surfaced 1,264 event-marketing prospects and 244 likely webinar owners, with total actor spend under $20. Treat those numbers as one real workflow example, not a guaranteed result for every market.
Who is it for?
π Competitive Intelligence Teams
Monitor which ads your direct competitors are running. See their messaging, offers, and visuals without needing a LinkedIn account or paying for premium tools.
π£ Performance Marketers & Creative Teams
Analyze high-performing ad copy patterns across your industry. Identify CTA formulas, headline structures, and visual styles that resonate with B2B buyers on LinkedIn.
π΅οΈ Market Researchers & Consultants
Audit a client's advertising presence or benchmark an industry. Pull ads from multiple company URLs in a single run.
π€ Marketing Automation Engineers
Feed ad data into content pipelines, CRM systems, or AI workflows using the Apify API or native n8n/Make/Zapier integrations.
Why use this scraper?
- β No login required β LinkedIn Ad Library is a public transparency tool
- β No API key needed β works out of the box
- β 50% cheaper than competitors β $0.001/ad at BRONZE vs $0.002 elsewhere
- β Full creative data β headline, body, CTA label + URL, media image URL, funding entity
- β Multiple advertisers β paste a list of LinkedIn company URLs to batch multiple brands
- β Filters β date range, ad format, country, sort order
- β Lightweight β HTTP-only, 256 MB memory, no browser overhead
Scraped data fields
| Field | Description | Example |
|---|---|---|
adId | Unique LinkedIn ad identifier | 1200494683 |
advertiserName | Company running the ad | Salesforce |
advertiserLinkedInUrl | LinkedIn company page URL | https://www.linkedin.com/company/salesforce |
advertiserCompanyId | LinkedIn internal company ID | 1281394 |
adFormat | Ad format type | Single Image Ad |
headline | Ad headline text | Unlock AI productivity today |
bodyText | Full ad copy/body text | Join 150,000+ companies using... |
ctaLabel | Call-to-action button label | Learn more |
ctaUrl | CTA destination URL | https://www.salesforce.com/... |
mediaUrl | Direct URL to ad image or video thumbnail | https://media.licdn.com/... |
fundingEntityName | Who paid for the ad (advertiser or agency) | Iprospect.com Inc. |
detailUrl | Direct link to ad detail page | https://www.linkedin.com/ad-library/detail/... |
scrapedAt | ISO timestamp when the ad was scraped | 2026-03-31T11:32:52Z |
How much does it cost to scrape LinkedIn ads?
Pricing is pay-per-result β you only pay for ads successfully extracted.
| Tier | Start fee | Per ad | 24 ads total |
|---|---|---|---|
| FREE | $0.005 | $0.00115 | ~$0.033 |
| BRONZE | $0.005 | $0.001 | ~$0.029 |
| SILVER | $0.005 | $0.00078 | ~$0.024 |
| GOLD | $0.005 | $0.0006 | ~$0.019 |
| PLATINUM | $0.005 | $0.0004 | ~$0.015 |
| DIAMOND | $0.005 | $0.00028 | ~$0.012 |
π‘ Example: Scraping 24 ads from Salesforce costs ~$0.033 on the FREE tier, or ~$0.029 on BRONZE. That's 50% cheaper than comparable scrapers on the Store.
Limitation: LinkedIn's Ad Library returns up to 24 ads per search query via its public HTML. To get ads from multiple companies, add multiple URLs to the Advertiser URLs field β each query returns up to 24 ads independently.
How to use
Step 1 β Choose your search mode
Option A: Search by keyword or company name
Enter a company name like Nike or HubSpot in the Search Query field.
Option B: Target specific advertisers Paste LinkedIn company URLs into Advertiser URLs (one per line):
https://www.linkedin.com/company/salesforcehttps://www.linkedin.com/company/hubspothttps://www.linkedin.com/company/microsoft
This runs a separate search per URL and returns up to 24 ads each.
Step 2 β Set filters (optional)
- Date Range: Choose from past 24h, past week, past month, past year, or all-time
- Ad Format: Filter to image, video, carousel, text, or dynamic ads
- Country Filter: Enter a 2-letter ISO code (US, GB, DE, FR) to see country-specific ads
- Sort Order: Most recent (default) or most clicks
Step 3 β Run and collect data
Click Start and data will appear in the Dataset tab as it's extracted. For bulk exports, use the Export button (CSV, XLSX, JSON, JSONL).
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchQuery | string | No* | β | Company name or keyword to search |
advertiserUrls | array | No* | [] | LinkedIn company page URLs |
maxAds | integer | No | 50 | Max ads to extract (practical max ~24 per query) |
dateRange | string | No | past-month | all-time, past-day, past-week, past-month, past-year |
adFormat | string | No | all | all, SPONSORED_UPDATES, TEXT_ADS, DYNAMIC_ADS, CAROUSEL |
countryCode | string | No | β | 2-letter ISO country code (US, GB, DE, etc.) |
sortBy | string | No | RECENT | RECENT or MOST_CLICKS |
maxRequestRetries | integer | No | 2 | Retry attempts per request |
* Either searchQuery or at least one advertiserUrls entry is required.
Output example
{"adId":"1200494683","advertiserName":"Salesforce","advertiserLinkedInUrl":"https://www.linkedin.com/company/1281394","advertiserCompanyId":"1281394","adFormat":"Single Image Ad","headline":"Agentforce World Tour SΓ£o Paulo","bodyText":"GostarΓamos de te convidar para o maior evento sobre IA AgΓͺntica da AmΓ©rica Latina!","ctaLabel":"Inscreva-se","ctaUrl":"https://www.salesforce.com/br/events/agentforce-world-tour/","mediaUrl":"https://media.licdn.com/dms/image/v2/D4D10AQHWOhThVHEqXA/image-shrink_1280/...","fundingEntityName":"Iprospect.com Inc.","detailUrl":"https://www.linkedin.com/ad-library/detail/1200494683","scrapedAt":"2026-03-31T11:32:52.764Z"}
Tips for best results
Getting more ads from one advertiser
LinkedIn's public HTML returns up to 24 ads per query. Use the date range and format filters to get different slices:
- Run once with
past-month(most recent active ads) - Run again with
past-yearfor historical ads - Run again with
MOST_CLICKSsort to find their best performers
Batch multiple competitors
Add all competitor company URLs to the Advertiser URLs list. Each URL runs as a separate query, so 10 URLs = up to 240 ads.
Exporting to Google Sheets
Use Apify's Google Sheets integration to automatically push scraped ads into a spreadsheet for team sharing.
Filtering by country
Use countryCode to see what ads a company runs specifically in a market (e.g., US for US-only campaigns).
Integrations
n8n workflow: Competitor ad monitoring
- Schedule this scraper weekly via n8n HTTP node
- For cross-channel coverage, run Google Ads Scraper and Facebook Ads Library Scraper on the same competitor list
- Push results to a Notion database or Airtable
- Trigger Slack notification when new ads appear from key competitors
Make (Integromat): Creative analysis pipeline
- Run scraper β collect
mediaUrl+headline+bodyText - Send to OpenAI GPT-4 for categorization (promotional/brand/event/product)
- Save to Google Sheets with category tags
Zapier: CRM enrichment
- Trigger on new Salesforce competitor account
- Run this scraper on their LinkedIn URL
- Create a "competitor ad" record in HubSpot with ad copy and creative URL
API usage
Run this scraper programmatically using the Apify API:
Node.js
import{ ApifyClient }from'apify-client';const client =newApifyClient({token:'YOUR_APIFY_TOKEN'});const run =await client.actor('automation-lab/linkedin-ad-library-scraper').call({searchQuery:'HubSpot',maxAds:24,dateRange:'past-month',sortBy:'MOST_CLICKS',});const{ items }=await client.dataset(run.defaultDatasetId).listItems();console.log(`Scraped ${items.length} ads`);items.forEach(ad=>{console.log(`${ad.advertiserName}: ${ad.headline}`);});
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("automation-lab/linkedin-ad-library-scraper").call(run_input={"advertiserUrls":["https://www.linkedin.com/company/salesforce","https://www.linkedin.com/company/hubspot",],"maxAds":50,"dateRange":"past-month","sortBy":"MOST_CLICKS",})dataset = client.dataset(run["defaultDatasetId"])for item in dataset.iterate_items():print(f"{item['advertiserName']}: {item['headline']}")
cURL
curl-s-X POST \"https://api.apify.com/v2/acts/automation-lab~linkedin-ad-library-scraper/runs?token=YOUR_APIFY_TOKEN"\-H"Content-Type: application/json"\-d'{"searchQuery": "Salesforce","maxAds": 24,"dateRange": "past-month"}'| jq '.data.id'
Use with Claude (MCP)
Connect this scraper to Claude Desktop or Claude Code via the Apify MCP server. This lets Claude run the scraper and analyze results conversationally.
Setup
Add this MCP server URL to your Claude Desktop config (claude_desktop_config.json) or Claude Code settings:
https://mcp.apify.com?tools=automation-lab/linkedin-ad-library-scraper
Or use the full Apify MCP Server actor for more control:
{"mcpServers":{"apify":{"command":"npx","args":["-y","@anthropic-ai/mcp-apify","--actors","automation-lab/linkedin-ad-library-scraper"]}}}
Example prompts
"Scrape the last 24 ads from Salesforce on LinkedIn and summarize their key messaging themes."
"Get LinkedIn ads from HubSpot from the past month sorted by most clicks, then identify the top 3 CTA patterns they use."
"Pull ads from these 5 companies: [URLs] and compare their headline styles."
"Monitor Stripe's LinkedIn ads weekly and alert me when they launch new campaigns."
What Claude can do with the results
- Competitive analysis β Compare messaging themes across multiple advertisers
- Creative briefs β Generate ad copy ideas based on competitor patterns
- Trend reports β Identify shifts in ad format, CTA language, or visual styles over time
- Data enrichment β Cross-reference ad data with other Apify scrapers for richer insights
Legality
LinkedIn's Ad Library is a public transparency tool required by regulations for advertising accountability. Accessing publicly available data for research, competitive intelligence, and analysis is widely accepted.
This scraper:
- Does NOT require a LinkedIn account or login
- Does NOT bypass any authentication or paywalls
- Only accesses the public
/ad-library/URL space - Complies with LinkedIn's transparency program intent
Always use scraped data responsibly and in accordance with your jurisdiction's data protection laws.
FAQ
How many ads can I get per run?
LinkedIn's public HTML returns up to 24 ads per search query. To get more ads, provide multiple advertiser URLs β each URL is a separate query returning up to 24 ads.
Why don't I see impressions or click counts?
LinkedIn's public Ad Library does not expose impression counts or click metrics via its HTML interface. Fields like totalImpressions are reserved for future API integration if LinkedIn opens that data.
I searched for a company and got 0 results β why?
This can happen if:
- The company name is too generic (try their company URL instead)
- The company hasn't run ads recently in the selected date range
- LinkedIn is temporarily rate-limiting requests (try again in a few minutes)
How is this different from silva95's LinkedIn Ad Library scraper?
Our scraper: always returns full details (headline, body, CTA, media, funding entity) at $0.001/ad. silva95 charges $0.002 for basic fields or $0.004 for detailed β 2-4x more expensive for the same data.
Can I scrape video ads?
Yes. Video ads are detected and their thumbnail mediaUrl is extracted. Direct video file URLs are not currently available from the public HTML.
Does this require a proxy?
Yes, the scraper uses Apify proxy automatically. You don't need to configure anything.
Related scrapers
- Google Ads Scraper β Scrape Google Ads Transparency Center creatives by advertiser name, domain, advertiser ID, and region
- Facebook Ads Library Scraper β Scrape Meta/Facebook Ad Library ads across Facebook, Instagram, Messenger, and Audience Network
- LinkedIn Jobs Enrichment β Enrich job listings with full details
- LinkedIn Company Scraper β Extract company profiles
Built by automation-lab β professional Apify actors for data teams.
