LinkedIn Ad Library Advertiser Disclosure Scraper avatar

LinkedIn Ad Library Advertiser Disclosure Scraper

Under maintenance

Pricing

from $0.80 / 1,000 record scrapeds

Go to Apify Store
LinkedIn Ad Library Advertiser Disclosure Scraper

LinkedIn Ad Library Advertiser Disclosure Scraper

Under maintenance

Scrape LinkedIn Ad Library ads by keyword, company ID, or country: advertiser name, ad creative, and the full EU DSA disclosure block — total and per-country impressions, audience targeting, and the legal entity paying for each ad.

Pricing

from $0.80 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Categories

Share

Scrapes LinkedIn's Ad Library by keyword, company ID, or country and returns the full disclosure record for each ad — not just the creative. That includes the EU DSA block most competing scrapers never fetch: total and per-country impressions, audience targeting, and the legal entity paying for the ad.


LinkedIn Ad Library Scraper Features

  • Search by free-text keyword, LinkedIn company ID, or both — run them independently in the same job
  • Restrict results to specific countries or a date window (last 30 days, this month, this year, last year)
  • Returns every ad creative field: headline, body copy, CTA text, destination URL, images, video, document title
  • Pulls the "Paid for by" legal entity — on agency-run campaigns this is the media agency, not the brand
  • Pulls the EU DSA disclosure block when LinkedIn publishes it: total impressions bucket, impressions by country, and the targeting parameters (language, location, and whether company/demographic/education/interest targeting was used)
  • Deduplicates ads found across multiple keyword or company searches automatically

Who Uses This

  • B2B sales and prospecting teams — build a list of who's advertising on LinkedIn in a given category or country, and who's actually paying for it
  • Competitive intelligence — track a competitor's ad cadence, creative angles, and targeting choices over time
  • Agencies — audit which agency runs media for which brand, visible directly in the "Paid for by" field
  • Compliance and research teams — pull the EU DSA disclosure fields (impressions by country, targeting parameters) LinkedIn is legally required to publish for EEA-targeted ads

How It Works

  1. Give the actor one or more search keywords, LinkedIn company IDs, or both.
  2. Optionally narrow by country and/or a date range.
  3. The actor walks the Ad Library search results for each combination and opens every ad's detail page.
  4. Each record comes back with the creative, the advertiser, and whatever disclosure data LinkedIn publishes for that ad — some fields are only present for ads targeted at the EU/EEA, since that's what triggers the DSA disclosure requirement.

Input

{
"keywords": ["hubspot"],
"companyIds": [],
"countries": [],
"dateOption": "",
"maxItems": 25
}
FieldTypeDefaultDescription
keywordsarray of strings["hubspot"]Free-text search terms. Each keyword is searched independently.
companyIdsarray of strings[]LinkedIn company IDs (from linkedin.com/company/<id>) to fetch ads for directly. At least one of keywords or companyIds is required.
countriesarray of strings[]Restrict results to ads targeting these countries (ISO-style 2-letter codes, e.g. US, GB, DE). Leave empty to search worldwide.
dateOptionstring"" (all time)One of last-30-days, current-month, current-year, last-year, or empty for no date filter.
maxItemsinteger10Maximum number of ads to return.

Resuming a large crawl

Every run emits a resumeCursor in its Output. To continue a crawl that stopped — hit maxItems, a per-run spend cap, or was aborted — start a new run with the same input plus that resumeCursor. You are not re-charged for ads already returned. Resume within your account's data-retention window.


LinkedIn Ad Library Scraper Output Fields

{
"ad_id": "1486704414",
"detail_url": "https://www.linkedin.com/ad-library/detail/1486704414",
"advertiser_name": "Microsoft",
"advertiser_company_url": "https://www.linkedin.com/company/1035",
"advertiser_company_id": "1035",
"paid_for_by": "ZENITH UK (MEDIA) LIMITED",
"ad_type": "Single Image Ad",
"creative_type": "SPONSORED_STATUS_UPDATE",
"promoted_label": "Promoted",
"ad_headline": "Experience FabCon+SQLCon Europe 2026",
"ad_body_text": "Join data leaders, architects, analysts, developers, and IT professionals...",
"ad_cta_text": "Register",
"ad_destination_url": "https://espc.tech/conference/fabcon-europe-2026/",
"image_urls": ["https://media.licdn.com/dms/image/v2/..."],
"video_url": null,
"document_title": null,
"first_shown_date": "Aug 5, 2026",
"last_shown_date": "Aug 10, 2026",
"total_impressions_range": "10k-20k",
"impressions_by_country": ["Italy: 26%", "France: 24%"],
"audience_targeting_language": ["English"],
"audience_targeting_location": ["Germany", "Netherlands", "Italy", "France"],
"audience_targeting_company": [],
"audience_targeting_demographic": [],
"audience_targeting_education": [],
"audience_targeting_interests_traits": [],
"search_keyword": null,
"search_country": null,
"scraped_at": "2026-08-10T04:21:18.789Z"
}
FieldTypeDescription
ad_idstringLinkedIn Ad Library ad id
detail_urlstringURL of the ad's Ad Library detail page
advertiser_namestringAdvertiser company name
advertiser_company_urlstringLinkedIn company page URL of the advertiser
advertiser_company_idstringNumeric LinkedIn company id of the advertiser
paid_for_bystringThe legal entity disclosed as paying for the ad — often a media agency, not the brand
ad_typestringAd format: Single Image Ad, Video Ad, Carousel Ad, Document Ad, Message Ad, etc.
creative_typestringRaw LinkedIn creative-type code, e.g. SPONSORED_STATUS_UPDATE
promoted_labelstringThe "Promoted" label text shown on the ad card
ad_headlinestringAd headline text
ad_body_textstringAd body / commentary text
ad_cta_textstringCall-to-action button text, e.g. Learn more, Register
ad_destination_urlstringDestination URL the ad links to, when disclosed
image_urlsarray of stringsCreative image URLs
video_urlstringCreative video URL, for video ads
document_titlestringDocument title, for document ads
first_shown_datestringStart of the disclosed run window
last_shown_datestringEnd of the disclosed run window
total_impressions_rangestringEU DSA disclosure: total impressions bucket, e.g. 10k-20k
impressions_by_countryarray of stringsEU DSA disclosure: per-country impression share, formatted as Country: NN%
audience_targeting_languagearray of stringsTargeted languages, when disclosed
audience_targeting_locationarray of stringsTargeted locations, when disclosed
audience_targeting_companyarray of stringsWhether Company was a targeted or excluded parameter
audience_targeting_demographicarray of stringsWhether Demographic was a targeted or excluded parameter
audience_targeting_educationarray of stringsWhether Education was a targeted or excluded parameter
audience_targeting_interests_traitsarray of stringsWhether Member Interests and Traits was a targeted or excluded parameter
search_keywordstringThe search keyword that discovered this ad, if any
search_countrystringThe country filter used to discover this ad, if any
scraped_atstringISO 8601 timestamp when the record was scraped

A note on the DSA fields: LinkedIn only publishes the impressions and targeting block for ads targeted at the EU/EEA. Ads outside that scope return the creative and advertiser fields with the disclosure fields left null or empty — that's LinkedIn's own publishing rule, not a gap in the actor.


FAQ

Does this need a LinkedIn login?

No. The Ad Library is public, and every field this actor returns comes from that public page.

Why are some fields null on certain ads?

LinkedIn only discloses total/per-country impressions and audience targeting for ads run in the EU/EEA, per the DSA. Ads outside that scope simply don't carry that data on LinkedIn's own page.

Can I search by company instead of keyword?

Yes. Pass one or more numeric LinkedIn company IDs in companyIds — find one by opening a company's LinkedIn page and reading the id out of the URL.

Does the country filter change which ads I get?

Yes — it restricts results to ads LinkedIn shows as targeting that country, not just ads posted by an advertiser based there.


Need More Features?

Open an issue on the actor's Apify page and describe what you need.

Why Use This LinkedIn Ad Library Scraper?

  • Reaches the disclosure page, not just the search card — impressions by country, full targeting parameters, and the paying legal entity, all fields most competing scrapers stop short of
  • Two discovery modes in one actor — sweep a whole category by keyword, or track specific advertisers by company ID, in the same run
  • Deduplicates automatically — search the same market from multiple angles without paying for the same ad twice