Guides · 24 October 2026
Tracking competitors’ Google ads: a practical guide
Every ad a competitor runs on Google is public. Google’s own ad library shows it, for free, with the countries and platforms it ran on. What it does not do is tell you when something changes. Here is how to turn it into a competitor watch that does.
Where the ads come from
The Google Ads Transparency Center lists the ads of every verified advertiser: search, display, Shopping and YouTube, with the first and last day each ad was shown. You can filter by country, platform and date. For many countries it adds impressions as ranges, split by platform, which tells you where a competitor puts most of their budget.
Each ad has a stable creative ID, and each advertiser a stable advertiser ID. Those two IDs are what makes monitoring possible: an ID you have not seen before is a new ad.
Find every account, not just one
Larger companies advertise through several accounts: a parent company, a national subsidiary, an agency account, a marketplace unit. Searching the brand name gives you one of them and quietly misses the rest. Start from the domain instead. A domain search returns every advertiser that promotes it, and if you do search by name, ignore the legal form, so “Zalando SE” and “Zalando Marketing Services GmbH” both turn up.
Read search ads as text
The Transparency Center shows search ads only as pictures. For one or two ads that is fine. For a hundred, you want the headline, description and display URL as text you can search, sort and compare. OCR handles this well when it reads in the language of the region and tells the headline (the link-coloured line) apart from the description. Once the copy is text, questions like “which competitors mention free shipping in their headline?” take a filter, not an afternoon.
Spot the ads that work
Nobody outside a company sees its conversion data, but the ad library gives strong hints. An ad that has been running for months is almost certainly paying for itself, because advertisers switch off what loses money. Many variations of one ad mean it is being tested hard. A new ad that appears in several countries at once is usually a campaign, not an experiment. Sort by days shown, and the long runners are the copy worth studying.
Get told about new ads
Checking the library by hand works for a week. A monitor works for good: on every run, compare the creative IDs with the ones you have already seen and report only the new ones. Two details make it pleasant to live with. The first run should record the existing ads and stay quiet, or you start with an alert about hundreds of old ones. And an alert that could not be delivered, because Slack or your server was down, should go out with the next run instead of being lost.
Google also limits how many requests one IP may send. A monitor that runs every morning needs to step around those blocks by itself, or it fails exactly on the days you are not looking.
The short way: a scheduled task
The Google Ads Transparency Scraper & New Ad Alerts does all of the above on Apify: it starts from a domain, a name, an advertiser ID or a link, reads search ads as text, and sends new ads to Slack, Discord, a webhook or e-mail. Save this input as a task and give it a daily schedule:
{
"advertisers": ["zalando.de", "aboutyou.de"],
"region": "DE",
"maxAdsPerAdvertiser": 100,
"onlyNewAds": true,
"slackWebhookUrl": "https://hooks.slack.com/services/…"
}
Every ad comes with headline, description, display URL, image or video, first and last day shown, days shown, variations, platforms and impressions per country. To find the long runners of one competitor in your own code, use the Apify Python client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("layerwiselabs/google-ads-transparency-monitor").call(run_input={
"advertisers": ["zalando.de"],
"region": "DE",
"adFormat": "text",
"maxAdsPerAdvertiser": 200,
})
ads = list(client.dataset(run["defaultDatasetId"]).iterate_items())
for ad in sorted(ads, key=lambda a: a["daysShown"] or 0, reverse=True)[:10]:
print(ad["daysShown"], ad["headline"])
AI agents can call it directly as a tool through the Apify MCP server: https://mcp.apify.com?tools=layerwiselabs/google-ads-transparency-monitor
What it costs
$1.50 per 1,000 ads, with text, images, regions and impressions included and no start fee. Monitoring runs that find no new ads cost nothing, so a daily watch of 10 competitors that launch 5 new ads a week each comes to about $0.32 a month. Proxies are included, and a free Apify account includes $5 of credit every month.