// YouTube Ad Spy Tool

YouTube ad spy tool: see every video ad a competitor runs

Most people assume YouTube ads can't be spied on. They can — Google publishes them.

Pass a domain and get back every video ad the advertiser is running, when each one started, when it was last seen live, and a link to watch it. As JSON, for as many companies as you want.

No credit card required

Every video ad

not a sample, the full library

First seen and last seen

dates Meta's library never gives you

JSON via API

run it across a whole competitor set

Why YouTube ads are spyable at all

Facebook's ad library trained everyone to expect a public archive of ads. Almost nobody realises Google runs one too. The Google Ads Transparency Center publishes what every verified advertiser is running, and that includes their video ads — the ones served on YouTube.

There's no official API for it. Adyntel scrapes it and hands you clean JSON, so you can pull one advertiser or five hundred without touching the interface.

So a YouTube ad spy tool doesn't need to do anything clever to see a competitor's campaigns — the archive is already public. What it has to get right is coverage and structure: every creative, not a sample, in a shape you can feed straight into a spreadsheet or an AI model.

Dedicated YouTube ad spy tools like VidTao and BigSpy wrap that same public data in a browsable library with creative analysis, which suits marketers who want to sit and scroll. Adyntel is aimed at performance marketing teams who would rather have the ad intelligence as data they can join against their own reporting, and at agencies who fold it into their competitive research services for clients.

Filter a pull to video with media_type: "video" and you get the YouTube side of an advertiser's spend on its own.

What comes back on every ad

How long it's been running

start and last_seen on every creative. An ad that's been live for eight months is one a competitor keeps choosing to fund. Sort a library by that gap and their proven creatives sit at the top.

A link to watch the ad

original_url opens the creative in the Google Ads Transparency Center, where the video plays. One click per ad, no login.

The advertiser behind the domain

advertiser_name and advertiser_id — the legally verified entity paying for the ads. Useful for spotting when a brand buys under a parent company or through an agency.

A stable creative ID

creative_id stays constant across pulls. Store it and re-run weekly to get a clean diff of what launched, what's still live, and what quietly disappeared.

The full inventory, not the first page

total_ad_count tells you how deep the library goes, and continuation_token pages through it. Large advertisers run thousands of video creatives — you can pull all of them rather than eyeballing whatever loads first.

Getting to the video file itself

Each video ad comes back with a variants[].content URL pointing at Google's creative preview service. That URL serves the rendered ad, and the underlying YouTube video ID sits inside it — which means you can get to the video and its thumbnail with one extra request.

import re, requests

ads = requests.post('https://api.adyntel.com/google', json={
  'api_key': key,
  'email': email,
  'company_domain': 'slack.com',
  'media_type': 'video'
}).json()['ads']

for ad in ads:
    preview = requests.get(ad['variants'][0]['content']).text
    match = re.search(r'ytimg\.com/vi/([\w-]{11})/', preview)
    if match:
        vid = match.group(1)
        print(f"https://www.youtube.com/watch?v={vid}")
        print(f"https://i3.ytimg.com/vi/{vid}/hqdefault.jpg")

That gives you a watchable YouTube URL and a thumbnail for every ad in the library. To go further, the video intelligence endpoint takes a YouTube URL and returns frame-by-frame screenshots plus a full audio transcript — enough to run a competitor's entire video strategy through an LLM and get back the hooks, claims and offers they lead with.

Prefer to point and click? There's a UI too

The API is the reason most people pick Adyntel, but you don't have to write a line of code to use it. Log into the platform, type a domain, filter to video, and the same results render as a browsable list — creatives, run dates and advertiser detail, with a CSV export when you want the whole set in a spreadsheet.

In practice teams use both: the UI for a quick look before a pitch or a one-off competitor check, the API once the same question needs answering every week across a list of accounts.

Who uses it

Paid media teams

Checking whether competitors are actually investing in YouTube before committing a video production budget to it.

Creative strategists

Pulling every video ad in a category to find the hooks and formats that keep getting funded, then briefing against the gaps.

Agencies pitching new business

Walking into a pitch already knowing what the prospect and their three closest competitors are running in video.

Competitive intelligence

Tracking creative launches on a schedule so a competitor's new campaign shows up in a report instead of by accident.

For search and display ads too, see the Google ads scraper. For paid social, see the Facebook ads scraper.

FAQ

Can you actually see competitors' YouTube ads?
Yes. Google publishes them in the Ads Transparency Center for every verified advertiser. It's public — Adyntel just makes it queryable by domain and returns it as structured data instead of a page you have to scroll.
Is this a YouTube spy tool for channels or for ads?
Ads. "YouTube spy tool" gets used for two different jobs — tracking a channel's organic performance (subscribers, views, upload cadence) and tracking the paid ads an advertiser runs. This is the second one. If you're after channel analytics rather than ad creatives, a tool like VidIQ or Social Blade is what you want.
Does the API return the video file directly?
Not as a field. You get original_url to watch the ad in the Transparency Center, and a variants[].content preview URL that contains the YouTube video ID. One extra request and a regex gets you the watch link and thumbnail — the snippet above does it in six lines.
I searched a brand and got a different company name back
That's expected. Google lists ads under the verified legal entity paying for them, so a search for slack.com returns ads under Salesforce, and a brand buying through an agency shows up under the agency's name. Check advertiser_name and advertiser_id to see who's really running the account, and expect some results from sibling brands under the same parent.
Can I see how much they're spending on YouTube?
No, and any tool claiming otherwise is estimating. Google doesn't publish spend outside political advertising. What you can see is creative volume and how long each ad has stayed live, which tells you where the commitment is without pretending to a number.
Can I filter YouTube ads by country?
The Google endpoint returns a country_code on the response but doesn't take a country filter on the request, so results come back across all regions and you filter afterwards. If you need country-level targeting on the request itself, the Meta endpoint supports it.
What does one credit cover?
One API call to one platform endpoint for one domain. You get 50 free credits to test with, no credit card required.