I work with Ecom brands valued from $0 to over $1b and have been in this industry for ~7 years now. Across all of that, there are only a few times a single change made an account scale 2x within a month AND drop CPA.
A strong offer is almost always the reason.
I don’t like talking about offers since it’s a dangerous funnel.
But once you have a great product, great ads, strong media buying, and a website that converts with CRM locked and loaded?
Offer structure can be a huge multiplier on top of that performance when done right.
Sponsored by UpPromote
If you are running offers you need to be VERY CAREFUL who you pick as your affiliate partner.
The most common issue: a brand hands promo codes to anyone with a following, the codes leak to Honey and coupon Reddits, and existing customers find them at checkout. That’s the Bed Bath & Beyond problem, running on autopilot. You pay commission on revenue that was already walking through the door.
The deeper miss is targeting. Every ad dollar you spend has logic behind it: demographics, interests, lookalikes, intent. Then you recruit affiliates by DMing whoever looks big enough. That’s untargeted traffic, and then everyone acts surprised the program is flat.
A real program fixes both. Per-affiliate trackable codes, fraud detection, automated payouts, and partners actually matched to your niche. Run it right and affiliates can drive 30-40% of total revenue. Run it wrong and you pay 5-10% on sales you’d have made anyway.
@UpPromote is the Shopify-native platform I point brands to. 250,000+ stores, $1B in tracked affiliate GMV.
They also built a free tool that does the targeting work for you. Paste your store URL, and it identifies your niche and recommends the 5 partner types most likely to convert for your category, plus outreach templates, in under a minute. The same logic you apply to ads, pointed at partner recruitment.
If you’re running offers and want to make sure you’re paying commission on new revenue, not existing customers, the tool is free and takes under a minute: https://upmote.link/5142ab
Why offers move numbers like nothing else
The mechanism is simple: an offer change touches every impression in the account at the same time. A creative test touches one ad.
When a creative hits, one ad takes off. It pulls spend, carries the account for a while, and eventually fatigues. When an offer hits and is added to your landing page, everything lifts at once.
We’ve seen this drop CPA by 78% at higher spend within a week in some cases.
The second reason offers hit: your evergreen ads fill the funnel, and the offer closes it. At any moment there’s a pool of people who have seen your ads, mostly agree with you, and just haven’t had a reason to act today. The promo collects that demand.
The math is roughly: 99% of viewers don't click, and 95% of clicks don’t convert. Adjust for frequency and impressions that scroll fast (no engagement) and you still get 99% of awareness never buying.
And it compounds on Meta specifically. More conversions in a short window means more signal for the algorithm, faster cash conversion, and better optimization data. The promo doesn’t just convert the funnel. It makes the whole account smarter for a week.
One caveat that applies to every offer win: cheap conversions that don’t hold up downstream aren’t a win. If it’s lead gen, track your close rate. If it’s ecom, track your LTV on promos.
How to pick the offer
The first thing I ask on a new account: tell me your offer in one sentence, the way a customer would repeat it to a friend.
“$0 down, fast installation” is an offer. “Up to 25% off select styles with code SUMMER25” is forgettable and bland. I’m looking for the first: something specific, memorable, and compelling.
The second thing I pull is the Meta Ad Library for the top five competitors. Your offer competes with whatever sits next to it in the feed, not with whatever you ran last quarter.
From there, the routing comes down to one question: what’s actually stopping the purchase? Every construct exists to kill a specific objection. Name the objection out loud, in the customer’s words, and the offer mostly picks itself.
“It costs too much.” Price is the objection, so price might be the lever. Percent off is the workhorse, and it wins across the board but easts into margin.
Price is the easy one: price is the first thing people say and the last one you should test.
For example, you may be able to increase the value first before a discount. Giving the customer a gift they value at 25% of the order might cost you 5 points of margin. A 20% discount costs you the full 20, and the customer values it less if they think you raised the price to just discount it.
That asymmetry is why gift with purchase is my preference vs discounts (or do both), and the default for subscription brands: perceived value goes up, price expectations stay untouched. Theme the gift to the moment (free gifts for dad in June) and it does double duty as creative. Just make sure the gift is something people would buy on its own or makes the original product more usable. A throwaway gift reads as clutter, not value.
“It’s a big commitment.” High ticket, installation, a long contract. The objection isn’t the number, it’s starting, so terms beat discounts: $0 down, no interest, no payments, free demo.
“What if it doesn’t work for me?” Skepticism is the objection, and you can’t discount your way out of it. The construct is risk reversal: a money-back guarantee, a free trial, a sample size, painless returns. Make it specific: “90 days, no questions” beats “satisfaction guaranteed” every time. Model in a return-rate assumption here. It’s a nonzero cost, but as long as the product is good, it’s better than the CVR hit of not having it.
“I’ll get to it later.” Nothing is blocking the purchase. People mostly agree with you and just have no reason to act today. You don’t need a new offer. You need urgency on the one you have, and the urgency has to be real: tie it to a calendar moment, or to actual scarcity, a kicker that runs while stock lasts. One rule: don’t publicize an end date unless it’s inside the next couple of days. A deadline two weeks out is not a deadline in today’s world.
“I don’t need it.” Stop. No offer fixes this one. If people don’t want the product at full attention, a discount just buys cheaper indifference. Improve the product or find the right audience. Don’t try to offer-hack this. It will just result in bad reviews, low LTV, or returns.
Then decide: one-off or system? If you’ll run offers all year, build one evergreen high-value construct and re-skin it per moment instead of inventing a new offer every holiday. Nine-figure brands run essentially the same offer all year and re-wrap it for each moment: small tweaks or products but same core idea. Same economics, new urgency, and the unit math always works.
Whichever construct you land on, four checks before anything launches:
Stack before you deepen. The cheapest improvements remove friction instead of cutting price: a payment term, a free-shipping threshold, a guarantee, a bonus unit.
Deepening is the expensive move. Make it your last one.
Condition the offer to lift AOV or LTV. Free shipping earns its keep when it’s gated: on subscriptions, or on two-plus units.
A good offer doesn’t just close the sale, it improves the order. If it doesn’t raise AOV or start a longer relationship, it’s margin out the door.
Do the depth math before launch, not during. A 30% discount doesn’t cost you 30%. It comes out of contribution. Take a $100 order with $35 in landed costs: you keep $65. At 30% off you collect $70 and keep $35. The discount cut contribution nearly in half, so your allowable CAC drops with it. Set the in-window CAC target from that math and hand it to your media buyer on day one.
Aim it at the first order. A sitewide discount pays a lot of people who were buying anyway. First-order constructs, the welcome bundle, the starter kit, the new-customer gift, point every dollar of margin give at acquisition. You can’t gate perfectly on Meta, but you can design the offer so its value concentrates on order one.
When to run it
The big holidays all work: Memorial Day, 4th of July, Labor Day, Black Friday, Thanksgiving, Christmas, New Year’s.
Then there are the in-betweens. Spring sale. Summer sale. Most brands chain them: Mother’s Day into Memorial Day into a summer sale into the 4th of July and back into summer. Seasonal language fills the gaps when there’s no actual holiday.
Brand moments work too. If you started your company in February or one of your founders has a birthday away from a holiday, that’s a great time to add another promo.
One timing detail most brands get backwards: promos convert better in the few days after the holiday than before it.
A 4th of July sale on July 1st says you have time. The same sale on July 7th says this might be the last day. Every day past the holiday adds urgency, right up to the point where it’s obviously never ending.
So don’t kill the promo on the holiday. The strongest days are usually still ahead of you.
How to run it
The mechanics matter as much as the offer itself:
Cap promo ads at 20-30% of account spend (by ad not landing page). Never 100%. More on why below.
Two formats are my favorites. Promo statics, plus your top evergreen videos with a scrolling banner on top that says “25% off for the 4th.” Add in dedicated video promos if you can.
80% iterations, 20% new. Pull last year’s holiday winners and rerun them. They reactivate year over year more often than you’d expect. Promo creative requires way less creative diversity in my experience.
Accept the fatigue. Promo ads die 3 to 14 days after the holiday and the account goes back to baseline. That’s fine.
Load the funnel first. In the week before a sale, push DR ads to fill the top of the funnel. Run a bit less efficient than normal (and more efficient during the sale). That awareness has to come from somewhere.
Building the calendar
When, what, and how are useless as trivia. Here’s the assembly order I’d run with a brand starting from zero:
Anchor the majors. Pick the four to six proven holidays that fit your category. Health brands don’t skip New Year’s. Nobody should skip Black Friday unless you are REI.
Add your brand moments. Birthday month, product anniversary, the category’s natural season.
Fill the gaps with seasonal frames. Spring sale, summer sale, fall. Depends how often you want to have some kind of promo. Subscription-heavy brands should run promos more often since initial AOV is less important than LTV, so they should chain these in.
Assign one offer construct per slot. Most slots are re-skins of the evergreen offer. Vary the wrapper, and keep it fun.
Set windows, not dates. Promo ads start about two weeks before the holiday and run a week past it for most big brands
Pre-build both copy variants. An evergreen version and a short-dated version of every asset, written before launch.
Tag everything for next year. Name promo ads by holiday so next June you can pull this June’s winners in five minutes.
The concerns are real
Up top I called offers a dangerous funnel, and I meant it. I philosophically hate the idea of going promo heavy. And I still push for promos every holiday, on every brand, because the data keeps winning the argument.
The way to hold both is to take the objections seriously. There are four that matter.
The impression problem. Every dollar on Meta buys an impression, and an impression that says “25% OFF” is an impression that didn’t say why your product matters. Go 100% promo and you’re paying premium holiday CPMs to communicate a price instead of a selling point. That’s the real reason for the 20-30% cap and the banner-on-winner format. The proof points keep running. The offer just closes.
The Bed Bath & Beyond problem. Train customers to only buy with a coupon and you’ve permanently repriced your product. The fix is the evergreen offer. When your everyday offer is already high value, a holiday promo is a re-skin, not a markdown, and you never teach anyone to wait for the markdown.
The hangover. Promos pull demand forward. Budget for the dip after the sale or you’ll spend a week diagnosing a problem that doesn’t exist.
The opt-out tax. Holidays raise CPMs whether you participate or not. If everyone else is running Memorial Day offers and you aren’t, you pay holiday auction prices without holiday conversion rates. Worse, the shopper who just bought your competitor’s deal isn’t buying your full-price product this week. Sitting out isn’t neutral. People won’t remember that you sat out.
The practical takeaway
Six moves, in order:
Confirm the fundamentals first. Product, creative engine, media buying, a site that converts. The offer multiplies what’s working. It doesn’t fix what isn’t.
Look at your past wins. One ad winning is creative. Everything winning at once is the offer.
Name the objection in the customer’s words and let it route you: price, commitment, risk, or timing. Then draft five variants of the construct before your next creative sprint.
Cap dedicated promo ads at 20-30% of spend. Banners on proven winners, 80% iterations, rerun last year’s promos.
Build the calendar once: anchor the majors, add your brand moments, fill the gaps with seasonal frames, and set windows instead of dates.
Load the funnel the week before the sale. Budget for the hangover the week after.
Most operators will test 200 ways to say it before testing one change to what they’re offering.
This month, two words cut a brand’s CPA 78%. The framework above is how you find yours.
If this was useful, send it to someone who has a good offer (or doesn’t). Thanks!








