Competitor Ads Scraper avatar

Competitor Ads Scraper

Pricing

from $1.70 / 1,000 ads

Go to Apify Store
Competitor Ads Scraper

Competitor Ads Scraper

Find competitor ads across Google, Meta, TikTok, LinkedIn, and Microsoft/Bing with normalized creative text, headlines, dates, landing pages, creative media URLs, formats, and ad links.

Pricing

from $1.70 / 1,000 ads

Rating

0.0

(0)

Developer

Trove Vault

Trove Vault

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Search competitor ads across Google, Meta, TikTok, LinkedIn, and Microsoft/Bing ad libraries in one Apify run. The actor uses built-in platform adapters and returns one normalized dataset with advertiser names, creative text, headlines, descriptions, CTA labels, dates, landing pages, creative media URLs, formats, and ad detail links.

Why Use This Actor

Competitor ad research is usually split across separate public libraries, each with different search behavior, country coverage, field names, and media formats. This actor gives agencies, growth teams, founders, and competitive intelligence teams a single workflow for monitoring what competitors are running across paid channels.

Use it when you want to:

  • collect competitor ad examples before a creative strategy review;
  • monitor how a brand changes messaging across platforms;
  • compare ad copy, CTAs, landing pages, images, and videos by channel;
  • build recurring ad intelligence datasets in Apify, Google Sheets, BI tools, or agent workflows;
  • avoid maintaining five separate ad library scrapers yourself.

What It Extracts

The normalized output includes, when available:

  • platform and country
  • advertiserName
  • adId
  • status and isActive
  • firstShownDate and lastShownDate
  • adFormat and mediaAvailability
  • creativeText, headline, description, caption, and callToAction
  • landingPageUrl and landingPageUrls
  • creativeUrl, creativeUrls, and creativeMediaType
  • imageUrl, imageUrls, videoUrl, and videoUrls
  • adDetailsUrl

creativeUrl is the best available media asset for quick workflows, selected from video URLs first, then image URLs, then logo or cover image URLs. creativeUrls keeps the normalized media list. creativeMediaType reports video, image, mixed, logo_or_cover, or none based only on returned source data.

Each platform exposes different public fields. The actor preserves useful creative fields when the underlying library returns them and omits fields that do not apply to a row.

Supported Platforms

The default run includes:

  • Google Ads Transparency Center
  • Meta Ad Library
  • TikTok Ads Library
  • LinkedIn Ad Library
  • Microsoft/Bing Ad Library

Platform-country support is not identical. EU/EEA countries such as FR, DE, PT, and ES provide the broadest coverage across all five. Markets such as US are still useful, but some platforms may be skipped because their public library does not expose that country through the underlying actor. Skips are reported in RUN_SUMMARY.

Input

{
"targets": ["Nike"],
"country": "FR",
"maxAdsPerPlatform": 25,
"platforms": ["google", "meta", "tiktok", "linkedin", "bing"],
"shownSince": "2026-07-01"
}

Fields

  • targets - brand names, company names, domains, or ad keywords to search.
  • country - ISO 3166-1 alpha-2 market code. Use an EU/EEA country for the broadest five-platform coverage.
  • maxAdsPerPlatform - maximum ads to request from each selected platform per target.
  • platforms - optional channel filter. Defaults to all five platforms.
  • shownSince - optional date filter applied where compatible public dates exist.
  • firstShownAfter - optional first-shown date filter applied where compatible public dates exist.
  • datasetId - optional existing Apify dataset ID for pipeline runs.
  • runId - optional external workflow ID copied to output rows and RUN_SUMMARY.

Output Example

{
"target": "Nike",
"platform": "meta",
"country": "FR",
"advertiserName": "Nike",
"adId": "1234567890",
"isActive": true,
"firstShownDate": "2026-07-01",
"lastShownDate": "2026-07-16",
"adFormat": "video",
"mediaAvailability": "video",
"creativeText": "New running shoes for race day.",
"headline": "Run your fastest",
"description": "Shop the latest Nike running collection.",
"callToAction": "Shop now",
"landingPageUrl": "https://www.nike.com/",
"creativeUrl": "https://...",
"creativeUrls": ["https://..."],
"creativeMediaType": "mixed",
"imageUrl": "https://...",
"videoUrl": "https://...",
"adDetailsUrl": "https://..."
}

API Usage

curl "https://api.apify.com/v2/acts/trovevault~competitor-ads-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"targets": ["Nike", "Adidas"],
"country": "FR",
"maxAdsPerPlatform": 10
}'

Fetch dataset items after the run:

curl "https://api.apify.com/v2/datasets/DATASET_ID/items?clean=true" \
-H "Authorization: Bearer $APIFY_TOKEN"

Run Summary

The actor writes RUN_SUMMARY to the default key-value store with:

  • requested targets and platforms;
  • skipped platforms for unsupported countries;
  • per-platform row counts;
  • suppressed platform errors.

This keeps the main dataset focused on usable ad records while still making orchestration diagnostics available.

Limitations

  • Public ad libraries differ in country coverage, pagination, media URLs, dates, and creative fields.
  • Some fields are absent because the source platform does not expose them for that ad.
  • creativeMediaType: "none" means the selected source returned ad metadata but no usable video, image, logo, or cover URL.
  • Video and image URLs may be temporary or platform-hosted.
  • US and other non-EU markets may not return all five platforms because some public libraries focus on EU/EEA transparency coverage.
  • Runtime and compute cost scale with the selected platforms and maxAdsPerPlatform.
  • Google Ads Transparency Scraper
  • Meta Ads Library Scraper
  • TikTok Ads Library Scraper
  • LinkedIn Ads Library Scraper
  • Microsoft Bing Ads Library Scraper

Changelog

  • 0.1.0 - Initial cross-platform competitor ads scraper with normalized output across five ad library actors.