Ad Library Scraper by Domain: AI Briefs, Live Ads and Ad Data avatar

Ad Library Scraper by Domain: AI Briefs, Live Ads and Ad Data

Pricing

from $50.00 / 1,000 advertiser lookups

Go to Apify Store
Ad Library Scraper by Domain: AI Briefs, Live Ads and Ad Data

Ad Library Scraper by Domain: AI Briefs, Live Ads and Ad Data

Paste a list of domains, get each advertiser's AI-analyzed brief, live ads: creative text, media and landing URLs, days running, plus grades.

Pricing

from $50.00 / 1,000 advertiser lookups

Rating

0.0

(0)

Developer

Ron Dahan

Ron Dahan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Security

Limited permissions

Share

Upspring Ad Intelligence

Turn domains into ad intelligence: AI-analyzed briefs, active ads, top creatives, landing pages, and spend, traffic and sales grades, one row per company.

What does Upspring Ad Intelligence do?

Give it a list of domains and it returns one row per domain with the advertiser's live ads. You get the advertiser name, how many ads are active, when they were first and last seen, coarse spend, traffic and sales grades, and the top ads with creative text, media URL, landing URL, CTA and days running.

Every advertiser is analyzed with AI: its ads (including video and image creative) are aggregated through a visual model to produce a short brief about the advertiser's positioning, target audience, hook strategies, and persuasion mechanisms. This gives you the strategic context behind the ads, not just raw creative.

Upspring Ad Intelligence turns a list of company domains into one clean row each: advertiser name, active ads count, first and last seen, spend, traffic and sales grades, AI-analyzed brief about positioning and audience, top personas and hooks, and the top ads with creative text, media URL, landing page, CTA and days running. Use it to qualify leads, personalize outreach with strategic insights from the brief, or track competitors without scraping a single ad library. You pay $0.05 per domain that returns ads, and nothing for domains with no ads. Grades are coarse modeled tiers, never exact figures.

How do I get ad data by domain?

Pass a list of domains. The Actor normalizes them (strips protocols, www, paths), looks up each advertiser in Upspring's ad intelligence corpus, and returns one row per domain. Each row includes the advertiser's AI-analyzed brief, top personas and hooks, active ads count, spend, traffic and sales grades, and the top-performing ads with creative text, media URLs, landing pages, CTAs, and days running.

AI Analysis: Each advertiser has been analyzed with a visual model that processes ads (video and image) to generate a short summary brief. You get the advertiser's positioning, target personas, hook strategies, and persuasion mechanisms in addition to the raw ad data.

{
"domains": ["example-brand.com", "sample-company.com", "test-business.com"],
"maxAdsPerDomain": 25,
"activeOnly": true,
"detailAds": 5
}

Output (one row per domain):

{
"domain": "example-brand.com",
"status": "ready",
"advertiser_name": "Example Brand",
"advertiser_id": "123456789",
"active_ads_count": 45,
"first_seen": "2026-09-15T10:00:00.000Z",
"last_seen": "2026-10-30T18:30:00.000Z",
"spend_grade": "B",
"traffic_grade": "A",
"sales_grade": "C",
"summary": {
"one_line": "Example Brand positions itself as a value optimizer in home goods, offering premium alternatives at accessible prices.",
"short_summary": "Example Brand targets budget-conscious shoppers in the US market by combining quality claims with aggressive promotional pricing. The brand's dominant playbook involves problem-solution framing and product demonstrations to highlight its alternatives as superior to traditional options."
},
"vertical": "Home Goods",
"category": "Kitchen Storage",
"ad_signals": {
"personas": [
{ "label": "The Deal-Seeker", "share": 0.42 },
{ "label": "Optimizer", "share": 0.31 },
{ "label": "The Practical Parent", "share": 0.18 }
],
"hooks": [
{ "label": "Problem statement", "share": 0.35 },
{ "label": "Bold claim", "share": 0.28 },
{ "label": "Question", "share": 0.22 }
],
"mechanisms": [
{ "label": "Problem amplify → relieve", "share": 0.38 },
{ "label": "Pricing-as-positioning", "share": 0.29 },
{ "label": "Demonstration-as-claim", "share": 0.21 }
],
"media_mix": { "label": "Video", "share": 0.78 },
"funnel": { "label": "Consideration", "share": 0.52 }
},
"top_ads": [
{
"ad_id": "abc123",
"platform": "Facebook",
"creative_text": "Transform your kitchen with premium storage solutions",
"media_url": "https://storage.example.com/video.mp4",
"landing_url": "https://example-brand.com/shop",
"cta": "Shop Now",
"days_running": 45,
"rank": 1
}
],
"upspring_url": "https://upspring.ai"
}

Add domains, run the Actor, read the dataset or call it from the API.

What data do I get for each domain?

FieldDescription
Advertiser nameBrand name from the ad account
Active ads countTotal number of currently running ads
First seen / Last seenEarliest and most recent ad start dates
Spend gradeCoarse modeled spending tier (D, C, B, A, A+)
Traffic gradeCoarse modeled traffic tier (D, C, B, A, A+)
Sales gradeCoarse modeled sales tier (D, C, B, A, A+)
SummaryAI-generated one-line and short summary analyzing positioning and strategy
Vertical / CategoryBusiness vertical and category (e.g., Kitchen Dining / Food Storage)
Ad signalsAI-analyzed top personas, hooks, mechanisms, media mix, and funnel stage
Top adsArray of top-performing ads with creative text, media URL, landing URL, CTA, and days running

Is this an ad library scraper or a competitor ad intelligence API?

It returns live ads for any advertiser by domain, so yes, you can use it for ad library lookups and competitor research. Supported sources: Meta Ad Library (Facebook).

How much does it cost?

$0.05 per domain that returns ads. $0.002 for each extra ad beyond 25 per domain. Domains with no ads cost nothing.

Example: 100 domains where 80 return ads = $4.00 (plus $0.002 for each ad beyond the first 25 per domain, if any).

How do I use it with Claude or ChatGPT?

  1. Run the Actor via the Apify MCP server or API
  2. Pass the dataset to your AI model
  3. Ask it about hooks, offers, landing pages and how long ads have been running

This turns live ads into context an AI can read, which is the idea behind Upspring.

How accurate are the grades?

Spend, traffic and sales grades are coarse modeled tiers, not exact figures. Use them to compare advertisers, not to read off budgets or revenue.

Use Cases

Qualify leads by ad activity. Run your prospect list through the Actor and keep only the companies actively advertising. Sort by spend grade to reach the ones with real budget first.

Personalize outreach with AI briefs. Pull each prospect's AI-analyzed summary, top personas and hooks, and reference their positioning strategy in your email or DM. Open with something specific from their brief, not just a generic compliment.

Watch competitors. Schedule a weekly run on a competitor list and spot new ads, new offers and ads that have been running for a long time (usually the winners).

FAQ

How fresh is the data? The Actor fetches live data from Upspring's API on every run. Ads are refreshed regularly on the platform side.

How many ads per domain? By default, you get up to 25 top-performing ads per domain. Set maxAdsPerDomain (max 100) to fetch more. The first 25 are included in the base charge. Additional ads cost $0.002 each.

What if a domain has no ads? Domains with no ads return a row with status: "no_ads" and zero charge.

Can I export to CSV or Google Sheets? Yes. Download the dataset as CSV from the Apify Console, or connect the Actor to Google Sheets via Apify integrations.

Can I call it from the API? Yes. Use the Apify API to run the Actor and fetch results programmatically. See the Apify API documentation.

Input

ParameterTypeDefaultDescription
domainsarrayrequiredList of website domains (protocol, www, paths stripped automatically)
countrystringoptionalFilter by country (not currently supported by the API)
maxAdsPerDomaininteger25Maximum ads per domain (1-100). First 25 included in base charge.
activeOnlybooleantrueFetch only currently active ads
detailAdsinteger5Number of top ads to fetch full details for (CTA, landing URL). Max 25.
maxWaitSecondsPerDomaininteger30Maximum time in seconds to wait for pending domains (5-120). Domains still pending after this time return status 'pending' and are not charged.

Output

One dataset row per domain:

FieldTypeDescription
domainstringNormalized input domain
statusstringready, pending, no_ads, or error
advertiser_namestringBrand name
advertiser_idstringUpspring advertiser ID
active_ads_countintegerTotal currently active ads
first_seenstringISO 8601 timestamp of earliest ad
last_seenstringISO 8601 timestamp of most recent ad
spend_gradestringSpending tier (D, C, B, A, A+)
traffic_gradestringTraffic tier (D, C, B, A, A+)
sales_gradestringSales tier (D, C, B, A, A+)
summaryobjectAI-generated summary analyzing positioning and strategy
summary.one_linestringOne-line summary of positioning
summary.short_summarystringShort paragraph analyzing strategy, audience, and creative approach
verticalstringBusiness vertical (e.g., Kitchen Dining, Health Beauty)
categorystringBusiness category (e.g., Food Storage, Skincare)
ad_signalsobjectAI-analyzed ad signals
ad_signals.personasarrayTop 3 target personas with label and share (0-1, 2 decimals)
ad_signals.hooksarrayTop 3 hook types with label and share (0-1, 2 decimals)
ad_signals.mechanismsarrayTop 3 persuasion mechanisms with label and share (0-1, 2 decimals)
ad_signals.media_mixobjectPrimary media format (Video or Image) with share
ad_signals.funnelobjectPrimary funnel stage (Awareness, Consideration, Conversion) with share
top_adsarrayTop-performing ads with creative data
upspring_urlstringLink to Upspring platform
error_messagestringError description (only when status is error)

Top Ads Structure

Each ad in top_ads includes:

FieldTypeDescription
ad_idstringUpspring ad ID
platformstringPlatform where ad ran (Facebook, or null)
creative_textstringHook text or one-line summary
media_urlstringVideo, image, or thumbnail URL
landing_urlstringLanding page URL (top N ads only)
ctastringCall-to-action text (top N ads only)
days_runningintegerDays since ad started
rankintegerRank in top ads list

Configuration

Set these environment variables in Apify Console under Actor Settings > Environment variables:

Required:

  • UPSPRING_API_KEY: Your Upspring API key (prefixed upk_...). The Actor will fail immediately if not set.

Optional (Analytics):

  • POSTHOG_API_KEY: PostHog project API key for usage tracking (silent no-op if unset)
  • POSTHOG_HOST: PostHog API host (default: https://us.i.posthog.com)

Limitations

  • Platform support: Only Meta Ad Library (Facebook) is currently detected. Other platforms return platform: null.
  • Landing URLs and CTAs: Available for the top N ads only (default 5, controlled by detailAds). Other ads have these fields set to null.
  • Last seen: Derived from most recent ad start date, not a true "stopped running" timestamp.
  • Country filtering: Not currently supported by the underlying API.

Pricing

Pay-per-result model:

  • $0.05 per domain that returns ads (includes first 25 ads)
  • $0.002 per additional ad beyond 25
  • $0.00 for domains with no ads, errors, or pending status

No additional charges for detail fetching (landing URLs, CTAs).

Support

For Actor issues, open an issue in the repository. For Upspring API questions, see https://public-api.upspring.ai/v1/docs/ui.

Deployment instructions and technical details are in DEPLOY.md.