Free tool · no signup
CPM calculator
CPM is what 1,000 impressions of your ads cost. Type in spend and impressions for the same dates and you'll get it. Then check whether that reach turned into payments.
What you spent on ads in the date range, from Ads Manager, Google Ads, or both added together.
How many impressions those ads got for the same dates. In Google Ads the column is called Impr.
Use one currency for spend. The result is in that same currency, so it's shown without a symbol.
Enter ad spend and impressions to see your CPM.
Illustrative math on the numbers you type. It doesn't tell you which ad caused which sale. The math runs in your browser and nothing you type is stored.
A CPM only tells you what got shown.
To see which campaigns produced the payments behind that spend, start a 14-day free trial, no card needed.
How CPM is calculated
CPM means cost per mille, mille being Latin for thousand. It's the average cost of 1,000 impressions.
CPM = ad spend ÷ impressions × 1,000
Google writes it as "CPM = cost / ( impressions / 1,000 )" (Google Ads Help). Meta says CPM "measures the amount spent on an ad campaign, divided by impressions, multiplied by 1,000" (Meta Business Help Center).
The multiply by 1,000 is only there to make the number readable. One impression costs a fraction of a cent, so the platforms quote the price of a thousand.
A worked example
This is a framing example, not a client result.
In September a client spent €2,000 on one Meta campaign and got 250,000 impressions. €2,000 ÷ 250,000 × 1,000 = €8.00 CPM.
In October the same €2,000 bought 400,000 impressions. CPM fell to €5.00. On a dashboard that looks like a win.
Now the payment side for the same dates. Say payments matched to visits from that campaign came to €5,000 in September and €3,200 in October. The reach got cheaper and the money went down.
Reporting CPM to clients?
Thexly for agencies puts payment revenue next to each platform's claim, one workspace per client.
What a CPM can and can't tell you
Google says CPM "is most valuable when it's used as a means for comparison between ads, ad groups, and campaigns" (Google Ads Help). It also warns that "a good avg. CPM varies by country". So compare CPMs inside one account and one market, not against a figure from somewhere else.
An impression is one showing of an ad, not one person. Someone can see the same ad five times. If you care about people, Meta has a separate metric, "Cost per 1,000 Meta Accounts reached" (Meta Business Help Center).
CPM stops at the showing. It doesn't know about clicks, orders or refunds. A low CPM can mean cheap attention from people who were never going to buy.
Check it against revenue that hit the bank
The calculator trusts the numbers you type in, and CPM never reaches the money. Before a falling CPM goes in a client report as good news, put each platform's claim next to the payments for the same dates. The platform vs payment gap calculator does that from three numbers.
Cheap reach still has to pay its way.
Now check it against the revenue that hit the bank: start free.
CPM, CPA and ROAS
CPM is the top of the chain: what it cost to be seen. The CPA calculator gives what each conversion cost, and the ROAS calculator gives what came back per unit of spend. For how CPM turns into cost per click, see CPM vs CPC.
Did your CPM go down last month, and did your payments go with it?
FAQ
Questions & answers
Related tools
Other free calculators
Platform vs payment gap
Enter Meta claims, Google claims, and payment collected. See the dollar and % gap.
MER / blended ROAS
Payment revenue ÷ total ad spend. The number that survives a Stripe check.
CPA calculator
Type in your numbers, then check the result against payments that cleared.
Put the reach next to the payments it brought in
CPM is the price of being seen. It can fall while sales fall too, and the calculator can't tell you which happened.
Thexly works on the payment side for ecommerce brands on Stripe checkout: each payment matched to the campaign visit that led to it, counted once, in a live link the client can open.