LinkedIn Ads Library Competitive Creative Scraper avatar

LinkedIn Ads Library Competitive Creative Scraper

Pricing

Pay per usage

Go to Apify Store
LinkedIn Ads Library Competitive Creative Scraper

LinkedIn Ads Library Competitive Creative Scraper

Collect public LinkedIn Ads Library creatives and messaging patterns for competitor research, campaign inspiration, and structured creative analysis.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Brian Keefe

Brian Keefe

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Production-ready Apify Actor for extracting public competitive creative signals from LinkedIn Ads Library-style HTML pages and deterministic supplied HTML fixtures.

Compliance

  • Public data only.
  • No login, no account automation, no credential use, and no bypassing of technical access controls.
  • If a live public fetch is blocked, unavailable, or returns an access wall, the actor emits warning rows instead of attempting circumvention.
  • For repeatable workflows and tests, use suppliedHtml fixtures captured from public pages you are authorized to analyze.

What It Does

  • Accepts company targets via name, domain, and/or public LinkedIn Ads Library URL.
  • Accepts deterministic suppliedHtml fixtures for local parsing.
  • Extracts ad rows with creative metadata when visible.
  • Emits warning rows when no public input is available or live fetches are blocked.
  • Applies deterministic theme-tag and positioning heuristics.
  • Optionally fetches public landing pages referenced by extracted ads to enrich heuristics.

Input

See .actor/input_schema.json for the Apify input schema.

Example:

{
"companies": [
{
"name": "Example Inc",
"domain": "example.com",
"adLibraryUrl": "https://www.linkedin.com/ad-library/..."
}
],
"maxAds": 50,
"includeLandingPages": false,
"suppliedHtml": [
{
"name": "Example Inc",
"domain": "example.com",
"sourceUrl": "https://www.linkedin.com/ad-library/...",
"html": "<html>...</html>"
}
]
}

Output

Each dataset row includes:

  • advertiser
  • title
  • copy
  • body
  • cta
  • landingUrl
  • landingDomain
  • mediaUrl
  • firstSeen
  • lastSeen
  • sourceUrl
  • themeTags
  • positioningSummary
  • warnings

When the actor cannot fetch or parse a live public source, it still emits a row with warnings populated.

Local Usage

Install dependencies:

$npm install

Run tests:

$npm test

Run smoke test:

$npm run smoke

Run the actor locally with Apify storage:

$APIFY_LOCAL_STORAGE_DIR=./storage node src/main.js

Populate storage/key_value_stores/default/INPUT.json first, or use examples/sample-input.json as a starting point.

Heuristics

Theme tags and positioning summaries are deterministic and rule-based. They look for patterns related to:

  • AI and automation
  • analytics and reporting
  • lead generation and growth
  • cost savings and productivity
  • trust, compliance, and enterprise readiness
  • free-trial and demo-oriented conversion hooks

Project Structure

  • .actor/actor.json
  • .actor/input_schema.json
  • src/
  • examples/
  • tests/

Notes

  • The parser is fixture-first and designed to stay robust when HTML is captured from public pages and replayed locally.
  • Live LinkedIn/public URL access can change without notice. Blocked responses are treated as warnings, not as reasons to circumvent access controls.