The calculator above turns spend and impressions into a CPM, then tells you what a planned budget buys at that rate. Here's what the number means, how it chains into CPC and CPA, and when a low CPM is a trap.
What CPM is and how to calculate it
A B2B client once forwarded us a report from their previous agency flagging an $18 CPM on Meta as "a problem to fix." We looked at the campaign. It was retargeting a 6,000-person list of people who'd already requested a demo. Cost per booked meeting was $41, the best in the account. The agency wanted to cut the CPM by widening the audience, which would have made the number look better and the campaign worse.
CPM stands for cost per mille. Mille is Latin for thousand, so it's the cost of a thousand impressions. Google defines it as a bid type where you pay per thousand times your ad is shown. Meta reports the metric as cost divided by impressions, multiplied by 1,000. Same math on every platform.
The formula. CPM = (ad spend / impressions) x 1,000. $2,500 in spend across 400,000 impressions is a $6.25 CPM. Flip it around and $10,000 at a $6.25 CPM buys 1.6 million impressions.
It's the oldest unit in advertising. Newspapers sold on cost per thousand readers, TV on cost per thousand viewers, and digital inherited the term. The reason it survived is that it's the only metric that lets you compare the price of inventory across channels before anyone clicks anything.
How CPM converts to CPC and CPA
Every CPM has a CPC hiding inside it, and every CPC has a CPA. You just need two rates from your own account, click-through rate and conversion rate. Once you have them, the chain is fixed.
| Metric | Formula | Example ($10 CPM, 1% CTR, 2% CVR) |
|---|---|---|
| CPM | Spend / impressions x 1,000 | $10.00 |
| Clicks per 1,000 | 1,000 x CTR | 10 clicks |
| CPC | CPM / (1,000 x CTR) | $1.00 |
| CPA | CPC / conversion rate | $50.00 |
| Break-even CPM | Target CPA x CVR x CTR x 1,000 | $8.00 at a $40 target CPA |
That last row is the one to keep. If you know the CPA you can afford, your conversion rate, and your click-through rate, you know the highest CPM you can pay. At a $40 target CPA, 2% CVR, and 1% CTR, anything above an $8 CPM loses money no matter how cheap it looks next to the channel average.
The same logic applies in reverse. Double your CTR with better creative and you've halved your CPC at the same CPM. This is why we spend more time on creative than on bids. The bid moves CPM a little. The creative moves everything downstream of it.
Typical CPM ranges by channel
Platforms don't publish averages, and third-party benchmark reports mostly recycle each other. What follows is the range we've seen across 400+ brands over 12+ years, and it moves with season, audience size, and creative quality. Treat it as a sanity check, not a target.
| Channel | CPM range we see | What drives it |
|---|---|---|
| Programmatic display, open exchange | $1 to $6 | Cheapest inventory online, and a lot of it is unviewable or fraudulent. |
| Google Display Network | $2 to $8 | Broad reach, quality varies wildly by placement. |
| YouTube in-stream | $8 to $20 | Video attention costs more. Skippable formats keep it in range. |
| Meta feed and Reels | $8 to $25 | Audience size and creative fatigue swing this more than any other channel. |
| Connected TV | $20 to $45 | Full-screen, unskippable, sold like television because it is television. |
| $30 to $80 | Job-title targeting. Expensive because the people are expensive to reach anywhere else. |
Look at the spread. LinkedIn costs 10 to 40 times more per thousand than open-exchange display. Nobody sane compares them on CPM, because a thousand VPs of Finance and a thousand random visitors to a recipe site aren't the same product. CPM only compares inventory within a channel, and only after you've checked what an impression means there.
A $40 LinkedIn CPM at 0.5% CTR is an $8 click. A $3 display CPM at 0.05% CTR is a $6 click. The cheap channel wasn't cheap.
Four ways CPM lies to you
Served isn't seen
A standard impression counts the moment the ad loads, including below the fold, in a background tab, or on a page the user closed instantly. Google's viewable CPM charges only when at least half the ad is on screen for one second, or two seconds for video. On display campaigns we've seen viewability rates of 40% to 60%, which means a $4 served CPM is really a $7 to $10 viewable one.
Frequency hides in the average
A million impressions to 50,000 people at a frequency of 20 is not the same as a million impressions to 800,000 people. The CPM reads identically. The first campaign annoyed a small group, the second reached a market. Always pull reach and frequency next to CPM before judging it.
Audience size sets the price
Platforms charge more to find the same people repeatedly inside a small audience. That $18 retargeting CPM from the opening story was expensive because the list was small and valuable, not because anything was broken. Compare CPM only across campaigns with similar audience sizes.
Fees live outside the number
Platform CPM is media cost only. Add a DSP fee, a data fee, a verification vendor, and a management fee, and effective CPM on programmatic can run well above the number on the dashboard. This is the part of programmatic advertising most agencies would rather you not calculate. Put every fee in the spend field above and see the real figure.
When to buy on CPM, and when not to
Buy on CPM when the goal is reach and you trust the placement. Video, connected TV, and audio are sold this way because the exposure itself is the product. Target CPM on YouTube exists for exactly this reason, and it optimizes toward unique reach rather than clicks.
Don't buy on CPM when the goal is a click or a sale. Manual CPM bidding on a conversion campaign hands you the risk of every worthless impression. Let the platform bid for conversions and treat CPM as a diagnostic you watch, not a lever you pull. That's how we've run every performance account, and it's why CPM belongs next to CPA in any report rather than on its own.
Already know your revenue? Check whether the campaign made money.
Open the ROAS calculatorHow to lower CPM without lowering results
In order of impact from the accounts we've worked on. Check CPA after each move. If CPM dropped and CPA rose, undo it.
- Refresh creative before frequency climbs. Fatigued ads get lower engagement and platforms price them higher. On Meta a frequency above 3 to 4 in a week is the usual warning sign.
- Exclude junk placements. Audience Network, below-the-fold display slots, and made-for-advertising sites inflate impressions and drag CPM down while adding nothing. Cutting them raises CPM on paper and lowers cost per result.
- Give the algorithm room. Audiences under about 100,000 people on Meta tend to get expensive fast. Broaden slightly and let the bidding find buyers.
- Move spend away from peaks. Q4 CPMs run 30% to 60% above September in our accounts. If your product isn't seasonal, front-load awareness spend into cheaper months.
- Raise CTR. Not a CPM fix, but it's the cheapest way to cut what you pay per click at whatever CPM you're stuck with.
The bottom line
CPM tells you what attention costs. It says nothing about what the attention was worth. Run the calculator with your real spend, including fees, then chain it through your CTR and conversion rate to the CPA. If that CPA clears your target, the CPM was fine, whatever the benchmark report says.