VOOZH about

URL: https://apify.com/scrapesage/linkedin-ad-library-scraper

⇱ LinkedIn Ad Library Scraper - Competitor B2B Ads Β· Apify


πŸ‘ LinkedIn Ad Library Scraper β€” Competitor B2B Ads & Creatives avatar

LinkedIn Ad Library Scraper β€” Competitor B2B Ads & Creatives

Pricing

from $2.00 / 1,000 ad scrapeds

Go to Apify Store

LinkedIn Ad Library Scraper β€” Competitor B2B Ads & Creatives

Scrape the LinkedIn Ad Library with no login: competitor ads, creatives, headlines, CTAs, advertiser & paying entity, run dates, total impressions, impressions by country and full targeting. Search by keyword, company or payer. Monitoring mode returns only new ads. Export JSON, CSV, Excel.

Pricing

from $2.00 / 1,000 ad scrapeds

Rating

0.0

(0)

Developer

πŸ‘ Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

LinkedIn Ad Library Scraper β€” Competitor B2B Ads, Creatives & Impressions

Extract every ad your competitors are running on LinkedIn β€” full creatives, headlines, ad copy, CTAs, and the data other scrapers miss: advertiser company ID, the legal paying entity, exact run dates, total impressions, impressions by country, and complete targeting (language, locations, audience, company, job and interest facets). Search by keyword, company, or payer, and turn on Monitoring mode to capture only newly-launched ads on a schedule.

No login, no cookies, no browser β€” fast JSON extraction straight from LinkedIn's public Ad Library.

Why this LinkedIn Ad Library scraper?

Most LinkedIn ad scrapers only read the search cards and return a name, a headline, and an image. This actor opens every ad's detail page and ships the richest dataset in the category β€” the fields that actually drive competitive and B2B intelligence:

DataTypical scrapersThis actor
Advertiser name + LinkedIn company IDpartialβœ…
Paying entity ("Paid for by…")βŒβœ…
Headline, full ad copy, CTA buttonpartialβœ…
Destination / landing URL (with the advertiser's own UTMs)βŒβœ…
Creative type (single image, video, carousel, document, event…)βŒβœ…
Image & video creative URLspartialβœ…
Exact first/last shown datesβŒβœ…
Total impressions rangeβŒβœ…
Impressions by countryβŒβœ… when published
Full targeting (language, locations, audience, company, job, interests)βŒβœ…
Search by keyword and company and payerpartialβœ…
Monitoring mode β€” only new ads each runβŒβœ…

Use cases

  • Competitor ad intelligence β€” see exactly which ads a competitor is running, the creative, the offer, the CTA, and where the click goes. Track their messaging and campaign cadence over time.
  • B2B creative & messaging research β€” build a swipe file of the best-performing B2B ads by topic or industry; learn the hooks, formats, and CTAs that work in your space.
  • Demand-gen & paid-social benchmarking β€” compare impressions, run lengths, and targeting across competitors to size their spend and reach.
  • Agency competitive decks β€” pull a client's whole category in minutes: every advertiser, every live ad, with impressions and targeting.
  • Lead & partner signals β€” discover which companies are actively advertising (and at what scale) on LinkedIn β€” a strong buying/growth signal for sales and BD.
  • DSA / ad-transparency research β€” the LinkedIn Ad Library is published for transparency; this actor structures it for analysis at scale.

How to use

  1. Sign up for Apify β€” the free plan is enough to try this actor.
  2. Open the LinkedIn Ad Library Scraper, enter keywords, company IDs/URLs, or payer names (or paste Ad Library URLs), and click Start.
  3. Watch results stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML, or RSS β€” or pull results programmatically via the Apify API.

Input

{
"keywords":["marketing automation"],
"companyIds":["68529"],
"companyUrls":["https://www.linkedin.com/company/1337"],
"payers":["HubSpot, Inc."],
"countries":["US","GB"],
"enrichAdDetails":true,
"maxAds":200,
"monitorMode":false
}
  • keywords β€” search the Ad Library by keyword (matches advertiser names and ad copy). Each keyword is one search.
  • companyIds β€” numeric LinkedIn company IDs to pull every ad an advertiser is running (e.g. 68529 = HubSpot).
  • companyUrls β€” LinkedIn company URLs or Ad Library URLs; numeric /company/<id> and ?companyIds= links resolve automatically.
  • payers β€” search by the "Paid for by" entity, useful when an advertiser pays under a different legal name.
  • startUrls β€” paste Ad Library search URLs (/ad-library/search?…) or individual ad URLs (/ad-library/detail/<id>).
  • countries / dateFrom / dateTo β€” optional filters applied to every search.
  • enrichAdDetails (default true) β€” open each ad's detail page for the full record (company ID, paying entity, run dates, impressions, impressions by country, targeting, destination URL, creatives). Turn off for a cheaper, cards-only run.
  • maxAds / maxAdsPerQuery β€” caps (0 = no limit).
  • monitorMode (default false) β€” output only ads not seen in previous runs; pair with Schedules to track new ads automatically.
  • proxyConfiguration β€” proxy settings (Apify Proxy by default).

Output

One record per ad (type: "ad"):

{
"type":"ad",
"adId":"1439476536",
"adUrl":"https://www.linkedin.com/ad-library/detail/1439476536",
"advertiserName":"HubSpot",
"advertiserCompanyId":"68529",
"advertiserCompanyUrl":"https://www.linkedin.com/company/68529",
"advertiserLogoUrl":"https://media.licdn.com/.../hubspot_logo",
"creativeType":"SPONSORED_STATUS_UPDATE",
"creativeTypeLabel":"Single image",
"headline":"Register for the webinar",
"bodyText":"Using AI in sales but seeing little impact? It's the missing context…",
"ctaText":"Learn more",
"destinationUrl":"https://hubs.la/Q04ktvQ90?utm_source=linkedin&utm_medium=paid",
"imageUrls":["https://media.licdn.com/.../image-shrink_1280/..."],
"videoUrl":null,
"payingEntity":"HubSpot, Inc.",
"firstShownDate":"Jun 11, 2026",
"lastShownDate":"Jun 13, 2026",
"totalImpressions":"5k-10k",
"impressionsByCountry":[{"country":"United States","impressions":"2k-3k"}],
"targeting":{
"language":{"included":["English"],"excluded":[]},
"location":{"included":["United States","United Kingdom"],"excluded":[]}
},
"targetingSummary":"Language: English Β· Location: United States, United Kingdom Β· …",
"searchType":"companyId",
"searchTerm":"68529",
"scrapedAt":"2026-06-13T12:00:00.000Z"
}

What to expect (field coverage)

The LinkedIn Ad Library is advertiser- and platform-populated, so some fields appear only when LinkedIn publishes them. Verified across many advertisers, you can typically expect:

FieldCoverage
advertiserName, company ID, creative type, ad URL~100%
headline / body copy, CTA, creatives~95% (varies by ad format)
paying entity, first/last shown dates~98%
total impressions~95%
impressions by countrywhen published (LinkedIn notes it can take up to 48h for new ads)
targeting (language, location, audience…)when the advertiser's targeting is disclosed
destination URLwhen the ad links off-platform

A blank field means LinkedIn didn't publish that value for that ad β€” never that scraping failed. Nothing is dropped, so you always get the richest record available.

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

  • Apify API β€” start runs, fetch datasets, and manage schedules over REST.
  • apify-client for JavaScript and apify-client for Python β€” official SDKs.
  • Schedules β€” run it daily/weekly to watch competitors for new ads. Turn on Monitoring mode and each scheduled run returns only ads it hasn't seen before β€” the scheduler triggers the run, the actor handles the de-duplication, no conflict between the two.
  • Webhooks β€” trigger downstream actions (Slack alert, CRM update, creative dashboard) the moment a new ad appears.
import{ ApifyClient }from'apify-client';
const client =newApifyClient({token:'MY_APIFY_TOKEN'});
const run =await client.actor('scrapesage/linkedin-ad-library-scraper').call({
companyIds:['68529'],
enrichAdDetails:true,
monitorMode:true,
});
const{ items }=await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} new LinkedIn ads`);

Integrate with any app

Connect the dataset to 5,000+ apps β€” no code required:

  • Make β€” multi-step automation scenarios.
  • Zapier β€” push new competitor ads straight into Slack, Notion, or your CRM.
  • Slack β€” get notified when a monitored competitor launches a new ad.
  • Google Drive / Sheets β€” auto-export every run to a spreadsheet.
  • Airbyte β€” pipe results into your data warehouse.
  • GitHub β€” trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server β€” ask your assistant to "list every LinkedIn ad HubSpot is running, with the offer, CTA and targeting" and let it run the scraper for you.

More scrapers from scrapesage

Build a complete competitor ad-intelligence stack β€” see what your rivals run across every major ad platform, then go wider on B2B intel:

Tips

  • Whole-competitor sweep: pass a company ID (or a /company/<id> URL) to pull every live ad an advertiser is running, then keep enrichAdDetails on for impressions and targeting.
  • Category research: use a keyword (e.g. cybersecurity) to map every advertiser and ad in a topic. LinkedIn returns ads newest-first.
  • Recurring monitoring: combine Monitoring mode with a Schedule so each run only returns ads launched since the last one β€” perfect for a "new competitor ads" Slack feed.
  • Cost control: turn off enrichAdDetails for a fast, cards-only pass (advertiser, creative type, headline, copy, ad URL), then re-run with enrichment on only the ads you care about.

FAQ

How do I scrape all the ads from one company? Put its numeric LinkedIn company ID in companyIds (or paste the /company/<id> URL in companyUrls). You'll get every ad that advertiser is currently running.

Where do I find a company's ID? It's the number in the company's LinkedIn URL, or in the Ad Library URL when you filter by an advertiser. You can also paste the company/Ad Library URL and the actor resolves it.

Does it need a LinkedIn login or cookies? No. The LinkedIn Ad Library is public for ad-transparency, and this actor reads it directly β€” no account, cookies, or API key.

Can I monitor competitors for new ads? Yes. Turn on Monitoring mode and schedule the actor. The first run captures everything as a baseline; every run after returns only ads it hasn't seen β€” and it does not interfere with the Apify scheduler.

Can I export to Google Sheets, CSV, or Excel? Yes β€” one click in the dataset view, or automatically on every run via the Google Drive integration.

A field is empty β€” why? LinkedIn publishes impressions-by-country and targeting only for some ads (and notes country data can take up to 48 hours to appear). Empty means LinkedIn didn't publish it for that ad β€” the scraper never drops data it can see.

Is scraping the LinkedIn Ad Library legal? This actor collects publicly available, transparency-mandated data only. You're responsible for using the data in compliance with applicable laws (e.g. GDPR/CCPA for personal data) and LinkedIn's terms.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome β€” this actor is actively maintained.

You might also like

LinkedIn Ads Library Scraper

silentflow/linkedin-ads-scraper

Scrape LinkedIn Ads Library without cookies or login. Extract ad creatives, targeting data, impressions, and advertiser info. Search by keywords, scrape specific ads, or get all ads from any company.

Facebook Ad Library Scraper - Competitor Ads & Creatives

fascinating_lentil/facebook-ad-library-scraper

Scrape ads from the public Facebook Ad Library. Extract ad creatives, text, headlines, spend ranges, impressions, targeting info, and more.

πŸ‘ User avatar

Md Jakaria Mirza

2

LinkedIn Ad Library Scraper - B2B Ad Spy

logiover/linkedin-ad-library-scraper

Scrape LinkedIn Ad Library without login. Export advertiser ads & creatives to CSV/JSON. A LinkedIn ads API alternative for competitor intel.

LinkedIn Ad Library Scraper

igolaizola/linkedin-ad-library-scraper

Scrape LinkedIn Ad Library ads with advanced filters: keyword, account owner, payer, country, date range, impressions, and segmentation. Extract ad IDs, creatives, advertiser profiles, headlines, CTA text, and detail URLs for competitor research and ad intelligence.

πŸ‘ User avatar

IΓ±igo Garcia Olaizola

30

LinkedIn Ads Scraper (Ad Library)

khadinakbar/linkedin-ads-scraper

Scrape LinkedIn public Ad Library ads by advertiser, payer, keyword, country and date range. Extract ad copy, creatives, advertiser details, payer info and pagination diagnostics. No login or cookies required.

LinkedIn Ads Scraper

api-empire/linkedin-ads-scraper

LinkedIn Ads Scraper extracts ads from the LinkedIn Ads Library. Capture creatives, formats, copy, impressions, targeting data, timestamps, and advertiser details. Ideal for competitor research, campaign analysis, ad benchmarking, and workflows needing structured LinkedIn ads data.

LinkedIn Ads Scraper

crawlerbros/linkedin-ads-scraper

Extract ads from the public LinkedIn Ad Library by keyword, advertiser, country, and date range. Returns headline, body, advertiser info, media URLs, impressions, targeting, and dates. No login required.

LinkedIn Ads Scraper

solidcode/linkedin-ads-scraper

[πŸ’° $0.5 / 1K] Extract ads from LinkedIn's public Ad Library β€” advertiser, headline, body, format, dates, impressions, CTAs. Search by keyword, advertiser, country, and date range. Optional detail enrichment for impressions-per-country and targeting.

Google Ads Scraper

automation-lab/google-ads-scraper

Scrape Google Ads from the Ads Transparency Center for competitor ad monitoring. Search by advertiser name, domain, or ID. Get creatives, formats, dates, impressions. Export to JSON, CSV, Excel.

πŸ‘ User avatar

Stas Persiianenko

323