LinkedIn Ad Library Scraper: Competitor Ads avatar

LinkedIn Ad Library Scraper: Competitor Ads

Pricing

from $2.00 / 1,000 ad with details returneds

Go to Apify Store
LinkedIn Ad Library Scraper: Competitor Ads

LinkedIn Ad Library Scraper: Competitor Ads

See every LinkedIn ad a competitor runs: search the LinkedIn Ad Library by company, keyword, country and date, and get ad text, images, videos, landing pages, who paid, run dates, impressions by country and targeting. No login. CSV, Excel, JSON.

Pricing

from $2.00 / 1,000 ad with details returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

See every LinkedIn ad a competitor is running, in one spreadsheet: ad text, headline, image or video, call to action, landing page, who paid, run dates, impressions range, impressions by country and targeting, one row per ad. Search the LinkedIn Ad Library by company name, keyword or paying company, narrow it by country, dates and impressions, and download the results as CSV, Excel or JSON. No LinkedIn login or cookies needed.

  • Type a company name, get its ads. Put HubSpot or Siemens in Advertiser names and get the ads that company runs on LinkedIn, newest first.
  • Find ads on any topic. Put words such as CRM software or hiring in Keywords in the ad and get ads from every advertiser that uses them.
  • See who they target. With details on (the default), each ad also has its run dates, impressions range, impressions by country and the targeting LinkedIn shows (location, language, job, company), plus every version of the ad.
  • Quick. In runs on 2026-10-17, 50 HubSpot ads with full details took under 2 minutes, 300 ads with details 4.5 minutes, and 1,000 ads with list data only 3.5 minutes.
  • Ready for your tools. Download CSV, Excel or JSON, or send the rows to Google Sheets, your BI tool or an AI agent.

Who uses it

  • Marketers and agencies who check what competitors say, which offers they push and where their ads send people.
  • B2B sales teams who want to know which companies are spending on LinkedIn right now.
  • Founders and product marketers collecting ad examples before writing their own LinkedIn campaigns.
  • Researchers who need a dated record of ads by country.

How to use it

  1. Put one or more company names in Advertiser names (or words in Keywords in the ad, or paying companies in Paid by).
  2. Optional: pick Countries the ads were shown in, When the ads ran (or exact Start date / End date) and an impressions range.
  3. Set Ads per search (default 50) and press Start. Each row is one ad; download the table when the run ends.

Input fields

FieldWhat to put in it
companiesAdvertiser names, one per line, such as HubSpot or Siemens
keywordsWords to find in ad text, one per line; returns ads from any advertiser
payersThe company that paid, when it differs from the brand (an agency or a parent company)
searchUrlsLinkedIn Ad Library addresses: a search results page (read with its own filters) or one ad page
countriesTwo-letter country codes such as US, GB, DE; empty means all countries
dateRangeAll time, Last 30 days, This month, This year or Last year
startDate, endDateExact days (YYYY-MM-DD) instead of a date range
minImpressions, maxImpressionsImpressions range in thousands (1000, 5000, 1000000)
maxAdsPerSearchAds per name, keyword or URL, 1 to 5000 (default 50)
includeDetailsOn by default: adds who paid, run dates, impressions, targeting, landing page and versions. Off: only what the search list shows, at a lower price

Input example

{
"companies": ["HubSpot"],
"countries": ["US", "GB"],
"dateRange": "last-30-days",
"maxAdsPerSearch": 50,
"includeDetails": true
}

Output example

{
"status": "ok",
"adId": "1584336173",
"adLibraryUrl": "https://www.linkedin.com/ad-library/detail/1584336173",
"advertiserName": "HubSpot",
"advertiserLinkedinUrl": "https://www.linkedin.com/company/68529",
"paidBy": "HubSpot, Inc.",
"adFormatLabel": "Single Image Ad",
"commentary": "Was funktioniert mit KI im Unternehmensalltag wirklich? ...",
"headline": null,
"callToAction": null,
"destinationUrl": null,
"imageUrl": "https://media.licdn.com/dms/image/v2/D4D22AQEW8QyjlSCRww/feedshare-shrink_1280/...",
"ranFrom": "2026-10-15",
"ranTo": "2026-10-17",
"impressions": "1k-5k",
"impressionsMin": 1000,
"impressionsMax": 5000,
"targeting": [
{ "parameter": "Language", "includes": ["English"], "excludes": [], "text": "Targeting includes English" },
{ "parameter": "Location", "includes": ["DACH"], "excludes": [], "text": "Targeting includes DACH" }
],
"variantCount": 1,
"detailsIncluded": true,
"searchType": "advertiser",
"searchTerm": "HubSpot",
"searchRank": 9,
"input": "HubSpot",
"checkedAt": "2026-10-17T15:29:07.786Z"
}

Output fields

FieldWhat it is
adId, adLibraryUrlThe ad's ID and its page in the LinkedIn Ad Library
advertiserName, advertiserLinkedinId, advertiserLinkedinUrl, advertiserLogoUrlThe company that runs the ad
paidByThe company that paid for the ad
adFormat, adFormatLabelImage, video, carousel, document, text, message, event, job or follower ad
commentary, headline, callToAction, destinationUrlAd text, headline, button text and landing page URL
imageUrl, videoUrl, videoPosterUrl, carouselCards, documentTitle, documentPreviewImagesThe ad's media
messageSender, messageBodySender and text of message ads
ranFrom, ranTo, runPeriodRun dates, when LinkedIn shows them
impressions, impressionsMin, impressionsMaxImpressions range, as text and as numbers
impressionsByCountryShare of impressions per country
targeting, targetingParametersWhat the ad targets or excludes (location, language, job, company and more)
variantCount, variantsEvery version of the ad
searchType, searchTerm, searchUrl, searchRank, inputWhich of your inputs produced the row, and the ad's place in the list
status, noteok for an ad row; other values are free rows that say why nothing was returned

FAQ

How do I see all the LinkedIn ads a competitor is running?

Put the competitor's name in Advertiser names and run it: you get one row per ad with text, image or video, landing page, run dates and impressions. Set Ads per search to the number you want (up to 5,000) and pick a date range to see only recent ads.

How do I export the LinkedIn Ad Library to CSV or Excel?

Run a search here and download the table as CSV or Excel from the run's Output tab. Every ad is one row, and the ad's Ad Library link is in adLibraryUrl so you can open the original.

How do I find LinkedIn ads by keyword?

Put the words in Keywords in the ad, one per line, such as CRM software or cybersecurity. Each keyword returns ads from any advertiser that uses it; add countries or a date range to narrow it.

Can I see the targeting and impressions of a competitor's LinkedIn ads?

Yes, keep Include full ad details on and each ad gets the impressions range, impressions by country and the targeting LinkedIn shows (location, language, job, company). LinkedIn shows these for part of the ads only (see Limitations).

How do I track new LinkedIn ads from competitors every week?

Save your input as a task and schedule it weekly with When the ads ran set to Last 30 days or exact start and end dates. Each row has checkedAt and adId, so you can keep only the ads you have not seen before.

Pricing

You pay per ad returned, plus a small fee per run. Ads with details cost more than ads with only the search list data; turn Include full ad details off to pay the lower price. Free rows (a search with no ads, an ad that is gone, a refused request) are never charged, and the same ad found by two of your searches is charged once. Set a maximum total charge for a run and the Actor stops before going over it and adds a free row that says so. If a run gets close to its Timeout, it stops on its own the same way: every ad returned is kept and charged, nothing after that is read or charged, and a free row says so.

Limitations

  • Data comes from the public LinkedIn Ad Library, which keeps ads for one year. Older ads are not available.
  • Run dates, impressions, impressions by country and targeting appear only when LinkedIn shows them on the ad's page. In runs on 2026-10-17 that was 22% to 55% of ads; the other ads come back with these fields empty. Nothing is guessed.
  • Spend, clicks and results are not in the Ad Library, so they are not included.
  • headline, callToAction and destinationUrl are empty for ads that have none (many text and thought-leader posts).
  • A company name search returns the ads LinkedIn lists for that advertiser name. For a company whose name is shared by others, add countries or paste the Ad Library search URL you already checked.
  • With Include full ad details off, rows have only the search list data: advertiser, format, ad text, headline and image.
  • Up to 500 names and keywords and 5,000 URLs per run, and up to 5,000 ads per search. How many fit in one run depends on its Timeout (1 hour by default): in runs on 2026-10-17 that was about 70 ads a minute with details (about 3,500 an hour) and about 300 a minute per search with list data only. For more, raise the Timeout in the run options, turn off Include full ad details, or split the input into several runs.

Thanks for using this Actor

We build these tools for people who run them every day, and we improve them from what users tell us.

  • Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
  • Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.

If this Actor saved you time, a short review helps other people find it.