Nino Ventures · 2026-10-31

How to track competitor Google ads (and get alerted to new ones)

Google publishes every ad an advertiser runs in its Ads Transparency Center: search, display and YouTube, with the date each ad was first and last shown. That's enough to answer most competitor questions: what are they pushing right now, which landing pages get paid traffic, how many creatives are live, and when did a new campaign start.

The site is fine for looking up one brand once. It's slow for anything repeatable: no export, no history, and you can't diff this week against last week. This guide shows how to get the data into a spreadsheet and set up a weekly check that only returns new ads.

What the Transparency Center actually has

What it doesn't have: spend, clicks, keywords, or targeting. Anyone selling you "competitor ad spend" from this source is estimating.

Step 1: pull a competitor's ads into a table

We use the Google Ads Transparency Scraper + New Ads Monitor on Apify. You give it a domain, a brand name, an advertiser ID or a Transparency Center URL. It costs $1.20 per 1,000 ads, plus $1 per 1,000 if you want the ad copy and landing pages.

{
  "queries": ["Canva", "gymshark.com", "hellofresh.com", "Notion Labs", "AR05501100765344694273"],
  "region": "US",
  "maxAdsPerQuery": 200,
  "includeAdDetails": true
}

On 31 October 2026 that pulled 779 ads in under three minutes. The brand name "Canva" resolved to canva.com on its own. Google's own totals give a sense of scale: canva.com has 10,000 to 20,000 ads in the archive, gymshark.com 2,000 to 3,000, hellofresh.com 800 to 900. Pulling 200 per brand gets you the most recent ones, which is usually what you want.

A row with details turned on looks like this (trimmed):

{
  "advertiserName": "CANVA US, INC.",
  "format": "IMAGE",
  "firstShown": "2026-10-12T23:07:56.000Z",
  "lastShown": "2026-10-31T19:19:06.000Z",
  "daysShown": 20,
  "headline": "Canva Magic Layers",
  "body": "Flat doesn’t mean fixed. Magic Layers gives you full creative control over flat ...",
  "landingPage": "http://www.canva.com/magic-layers/?utm_medium=&utm_source=&utm_campaign=us_en_al...",
  "adUrl": "https://adstransparency.google.com/advertiser/AR13289988016354361345/creative/CR08282751427114172417?region=US"
}

Export to CSV or Google Sheets from the dataset tab.

Step 2: read it like a marketer

A few things worth sorting by:

Be honest about coverage: the copy and landing page came back for 94 of 779 ads (12%). Google renders the rest as images or video without exposing text. Video ads almost always have a YouTube ID (232 of 238 in our run), so you can watch them.

Step 3: get only new ads every week

Turn on Only new ads since last run and schedule the actor in Apify (Schedules, weekly). The first run stores every ad it saw. Later runs return only creatives that weren't there before. When we re-ran the same five brands eight minutes after the first run, it checked 779 ads in 10 seconds and returned one new Canva ad.

Hook the run to Slack or email through Apify's integrations, or pull the dataset into a sheet with n8n or Make. Use a separate monitor name per client so their histories don't mix.

Limits

More guides