Google publishes every ad a company runs in the Ads Transparency Center. It's a great resource with one big gap: it has no history and no alerts. You can see what a competitor is running today, but not what they launched this week or what they quietly switched off.
This post shows a simple weekly routine that fills that gap, and the tool I built to automate it.
What the Transparency Center gives you (and what it doesn't)
For every advertiser you get:
- every text, image and video ad they've run, with a preview
- the first and last date each ad was shown
- filters for country, platform (Search, YouTube, Shopping, Maps, Play) and format
What you don't get for commercial ads: spend, impressions, clicks or targeting. Google doesn't publish those, so be suspicious of any tool that claims to show them.
The manual way
- Open adstransparency.google.com.
- Search the competitor's name or domain.
- Pick a country and scroll.
- Next week, do it again and try to remember what was there last time.
Step 4 is where it falls apart. With three competitors in two countries it's an hour of scrolling, and you still miss things.
The one signal worth tracking: what changed
Two changes tell you the most:
- New ads show you what they're testing right now: new offers, new landing pages, new angles.
- Stopped ads are usually tests that lost.
There's also a quieter signal. Ads that keep running for months are rarely losers. Nobody pays for a bad ad for 200 days. That's an observation, not proof of performance, but it's a useful shortlist when you're looking for angles to learn from.
Automating it
I built an Apify Actor that does the weekly diff for you:
Google Ads Transparency Scraper & Competitor Ad Monitor
Step 1: tell it who to watch
Type a domain (tesla.com), a brand name (Nike), or a Transparency Center advertiser URL. Pick a country if you only care about one market.
Step 2: run it once
The first run saves a baseline. You get one row per ad, with:
- a preview image of the ad right in the results table
- first shown, last shown and days active
- for video ads: the YouTube link, its length, and the landing page the ad sends people to
- a link to verify each ad on Google's own page
Step 3: schedule it weekly
From the second run on, every ad is labelled new, stopped or continuing compared to last time. Turn on Only push changes and each run becomes a short changelog: "3 new video ads pointing to /solarpanels, 2 image ads stopped."
Export it as CSV/Excel, or send it to Google Sheets or Slack with Apify's built-in integrations.
Bonus: who else advertises your domain?
The landingDomains option returns ads from every advertiser whose ads point to a domain, not just the brand itself. When I tried nike.com (US), it found 7 advertisers: Nike's own accounts, two media agencies, and a trading company I'd never heard of. If you manage a brand, that's a cheap way to spot resellers or impostors bidding on your traffic.
Cost
It's pay-per-result: $1 per 1,000 ads, plus $2 per 1,000 detected changes. A weekly check on a handful of competitors costs cents. Blocked or empty answers are never charged.
Limits, stated plainly
- No spend, impressions or targeting. Google doesn't publish them.
- "Days active" means Google showed the ad over that period. It doesn't tell you budget.
- Text and image ads come as rendered images, so the ad copy is in the picture, not in a text column.
If you run competitive research for clients, I'd love to hear which signals you'd want added next.
Top comments (0)