Between October 18 and 24, 2026, Warby Parker showed 2,198 different ads to people in the US. 21 of them started that week. The rest had been running longer, the oldest since October 2021.
That is the problem with watching a competitor on Google. The Ads Transparency Center lists everything a brand showed, but the new ads, the ones that say what they are testing now, are about 1% of the pile.
Data below was collected on 2026-10-24 for the US only. It is one week, not a trend.
| Brand (US) | Ads shown Oct 18-24 | Started that week | Format of the new ones |
|---|---|---|---|
| Warby Parker | 2,198 | 21 | 21 text |
| Glossier | 274 | 10 | 10 video |
| Gymshark | 93 | 7 | 6 video, 1 image |
| Allbirds | 89 | 0 | - |
| HelloFresh | 89 | 0 | - |
Why Google's page doesn't answer "what's new?"
The Ads Transparency Center has a date filter (Today, Yesterday, Last 7 days, Last 30 days, a custom range or Any time; the page says "Data is based on Pacific Time (PT)"). Set it to the last 7 days and you get every ad the brand showed in that window.
But "shown this week" includes an ad that has run every day since 2021. When I opened Warby Parker's ads with the US selected, each ad page showed only when the ad was last shown, not when it started. So by eye you can't tell new from old.
The fix: filter on the first-shown date
If you have each ad's first-shown date, new means "first shown on or after the start of the week". With the data in a CSV (one row per ad, columns creativeId, domain, own, format, firstShown, lastShown), that is a few lines of Python:
import csv from collections import Counter, defaultdict week_start = "2026-10-18" shown, new = Counter(), defaultdict(Counter) for ad in csv.DictReader(open("ads_2026-10-24.csv")): if ad["own"] != "True": # skip other advertisers who matched the domain continue shown[ad["domain"]] += 1 if ad["firstShown"] >= week_start: new[ad["domain"]][ad["format"]] += 1 for domain in shown: print(domain, "shown:", shown[domain], "new:", sum(new[domain].values()), dict(new[domain])) Output on my 2026-10-24 file:
allbirds.com shown: 89 new: 0 {} gymshark.com shown: 93 new: 7 {'VIDEO': 6, 'IMAGE': 1} warbyparker.com shown: 2198 new: 21 {'TEXT': 21} hellofresh.com shown: 89 new: 0 {} glossier.com shown: 274 new: 10 {'VIDEO': 10} ISO dates (2026-10-18) compare correctly as plain strings, so no date parsing is needed.
I haven't checked what happens to the first-shown date when an advertiser pauses an ad and restarts it, so treat "new" as "first shown this week", not "never seen before".
A second way: compare two weekly lists
If you only have the creative IDs (the CR... part of an ad's URL), save the list each week and compare: in this week's list but not last week's is new, the reverse is stopped. It also tells you which ads disappeared, which first-shown dates can't. Match on the creative ID, not the ad's text or image; image URLs can change while the ad stays the same.
What to look at in the new ads
- Format. Glossier's 10 and Gymshark's 6 of 7 new ads were video, Warby Parker's 21 were all text. If a competitor's new ads switch format, they may be trying a new channel.
- Quiet weeks. Allbirds and HelloFresh started nothing in the week I checked. One quiet week means little; several in a row can mean they stopped testing.
- Other advertisers on the domain. A domain search also returns advertisers that are not the brand: 8 of the 2,206 ads for warbyparker.com, 5 for allbirds.com, 4 each for glossier.com and gymshark.com. They can be retailers, agencies or affiliates. If it's your own brand, you want to know which.
Getting the list without clicking
By hand this means opening each ad and copying its ID. Fine for 89 ads, not for 2,198.
Disclosure: I built a tool for this. Google Ads Transparency Scraper on Apify exports the ads for a list of domains or advertisers with creative IDs and first and last shown dates, as CSV, Excel or JSON. Set Only ads shown in the last N days to 7 and schedule it weekly on Apify.
It costs $0.002 per ad on the free plan at the time of writing, a little less on higher plans. A domain search also returns the few ads from other advertisers on that domain, and you pay for those too. When I ran Gymshark, Glossier and Allbirds, that was 469 ads, about $0.94. Warby Parker alone returned 2,206, about $4.41, so for a brand that size filter by format or cap the number of ads.
Want it done for you?
I also build this as a small fixed-price project: a weekly report like the one above, sent to your inbox or a Google Sheet. Here is a sample report. Send a short written brief to ashithprakas@gmail.com (no calls; I reply within 48 hours), or see what I build.
An AI assistant helped me draft this article. I checked every number against the raw data myself; it was fetched from Google's Ads Transparency Center on 2026-10-24.
