CPM Calculator

CPM (cost per mille) is the price an advertiser pays per 1,000 ad impressions, calculated as total spend divided by impressions multiplied by 1,000. Reported CPM uses every served impression in the denominator — bots and humans alike — which makes the headline number understate the true cost of reaching a real person. This calculator shows both: reported CPM, and your true CPM after invalidating bot traffic.

Curious where bots in your traffic actually come from?

Read our pillar guide: What are bots? →

What is CPM?

CPM stands for cost per mille— Latin for “thousand” — and represents what an advertiser pays per 1,000 ad impressions. It is the dominant pricing model for awareness-stage advertising and the legacy unit inherited from print media, where it described the cost to print and circulate 1,000 copies of a publication.

In digital advertising, CPM is the default pricing metric on display networks, programmatic exchanges, connected-TV inventory, and premium video placements where impressions — not clicks or conversions — are the primary deliverable.

How CPM is calculated

The formula is:

CPM = (total cost ÷ total impressions) × 1,000

Example: a campaign spends $5,000 and serves 2,000,000 impressions. CPM = ($5,000 ÷ 2,000,000) × 1,000 = $2.50. Every platform reports CPM in its dashboards, but understanding the formula matters when you reconcile platform-reported impressions against your own tracker or ad-verification vendor.

What is a good CPM?

There is no universal “good” CPM — the right number depends on channel, audience, geography, and campaign objective. The table below summarizes typical 2024 ranges across the major ad channels. Treat these as starting reference points, not targets:

ChannelTypical CPM range (USD)Source
Google Search$2–$4WordStream Google Ads Benchmarks (2024)
Google Display$1–$3WordStream Display Benchmarks (2024)
Meta (Facebook & Instagram) feed$7–$15LocaliQ Paid Social Benchmarks (2024)
TikTok$4–$10Statista Digital Advertising Outlook (2024)
Programmatic CTV$25–$40IAB Internet Advertising Revenue Report (2024)
LinkedIn (B2B)$30–$60LinkedIn Advertising Benchmarks (2024)

Compare your reported CPM against your own platform’s historical baseline first, then against the channel’s industry range. A CPM that beats the channel average but underperforms on downstream conversions is more concerning than a higher CPM that drives the intended outcome.

How bot traffic inflates CPM

Most ad platforms report all served impressions in the CPM denominator, including impressions served to bots, headless browsers, and non-human automated traffic that platform-level invalid-traffic filters did not catch. The mechanical effect is counterintuitive: bots make your reported CPM look lower, not higher.

Why: cost stays fixed (you paid the bill regardless), but the impression count in the denominator is inflated by impressions that never reached a human. A campaign that spent $5,000 and served 2,000,000 reported impressions at $2.50 CPM, where 15% of those impressions were bots, actually reached 1,700,000 humans — a true CPM of $2.94, an 18% understatement.

The True CPM result in the calculator above adjusts the denominator for the bot percentage you enter. Use this whenever you need to compare CPM across vendors that filter invalid traffic at different rates, or when sizing the budget impact of a verification gap.

CPM vs CPC vs CPA

The three pricing metrics measure different units:

  • CPM — cost per 1,000 impressions. You pay for every ad served, whether or not anyone clicks.
  • CPC — cost per click. You pay only when someone clicks, regardless of how many impressions it took.
  • CPA — cost per acquisition (or conversion). You pay only when a downstream conversion event fires.

CPM aligns with awareness objectives; CPC aligns with traffic and consideration objectives; CPA aligns with direct response. Many platforms let you bid on any of the three for the same inventory, with the platform algorithm internally converting between them.

When to use CPM bidding

CPM bidding makes sense when impressions are the deliverable you actually want — most commonly:

  • Reach and frequency campaigns for new product launches
  • Brand-awareness pushes where remembered exposure is the goal
  • Connected-TV and pre-roll video, where click attribution is unreliable
  • Top-of-funnel placement where the next action is brand recall, not a click

CPC or CPA bidding generally outperforms CPM for direct-response campaigns. Even on impression-priced inventory, the platform will internally optimize against whatever bid model you choose, so picking the model that matches your objective matters more than negotiating the unit price.

How to lower your CPM

The standard levers — listed roughly from largest to smallest typical impact:

  • Broaden the audience. Narrow targeting raises auction competition and drives CPM up. The narrower the segment, the higher the floor.
  • Improve creative relevance. Most platforms reward higher predicted CTR with lower clearing prices. Test creatives quarterly and retire fatigued sets.
  • Reduce frequency caps. Capping at 3 impressions/user/week instead of unlimited cuts wasted impressions on saturated users.
  • Dayparting. Avoid peak-competition hours if your conversion data shows no after-hours penalty.
  • Validate the impression count. Bot-inflated impressions make your reported CPM understate the real cost per human reached. Filtering out invalid traffic does not change your CPM bid, but it reveals the true CPM you should be optimizing against.

Frequently asked questions

What is CPM?

CPM stands for cost per mille — Latin for "thousand." It is the price an advertiser pays per 1,000 ad impressions and is the standard pricing metric for awareness-stage advertising on Google Display, Meta, programmatic DSPs, and connected-TV buys.

How do you calculate CPM?

CPM = (total cost ÷ total impressions) × 1,000. Divide what you spent by how many times the ad served, then multiply by 1,000 to express the rate per thousand views. Example: $5,000 spent on 2,000,000 impressions = $2.50 CPM.

What is a good CPM?

A "good" CPM is channel- and audience-dependent. Typical 2024 ranges: Google Search $2–$4, Google Display $1–$3, Meta feed $7–$15, TikTok $4–$10, programmatic CTV $25–$40, LinkedIn B2B $30–$60. Compare against your own platform's reported benchmark, not a universal target.

What is the difference between CPM and CPC?

CPM charges per 1,000 impressions regardless of clicks; CPC charges only when the ad is clicked. CPM is used for reach and awareness; CPC is used when the conversion event happens off-platform after a click. Many platforms let you bid either way on the same inventory.

Why is my CPM higher than expected?

Common causes: narrow audience targeting (raises auction competition), low ad-quality scores, premium placements (CTV, LinkedIn), high-CPM seasons (Q4 holiday), or undercounted impressions if your ad-server filters more aggressively than the platform. A less-discussed cause is the opposite — bot impressions can inflate the denominator and make CPM appear lower than the real cost to reach humans.

How can I lower my CPM?

Broaden the audience, improve ad-quality and relevance scores, rotate creative to combat fatigue, reduce frequency caps, dayparting away from peak-competition hours, and validate that your impression count reflects real humans. Inflated bot impressions make your reported CPM look low while raising your true CPM after invalidation.

Does invalid traffic affect CPM?

Yes. Most platforms report all served impressions, including ones served to bots and non-viewable contexts. Your reported CPM uses the full impression count as denominator, so the more invalid traffic in the mix, the more your reported CPM understates the real cost per human reached. The True CPM result above adjusts the denominator for the bot percentage you enter.

Bots inflate CPMs. Keep them out of your impression count.

Hyperguard scores every visitor in real time and hands your tag manager a verdict so bot impressions stop training your bidding algorithms or filling your retargeting pools.