Most advice on lowering CPM is about budget settings: bid caps, cost controls, placement restrictions. Those can help, but they are the last levers I reach for. The cheaper way to lower CPM is to make Meta want to show your ad.
The short answer
Lower CPM by improving what Meta predicts about your ad: that people will engage with it and act. In practice that means better hooks, fresh creative before fatigue sets in, an audience big enough that you aren't bidding against yourself, and fewer ad sets so each one gets enough data. Adjust placements and bidding last. If you haven't diagnosed why your CPM is high yet, start with Why Is Meta Ads CPM So High?
What's actually going on
Some of your CPM is the market and some of it is you. Seasonal competition isn't yours to fix. Everything else on this list is, and the order matters, because the first levers are free and the last ones can hurt delivery if you pull them too early.
| What moves CPM | Do you control it? | Where I'd start |
|---|---|---|
| Seasonal and category competition | No | Plan margin around it |
| Copy and creative engagement | Yes | First |
| Creative freshness and frequency | Yes | Second |
| Audience size and overlap | Yes | Third |
| Number of ad sets and budget spread | Yes | Fourth |
| Placements and optimization event | Partly | Last |
Engagement comes first because of how the auction works. Meta picks the ad with the best combination of bid, estimated action rate and ad quality, so an ad that earns more engagement can win impressions at a lower price than an identical ad nobody reacts to. I cover that in What Is Estimated Action Rate on Meta Ads.
What to check first
Four checks that cost nothing and take under an hour:
- Compare CPM, link CTR and frequency per ad, not per ad set. The ads with the highest CPM and lowest CTR drag the average down. Find them first. What you do with them depends on your structure, and I would read the testing rules I use before switching anything off.
- Chart frequency against CTR over time. Frequency climbing while CTR falls is fatigue, and the fix is new creative, not a new audience.
- Check audience size and overlap. If you're stacking interests or running several ad sets at similar people, you're competing with yourself. Where your tracking is healthy, broad or Advantage+ audiences often give Meta more room to find cheaper impressions.
- Count your ad sets against your budget. If each ad set gets a thin slice, consolidate. The right number depends on spend, which I break down in Meta Ads Structure by Spend Level.
The one fix to start with
Rewrite the first line of your ads for the stage your audience is actually in. This is the part of my copy framework you can use today.
The framework has four awareness stages: symptom-aware, problem-aware, solution-aware and product-aware. Each one calls for a different opening line. Here is the same product, a made-up carry-on bag called the Roam 35, opened four ways:
- Symptom-aware: "You packed light and your shoulder still hurts by the time you reach the gate."
- Problem-aware: "Most carry-ons are built to fit the overhead bin, not to be carried through an airport."
- Solution-aware: "A carry-on with a real hip belt carries like a hiking pack."
- Product-aware: "The Roam 35. Free shipping this week."
Cold audiences are rarely product-aware, yet that last line is the one many accounts lead with. To test the alternatives, take your best ad, leave everything after the first line identical, and write three new openers, one for each earlier stage. Run them in a testing ad set with a fixed budget, away from your proven winners, and compare CTR and CPM once they have had enough delivery to judge.
Stage-matched openers tend to earn more engagement from cold traffic, which raises the estimated action rate and lowers what you pay to be shown. That's the short version. Choosing the right stage for your product, and mapping each stage to a campaign, is the part I walk through on a call.
The rest of the fix (and why it's a conversation)
Getting CPM down without hurting results is a sequence, and the sequence depends on your account. Here is some of what sits behind it:
- Building a hook library for each awareness stage and mapping stages to campaigns
- A creative refresh cadence sized to your spend
- Audience setup that avoids overlap without strangling delivery
- Consolidating ad sets without resetting learning
- Placement and optimization-event decisions by spend level
- Checking that a lower CPM actually lowers your cost per purchase
Want a CPM plan for your account? Book a 30-minute call and bring your Ads Manager numbers.
Where this has worked
For Brooklyn Transfers, I restructured Meta into local prospecting, national prospecting and retargeting layers and moved creative refresh from sporadic to weekly. That was part of a quarter in which gross sales grew 1,300%. At Lina Lennox, consistent brand stories and a steady testing cadence helped cut ad cost per sale by 30%.
Book a call
This post gives you the first move. The right next ones depend on your account. In 30 minutes I'll look at your ad account and Shopify numbers and give you a short list of priorities, whether or not we work together. If you want to see how I run accounts first, start with Shopify Meta ads.