Skip to content

You’re paying for an ad to win back a customer you already sold to

You run a discount ad to someone who just bought from you. They return the order and rebuy it cheaper through the ad. The platform logs a new sale, your ROAS looks clean, but you just paid again for a customer you already had and burned margin.

Author
Axel Corton
Subject
Paid media
Date
Read time
6 min
You’re paying for an ad to win back a customer you already sold to

Key takeaways

  • On a €120 pair with 20% off, you lose €24 of margin plus the cost of the return and the ad click.
  • On a healthy account it quickly adds up to a few thousand euros of margin lost each month, invisible on the P&L.
  • Exclude recent buyers from every discount campaign, tuned to your real repurchase cycle (30, 45, 60 days).
  • Run a test purchase on every payment method: standard checkout, Shop Pay, Apple Pay, Google Pay, PayPal.
  • Make sure your abandoned cart flow stops the moment the order is placed.

A customer buys a pair of sneakers for €120. The day the package arrives, she sees an ad from your brand asking if she's still thinking about those sneakers. With 20% off. So €96.

You can guess what happens next. She returns the first pair and re-buys the exact same ones through the ad. You've lost €24 of margin, you're paying for a return, and the ad platform brags about generating a sale. Except that sale? You'd already made it.

I've seen this case play out dozens of times at the agency. And the worst part is almost nobody catches it, because the numbers look good. The campaign ROAS climbs, the CPA looks clean, everyone's happy in the meeting. Except you're paying to re-buy people who had already bought from you.

You Paid for This Customer Twice

You know the basic principle. Acquiring a new customer costs way more than keeping an existing one. That's why we always separate acquisition budget from repeat budget, so you know exactly what you're spending to go find someone who doesn't know you yet, versus what you're spending on someone who already bought.

The problem here is you're paying a customer acquisition cost on someone who has nothing to do with acquisition. The platform counts this sale as a new conversion, your ROAS looks good, but really you just re-paid for a customer you already had. It flatters reality, and it corrupts your read on what pure acquisition is actually costing you.

Why It Happens (and It's Almost Never Random)

It almost always comes down to tracking or a dumb oversight. Three cases come up over and over.

The most common one: the purchase event doesn't fire on one of your checkout paths. Say the standard checkout works fine, but Apple Pay or Shop Pay fires nothing. So the ad platform doesn't even know the customer bought. As far as it's concerned, she's still a prospect to convert, and it chases her with discounts.

Second source of error: sync delay. Your customer list feeds into Meta a few days late. During those few days, the customer who just bought is still sitting in the audience you're targeting with your promo campaign. She just swiped her card, and you're already showing her an ad cheaper than what she just paid.

And sometimes it's even dumber: nobody excluded recent buyers from the discount campaign. The exclusion audience doesn't exist, or it was never attached to the right campaign. This happens way more often than you'd think.

And email does exactly the same damage. An abandoned cart flow that keeps sending after the order went through is the same problem on the CRM side. The customer bought, and she still gets "you left some items in your cart, here's 10%." If you want to dig into this specific point, I cover it in abandoned cart emails that actually work.

The Real Cost Isn't the €24

When I show this case to a client, the reaction is often "yeah but €24 on one order, it's not the end of the world." The €24, you see. The rest you don't.

You're giving away margin for nothing, the customer would have kept her pair without the ad. You're paying for a return, sometimes with a product that comes back damaged. And you're paying for a click and an impression on a sale you already had in the bag.

That's all the hidden spend that shows up nowhere when you calculate your customer acquisition cost. You look at your ROAS, it's clean, and you miss the margin you're burning line by line.

Multiply that by the number of customers falling through the hole every month and you start to see the problem. On an account that's doing well, that's easily a few thousand euros of lost margin every month, and it never shows up as a "loss" line anywhere. And nobody catches it.

This is exactly why I always say an audit should start with your P&L, not your campaigns. Look at your margin. The ROAS is lying to you.

What You Actually Put in Place

You've got two or three things to set up, and none of them are hard. We just forget them.

Exclude Recent Buyers from Anything Discount

Build an audience of people who bought recently and exclude it from all your promo campaigns on Meta. On the CRM side in Klaviyo, same thing: pause discount flows and campaigns for someone who just placed an order.

The only question left is how long you keep someone in the "recent" bucket. And that depends entirely on your repurchase cycle. If you sell sneakers or fashion, someone who just bought won't buy again for several weeks or even months. So you can exclude them for 30, 45, 60 days no problem. If you sell supplements people reorder every 30 days, it's much shorter, otherwise you miss the repeat. Look at your real repurchase frequency in your data, not some rule pulled from an article.

Check That Your Purchase Event Fires on EVERY Path

Run a test purchase on each payment method. Standard checkout, Shop Pay, Apple Pay, Google Pay, PayPal. And check that the purchase event is firing correctly each time in your Events Manager. An event that doesn't fire on one path means a whole chunk of your customers stays invisible to the platform, and therefore gets retargeted as prospects.

It's the kind of dumb check nobody does, and it silently rots half your exclusion audiences. If you're already leaning into giving up some control over your Meta targeting, all the more reason to keep your database clean. I cover that in stop trying to control everything on Meta Ads.

Clean Up Your Post-Purchase Flows

Your abandoned cart flow needs to stop the moment the order goes through. Sounds obvious, but actually check it, because I regularly see badly conditioned flows that keep sending after the purchase.

The Days After Purchase Are Worth Their Weight in Gold

There's something I find crazy. The few days right after a purchase are when the customer is paying the most attention to your brand. They're waiting for their package, checking their inbox, opening everything you send them.

Except most brands use that moment to fire off a discount ad or a flow aimed at the wrong target. When it's actually the moment to show them how to wear what they just bought, and what to pair it with. How-to content, outfit ideas, the product that goes with what they bought.

In eCommerce, we obsess over pre-purchase and conversion. Post-purchase, nobody really deals with it. Yet that moment lowers your real customer acquisition cost, because a customer who sticks around is one you don't have to re-buy. A good salesperson in a store still takes care of you after you've paid. Post-purchase, same logic. If you want to see how we structure that, that's the whole point of our CRM offer.

Where to Start

If you do one thing this week, run the test purchase on each payment method to check that your purchase event fires everywhere. It's 20 minutes and it tells you immediately whether a chunk of your customers is invisible to your platforms.

Then build your recent-buyer exclusion audience, set it to your real repurchase frequency, and plug it into all your discount campaigns. And check that your abandoned cart flow properly stops at the order.

That's it, those three are enough. That way you stop re-paying for a sale you'd already made.

Frequently asked questions

How long should I exclude a recent buyer from my discount ads?

It depends on your repurchase frequency. In fashion and sneakers, 30 to 60 days work well. On products people reorder monthly, like supplements, it's much shorter or you'll miss the repeat. Look at your real frequency in your data.

How do I know if my purchase event fires on all paths?

Run a test purchase on each payment method, standard checkout, Shop Pay, Apple Pay, PayPal, and check in your Events Manager that the purchase event fires each time. If one path doesn't fire, a chunk of your customers stays invisible to the platform.

Is it even worth it for €24 per order?

You lose the margin, the cost of the return and the media cost, then multiply that by the number of customers affected each month. On an account that's doing well, that's thousands of euros of margin a year walking out the door without ever showing up as a loss anywhere.

My ROAS is good, why should I worry?

Because the ROAS counts as a sale something you'd already sold. It climbs while your margin drops. That's why a serious audit starts with your P&L, not your campaigns. Listen to your margin, not your ROAS.

What should I send a customer right after purchase instead of a discount?

How-to content and pairing ideas. How to wear what they just bought, with what, how to care for it, which complementary product. The days after purchase are peak attention, so use them to build the relationship instead of handing over a discount they don't need.

Keep reading

Subscribe to our newsletter

Our methods on paid media, eCommerce and CRM, in your inbox.

Opening soon