Blog

How to Fix Underperforming Performance Marketing

Learn a step-by-step, evidence-based approach to diagnose and fix underperforming performance marketing without drastic team or agency changes.

  • performance marketing
  • paid media
  • ecommerce
  • marketing strategy
  • diagnostics

A staged, evidence-based way to rescue paid media without firing the agency or restructuring your ecommerce team.

Updated on: 2026-09-06

When performance drops, the first instinct is usually the most expensive one: fire the agency, rebuild every campaign, or replace the media buyer. Most of the time that's a mistake. The safer move is to run a two-week diagnostic baseline, reconcile your measurement, find the failing funnel stage, and put one accountable owner on it before you touch a single person's job. Change the team or agency only when evidence shows a capability or accountability problem that measurement, process, and targeted support have not fixed.

That distinction matters because a falling ROAS is a signal to investigate, not a verdict on anyone's competence. What I keep seeing in brands between $2M and $20M is that the number people are panicking over is often a tracking artifact, a checkout leak, or a margin problem wearing a media problem's clothes.

Is the decline even real?

Before you judge the team, judge the numbers. Platform-reported ROAS is one of the weakest places to start because it answers a narrow question: which touchpoint got credit. It says almost nothing about whether the business made money.

Reconcile three layers before you act.

Commercial truth. Start with numbers the P&L cares about: net revenue, orders, new customers, blended CAC, and contribution margin after product cost, shipping, payment fees, discounts, and returns. Shopify's own guidance separates ROAS from CAC and customer lifetime value, and defines contribution margin as revenue minus variable costs like COGS, shipping, and processing. That leftover contribution is what pays for acquisition. If you don't know it, you can't say whether your ads are working.

A quick internal ceiling worth calculating:

Maximum first-order CAC =
Net revenue − COGS − shipping − payment fees − discounts − expected returns − other variable costs

If you're willing to invest against repeat purchases, calculate a separate payback CAC over a fixed window (60, 90, or 180 days). Do not quietly blend first-order profit with lifetime-value hope. That's how brands convince themselves unprofitable acquisition is fine.

Measurement truth. Line up ad-platform purchases, analytics sessions and conversions, ecommerce orders and refunds, payment success rates, and finance's net sales. When these disagree, it usually isn't a platform lying. Different systems use different attribution windows, identity logic, time zones, and refund handling. Google now defaults most conversion actions to data-driven attribution, and older models like first-click and linear are gone. Meta lets you set attribution at the ad-set level. Comparing raw ROAS across the two was never apples to apples.

Causal truth. Attribution assigns credit. Incrementality asks what additional business happened because you ran ads. For channels carrying real budget, run geo holdouts, audience holdouts, or platform lift tests. Meta's Conversion Lift documentation frames it as a way to check whether ads caused conversions the attribution model is claiming. You don't need a full incrementality program before making any move. Use reconciliation for fast debugging, controlled tests for big decisions.

Where in the funnel is it actually failing?

Break performance into a chain and find the broken link before you touch the account:

Impressions → CPM → CTR → qualified visits → product-page engagement
→ add to cart → checkout → payment success → purchase → contribution → repeat
Pattern Likely issue First response
CPM up, CTR and CVR stable Auction pressure, competition, seasonality Test creative and audience breadth; check marginal CAC before cutting the channel
CTR falling, frequency rising Creative fatigue or weak message-market fit New angles and formats, not just resized ads
CTR strong, landing-page CVR down Message mismatch, price, stock, or a page issue Audit the exact ad-to-page journey
Add-to-cart healthy, checkout completion down Shipping, taxes, payment, or friction Fix checkout before buying more traffic
Purchase rate stable, margin down Discounting, returns, product mix, COGS Recalculate allowable CAC by SKU and market
New-customer CAC up, blended ROAS fine Retargeting or returning customers masking weak acquisition Split new vs returning
Reported purchases fall across all platforms at once Site, feed, tracking, consent, or stock Check technical and commercial changes first

Checkout and onsite friction are not somebody else's problem when you're trying to fix "marketing." Baymard's abandonment research, excluding pure browsers, puts extra costs, slow delivery, forced account creation, and complicated checkout near the top of why people leave. Sending more traffic into a broken checkout isn't optimization, it's waste at scale. A five-minute audit here often beats a week of campaign tinkering:

  • Are shipping and tax costs visible early?
  • Can people check out as guests?
  • Does mobile payment work on real devices, in each target market?
  • Are products actually in stock and correct in the feed?
  • Did a recent theme, app, or pricing change quietly drop conversion?

What breaks first: measurement, not people

Optimizing toward a broken signal makes everything worse, so repair measurement before you touch budgets. A minimum audit: purchase event fires once and only once, correct value and currency, refunds handled consistently, browser and server events deduplicated, consent respected, stable UTMs, and the primary conversion set to a completed purchase rather than an easier proxy.

Two structural realities to keep in mind. Google's Enhanced Conversions supplements measurement with hashed first-party data (SHA-256 before it's sent) and can improve accuracy, but improved measurement is not proof that every reported conversion is incremental. And Apple's AppTrackingTransparency means some reporting declines reflect reduced identity resolution, not an equivalent drop in demand. Part of what looks like "performance falling" is just observability falling.

Give the team one weekly scorecard, and label every metric by how much you trust it:

  • Observed: directly recorded, like orders or payment success
  • Attributed: assigned by a platform or model
  • Estimated: modeled or incomplete
  • Causal: backed by a controlled test

This vocabulary ends the pointless argument over "the real number." The numbers answer different questions. This is exactly the kind of measurement discipline that separates confident decisions from expensive guessing, and it's the foundation of any credible growth approach.

How to protect the team while you fix it

You don't need a new department. You need a temporary recovery group made of existing people, with one rule: every decision has a single named owner.

  • Accountable owner: makes the final stop/continue calls
  • Performance lead: campaign execution and platform diagnostics
  • Creative or merchandising lead: angles, offers, product hierarchy
  • Conversion/product owner: landing pages, checkout, speed, tracking
  • Finance or ops partner: margin, stock, returns, cash impact

In a smaller brand one person wears two hats. Fine. The point is that no task depends on "marketing" as an undefined collective. Prolonged underperformance is usually held in place by fuzzy ownership across paid media, creative, ecommerce, engineering, and finance, which is why clarifying who owns what tends to fix more than a personnel change would.

What not to do while the diagnosis is still open:

  • Fire the agency before checking tracking and economics
  • Rebuild every campaign at once
  • Change the attribution model and the budget in the same week
  • Replace the team while asking that team to explain the decline
  • Launch three new channels to compensate for a broken core funnel
  • Rate individual performance on a noisy short-term result

There's an operational reason to keep people safe here, not just a cultural one. HBR's work on intelligent experimentation notes that teams need psychological safety to take smart risks and to separate good bets that failed from careless mistakes. Punish bad short-term results and people start hiding tracking problems and making defensive changes. That's how you turn a two-week fix into a six-month decline.

Stabilize before you try to turn it around

For the first week or two, build a controlled baseline. Freeze nonessential structural changes. Fix broken tracking, feeds, payment, and stock immediately. Log every recent change: budget, bids, creative, audiences, site, offer, pricing, promotions, fulfillment. Separate prospecting from retargeting and new customers from returning. Set a temporary spend ceiling based on your allowable contribution CAC.

Then leave it alone long enough to read. Google says Smart Bidding usually needs a 7 to 14 day learning period, sometimes up to three weeks. Meta warns that significant edits (targeting, creative, optimization event, bid strategy, sometimes budget) can restart learning, and its systems typically need around 50 optimization events to exit that phase. Meta also flags ad sets as "learning limited" when audiences are too small, budgets too low, or too many ads run at once, which points at account complexity rather than a bad hire.

The takeaway is not "never change anything." It's this: don't make so many changes that nobody can tell which one moved the number.

Prioritize by expected value and reversibility

Score interventions roughly like this:

Priority = (economic impact × confidence × speed of learning) ÷ (effort × downside risk)

High-priority, low-disruption (usually safer than any restructure):

  1. Fix broken or duplicate purchase tracking
  2. Repair product feeds, disapprovals, stock, price
  3. Fix a material payment or checkout failure
  4. Clarify shipping, delivery, returns, and total cost
  5. Improve ad-to-landing-page message match
  6. Test new creative concepts against an unchanged control
  7. Split new-customer acquisition from retention reporting
  8. Improve abandoned-checkout and post-purchase flows

Higher-risk (treat as formal experiments or staged migrations): rebuilding campaign architecture, switching optimization events, changing bid strategy, moving a large budget between channels, entering a new market, or replacing the agency.

Each real test deserves a one-page record: hypothesis, one primary metric, guardrail metrics, control, treatment, budget, duration, owner, minimum evidence threshold, stop condition, and decision date. Google's experiment guidance is blunt about this: one variable at a time, success metrics chosen in advance, and no edits to the base campaign mid-test, because those edits make the result unreadable. Give experiments four to six weeks, longer where conversion delay is real.

Set guardrails before launch. Green: primary metric improves, guardrails hold, scale gradually. Amber: inconclusive, let the window close. Red: contribution loss, tracking failure, stock issue, or ugly refund rate, pause and investigate. Move budget in stages, not dramatic swings, and wait through the conversion cycle before the next big move. There is no universally safe "increase by X%" rule.

People, process, or strategy?

Only after measurement and funnel work should you judge the team or agency.

It's probably a process problem when no one owns the primary metric, the same tracking issue keeps recurring, changes go undocumented, tests have no control or decision date, and marketing, engineering, and finance argue from different numbers.

It's probably a strategy problem when the offer is uncompetitive, acquisition depends on customers who never repeat, the target CAC is inconsistent with contribution margin, or the brand is discounting its way to bad economics.

It may be a capability problem when tracking, creative, testing, and commercial analysis stay weak even after clear ownership and support, when tests get declared winners without agreed evidence, and when nobody can explain how platform results connect to business results.

This sequence stops you from using a firing to solve a measurement or product problem, which is the most common own goal I see.

A few limits worth naming. Seasonality invalidates lazy comparisons, so match weekday, promo period, market, and stock before you conclude anything. Low-volume accounts can't support elaborate platform experiments, so lean on longer windows and bigger geo tests. And a lift test is not permanently portable: winning at current spend doesn't prove the channel holds at double the budget or in a new market.

The through-line is that performance marketing is a cross-functional commercial system. Paid media creates demand, but profit depends on the offer, the site, checkout, margin, retention, fulfillment, and data quality working together. That's the frame behind the diagnostic-first work at Miguel Casteleiro: find the real constraint, put one owner on it, and fix decision quality before you rearrange the org chart.

What I would do first

If a brand handed me a stalled account tomorrow, the order would be:

  1. Pull commercial numbers and calculate blended CAC and contribution. One day.
  2. Reconcile platform, analytics, ecommerce, and finance. Flag every discrepancy.
  3. Walk the funnel and find the failing stage.
  4. Run the exact ad-to-checkout journey on a real phone.
  5. Freeze structural changes, fix broken tracking and checkout leaks, name one owner.
  6. Design two or three high-value, low-disruption tests with decision dates.
  7. Only then, with evidence in hand, ask whether this is people, process, or strategy.

FAQ

Should I fire my agency if ROAS is falling?

Usually not yet. A falling ROAS is often a tracking, checkout, or margin problem, not an execution failure. Reconcile your numbers and diagnose the funnel first. Replace the agency only when evidence shows a capability or accountability gap that clear ownership and support haven't closed. Firing first often destroys institutional knowledge and buys you a three-month rebuild for a problem the old team could have fixed in two weeks.

How long before I can trust a change I made?

Longer than most people wait. Google's Smart Bidding needs 7 to 14 days, sometimes three weeks. Meta typically wants around 50 optimization events after a significant edit. If your conversion delay is meaningful, add that on top. The real trap isn't waiting too long, it's making so many changes at once that no waiting period can tell you which one worked.

Isn't ROAS enough to judge performance?

No, and treating it as the definition of success is one of the more expensive habits I see. ROAS is attributed ad revenue over spend. It ignores gross margin, shipping, returns, discounting, and whether those customers ever come back. A brand can show strong platform ROAS while losing money on every new customer. Judge the business on contribution after marketing, not on a platform's self-reported number.

What if my order volume is too low for proper testing?

Then don't fake certainty from tiny samples. Use larger geographic or audience tests, longer windows, higher-level business outcomes, and sequential testing instead of parallel micro-tests. Lean harder on qualitative evidence and conservative budget moves. Underpowered experiments that look precise are worse than honest observation, because they give false confidence to expensive decisions.

Further reading

Your next growth stage

Let’s grow your company.

We’ll find the real constraint, build the plan and turn it into profitable revenue.

Build your growth plan