<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Fabian</title>
    <description>The latest articles on DEV Community by Fabian (@fade97).</description>
    <link>https://dev.to/fade97</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4100671%2Fc8d8a269-b56c-47aa-901c-ec8400f56796.png</url>
      <title>DEV Community: Fabian</title>
      <link>https://dev.to/fade97</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fade97"/>
    <language>en</language>
    <item>
      <title>Google ads from 300 DTC brands: most of them run way longer than I thought</title>
      <dc:creator>Fabian</dc:creator>
      <pubDate>Sat, 29 Aug 2026 19:11:50 +0000</pubDate>
      <link>https://dev.to/fade97/google-ads-from-300-dtc-brands-most-of-them-run-way-longer-than-i-thought-386i</link>
      <guid>https://dev.to/fade97/google-ads-from-300-dtc-brands-most-of-them-run-way-longer-than-i-thought-386i</guid>
      <description>&lt;p&gt;I built a scraper for the Google Ads Transparency Center a couple of weeks ago (that's the site where Google lists every ad an advertiser runs, with first and last shown dates). To test it properly I needed a decent sized list, so I took around 300 DTC / ecommerce brands, ran it, and ended up with 3,994 ads. Then I got curious and started looking at the dates instead of just checking whether the scraper worked.&lt;/p&gt;

&lt;p&gt;The number I keep coming back to is the median: 227 days. That's per ad, not per brand. So the typical ad in this set has been shown for over seven months. 36% are older than a year, 16% older than two years. Only 11% are under a month old.&lt;/p&gt;

&lt;p&gt;That is not what I would have guessed. Everything I read about DTC paid media is about creative testing, rotating weekly, killing losers fast etc. Maybe that's true on Meta and it just doesn't show up in Google's data, or maybe the testing happens in a small share of ads while the bulk keeps running. I don't know. But the "bulk keeps running" part is definitely in the data.&lt;/p&gt;

&lt;p&gt;Per brand, median days shown (only brands where I have 30+ ads):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adidas 1319&lt;/li&gt;
&lt;li&gt;Bombas 1219&lt;/li&gt;
&lt;li&gt;Booking.com 988&lt;/li&gt;
&lt;li&gt;Warby Parker 940&lt;/li&gt;
&lt;li&gt;Canva 888&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and the short end:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Calm 28&lt;/li&gt;
&lt;li&gt;AG1 54&lt;/li&gt;
&lt;li&gt;Babbel 55&lt;/li&gt;
&lt;li&gt;GoPro 55&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Adidas at 1319 days is 3.6 years. Some of those are probably brand search ads nobody has touched since 2022, and that's fine, they work.&lt;/p&gt;

&lt;p&gt;Format: 74% text, 15% image, 11% video. I had assumed video would be bigger. It's mostly Search text ads.&lt;/p&gt;

&lt;p&gt;Some caveats, because there are a few. Google caps how many ads it lists per advertiser, so for the big brands I don't have everything. "Still shown" says nothing about spend, an ad can be live with a tiny budget. "First shown" is when Google first saw it, so for really old ads the number is truncated at whenever the transparency center started tracking. And the brand list is just brands I picked, so US-centric consumer stuff, nothing scientific about the sample.&lt;/p&gt;

&lt;p&gt;Still, if you do competitor research the practical bit is easy: sort by days shown, descending. Whatever a competitor has been running for two years is what works for them. Their newest ad is a test.&lt;/p&gt;

&lt;p&gt;You can look up single advertisers on adstransparency.google.com by hand, the annoying part is it's paginated and you can't export anything. My scraper is on Apify if you want to do it for a list: &lt;a href="https://apify.com/pulsedata/google-ads-transparency-scraper" rel="noopener noreferrer"&gt;https://apify.com/pulsedata/google-ads-transparency-scraper&lt;/a&gt;. It calls the same JSON-RPC endpoints the page uses, nothing clever, the hard part was figuring out the field numbers.&lt;/p&gt;

&lt;p&gt;I put the full dataset (CSV + JSON, all 3,994 ads with dates, format, regions, preview URLs) and a short PDF with charts on Gumroad for $9: &lt;a href="https://pulsdata.gumroad.com/l/google-ads-dtc-2026/LAUNCH" rel="noopener noreferrer"&gt;https://pulsdata.gumroad.com/l/google-ads-dtc-2026/LAUNCH&lt;/a&gt;. If you just want the headline numbers they're all in this post.&lt;/p&gt;

</description>
      <category>marketing</category>
      <category>data</category>
      <category>webscraping</category>
      <category>ecommerce</category>
    </item>
  </channel>
</rss>
