Most advice about competitor ads is about Meta. Google's Ads Transparency Center is the free source for Google, and one thing it shows quickly is what format a brand actually leans on. I counted five US DTC brands' ads that were shown between 18 and 24 October 2026.

Brand Ads shown Text Image Video Video share
Warby Parker 2,206 2,047 88 71 3.2%
Glossier 278 160 54 64 23.0%
Gymshark 97 32 24 41 42.3%
Allbirds 94 48 39 7 7.4%
HelloFresh 89 70 18 1 1.1%

What stands out

  • Warby Parker is a search-text company in this data: more than 2,000 of its ads are text. Its new ads that week were almost all text too (22 of 23).
  • Gymshark and Glossier lean on video, and so do their new ads: 6 of Gymshark's 7 new ads and 10 of Glossier's 13 were video.
  • Volume is not strategy. Allbirds and HelloFresh show under 100 ads each, and none were new that week.

Caveats

One week, five brands, one country, and a snapshot from 24 October, so this is a method demo, not a trend. "Shown this week" counts ads shown at any point in the window, not ads launched in it. The counts include every ad shown for the brand's domain, which includes 4 to 8 ads per brand placed by other advertisers (HelloFresh 0); keeping only the brand's own account changes the totals by under 1% for each brand (Warby Parker 2,198, Glossier 274, Gymshark 93, Allbirds 89). I did not check whether a paused and restarted ad changes its first-shown date.

Do it yourself

The Transparency Center lets you search a domain, but counting formats by hand across hundreds of ads is slow. With the data exported as CSV (one row per ad), the count is a few lines:

import csv import sys from collections import Counter, defaultdict mix = defaultdict(Counter) for ad in csv.DictReader(open(sys.argv[1])): mix[ad["searchTerm"]][ad["format"]] += 1 for domain, formats in mix.items(): total = sum(formats.values()) print(f"{domain}: {total} ads, video share {formats['VIDEO'] / total:.1%}, {dict(formats)}") 

Save a dataset export as ads.csv (each row has searchTerm and format) and run python3 format_mix.py ads.csv. On my 24 October snapshot it prints:

allbirds.com: 94 ads, video share 7.4%, {'IMAGE': 39, 'TEXT': 48, 'VIDEO': 7} gymshark.com: 97 ads, video share 42.3%, {'VIDEO': 41, 'TEXT': 32, 'IMAGE': 24} warbyparker.com: 2206 ads, video share 3.2%, {'IMAGE': 88, 'VIDEO': 71, 'TEXT': 2047} hellofresh.com: 89 ads, video share 1.1%, {'IMAGE': 18, 'TEXT': 70, 'VIDEO': 1} glossier.com: 278 ads, video share 23.0%, {'VIDEO': 64, 'TEXT': 160, 'IMAGE': 54} 

What I built

I built a scraper for this (Google Ads Transparency Scraper). It costs $0.002 per ad, and has an "only ads shown in the last N days" input. Which brands would you want counted next? Tell me in the comments.

AI assistance: I used Claude to help draft and check the numbers; the data and the Actor are mine.