YouTube Ads Scraper - Video Ad Transparency & Competitor Intel avatar

YouTube Ads Scraper - Video Ad Transparency & Competitor Intel

Pricing

from $3.00 / 1,000 results

Go to Apify Store
YouTube Ads Scraper - Video Ad Transparency & Competitor Intel

YouTube Ads Scraper - Video Ad Transparency & Competitor Intel

Scrape competitor YouTube video ads from Google's Ads Transparency Center. Each ad resolves to a real YouTube video: video ID, watch URL, thumbnail, duration, aspect ratio, plus advertiser, flight dates and region. Video ad intelligence for creative research. Company-level only.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

mochi

mochi

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

YouTube Ads Scraper — YouTube Ad Transparency & Competitor Video Ad Intelligence

Scrape competitor YouTube video ads from Google's public Ads Transparency Center, and get back the thing every other ad scraper leaves out: the actual YouTube video.

Every row resolves to a real video — video ID, watch URL, thumbnail, duration, aspect ratio — alongside the advertiser, the flight dates, and the region the ad ran in. Built for creative teams, performance marketers, and competitive-research agents doing video ad intelligence.


Why this actor

Google's Ads Transparency Center tells you a creative is a video. It does not tell you which video — the list data contains no YouTube ID, no duration, no thumbnail. This actor closes that gap:

  1. Server-side video filter. The transparency search is asked for video creatives only. This matters more than it sounds: in a normal mixed search, video is a small minority (for nike.com, 2 of 40 creatives). Filtering at the source returns roughly 20x more video ads per page fetched than pulling everything and discarding non-video.
  2. Video resolution. Each ad's creative preview is opened and mined for its YouTube video ID, duration, and aspect ratio — turning an opaque ad record into a video you can actually watch, embed, and analyse.

Relationship to our Google Ads Transparency Scraper — read this before you buy

This actor uses the same public source as our general Google Ads Transparency Scraper, and shares its proven RPC client. It is a specialisation, not a separate data source, and we would rather say so plainly than have you find out after a run.

Use the general actor if you want all ad formats (text, image, video) and only need the ad record. Use this one if you care about video: it adds the server-side video filter, the YouTube ID / URL / thumbnail / duration / aspect-ratio resolution, duration bucketing and duration filters — none of which the general actor does. If you only need the raw video ad list without the video details, set enrichVideoData: false and this actor is simply the general one with a video filter.


What you get (one row per video ad)

FieldDescription
advertiserNameAdvertiser (company/organisation)
advertiserDomainVerified domain, e.g. nike.com (domain mode)
advertiserIdGoogle advertiser ID (AR...)
creativeIdGoogle creative ID (CR...)
adFormatAlways video for this actor
videoIdYouTube video ID (11 chars)
videoUrlhttps://www.youtube.com/watch?v=...
videoThumbnailUrlThumbnail image URL
videoDurationSecondsAd length in seconds (e.g. 15.082)
videoDurationBucketbumper (<=6s) / short (7-15s) / standard (16-30s) / long (31-60s) / extended (>60s)
videoAspectRatio1.7778 = 16:9 landscape, 0.5625 = 9:16 vertical/Shorts
videoLayoutRender template / placement hint (e.g. discover, youtube_home)
videoIdSourceHow the ID was found — provenance, not a guess
firstShown / lastShownFlight dates (ISO 8601 UTC)
firstShownTs / lastShownTsSame, as unix seconds (stable sort key)
variantCountRelative breadth signal (see honesty note below)
previewUrlGoogle's signed creative preview (short-lived)
adLibraryUrlDeep link to the ad on Google's own site
region, matchedQuery, searchMode, source, scrapedAtQuery context

Input

Every field has a default — running with empty input {} works and returns a sample of Nike's video ads.

{
"searchMode": "domain",
"queries": ["grammarly.com", "booking.com", "squarespace.com"],
"region": "US",
"maxResults": 24,
"maxResultsPerQuery": 8
}
InputDefaultNotes
searchModedomaindomain | keyword | advertiser
queries["nike.com"]Domains, keywords, or AR... advertiser IDs
regionanywhereUS, United Kingdom, DE, … Unknown values fall back to global rather than guessing
dateFrom / dateToYYYY-MM-DD; matches ads whose flight overlaps the window
minDurationSeconds / maxDurationSeconds0 (off)e.g. maxDurationSeconds: 6 for bumper ads
onlyWithVideoIdfalseDrop ads whose video ID could not be resolved
enrichVideoDatatrueTurn off for a faster, cheaper advertiser-only run
maxResults20Global cap across all queries. Keep low for a quick sample; 0 = no limit
maxResultsPerQuery0 (off)Cap each query separately. Set this when comparing competitors — queries run in order against the shared budget, so one prolific advertiser can otherwise consume the whole run
maxAdvertisersPerKeyword3Keyword mode only

Search modes

  • domain — best starting point. ["nike.com"] returns Nike's video ads.
  • keyword["running shoes"] resolves the term to its top advertisers, then pulls each one's video ads. Rows are enriched with advertiserCountry and advertiserAdCount, so you get a ranked competitive landscape.
  • advertiser — exact AR... IDs for exhaustive coverage of one advertiser.

Use cases

  • Competitor video ad research — pull every YouTube ad a rival is running, watch them, and track when creatives launch and retire.
  • Creative intelligence — see which ad lengths and aspect ratios a category actually ships (bumper vs 30s; 16:9 vs 9:16 vertical).
  • Ad creative swipe files — thumbnails and watch URLs, ready to embed in Notion/Airtable.
  • Campaign monitoring — schedule runs and diff on creativeId to catch new video ads the week they launch.
  • AI agents — flat, predictable, fully-typed JSON with no nesting; every field is null-safe.

Honest limits

We would rather set expectations than have you discover these on run one.

  • About 4 in 5 video ads resolve to a YouTube video ID — but it varies a lot by advertiser. Measured on a live sample of 120 video creatives across 8 advertisers: 95 resolved (79%). Per-advertiser it ranged from 100% (grammarly.com, booking.com, hellofresh.com, expressvpn.com) down to 53% (nike.com) and 0% (coursera.org, whose ad previews contain no video reference at all). Unresolved ads are still returned with null video fields — never silently dropped. Set onlyWithVideoId: true to keep only resolved ones, and check RUN_SUMMARY.videoIdResolutionRate for the real rate of your own run.
  • Duration resolves about half the time (61/120 = 51% in the same sample). It is recovered from the ad's media URL, which only some layouts inline. videoDurationSeconds is null when absent, and duration filters keep such ads rather than hiding them because of an enrichment miss.
  • The misses are mostly a real thing, not a parsing gap. Typical unresolved cases are youtube_home masthead placements and regional creatives whose preview carries no video at all. Where a video is referenced, we resolve it from either the explicit video field or the thumbnail URL, and videoIdSource tells you which.
  • variantCount is a breadth proxy, not spend. It is a per-creative integer Google publishes. It is not impressions and not spend — the public Transparency Center exposes neither, and no scraper can give you them. Treat it as a relative signal for which creatives an advertiser is pushing hardest.
  • previewUrl is short-lived. Google signs it; it expires. Use videoUrl / videoThumbnailUrl for anything durable.
  • Coverage is whatever Google publishes. The Ads Transparency Center is the source of truth; if an ad is not there, it is not here.
  • RUN_SUMMARY (key-value store) reports videoAdsReturned, resultCapReached, errors and complete, so you can always tell a full run from one capped by maxResults.

Data ethics & compliance

Public, unauthenticated data only, from Google's own transparency surface (no login, no cookies).

Company-level only. Output covers advertisers (organisations) and their creatives. This actor does not collect channel owners, uploaders, commenters, subscriber identities, or any personal data — by design, in line with GDPR/PDPA.

Pricing

Pay per result — $0.003 per video ad returned, plus a $0.00005 actor-start event. No subscription. The default run returns 20 ads (~$0.06), so you can check the output before scaling up. Set maxResults to cap spend on any run.

Use with AI agents (MCP)

Available to any MCP-compatible agent (Claude, ChatGPT, Cursor, LangChain) via the hosted Apify MCP server — connect once, then ask the agent to run mochiboo/youtube-ads-transparency-scraper.

Want only this actor as a tool, with no store search in the way? Point the agent at https://mcp.apify.com/?actors=mochiboo/youtube-ads-transparency-scraper and it loads as a single named tool — the agent calls it directly instead of searching for it and possibly picking someone else.

Agent-friendly by design:

  • Every row resolves to a real YouTube video ID and watch URL, so an agent can hand the creative straight to a video- or vision-capable model without another lookup step.
  • Small default run (20 ads) for a cheap first probe.
  • Short, literal input field descriptions — fillable with no extra documentation.
  • Flat output, one level deep, no decode logic.

FAQ

Do I need a Google or YouTube account? No. It reads the public Google Ads Transparency Center — no login, no cookies.

Can I get view counts or spend for a competitor's video ads? Not from this source — Google's public Transparency Center publishes neither. You get the video ID and watch URL, so you can look up public YouTube metrics yourself from there.

How is this different from just filtering the Google actor to video? The Google actor returns a video creative as an ad row. This one additionally resolves each ad to its underlying YouTube video — video ID, watch URL, thumbnail, duration and aspect ratio — and lets you filter by duration. See Relationship to our Google Ads Transparency Scraper above.

Can I export to CSV or Excel? Yes — every Apify dataset exports to JSON, CSV, Excel, XML, or RSS from the UI or the API.

Does this collect personal data? No. Output is advertiser/company-level only (PDPA / GDPR-friendly by design).

Support & feedback

Found a bug or a missing field? Open an issue on the actor's Issues tab — this actor is actively maintained. If it saved you time, an honest review on the Apify Store helps other people find it.