DEV Community

Cover image for A campaign that pauses itself before you check your phone
Samandar Xusenov
Samandar Xusenov

Posted on Edited on

A campaign that pauses itself before you check your phone

Every performance marketer has woken up to a campaign that spent all night at triple the target cost per lead. The dashboard was right there. Nobody was looking at it at 3am. Here is what we built after the third time that happened, and the two design decisions that made it trustworthy enough to actually leave switched on.

The failure mode nobody budgets for

Cost per lead does not drift gradually most of the time. It steps — a competitor enters the auction, an audience saturates, a creative fatigues — and the step can happen in an hour. A human checking dashboards once a day catches it a day late, which in ad spend terms is not a delay, it is a bill.

The obvious fix is an alert. The better fix is an action, because an alert at 3am gets read at 9am, and the six hours in between are exactly the six hours that mattered.

What "pause the campaign" actually requires

The mechanism: on an hourly sweep, check every active campaign that spent today, compare its cost per lead against a target, and pause the ones that broke it. Two details decide whether marketers actually leave it running.

A minimum-leads gate. One unlucky expensive lead in the first hour of a new campaign should not kill it. The rule only arms once enough leads exist for the cost-per-lead number to mean something. Without this gate, the feature pauses good campaigns on noise, and the first false pause is usually the last time anyone trusts it.

A separate zero-lead spend cap. A campaign that spends money and produces zero leads has an undefined cost per lead — you cannot compare "undefined" against a target, so the rule above can never fire on it. That is precisely the campaign most worth stopping. So a second, independent check exists purely for spend with no leads at all, because the CPL rule structurally cannot catch it.

Miss either of these and the feature is either too trigger-happy to trust or blind to the worst case it exists for.

Scope it per Business Manager, not globally

A target CPL that makes sense for one product line is nonsense for another running in the same ad account. Scoping the rule per Business Manager (or per campaign group) lets the target mean something specific instead of something average.

Tell the human what happened and why

A pause with no explanation reads as a bug. Ours sends a message naming the campaign and the number that triggered it — "CPL hit $X against a target of $Y" or "spent $X with zero leads." That single line is the difference between a marketer trusting the automation and disabling it the first time it surprises them.

What this is not

It is not bid optimisation, and it does not try to fix the campaign — only to stop it from bleeding further while a human decides what changed. Auto-resume is deliberately not part of it: a human should look at why before spend resumes.

The part that made us trust it enough to ship

We run it same-day only — it evaluates today's spend against today's leads, not a rolling average. That is a real limitation, and stating it plainly turned out to matter more than hiding it. A guard rail that oversells its own reliability gets disabled the first time it is wrong in a way nobody warned you about.


Targenix today

This guard rail runs in production as CPL Guard inside Targenix, one AI platform that takes a business from ad click to sale:

  • Ad and profit analytics: spend, cost per lead, revenue, profit and ROAS per campaign.
  • Telegram control: every lead in Telegram, loss alerts with a confirmed Pause button, and a daily profit report.
  • A 24/7 AI sales agent, an automation canvas, a landing page builder and 100+ apps for the leads.
  • All of it free: no subscription, no card.

Details: ad and profit analytics and managing leads and campaigns from Telegram.

Top comments (0)