LinkedIn Ads Scraper with Ad Format Specific Data avatar

LinkedIn Ads Scraper with Ad Format Specific Data

Pricing

$19.99/month + usage

Go to Apify Store
LinkedIn Ads Scraper with Ad Format Specific Data

LinkedIn Ads Scraper with Ad Format Specific Data

🔍LinkedIn Ads Scraper with Ad-Format-Specific Data extracts company sponsored posts—creative, primary text, headline, media, CTA, destination URL & run dates, with CSV/JSON export. 📊 Perfect for competitor research, ad inspiration & media buying. 🚀 Accelerate B2B campaign planning.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeEngine

ScrapeEngine

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

1

Monthly active users

8 days ago

Last modified

Share

LinkedIn Ads Scraper With Ad-Format-Specific Data

Scrape the public LinkedIn Ad Library by advertiser and get deep, type-specific structured fields for every ad format LinkedIn supports — Event, Document, Article, Message and InMail — instead of a single generic ad-copy shape. Most LinkedIn ad scrapers, ad library scrapers, and ad intelligence tools return one flat body/headline/CTA structure for every ad regardless of its actual format. This actor parses the ad's own type-specific block on the LinkedIn Ad Library detail page, so an event ad gives you its real date/host/location/registration link, a document (carousel/PDF-style) ad gives you its title/page counts/cover images, a message or InMail ad gives you the full personalized message body and sender, and an article ad gives you its title and summary — each shipped inside a single formatDetails object, alongside every field the base ad-library scraper already returns.

No login, no cookies, no LinkedIn account required — this actor only reads the public, guest-accessible Ad Library pages.

What this LinkedIn ad scraper does

  • Accepts one or more advertisers (company names, LinkedIn company URLs, or a ready-made Ad Library search URL) and collects their public LinkedIn ads.
  • Parses the standard ad fields every ad has: ad ID, Ad Library URL, advertiser name/URL/logo, ad format, ad copy, creative images, CTAs, paying entity, source URL and scrape timestamp.
  • Adds a formatDetails object shaped by the ad's own format — event date/title/host/location/registration URL for Event ads; title/type/page counts/cover-image URLs for Document ads; title/summary for Article ads; sender/full message body/CTA label for Message and InMail ads. Fields that don't apply to a given ad's format stay null — never guessed or borrowed from another format.
  • Adds a per-advertiser format-mix summary — one extra row per advertiser reporting how many ads of each format were collected (creativeTypeDistribution) and what share of them carried extractable format-specific data (formatCoveragePct).
  • Lets you filter the output down to only the ad formats you care about (e.g. only Event and Document ads).

Why format-specific data matters

A generic LinkedIn ad scraper treats every ad the same way, which throws away real, high-value structured data LinkedIn already renders on the page: an event's actual date and registration link, a document ad's page count and preview images, an InMail's full personalized message copy including merge tags like %FIRSTNAME%. This is useful for competitive creative research, event-marketing tracking, content-format benchmarking, and B2B ad intelligence — seeing exactly HOW competitors structure each ad type, not just that an ad exists.

Honest coverage note: Event, Document, Article and Message/InMail ads are a real but small slice of a typical advertiser's ad mix (roughly 1–5% of ads across a normal LinkedIn advertiser sample) — most ads on the platform are plain status-update, video or carousel creatives with no type-specific block to parse. This actor reports the real formatCoveragePct per advertiser rather than implying every ad has structured detail.

Input

FieldDescription
🎬 Advertisers or ad URLsCompany names, LinkedIn company URLs, or a ready-made Ad Library search URL — one per line.
🧩 Ad formats to includeOptional multi-select filter (Status update, Video, Carousel, Event, Document, Article, Message, InMail). Leave empty for all formats.
📐 Extract format-specific detailsToggle the formatDetails parsing on/off. Default on.
📈 Include format-mix summaryToggle the extra per-advertiser summary row on/off. Default on.
📦 Max adsCap on total ads collected across all advertisers (1–1000). The public Ad Library exposes up to 24 ads per search; the budget is shared evenly across multiple advertisers.
🌍 Country filterWhich country's ads to show.
📅 When were the ads active?Any time / last 30 days / current month / current year / last year.
🛡️ Proxy configurationOptional Apify Proxy settings.

Output

Each run produces two row types in one dataset:

type: "ad" — one row per ad:

adId, adLibraryUrl, advertiserName, advertiserUrl, advertiserLogo, format, formatDetails, body, imageUrls, ctas, paidBy, startUrl, scrapedAt.

formatDetails (object, null when the ad's format has no structured block):

  • Event ads: eventTitle, eventDateTime (ISO), eventHost, eventLocationType, eventUrl
  • Document ads: documentTitle, documentType, totalPageCount, previewPageCount, documentCoverImageUrls (image URLs only, never the document file itself)
  • Article ads: articleTitle, articleSummary
  • Message / InMail ads: messageSenderName, messageBody (paragraph-joined, personalization tokens like %FIRSTNAME% kept as-is), messageCtaLabel

type: "formatSummary" — one row per advertiser (when enabled):

advertiserName, totalAds, creativeTypeDistribution (ad count per format), formatCoveragePct, scrapedAt.

Example output row (Event ad)

{
"type": "ad",
"adId": "1546309796",
"advertiserName": "Salesforce Developers",
"format": "SPONSORED_UPDATE_EVENT",
"formatDetails": {
"eventTitle": "Agentforce NOW AMA: Build and Operate with Data 360 Headless + Agent Skills",
"eventDateTime": "2026-08-26T15:50:00+00:00",
"eventHost": "Salesforce Developers",
"eventLocationType": "Online",
"eventUrl": "https://www.linkedin.com/events/buildandoperatewithdata360headl7483603840215240705/"
}
}

FAQ

Does this need a LinkedIn login? No — it only reads the public, logged-out Ad Library.

Why is formatDetails null on most rows? Most LinkedIn ads are plain status-update, video or carousel creatives with no type-specific block to parse — this is a real, disclosed limitation of the ad, not a scraper error. Check formatCoveragePct on the advertiser's summary row for the real observed rate.

Does this download the actual document/PDF or video file? No — documentCoverImageUrls and any image/logo field are URLs and metadata only. No file bytes are ever downloaded or stored.

Why did I get fewer ads than "Max ads"? The public Ad Library caps each search at 24 ads. If you set an ad-format filter, the filter is applied after collection, so a narrow filter (e.g. only Event ads) can return fewer rows than requested.

Can I search by keyword instead of company? This actor scopes by advertiser (company name/URL or a ready-made search URL), matching the base ad-library scraper's input.