Creative fatigue detection · LinkedIn · Meta · Google Ads

Your best ad is already dying. You just can't see it yet.

Ad Fatigue Monitor scores every live creative against its own launch-week baseline, every night. When CTR decays and CPM climbs, you know exactly which ad is going. Then the Creative Refresh Engine rebuilds it — new media, new landing page, new copy, in your brand voice and in the language your buyers actually use with each other.

Nightly sync · No pixel to install · Connect in under 5 minutes
app.adfatiguemonitor.com/northwind-labs/dashboard
[ Demo loop — 1100×688 · MP4/WEBM/GIF ]
Northwind Labs · Demo account
Score every creativeCatch the decayRegenerate the assetShip the matching page
Demo account · Northwind Labs is fictional
The problem

Fatigue is invisible until it's expensive.

You find out from the invoice.

Creative decay shows up as a slow CPM climb. By the time it's obvious in a monthly report, you've already overpaid for weeks.

Averages hide it.

Campaign-level metrics smooth over the one creative that's dragging the set down. Fatigue happens per asset.

Knowing isn't fixing.

Flagging a dead ad doesn't help if the replacement takes a two-week creative cycle to produce.

How it works

Four steps. Runs itself after the first one.

01

Connect your ad accounts

OAuth into LinkedIn, Meta, and Google Ads. Read-only. No tag or pixel to install.

02

Nightly sync

A scheduled job pulls creative-level analytics every night and normalizes it into one table across all three platforms.

03

Score and classify

Every campaign gets a fatigue score and lands in one of four buckets. You see the whole account ranked worst-first.

04

Run the Creative Refresh Engine

Trigger it on any fatigued ad and get the whole replacement unit back: new media assets, a matching landing page, and the copy for both — built against your brand voice and style guide.

The score

One number. Published formula. No black box.

fatigue_score = 0.50 × min(current_ctr / baseline_ctr, 1)
              + 0.50 × min(baseline_cpm / current_cpm, 1)

Baseline is the average CTR and CPM over days 3–8 of the campaign's life — after the learning phase, before decay. Current is the trailing 7 days. The score is that campaign measured against its own best self, so a 0.4% CTR campaign and a 4% CTR campaign are judged on the same scale.

HEALTHY≥ 0.85

Leave it alone. Keep spending.

WATCH≥ 0.70

Decay has started. Get the next creative into production.

REFRESH≥ 0.55

Swap the creative now.

PAUSE< 0.55

Stop the spend. This ad is costing you money.

The Creative Refresh Engine

Detection tells you what's dying. The engine ships the replacement.

Most tools stop at the chart. When a creative crosses into REFRESH, the Creative Refresh Engine takes your brand voice and style guide as its constraints and produces the entire replacement unit — net-new media assets, the landing page they point to, and the copy on both — written in the tribal signals of the audience you're actually targeting.

It runs on your brand, not a template.

Input · Brand

Your style guide is the guardrail.

Upload your palette, type scale, logo rules, imagery direction, and voice guidelines once. Every asset the engine produces is generated inside those constraints, so output is on-brand by construction — not corrected into brand afterward.

Input · Audience

Your buyers have a dialect.

The engine profiles the tribal signals of the target segment: the vocabulary they use with each other, the references that read as insider, the proof formats they trust, the visual codes that signal “this was built by someone who does my job.” A creative that converts RevOps leaders does not sound like one that converts clinical directors.

Input · Context

The dead ad is the brief.

The engine reads what the fatigued creative was doing — the offer, the hook, the placement, and how its CTR and CPM actually moved — so the replacement attacks the same job with a different angle instead of restating the thing that stopped working.

What comes out.

01
[ Output preview — static placeholder ]

Net-new media assets

Static, motion, and multi-size variants cut to each platform's real specs for LinkedIn, Meta, and Google. Not one image rescaled four ways.

02
[ Output preview — static placeholder ]

A matching landing page

Layout, hierarchy, and design generated to carry the ad's promise through to the page, so the click doesn't land on a message mismatch.

03
[ Output preview — static placeholder ]

Copy for both

Hooks, headlines, body, and CTA for the ad, plus the page's headline, sections, and proof — all in one voice, tuned to the same audience signals.

04
[ Output preview — static placeholder ]

Variants, ready to test

Multiple distinct angles per refresh, not minor rewordings, so the next round of data tells you something.

PAUSE
[ Original creative — placeholder ]
Original · Day 34 · Score 0.41
HEALTHY
[ Regenerated unit — placeholder ]
Refresh · Day 1 · Brand-locked
Ad creative and landing page regenerated together. Illustrative example.

You review it, edit it, and ship it. The engine does the production, not the judgment.

See the engine on your own brand
Works with
[LOGO] LinkedIn Ads
[LOGO] Meta Ads
[LOGO] Google Ads
Pricing
Base
$1,000/mo

Ad Fatigue Monitor — detection and scoring across all three platforms.

  • LinkedIn, Meta, and Google Ads connected
  • Nightly fatigue scoring on every creative
  • Unlimited campaigns and creatives monitored
  • Slack and email alerts on status changes
  • Direct support from the 3b11 team
  • Creative Refresh Engine not included
Book a demo

Creative Refresh Engine usage is scaled to your account and demand. If your refresh volume exceeds the included bundle, we’ll align the plan with your actual usage.

FAQ

Questions worth answering.

How is the baseline chosen?

The baseline is the average CTR and CPM over days 3–8 of a campaign's life — after the platform's learning phase has settled, before decay has set in. Each campaign is scored against its own baseline, never against an account or industry average.

Do I need to install a pixel or tag?

No. Ad Fatigue Monitor reads creative-level analytics directly from the ad platforms over read-only API access. Nothing is added to your site.

How long before I see my first score?

Connection takes under five minutes, and historical data is pulled on the first sync. A campaign needs to be at least eight days old for a baseline to exist; anything younger is shown as still baselining.

Which ad platforms are supported?

LinkedIn Ads, Meta Ads, and Google Ads. All three are normalized into one creative-level table so scores are comparable across platforms.

How does the Creative Refresh Engine learn my brand voice and style guide?

You load your palette, type scale, logo rules, imagery direction, and written voice guidelines once. Those become hard constraints on generation, so the engine produces inside your system instead of producing generically and being corrected afterward.

What are "tribal signals," and how does the engine determine them for my audience?

Tribal signals are the vocabulary, references, proof formats, and visual codes a specific buying group uses with each other. The engine builds a signal profile per segment from the targeting definition, the creative history for that segment, and how those creatives actually performed.

Do I get the landing page as editable files, or just a design?

You get the design plus the underlying copy and layout structure in an editable form. You review, edit, and ship — the engine does production, not judgment.

Is my brand data or generated creative used to train anything or shared across accounts?

No. Your brand assets, audience profiles, and generated creative stay scoped to your account and are not used to train shared models or surfaced to any other customer.

Stop paying for ads that stopped working.

Find the fatigue, then replace it with something built for the people you're actually trying to reach.

Book a demo
Read-only ad account access · Disconnect anytime