CPM Calculator.
What a Thousand Impressions Really Costs

TLDR

CPM is ad spend divided by impressions, times 1,000. The calculator on this page does that math, runs it backwards to show what a budget buys, and the article below shows how every CPM converts into a CPC and a CPA. A $10 CPM at 1% CTR is a $1 click. CPM is the price of attention, not the value of it, and we've seen plenty of $3 CPMs that lost money.

Free tool

Run your numbers

Media cost for the period. Add platform and agency fees for effective CPM.

Impressions served in the same period.

Optional. See how many impressions this buys at the CPM above.

CPM $6.25
Cost per impression 0.63¢
Impressions per $1,000 160,000
Budget buys 1.6M

Every 1,000 impressions costs $6.25. At that rate a $10,000 budget buys about 1,600,000 impressions.

CPM = $2,500 spend / 400,000 impressions x 1,000 = $6.25.

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)
CPMSpend / impressions x 1,000$10.00
Clicks per 1,0001,000 x CTR10 clicks
CPCCPM / (1,000 x CTR)$1.00
CPACPC / conversion rate$50.00
Break-even CPMTarget 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 $6Cheapest inventory online, and a lot of it is unviewable or fraudulent.
Google Display Network$2 to $8Broad reach, quality varies wildly by placement.
YouTube in-stream$8 to $20Video attention costs more. Skippable formats keep it in range.
Meta feed and Reels$8 to $25Audience size and creative fatigue swing this more than any other channel.
Connected TV$20 to $45Full-screen, unskippable, sold like television because it is television.
LinkedIn$30 to $80Job-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.

CPM / (1,000 x CTR) What you actually pay per click

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 calculator

How 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.

Keep going

CPM tells you the price. ROAS tells you if it paid.

Take the spend from this page, add the revenue it produced, and the ROAS calculator will show whether the campaign cleared break-even at your margin.

Open the ROAS calculator
FAQ

Common questions about CPM

Divide total ad spend by total impressions, then multiply by 1,000. $2,500 in spend that produced 400,000 impressions is a $6.25 CPM. Both Google and Meta report it exactly this way. The calculator at the top of this page does the division and also runs it backwards so you can see how many impressions a planned budget buys.

Cost per mille. Mille is Latin for thousand, so CPM is the cost per thousand impressions. It's the oldest pricing unit in advertising and carried over from print and TV, where circulation and ratings were also measured in thousands. Some platforms label it cost per 1,000 impressions, which is the same number.

There's no universal good CPM because impressions aren't worth the same across channels. In our experience, open-exchange programmatic display runs $1 to $6, Google Display $2 to $8, YouTube $8 to $20, Meta feed $8 to $25, connected TV $20 to $45, and LinkedIn $30 to $80. A $40 CPM on LinkedIn reaching decision-makers can outperform a $3 CPM on display reaching nobody who'll buy.

No. CPM measures the price of attention, not the value of it. Cutting CPM by widening targeting or accepting worse placements usually drops CTR and conversion rate faster than it drops cost. Judge CPM alongside CPC and CPA. If CPM falls and CPA rises, you bought cheaper impressions that were worth less.

CPC equals CPM divided by 1,000 times CTR. A $10 CPM at a 1% CTR is a $1.00 CPC. CPA equals CPC divided by conversion rate, so that $1.00 CPC at a 2% conversion rate is a $50 CPA. The math chains together, which means every CPM has an implied CPA once you know your click-through and conversion rates.

Viewable CPM charges only for impressions that met the viewability standard, which Google defines as at least 50% of the ad on screen for one second for display and two seconds for video. A regular CPM counts every served impression, including ones below the fold that nobody scrolled to. vCPM is usually higher on paper and a more honest number.

Four common causes. Your audience is small, so platforms charge more to keep finding new people inside it. Your creative is stale and engagement dropped, which platforms punish with higher prices. You're bidding for conversions, which prioritizes expensive high-intent impressions. Or you're in a seasonal peak like Q4, when every advertiser is competing for the same inventory.

Auction pressure. Retail advertisers flood every platform from late October through December, and CPM is set by competition for the same impressions. We routinely see Meta and Google Display CPMs rise 30% to 60% between September and the week before Christmas, then drop sharply in the first two weeks of January.

Refresh creative before frequency climbs, since fatigued ads get more expensive. Broaden audiences slightly to give the algorithm room. Exclude placements that inflate impression counts without producing clicks, like audience network or below-the-fold display. Shift budget toward months and hours with lower competition. Then confirm CPA held or improved, or the CPM cut wasn't worth it.

Bid on CPM when the goal is reach or awareness and you trust the placement, like video or connected TV. Bid on CPC or conversions when the goal is traffic or sales, because the platform absorbs the risk of low-engagement impressions. Most performance campaigns should never manually bid CPM. Let the algorithm buy impressions in service of the conversion goal.

Platform-reported CPM does not. It's media cost only. If you pay a management fee, a DSP fee, or a data fee, your effective CPM is higher. Programmatic is the worst offender, where ad tech fees can consume a large share of the working media budget. Add every fee to the spend field in the calculator to see the CPM you actually paid.