Every agency that runs long enough encounters it: a campaign that is not delivering, and a client who wants answers. At Choco Media, we have developed a structured way to diagnose a marketing campaign underperforming — not because we want a flowchart to hide behind, but because a clear process is the only thing that prevents emotion, blame, and guesswork from taking over a difficult conversation. This post walks through exactly what we do, what we say, and how we decide whether to iterate or stop.
This is for anyone who manages campaigns for clients, runs paid media or content in-house, or simply wants a more principled way to think about underperformance. The framework applies to paid social, search, content, and email — the diagnostic logic is the same even if the levers differ.
By the end you will have a repeatable decision process: what to check first, how to frame the conversation with your client or team, and the specific criteria we use to recommend stopping versus iterating.
Step one: define what “not working” actually means
Before diagnosing anything, we need to agree on what failure looks like. This sounds obvious, but it is the most common source of confusion in these conversations. A client saying “the campaign is not working” might mean:
- Cost per acquisition is above their acceptable threshold
- Volume is lower than expected, even if the unit economics are fine
- The campaign is performing but the business still is not growing (a different problem entirely)
- One stakeholder is unhappy and the others are not
- The client expected results in two weeks and it has been three
Our first step is always to pull the agreed success metrics from the brief or onboarding document and put the actual numbers next to them. If there was no agreed metric — which happens more often than it should — we establish one before doing anything else. You cannot diagnose underperformance against a standard that does not exist.
The baseline question
We ask: compared to what? Is performance below the client’s stated target, below industry benchmarks, or below a previous period? Each of those has a different implication. A campaign performing below a client’s target might still be the best result their category allows. A campaign performing below a previous period might be a seasonal issue, not a campaign issue.
The seven areas we check before changing anything
Once we have a clear definition of underperformance, we run through a structured checklist before touching any settings. The goal is to separate campaign problems from external problems — budget cuts, seasonality, attribution changes, product issues — that would make any campaign look bad.
- Attribution and tracking: Is the conversion event firing correctly? We have caught “underperforming” campaigns where the pixel stopped firing after a site update.
- Budget and spend pacing: Is the full budget actually being spent? Underpacing at 60% of budget will produce 60% of expected results.
- Audience size and frequency: On paid social, is the audience exhausted? High frequency with declining CTR is a creative problem, not a targeting problem.
- Landing page performance: Has anything changed on the destination page? A new CTA, a slower load time, or a form change can break conversion rates overnight.
- Competitive context: Has a competitor increased spend? Auction pressure can raise CPCs significantly with no change in our own campaign.
- Seasonality and external events: Is this a slower period historically? Did a news event shift audience attention?
- Product and offer: Has the thing being advertised changed? Price increases, stock issues, or a new competitor product can undermine a campaign that was working fine.
In client work we have found that roughly 40% of “campaign not working” situations trace back to something in this list — not the campaign itself. That number matters because it shapes how you open the client conversation.
How we structure the client conversation
The instinct when a campaign underperforms is to apologise, propose changes immediately, and move on. We think this is a mistake — not because accountability is wrong, but because it frames the conversation as reactive rather than diagnostic. Clients do not need an immediate solution; they need to feel that someone is thinking clearly on their behalf.
Our standard approach is a brief written summary sent before any call. It covers three things:
- What we observed (numbers against target)
- What we have ruled out (the checklist above, condensed)
- What we believe the cause is, and our confidence level
“We know this is not the result you were expecting. Here is what the data is telling us, here is what we have eliminated, and here is our honest read on what is happening and why. The conversation is about what to do next — not about assigning blame.”
That framing — ruling out before diagnosing — gives clients confidence that you are not guessing. It also protects the agency: if you propose changes before understanding the cause, you own the outcome of those changes unconditionally.
When we recommend iterating
Iteration is appropriate when the structural elements of the campaign are sound but execution variables need adjustment. Specifically, we recommend iterating when:
- The campaign has not yet reached statistical significance — too little data to draw conclusions
- We have identified a specific variable we believe is the problem (creative, audience, bid strategy) and have a testable hypothesis
- The underperformance is modest — within 30% of target — and the trend line is improving
- External factors (seasonality, tracking issues, landing page) explain the gap and are fixable
- The client has sufficient budget to run a proper test of the proposed change
When we do recommend iterating, we follow the discipline we outlined in our post on how to structure a paid media test budget — isolating one variable at a time so the results are interpretable. Changing creative, audience, and bid strategy simultaneously tells you nothing useful.
The iteration brief
Before making any change, we write a one-paragraph brief: what we are changing, why we believe it will improve performance, what result would confirm the hypothesis, and over what time window we will evaluate it. This is not bureaucracy — it is the only thing that prevents “iterating” from becoming an indefinite series of tweaks with no learning.
When we recommend stopping
This is the harder conversation. Stopping a campaign means acknowledging that something was wrong at a structural level — the offer, the audience, the channel, or the timing — and that iteration will not fix it. We recommend stopping when:
- We have run multiple clean tests and none have moved the core metrics
- The gap between actual and target is large enough (typically >50%) that marginal improvements will not bridge it
- The budget required to reach statistical significance in a proper test exceeds what is available
- The root cause appears to be the product, pricing, or market fit — factors outside the campaign’s control
- Continuing would consume budget that could be redirected to a higher-probability channel
Recommending a stop feels like failure, but in practice clients remember it as honesty. We have had clients who appreciated a clear “this is not working and here is why we should redirect the budget” more than an agency that kept running a broken campaign because stopping was uncomfortable. Our AI automation services sometimes surface this kind of signal faster — when reporting is automated, you see the pattern sooner rather than three months later.
The documentation that prevents this conversation from repeating
Every underperforming campaign produces a short post-mortem. Ours covers:
- What the campaign was intended to do and the metric it was evaluated against
- What actually happened and when we first noticed the gap
- What we tested and what we learned from each test
- The final decision (iterate or stop) and the reasoning
- What we would do differently at brief stage
The last point is the most important. Most campaign failures have a root that traces back to the brief — an unclear objective, an untested assumption about the audience, a timeline that was too short to generate usable data. If you do not document that, you will have the same conversation again with the next campaign.
This is also why the creative brief process matters so much: the brief is the contract between what the campaign was supposed to do and what it is being judged against. When a campaign underperforms, the brief is the first document we return to.
What we communicate when we do not yet know the answer
There is a phase in every underperformance diagnosis where you have identified the problem but have not yet confirmed it with data. This is the most uncomfortable moment — clients want answers, and the honest answer is “we have a hypothesis but we need two more weeks to confirm it.”
We say that explicitly. Not “we are optimising,” not “we are monitoring closely” — both of which are accurate but feel like deflection. We say: here is what we believe is happening, here is what we are doing to confirm it, and here is when we will have a clear answer. A timeline, even a short one, transforms uncertainty from anxiety into process.
- State the hypothesis clearly, not as a certainty
- Name the specific action being taken to test it
- Give a concrete date for the next update
- Confirm whether spend should continue during the test window
Closing note
Campaign underperformance is uncomfortable, but it is also one of the clearest tests of whether an agency relationship is built on something real. Clients who have been through a difficult campaign with us — where we were honest about what was wrong, clear about what we were doing, and willing to recommend stopping when warranted — are often our most stable long-term clients. The relationship survived because the communication did.
If you are working through a campaign that is not delivering and want a second perspective, reach out — we are happy to look at the data and tell you what we see.