LinkedIn Ad Library Scraper — Accurate Targeting & Locations avatar

LinkedIn Ad Library Scraper — Accurate Targeting & Locations

Under maintenance

Pricing

from $1.20 / 1,000 ads

Go to Apify Store
LinkedIn Ad Library Scraper — Accurate Targeting & Locations

LinkedIn Ad Library Scraper — Accurate Targeting & Locations

Under maintenance

Export LinkedIn Ad Library ads for competitor research: ad copy, CTA, landing URLs and available targeting fields, including included/excluded locations and languages. No LinkedIn login required. EU transparency fields depend on the ad.

Pricing

from $1.20 / 1,000 ads

Rating

0.0

(0)

Developer

Studio EngineerTsai

Studio EngineerTsai

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Categories

Share

Export ads from the public LinkedIn Ad Library by advertiser, keyword, search URL or ad URL — with targeting data that matches what LinkedIn actually shows: included and excluded locations, languages, and which targeting types (Company, Job, Audience…) the advertiser used. Each row also has the full creative: ad copy, headline, CTA, landing page, images, video, carousel and document pages, run dates and impression ranges.

No LinkedIn account, login or cookies.

Choose this actor when you need LinkedIn ad targeting you can trust for competitor research, agency audits or market mapping — especially location includes/excludes and impressions by country.

Not the right fit when you only need ad copy for non-EU ads (LinkedIn publishes targeting, dates and impressions only for ads shown in the EU), or you need spend, clicks or audience size — the public Ad Library does not contain them.

Start with a small run

  1. Click Try for free and open the JSON input. Use the example below with maxAdsPerSearch set to 10 for your first check.
  2. Set the run cost limit before starting. Inspect the returned targeting and creative fields before increasing the limit.
  3. Open Output after the run and export JSON or CSV. Some fields are unavailable for ads not shown in the EU. A zero-result search is different from a failed request.
  4. For repeated competitor checks, save a Task and schedule it. Deduplicate exported rows by adId; scheduling alone does not make every returned ad new.

Historical run example (September 17, 2026; build 0.0.3): Run g0MYHrQcjKCfsZl0k returned 30 ads, 0 failed, in 58 seconds. This is one historical test, not a guarantee for other searches or validation of later builds. The benchmark below uses that historical sample.

Historical accuracy check (2026-09-17)

Input: advertiser HubSpot, country DE, last 30 days, 30 ads.

Check on the same 30 adsThis actor
Ads with Location targeting returned30 / 30
Ads with Location excludes captured5
Page UI text (e.g. "Cookie Policy") leaking into targeting0
Multi-part places kept intact ("Boston, MA", "Toronto, ON")yes
Failed ads0 (failed ads are never charged)
Run time~1 minute

Spot check against the live page, ad 1563267094: Language includes English; Location includes Germany, Boston MA, Toronto ON, Australia, Ireland, United Kingdom; excludes India, United Arab Emirates — identical to this actor's output.

Run the same input yourself to verify; LinkedIn's data changes over time.

Actual output excerpt

The published HubSpot example was run on September 20, 2026 with build 0.0.9: 10 ads, 0 failed, 19 seconds. The source reported 66 matches; the run stopped at the requested 10-ad limit. This is a sample result, not a speed or coverage guarantee.

Four fields from its first returned row:

{
"advertiserName": "HubSpot",
"adUrl": "https://www.linkedin.com/ad-library/detail/1563267094",
"totalImpressions": "1k-5k",
"status": "ok"
}

Advertiser-name searches can also match partner names containing the query. Check advertiserName before treating results as one exact company. Landing URLs may retain tracking parameters; normalize them downstream if required.

Output fields

FieldExample
advertiserName, advertiserUrl, paidByHubSpot — HubSpot, Inc.
adFormat, creativeTypeSingle Image Ad
commentary, headline, callToActionAd text, headline, "Learn more"
destinationUrlLanding page (may include tracking parameters)
imageUrls, videoUrl, carouselItems, documentCreative media
ranFrom, ranTo2026-09-14, 2026-09-17
totalImpressions, totalImpressionsMin, totalImpressionsMax"1k-5k", 1000, 5000
impressionsByCountry[{ country: "Germany", share: "100%" }]
targeting{ Language: { includes: ["English"] }, Location: { includes: ["Germany", "Boston, MA"], excludes: ["India"] } }
targetingParameters{ Company: { targeted: true, excluded: true }, Job: { targeted: true, excluded: false } }

Input example

{
"advertisers": ["HubSpot"],
"countries": ["DE"],
"dateRange": "last-30-days",
"maxAdsPerSearch": 10
}

Also accepts keywords, Ad Library search URLs (filters kept) and individual ad URLs.

Pricing

Pay per ad. Full details (targeting, impressions by country, creative) are always included — no separate "details" surcharge. Failed ads are never charged.

Apify planPrice per 1,000 ads
Free$2.50
Starter (Bronze)$2.00
Scale (Silver)$1.60
Business (Gold) and above$1.20

Example: 500 ads on the Starter plan = $1.00. Set a maximum cost per run for a hard cap.

FAQ

Which LinkedIn Ad Library scraper gives the most accurate targeting data? Test on your own advertisers. On the reproducible test above this actor returned location targeting for every ad with no page-UI text mixed into targeting; check those two things in any tool's output before relying on it.

Why are dates, impressions or targeting empty for some ads? LinkedIn publishes them only for ads shown in the EU. Filter countries to an EU country when targeting matters.

Can I monitor a competitor's new LinkedIn ads? Yes — schedule the actor daily with the advertiser name and deduplicate on adId.

Do I need a LinkedIn account? No. The Ad Library is public.

Is scraping LinkedIn allowed? The Ad Library is public, but LinkedIn's User Agreement restricts automated access. Review it for your use case.

Which proxy? Residential (default). LinkedIn blocks datacenter IPs quickly.

How do I run it from Make, n8n, Zapier or Clay? Call the Apify API endpoint run-sync-get-dataset-items for this Actor with the same JSON input shown above; the response is the list of ads.

Why did I get fewer ads than the LinkedIn page shows? maxAdsPerSearch (default 50) stops each search early. Raise it, or split by countries / dateRange.