A campaign I’m still mad about sometimes

I’ve worked on campaigns that generated millions in revenue, campaigns that exceeded their targets and also on a few campaigns that looked fantastic in marketing reports but were considerably less impressive when someone finally opened the financial statements. The latter stays with you for the negative rather than the positive, because you had the budget, the people, the data and a reasonable strategy, yet the commercial outcome was nowhere near what you had planned.

An e-commerce campaign failed because of me

One particular ecommerce campaign still bothers me because the result wasn’t caused by one spectacular mistake. It was the consequence of several assumptions that individually seemed reasonable but collectively produced a poor investment decision. I was involved in the commercial planning and marketing execution of an initiative for an established European home and lifestyle ecommerce retailer with approximately €12 million in annual online revenue. The business had an established customer base, a broad product portfolio and a relatively mature digital operation. We weren’t trying to establish demand for a new product or rescue a failing online store, we wanted to accelerate an existing business through a substantial promotional campaign.

The initiative ran for eight weeks, with a total budget of €120,000. Of that amount, €100,000 was allocated to paid media, primarily Google Ads and Meta Ads, while €20,000 covered creative production, campaign management and supporting activities. The commercial target was €500,000 in attributed net sales, with an expected gross margin of 46% and €80,000 in contribution after campaign costs. The forecast was built around an average order value of €96, approximately 5,208 orders and a 65% new-customer share. We expected a media ROAS of 5.0, meaning every euro invested in advertising would generate five euros in attributed net sales. Based on historical performance and the results of previous promotional periods, these assumptions appeared achievable.

The final attributed revenue was €420,000. We missed the sales target by €80,000, or 16%. Media ROAS finished at 4.2, average order value got stuck at €87, and the new-customer share was only 48%. More importantly, contribution after marketing expenditure fell from the forecast €80,000 to €31,200. That was a 61% reduction in the expected contribution, the campaign had generated €420,000 in sales, but the financial value of those sales was considerably lower than we had anticipated. Sad story.

The campaign in numbers: €120,000 invested, €420,000 generated

The first indication that something was wrong came from the difference between our acquisition forecast and actual checkout behaviour. We expected approximately 5,208 orders at an average order value of €96, instead the campaign generated approximately 4,828 orders at €87 per order. We therefore fell short on both order volume and average purchase value. The order volume was approximately 7.3% below forecast, while average order value was 9.4% lower, together, these two differences explain the 16% revenue shortfall. The customer acquisition mix was another concern. We had forecast that 65% of orders would come from new customers, but the actual share was 48%. This meant that approximately 2,317 orders came from first-time customers, compared with an expected 3,385. The campaign generated around 1,068 fewer first-time customer orders than planned, a shortfall of approximately 31.6%.

Performance indicatorForecastActualVariance
Campaign duration8 weeks8 weeks—
Total investment€120,000€120,0000%
Paid media investment€100,000€100,0000%
Attributed net sales€500,000€420,000-16.0%
Number of orders5,2084,828-7.3%
Average order value€96€87-9.4%
New-customer order share65%48%-17 pp
First-time customer orders3,3852,317-31.6%
Media ROAS5.004.20-16.0%
Gross margin46.0%44.0%-2 pp
Contribution after marketing€80,000€31,200-61.0%

The difference between revenue and contribution is important here. Had we generated €420,000 in sales at the forecast margin and cost structure, the financial outcome would have been considerably better. Instead, the campaign also produced a less favourable product mix, higher variable costs relative to sales and a lower gross margin. In other words, we didn’t simply sell less, we generated less value from every euro of revenue.

The P&L: where the €48,800 contribution shortfall came from

The original business case assumed €500,000 in net sales and a gross margin of 46%, generating €230,000 in gross profit. Fulfilment and payment processing were expected to account for €25,000, while returns-related costs were budgeted at €5,000. This left €200,000 in contribution before marketing expenditure. After deducting the €120,000 campaign investment, the expected contribution was €80,000. The actual result was significantly different, net sales reached €420,000, but gross margin fell to 44%, reducing gross profit to €184,800. Fulfilment and payment costs amounted to €25,200, while returns-related costs increased to €8,400. Contribution before marketing therefore fell to €151,200. Yikes.

P&L itemForecastActualVariance
Net sales€500,000€420,000-€80,000
Cost of goods sold-€270,000-€235,200+€34,800
Gross profit€230,000€184,800-€45,200
Gross margin46.0%44.0%-2 pp
Fulfilment and payment costs-€25,000-€25,200-€200
Returns-related costs-€5,000-€8,400-€3,400
Contribution before marketing€200,000€151,200-€48,800
Media investment-€100,000-€100,000€0
Production and campaign management-€20,000-€20,000€0
Contribution after marketing€80,000€31,200-€48,800

The numbers are particularly revealing when expressed as percentages. The forecast contribution before marketing was 40% of net sales, the actual contribution was 36%. After campaign expenditure, the expected contribution margin was 16%, while the actual result was just 7.4%. We had lost more than half of the expected contribution margin while missing the revenue target by only 16%.

Another way to look at it is contribution per order. The original forecast expected approximately €38.40 in contribution before marketing for every order, the actual result was approximately €31.30 and after allocating the full campaign investment across transactions, contribution fell from approximately €15.36 per order to €6.46. That is a 58% reduction in contribution per transaction.

For an ecommerce business processing thousands of orders, this difference is substantial, it changes how much the business can afford to spend on acquisition, how aggressively it can promote products and how much room it has to absorb operational costs. The campaign was still positive on an attributed contribution basis, but it was nowhere near the financial result we had committed to delivering.

The attribution problem: €420,000 in sales did not mean €420,000 in incremental revenue

The next problem emerged when we examined the relationship between attributed revenue and actual incremental sales. Google Ads and Meta Ads were reporting conversions based on their respective attribution models, the combined campaign reporting showed €420,000 in net sales, but attribution alone could not establish how much of that revenue was genuinely caused by the additional marketing investment. This was particularly relevant for branded search, remarketing and existing customer audiences, these segments were capturing people who already knew the retailer, had previously visited the website or were actively considering a purchase. A subsequent geographic holdout analysis indicated that approximately 70% of attributed campaign revenue was incremental, applying that estimate to the €420,000 in attributed sales gave us €294,000 in incremental net revenue. The remaining €126,000 represented sales that were not demonstrably incremental to the campaign.

Revenue measurementAmount
Platform-attributed net sales€420,000
Estimated incremental share70%
Estimated incremental net sales€294,000
Revenue not established as incremental€126,000
Paid media investment€100,000
Total campaign investment€120,000
Incremental ROAS (media only)2.94
Incremental revenue / total campaign investment2.45

The difference between the reported 4.2 media ROAS and the estimated 2.94 incremental ROAS was significant. The first number measured the revenue attributed to advertising platforms relative to media expenditure, the second estimated the additional revenue generated relative to that same media expenditure. For commercial decision-making, the second figure was considerably more useful.

The financial implications were even more concerning. Applying the actual 36% pre-marketing contribution margin to €294,000 in incremental sales produced an estimated €105,840 in incremental contribution. Against the full €120,000 campaign investment, that left a negative incremental contribution of €14,160. The campaign had generated €31,200 in attributed contribution after marketing, but an estimated €14,160 loss when assessed against incremental demand.

This is why I became much more sceptical of campaigns that are presented as successful based exclusively on platform-reported ROAS. A business can generate a substantial amount of attributed revenue without creating equivalent incremental value.

The original acquisition assumptions were too optimistic

One of my biggest mistakes was assuming that historical performance could be scaled without fundamentally changing the economics. The retailer had a strong existing customer base and several product categories with consistent demand. Previous promotional periods had generated attractive sales volumes, and the historical conversion rates gave us a reasonable starting point for the forecast. However, there is a significant difference between generating more sales from an existing audience and acquiring additional customers at scale. We expected 3,385 first-time customer orders, the actual number was 2,317. That meant we were short by more than 1,000 first-time customer transactions, despite spending the full €100,000 media budget. If we divide media expenditure by first-time customers, the implied acquisition cost was approximately €29.50 in the forecast and €43.15 in the actual result. This is an indicative first-order acquisition cost rather than a fully deduplicated customer CAC, but the direction is clear: we spent the same amount of money and acquired considerably fewer first-time buyers.

The problem was not simply that Meta ads became less efficient or that Google ads became more expensive. The underlying assumption that acquisition costs would remain relatively stable as we expanded into less familiar audiences was too optimistic. We were also relying heavily on channels that captured existing purchase intent. Branded search and remarketing were useful for converting demand, but they could not be treated as equivalent to generating new demand. The distinction was not sufficiently reflected in our original forecast. In retrospect, I should have challenged the expected new-customer share and the marginal acquisition cost much more aggressively before approving the entire investment.

The product mix and discount strategy made the economics worse

The acquisition problem was only part of the picture, we also underestimated the impact of product selection and promotional mechanics on the financial outcome. The campaign included discounts of up to 25% across selected product categories. The expectation was that higher conversion volume would compensate for lower selling prices and margins. However, we had not sufficiently differentiated between products that needed a promotional incentive and products that already had established demand. The retailer’s product portfolio contained significant margin differences, some of the highest-volume products had relatively low gross margins, while other categories offered considerably better commercial potential. Yet our media allocation was largely influenced by historical sales volume and advertising performance rather than contribution per product.

The actual gross margin was 44%, compared with the forecast 46%. On €420,000 in sales, that two-percentage-point difference represented €8,400 in lost gross profit compared with the same revenue at the planned margin. The average order value also fell from €96 to €87, with approximately 4,828 orders, the actual checkout value was nearly €9 below forecast. The resulting revenue shortfall was not just a traffic problem, it was also a merchandising and promotional problem. We were encouraging customers to purchase discounted individual products rather than building larger baskets through complementary products, bundles or minimum-spend incentives. The campaign should have been designed around the contribution potential of individual product categories, not simply their ability to generate transactions. We could have concentrated discounts on products where the additional incentive was more likely to influence purchasing decisions, introduced tiered offers to increase basket size and prioritised higher-margin product combinations. Instead, we relied too heavily on straightforward percentage discounts.

A 25% discount can generate a higher conversion rate, but that doesn’t automatically make it a good commercial decision. If the customer would have purchased anyway, the discount simply reduces the value of the transaction.

What I changed in subsequent commercial planning

The experience made me considerably more strict about the relationship between marketing forecasts and financial planning. I started treating campaign proposals as commercial investment cases rather than media plans with a revenue target attached. Historical ROAS, conversion rates and traffic forecasts remained useful inputs, but they were no longer sufficient to justify allocating a significant budget. I wanted to understand product-level gross margins, contribution after variable costs, average order value, customer acquisition costs and the expected proportion of genuinely incremental customers before approving the full investment.

I also changed how I approached budget release. Rather than committing the entire investment against an unvalidated forecast, I preferred a staged approach with predefined commercial thresholds. For a €120,000 campaign, I would allocate the first €30,000 to validate the acquisition assumptions, assess the promotional economics and establish whether the product mix was delivering the expected contribution. The remaining €90,000 would then be allocated according to actual commercial performance rather than the original forecast. If the first phase generated an acquisition cost of €43 rather than the planned €30, or an average order value of €87 rather than €96, those differences would need to be addressed before scaling the investment further.

I would also introduce separate reporting for prospecting, branded search, remarketing and existing customer activity. A blended ROAS of 4.2 is not enough information to make a meaningful investment decision if a substantial proportion of the revenue comes from customers who already intended to purchase. Finally, I would make contribution and incrementality central parts of commercial reporting. The marketing team should be able to explain not only how much revenue its activities generated, but also how much of that revenue was genuinely additional and how much contribution remained after variable costs and marketing expenditure.

These changes are not particularly complicated from a technical perspective. The difficult part is getting the organisation to adopt a more commercially disciplined way of evaluating marketing performance.

What stayed with me

I don’t particularly enjoy looking back at projects that didn’t deliver and I assume nobody does, but I find it considerably more useful to understand why a €120,000 investment produced €31,200 in attributed contribution instead of the €80,000 we had planned, and why the underlying incremental economics were even worse. The uncomfortable part is that none of the warning signs were impossible to identify, we had the historical data, the product margins, the customer information and the financial forecasts. What we didn’t have was enough challenge around the assumptions connecting all of them.

I’ve become much less interested in marketing performance that cannot be translated into business performance. Revenue is important, acquisition is important and market share matters, but none of them should be considered independently of the cost of generating them. A commercial strategy needs to account for what the business actually keeps, not just what its advertising platforms claim to have generated. I also don’t believe that every investment needs to produce an immediate return. Sometimes you deliberately accept lower short-term contribution to acquire customers, enter a market or build a longer-term competitive advantage, but those decisions need to be conscious, quantified and supported by evidence. Calling an underperforming campaign a long-term investment after the fact doesn’t make it one.

This campaign changed the questions I ask before approving a marketing budget. What is the incremental revenue opportunity? Which products are actually worth promoting? How much contribution does each additional order generate? What happens to acquisition costs when we scale beyond existing demand? And, perhaps most importantly, what evidence would convince us to stop spending? I still find the campaign annoying because I was part of the decision-making process, and I would approach several parts of it differently today. That’s also the point of reflecting on it with this article. Commercial responsibility isn’t about having a perfect track record or finding someone else to blame when the numbers disappoint, it’s about being able to look at an investment, understand where your own assumptions failed and make sure the next decision is better.

A marketing campaign doesn’t become a success because the dashboard says it is. It becomes a success when the business is genuinely better off because you ran it.

Related Posts

Football is life

A cold and rainy FA Cup night at Old Trafford, a teenager standing on the terraces in Székesfehérvár, four World Cup games in Mexico and a wardrobe full of jerseys from Mandalay to Guadalajara. Four things that connect a lifetime of following the beautiful game and a reminder that loyalty and belonging matter more than the result.

Read More