Ad Creative Velocity: The Competitor Metric Nobody Tracks
How many new ads a competitor ships weekly predicts their next quarter better than any press release. Measure ad creative velocity with first-seen dates.

Sections
Press releases tell you what a competitor wants the market to believe. Their ad account tells you what they actually believe. Ad creative velocity, the number of net-new ad creatives a brand ships per week, is the closest thing competitive research has to a leading indicator — and almost nobody tracks it.
TL;DR: Ad creative velocity counts how many new ads a competitor launches per week, read from first-seen dates in public ad libraries. A rising trend precedes scaling, product launches, and agency changes by weeks or months. Five to ten competitors can be tracked with one script and an hour a week. The trend against a brand's own baseline matters far more than any absolute number.
Spend estimates get most of the attention in competitor ad research. They shouldn't. Spend is modeled, lagging, and noisy. Velocity is observable the day it happens: a new creative either appeared in the ad library or it didn't. This guide defines the metric, explains why it leads performance, shows how to measure it from first-seen dates, gives honest per-vertical ranges, decodes velocity spikes, and walks through a tracking setup that runs every Monday without you.
What Ad Creative Velocity Is (and What It Isn't)
Ad creative velocity is the count of distinct new ad creatives an advertiser launches inside a fixed window, usually one week. Simple to define, easy to get wrong. Three clarifications keep the metric honest.
Concepts and variants are different launches. A brand that ships one video concept in eight aspect ratios and three headline swaps launched 24 ads and one idea. Raw velocity counts every new ad and is trivial to measure. Concept velocity counts genuinely new ideas and requires deduping near-identical creatives. Track raw velocity first, since that number is immediately available, and graduate to concept velocity once your pipeline can cluster variants.
New means never seen before. An ad paused in March and reactivated in May is not a new ad. The anchor is the first-seen date: the day a creative appeared in an ad library for the first time. Reactivations, budget changes, and placement expansions don't move it.
It measures output, not exposure. Velocity deliberately ignores impressions and spend. It counts launches, which makes it a read on the organization behind the account: how fast the team produces, how much creative testing budget it has, how many creative angles it is willing to explore in a month. Exposure metrics tell you what the auction did. Velocity tells you what the team did.
Software engineering had this argument a decade ago and settled it. Deployment frequency turned out to be one of the strongest predictors of organizational performance, and weekly creative output is the paid-social equivalent. A team that ships constantly runs a different operating system from a team that ships quarterly, and the gap reaches the scoreboard with a lag.
Why Velocity Leads Performance (and Beats the Press Release)
The case for ad creative velocity as a leading indicator rests on four observations.
Creative is the lever that's left. Platform automation has absorbed most of targeting and bidding. What remains under an advertiser's direct control is the creative itself, which is why creative volume and quality now separate accounts that scale from accounts that stall. A competitor increasing creative output is pressing the one lever that still moves.
Winner discovery is a volume game. Most new ads fail. The teams that find winning creatives faster are, overwhelmingly, the teams that test more of them — the math behind programmatic winner detection is blunt about this. If a competitor doubles weekly launches, their expected count of new winners roughly doubles too, even at a constant hit rate. Hit rates usually improve with reps anyway, because every test sharpens the team's read on hooks and offers.
Production spend is honest spend. Forty new ads a week implies editors, a UGC pipeline, a testing budget, and a strategist approving briefs. Nobody funds that machinery casually. A press release costs nothing to publish, while sustained creative production costs real money every week, which makes it the more credible signal of intent. When the two disagree (quiet press, loud ad account), believe the account.
The metric moves first. Teams ramp production before results arrive, by definition. The new hires start, the velocity climbs, the winners emerge, the spend scales, and a quarter later the results are public. Watching velocity puts you at the start of that chain. Watching an ad spend estimate puts you in the middle. Waiting for earnings calls and press releases puts you at the end.
Here is the concrete version. A DTC supplement brand you compete with goes from four new ads a week to eighteen, holds that pace for six weeks, and the new ads cluster around a single ingredient story. No announcement anywhere. Two months later they own every auction you bid in, and the "sudden" CPM pressure you feel was visible in public data nine weeks earlier. That's not a hypothetical; it's the standard shape of a scale-up viewed from outside.
The same logic travels well beyond head-to-head competition. Agencies read a prospect's own velocity to diagnose production bottlenecks before the first call. Category analysts use creative output as a proxy for go-to-market aggression when funding announcements say nothing. The metric generalizes because it captures behavior rather than messaging, and behavior is far harder to fake week after week.
Measuring Creative Velocity With First-Seen Dates
Every major platform now operates a public ad library: Meta's Ad Library, the Google Ads Transparency Center, the LinkedIn Ad Library, and TikTok's Commercial Content Library. Each records when an ad started running or was first served. That timestamp, the first-seen date, is the raw material of velocity tracking.
The manual method. Open the library, search the brand, filter to ads launched in the last seven days, count them, log the number in a spreadsheet, repeat next week. This costs nothing and works for two or three competitors on one platform. It breaks beyond that, and it has a flaw you cannot patch retroactively: most libraries emphasize active ads, so a creative that launched and died inside a week can vanish before your next check. Velocity history you didn't record is history you often can't reconstruct.
The programmatic method. Meta's free Ad Library API is the original here and deserves the credit — it is the reason public ad transparency data exists at all. It is also scoped for transparency rather than research: full coverage is limited to social-issue and political ads plus ads served in the EU, access requires identity verification and app review, and it covers Meta only. The limitations are well documented. Paid ad intelligence APIs exist to fill exactly this gap. AdLibrary's API returns a first_seen Unix timestamp on every ad across eleven platforms, commercial ads included, behind a single key, and the same data drives the ad timeline view if you'd rather read it visually before automating anything.
Whichever method you choose, four hygiene rules keep the numbers comparable:
- Fix the window. Monday through Sunday, every week, same time of day. Velocity is a trend metric, and inconsistent windows manufacture fake spikes.
- Dedupe on the ad key. Count distinct creative identifiers, not rows. Carousel cards and placement copies will otherwise inflate the count.
- Record zeros. A brand that launched nothing this week is a data point, sometimes the loudest one. Sustained silence often precedes a repositioning or a budget cut.
- Split by platform. Brands stagger rollouts, and a Meta-only view misses the TikTok ramp. Multi-platform coverage is the difference between watching a brand and watching one of its channels.
A Velocity Tracker in 40 Lines of Python
Here is a working tracker against the AdLibrary API. It pulls every ad a competitor launched in the last 90 days, buckets launches by ISO week, and prints the weekly series. You need a Business-plan API key, which starts with adl_.
import requests
from datetime import datetime, timezone
from collections import Counter
API_KEY = "adl_your_api_key"
COMPETITORS = {
"Acme Running": "123456789", # Meta page id
"Peak Fitness": "987654321",
}
def weekly_velocity(page_id: str, days: int = 90) -> Counter:
weeks: Counter = Counter()
cursor = None
while True:
body = {
"metaPageId": page_id,
"sortField": "-first_seen",
"daysBack": days,
}
if cursor:
body["cursor"] = cursor
r = requests.post(
"https://adlibrary.com/api/search",
headers={"Authorization": f"Bearer {API_KEY}"},
json=body,
timeout=30,
)
r.raise_for_status()
data = r.json()
for ad in data["results"]:
ts = datetime.fromtimestamp(ad["first_seen"], tz=timezone.utc)
year, week, _ = ts.isocalendar()
weeks[f"{year}-W{week:02d}"] += 1
cursor = data.get("nextCursor")
if not data["results"] or not cursor:
break
return weeks
for name, page_id in COMPETITORS.items():
series = weekly_velocity(page_id)
print(name)
for week in sorted(series):
print(f" {week}: {series[week]} new ads")
Three operational notes. Each search request costs one credit and returns a page of results, so a 90-day backfill on a mid-size advertiser runs a few credits per competitor, once; after that, a weekly pull with daysBack: 7 is one credit per competitor per week. The rate limit is 10 requests per minute, so add a short sleep between pages and honor the Retry-After header if you see a 429. And first_seen is the field doing all the work — it's the launch date you're bucketing on, so store the raw timestamps in case you ever want to re-window the series. More patterns like this live in the Python ad library API cookbook.

Creative Velocity Benchmarks by Vertical (Honest Ranges)
Benchmark questions deserve a disclaimer before a table. These ranges are directional, assembled from watching ad libraries across categories rather than from any controlled census. Variance inside a vertical dwarfs variance between verticals, brand size dominates everything, and the benchmark that matters most is the competitor's own trailing baseline. With that said, ranges beat guessing:
| Vertical | Typical mid-size advertiser | Aggressive top of market |
|---|---|---|
| Mobile games & apps | 10–30 new ads/week | 50–150+ |
| DTC / ecommerce | 3–10 | 25–60+ |
| Beauty & fashion (at scale) | 5–15 | 40+ |
| Finance & insurance | 1–5 | 10–25 |
| B2B SaaS | 1–4 | 8–15 |
Two honest observations about this table. First, the spread is the point. A B2B SaaS shipping six new ads a week is behaving like a category leader, while a gaming studio shipping six is idling — read every number against vertical norms, the same way you'd read performance benchmarks. Second, levels say less than changes. A brand that moves from two ads a week to eight has quadrupled output regardless of vertical, and that ratio, current week against the trailing eight-week median, is the statistic worth alerting on. Used this way, ad creative velocity becomes an instrument for trend identification instead of a vanity comparison against a global average that doesn't exist.
Computing the baseline is deliberately boring. Take the trailing eight weeks of counts, use the median rather than the mean so a single launch week doesn't distort the reference point, and flag anything above twice that median as a spike worth a closer look. Eight weeks is long enough to absorb ordinary lumpiness and short enough to adapt when a brand permanently changes gear. One refinement earns its keep: hold a separate baseline per platform, because a brand can keep Meta velocity flat while quietly tripling its TikTok output.
Velocity Spikes: Five Strategy Tells
A stable baseline makes deviations readable. Five spike patterns recur, each with a confirmation step so you don't over-interpret noise.
1. The product launch. Velocity jumps and the new ads cluster around landing URLs you haven't seen before. Confirm by checking destination domains and paths in the ad data. This is the highest-value tell, because you're watching the launch in its testing phase, often weeks ahead of the press cycle. Detecting competitor campaign launches early is a discipline of its own.
2. The new agency (or in-housing). Velocity jumps and the style breaks: new formats, a different editing rhythm, unfamiliar hook structures, a tonal reset. Production fingerprints change when the producer changes. A spike plus a style break, with the same products and landing pages underneath, usually means new hands on the account.
3. Scaling a winner. Velocity jumps but concept velocity doesn't. The new ads are variants of one creative idea — resized, re-hooked, re-captioned. The brand found something that converts and is flooding it. Study this one closely, because scaling a winning ad without killing it is exactly what they're attempting, and their variant choices expose their hypothesis.
4. The market entry. Velocity jumps only in a new geography or language, and the creative is often translated rather than new. If you operate in that market, you just received the earliest warning you will ever get.
5. The seasonal ramp. Q4 prep, back-to-school, category peaks. The least surprising spike, but it calibrates timing: a brand ramping creative in September is planning an October push, and its prep cadence tells you how seriously it takes the season.
The inverse signal deserves equal attention. A velocity collapse, say eight ads a week dropping to one for a month, precedes budget cuts, agency transitions, and pivots. Silence in the ad account is rarely strategy. It's usually disruption, and cross-platform tracking tells you whether the quiet is one channel rotating or the whole program stopping.
The Velocity vs Quality Tension
Velocity is a leading indicator, never a guarantee. A team can ship thirty mediocre ads a week and buy nothing with it except editor invoices. The failure mode is real: ad fatigue pushes every account toward constant refresh, and a team that responds with volume but no learning is paying for motion rather than progress. Refresh decisions should follow performance signals, fatigue has cheaper fixes than brute-force production, and a sane creative refresh cadence beats a frantic one. Production economics set their own ceiling too. When video production costs are eating the budget, the fix is usually testing velocity on cheaper formats, not more spend on expensive ones.
So pair velocity with a quality read: survival rate, the share of a competitor's new ads still running 30 days after first seen. Long runtime is the most reliable public signal that a creative works, because advertisers kill duds fast and keep what converts. Together the two metrics form a 2x2 worth sketching for your category:
- High velocity, high survival: a creative machine. Study their angles weekly. This is the competitor that will set your category's CPMs next year.
- High velocity, low survival: thrash. They're spending on production without learning from it. Watch, don't panic.
- Low velocity, high survival: a few proven winners running for months. Stable and probably efficient, but vulnerable to a faster mover.
- Low velocity, low survival: a program in trouble, or one that doesn't matter yet.
Velocity tells you how often a competitor shoots. Survival tells you how often they hit. You want both numbers on the same chart.
Build the Weekly Ad Creative Velocity Tracking System
The whole setup takes an afternoon, and the weekly cost afterward is one cron run.
Step 1 — pick the watchlist. Five to ten brands: direct competitors plus one or two aspirational accounts whose creative operation you want to learn from. More than ten dilutes attention before it adds insight.
Step 2 — resolve advertiser ids. Brand names are ambiguous; platform ids aren't. The lookup is free:
curl -G "https://adlibrary.com/api/advertisers/search" \
-H "Authorization: Bearer adl_your_api_key" \
--data-urlencode "q=gymshark" \
--data-urlencode "country=US"
One response carries the Meta page id, Google advertiser id, and LinkedIn company id together. Big brands usually run several pages per platform, so finding the right advertiser ids is a small art in itself.
For true multi-platform velocity, save each competitor once and pull everything in one request. The API's saved-advertiser endpoints store a brand's Meta, Google, and LinkedIn ids together, and a single curate call then fans out to all of them, returning the brand's recent ads deduped across accounts for one credit per session. Brands that stagger launches across channels stop being three partial numbers and become one weekly figure.
Step 3 — schedule the pull. Cron plus the Python script above is enough. If you'd rather stay visual, wire the same calls into n8n monitoring workflows or follow the end-to-end monitoring guide. Monday at 06:00, one search per competitor, append the counts to storage.
Step 4 — store the history. A Google Sheets dashboard via Apps Script serves one team fine. A proper competitor ad database pays off once you want survival rates and concept clustering layered on top of weekly counts.
Step 5 — alert on deviation, not on data. Nobody reads a weekly table forever. Fire a Slack alert when a brand's weekly count exceeds twice its trailing eight-week median, and stay silent otherwise. Real deviations are rare enough to stay interesting.
Step 6 — close the loop monthly. Once a month, compress the series into one page: who is accelerating, who went quiet, which spike matched which strategy tell. That page slots straight into a creative strategist's weekly workflow as the "what changed in the market" section.
The credit math stays small. Eight competitors at one search a week is roughly 35 credits a month. Add a one-time 90-day backfill and occasional multi-platform pulls and you remain far inside the Business plan's 1,000+ monthly credits at €329/mo — the tier that includes API access in the first place. If you're fitting the line item into a broader program, the ad budget planner helps place it.
Watch Your Own Velocity Too
The tracker gets more uncomfortable, and more useful, when you add one more row for your own account. If your category's leaders ship fifteen new ads a week and you ship three, you've located your constraint, and it isn't creative strategy — it's production throughput. Velocity comparison turns vague competitive anxiety into a specific operational question: what would doubling weekly output cost without halving quality? That question has concrete answers, from cheaper formats to modular templates to AI-assisted variants, and the creative intelligence you collect from competitors shows which answers your market has already validated.
Frequently Asked Questions
What is ad creative velocity?
Ad creative velocity is the number of distinct new ad creatives an advertiser launches in a fixed time window, usually one week. It's measured from first-seen dates in public ad libraries and works as a leading indicator of a competitor's testing budget, production capacity, and strategic intent.
How do I measure a competitor's creative velocity?
Count the ads whose first-seen date falls inside each week. Manually, check the platform's ad library weekly and log new launches. Programmatically, pull ads through an ad library API, bucket the first_seen timestamps by ISO week, and store the series. A consistent window and deduping by ad key matter more than the tooling.
What is a good creative velocity benchmark?
Ranges differ by vertical: mobile gaming often runs 10–30+ new ads weekly, DTC ecommerce 3–10, B2B SaaS 1–4, with top-of-market brands several times higher. Absolute numbers matter less than the trend against a brand's own trailing baseline — a sustained 3–4x jump is significant in any vertical.
Why does a sudden velocity spike matter?
Spikes precede visible strategy. Clustered new landing pages signal a product launch, a style break signals a new agency or in-housing, a flood of variants signals a winner being scaled, and a geo-isolated spike signals market entry. A velocity collapse is equally informative and often precedes budget cuts or pivots.
Does higher creative velocity always mean better performance?
No. Velocity speeds up winner discovery but doesn't guarantee it. Pair it with survival rate, the share of new ads still running after 30 days. High velocity with high survival marks a genuinely dangerous competitor, while high velocity with low survival is expensive thrash.
The Metric Is Sitting in Public Data
Ad creative velocity is the rare competitive metric that is public, quantitative, and leading all at once. Your competitors' launch counts sit in ad libraries right now, free to read. The scarce ingredient is the discipline to record them every week and act on the trend. Start with a spreadsheet and three brands if you want proof before plumbing. Once the weekly count becomes a habit, automate it: API access ships first-seen data for eleven platforms behind one key, and the Business plan at €329/mo with 1,000+ monthly credits covers a ten-competitor tracker dozens of times over. Next quarter's surprises are launching this week. Count them.
Related Articles

Detect Competitor Campaign Launches Within Days, Not Months
By the time a competitor's launch shows in your metrics, it has run for weeks. Use first-seen dates, daily diffs, and spike alerts to catch it in days.

How to Automate Competitor Ad Monitoring End to End
Build Slack competitor ad alerts in 30 minutes: an incoming webhook, a Node poll script with first_seen filtering, dedup on ad_key, and cron scheduling.

How to Detect Winning Ads Programmatically (Winner Scoring Explained)
Detect winning ads programmatically: why ad longevity beats vibes, how winner tiers and composite scores work, and a scan-to-brief workflow with real code.

Build a Competitor Ad Database: Schema, Pipeline, and Queries
Build a competitor ad database with a four-table schema, an API ingestion pipeline with dedup, and eight SQL queries for velocity, formats, and hooks.

Python Ad Library API Scripts: A Working Cookbook
Five copy-paste Python ad library API scripts: resolve brands, search into pandas, track watchlists, scan winners, and batch-enrich ads with caching.

Meta Ad Creative Refresh Rate: When to Refresh, What to Replace, and How to Build a System
Exact thresholds for Meta ad creative refresh rate by format: frequency limits, CTR decay triggers, CPM signals, and a cadence system that stops reactive refreshes.

Ad Creative Fatigue Solutions: The Diagnostic and Rotation Framework for 2026
Practical ad creative fatigue solutions for 2026: diagnose the 5 fatigue signals, build a rotation system, use competitive research as early warning, and fix CPA drift before it compounds.