CPM Formula: How to Calculate Cost Per Mille Across Platforms
CPM Formula: How to Calculate Cost Per Mille Across Platforms

CPM Formula: How to Calculate Cost Per Mille Across Platforms

CPM, or cost per mille, is the cost per thousand ad impressions. Here is how CPM is calculated: total spend divided by total impressions, multiplied by a thousand. Across multiple platforms, you sum the spend and impressions separately and divide once, because averaging platform CPMs overstates the aggregate whenever the expensive platform serves fewer impressions.

If you take a look at the example below, you can see this error yields a thirty five percent swing in the numbers. Due to its subtlety, this likely would have made its way into a client deck, so it’s important to be conscious of how this equation works.  

Cost per mille (CPM) = (Total spend ÷ Total impressions) × 1,000

With a spend of eight thousand dollars and two hundred thousand impressions served, your CPM comes to forty dollars. Cost per mille is French for cost per thousand, which is the most elegant thing about it.

Why averaging platform CPMs gives you the wrong number

Here’s a campaign with ten thousand dollars split across two platforms, both platform CPMs being perfectly correct on their own.

Platform

Spend

Impressions

CPM

LinkedIn

$8,000

200,000

$40.00

Meta

$2,000

400,000

$5.00

Averaged



$22.50

Weighted (correct)

$10,000

600,000

$16.67

Average the two CPMs and you get $22.50, which sits thirty-five percent above what the campaign actually delivered. The average treats LinkedIn and Meta as equal contributors even though Meta served twice the impressions for a quarter of the spend.

Weighting fixes this because it uses the raw ingredients instead of combining two finished numbers. Sum the spend, sum the impressions, divide once at the end.

This rule generalizes past CPM and can be applied to other metrics as well. Any metric that is a ratio has to be rebuilt from raw totals rather than averaged from the ratios themselves. You can’t average CPA or ROAS across platforms either. That’s the same class of problem in another sense too. When a post earns organic shares and comments, platforms fold those earned impressions into the same impression count as paid delivery, so the denominator grows without a matching increase in spend. That’s the mechanic that pulled a blended CPM from forty dollars down to $3.84 in the earned impressions breakdown.

Why platforms report different CPMs for the same campaign

Weighting correctly still leaves you with a denominator that means slightly different things depending on where it came from. The two platforms in the example above don’t count impressions the same way, and have published documentation supporting that.

LinkedIn records an impression on Sponsored Content when the ad is at least fifty percent in view for one full second on desktop, or three hundred milliseconds on mobile. 

Meta counts an impression the first time an instance of the ad is on screen, with no viewability threshold attached. A video doesn’t need to start playing, and scrolling past counts.

Identical delivery produces different impression counts, which means identical spend produces different CPMs. As a rule,  cross-platform CPMs are always an approximation and never a precise figure.

Where impressions get fragile

The supply chain for buying programmatic display on the open web is hard to audit, and fraudulently billed impressions are an unfortunate and persistent cost.

Buying on platform properties like LinkedIn or Instagram means you know exactly who your counterparty is. What counts as an impression is documented, the billing is traceable, and disputes have somewhere to go.

The MRC viewable impression guidelines are the closest thing the industry has to common ground, so knowing which of your platforms hold to them is valuable. Plenty of good campaigns run on both open web and walled garden, so there is a place for either.

What matters is that your aggregate CPM carries a note about which inventory produced it. A low open-web CPM and a higher platform CPM aren’t measuring the same thing.

What is a good CPM?

There’s no universal benchmark for a “good” CPM, because CPM shifts with platform, format, audience, targeting tightness, and season. A tightly targeted LinkedIn campaign aimed at finance directors will always cost more per thousand than a broad reach campaign on Meta.

Tracking your own movement and being able to explain it is more valuable than comparing yourself to a figure from an external campaign. A CPM that dropped forty percent over the lifespan of a campaign, for reasons you can explain, is a real accomplishment, whereas simply having a CPM that’s lower than an industry average found in a blog post or benchmark may not mean as much.

CPM vs CPC

CPM charges you for every thousand impressions served, while CPC charges you only when someone clicks. Although CPM is great for reach campaigns where being seen is the goal, CPC is a better fit when you only want to pay for traffic.

You can convert one into the other with your click-through rate: CPC = CPM ÷ (CTR × 1,000).

Platform

CPM

CTR

Effective CPC

LinkedIn

$40.00

0.5%

$8.00

Meta

$5.00

1.0%

$0.50

A higher CPM can still win on cost per click when the audience clicks more often, so compare both before you move budget.

Google Ads CPM vs Meta and TikTok CPM

Google Ads, Meta, and TikTok all report CPM, but each one counts the impressions underneath it differently, so the same budget produces different numbers on each platform.

Google Ads lets display campaigns bid on viewable CPM, which counts an impression only when at least fifty percent of the ad is on screen for one second. Meta counts an impression the first time the ad appears on screen, with no viewability threshold. TikTok counts an impression each time the ad is shown in the feed.

Although each platform’s CPM is correct on its own terms, a lower CPM on one platform doesn’t mean cheaper reach, so compare cost per result before moving budget between them.

How to reduce CPM

When your CPM climbs, the auction is charging you more to reach the audience you chose. These steps lower it without changing your budget.

  1. Widen the audience. Narrow targeting puts you against every advertiser chasing the same people, so loosen interest and job-title layers first.

  2. Open more placements. On Meta, Advantage+ placements add Reels, Stories, and Audience Network inventory, which usually costs less than Feed alone.

  3. Refresh creative when frequency rises and click-through rate falls together, because tired ads cost more to keep delivering.

  4. Match the objective to the goal. Conversion-optimized campaigns bid for the people most likely to buy, so a reach objective buys cheaper impressions when reach is what you need.

  5. Move awareness spend away from peak retail weeks, when advertisers compete for the same inventory.

Here’s what opening placements does to a Meta campaign with the same $2,000 budget:


Spend

Impressions

CPM

Before (Feed only)

$2,000

160,000

$12.50

After (Advantage+ placements)

$2,000

250,000

$8.00

Although a lower CPM stretches your budget, cheaper impressions only help when they reach the people you wanted, so check cost per result before and after each change.

Getting the same number every time

Although this formula is well known, this remains one of the most common metrics we see goofed up in reporting. Both the weighted and averaged version look plausible, so it’s easy to accept the results of your calculation, but it’s important to be sure you’re calculating accurately and consistently across reports.

Summer puts all your marketing data in one place that you can talk to, so the aggregate is built the same way regardless of who asks. Everything lands in a normalized layer, one metric meaning the same thing everywhere, and CPM doesn’t change definition between the campaign view and the client summary.

Ask any campaign question in plain English and get a verified answer back. Every answer carries an audit trail with the query it asked and the rows it investigated, so you can check the work when a number surprises you.

When a client asks why the aggregate isn’t just the average of the two platforms, the explanation is sitting there. Connect once, ask anything. Free thirty-day trial, no credit card required.

Frequently asked questions

What does CPM stand for?

CPM stands for cost per mille, where mille is the French word for thousand. It measures what you pay to serve a thousand impressions, rather than a thousand clicks or a thousand people.

What is the CPM formula?

CPM equals your total spend divided by your total impressions, multiplied by a thousand. Spend eight thousand dollars for two hundred thousand impressions and your CPM comes to forty dollars.

How is CPM calculated?

CPM is calculated by dividing your total ad spend by your total impressions and multiplying by 1,000. For several platforms, add up the spend and the impressions first, then divide once.

How do you calculate CPM in Excel?

Put spend in column B and impressions in column C, then enter =B2/C2*1000 in column D to get the CPM for each row. For a blended CPM across platforms, use =SUM(B2:B3)/SUM(C2:C3)*1000 instead of averaging column D, because AVERAGE repeats the error shown in the table above.

How do you calculate CPM across multiple platforms?

Divide the sum of spend across all platforms by the sum of impressions across all platforms, then multiply by a thousand. Averaging the individual platform CPMs overweights the platforms where you served fewer impressions.

Why is averaging platform CPMs wrong?

Averaging treats every platform as an equal contributor even when their impression volumes are very different. 

What is a good CPM?

There’s no universal benchmark because CPM shifts with platform, format, audience, targeting tightness, and season. 

What’s the difference between impressions and reach?

Impressions count how many times an ad was served, while reach counts how many distinct people saw it. One person seeing an ad ten times produces ten impressions and one unit of reach.

Hot Mike

CTO of Summer / Host of Hot Mike Cool Data