Pick the bidding model that matches what you actually know. Buy on CPM when you want reach and your creative reliably out-clicks the average, because every click above that average is effectively free. Buy on CPC when the creative or the audience is unproven and you want a floor on what a visit costs. Buy on a cost-per-result target when you have the volume the optimizer needs, which on Meta is around 50 optimization events a week per ad set. All three settle in the same auction, so none of them is cheaper by nature.
The choice feels bigger than it is. Media buyers argue about CPM versus CPC as though one of them contains a discount, but the auction does not care what unit you asked to be billed in. What changes is who carries the risk of an ad that gets served and ignored, and what the platform's optimizer is allowed to aim at. Get those two right and the model follows.
The three models, and who carries the risk
| Model | You pay for | Who carries delivery risk | Best when |
|---|---|---|---|
| CPM (cost per mille) | Every thousand impressions served | You. A bad ad still costs full price. | Reach and awareness goals, proven creative, broad audiences. |
| vCPM (viewable CPM) | Every thousand viewable impressions | Shared. You stop paying for ads nobody could see. | Display buying where below-the-fold inventory is a real risk. |
| CPC (cost per click) | Every click through to your site | The platform, and it prices that into the bid. | New creative, new audiences, traffic goals, thin conversion data. |
| CPA / cost per result | Delivery, optimized toward a conversion target | The platform, but only if you feed it enough signal. | Stable campaigns with steady conversion volume and clean tracking. |
| ROAS target | Delivery, optimized toward a revenue multiple | The platform, with the same signal requirement. | Ecommerce with reliable purchase values passed back to the platform. |
The pattern in that middle column is the whole story. Every step down the list moves risk from you to the platform, and the platform charges for accepting it. That is why a CPC bid is not a bargain: it is an insurance premium bundled into the price of a click.
Is CPM or CPC cheaper?
Neither, and the arithmetic shows why. Cost per click is just cost per thousand impressions divided by ten times your click-through rate. A $12.50 CPM at a 1.2 percent CTR produces a $1.04 click whether or not you asked to be billed per click. The CPM calculator runs all three numbers from the same inputs, which makes the relationship obvious in a way that three separate reports never do.
What that identity really tells you is where a price change came from. If clicks got more expensive and CPM is flat, your creative is earning fewer clicks per impression. If clicks got more expensive and CTR is flat, the auction got dearer, which in Q4 retail it reliably does. Most account reporting shows all three metrics side by side and never says which one moved first, so buyers spend a fortnight rewriting ad copy to fix a seasonal bidding problem.
Here is the trap that catches people who chase cheap impressions. A $12.50 CPM at 0.5 percent CTR and a $30 CPM at 1.2 percent CTR buy exactly the same 400 clicks per $1,000 spent. The expensive-looking inventory was the same price all along.
When to buy on CPM
CPM makes sense when you are confident about engagement and want reach. If your creative consistently clears the click-through rate the platform's auto-bidding assumes, buying impressions and keeping the surplus clicks is straightforwardly better value. It also suits campaigns where a click was never the point: brand launches, category-building, and any campaign whose success shows up in branded search volume weeks later rather than in the ad account.
The two things to watch are frequency and placement drift. A CPM that falls month over month usually means the algorithm found cheaper inventory or widened the audience, not that you got better at buying. Check whether cost per acquisition fell with it. It often does the opposite.
Creative fatigue is the other CPM tax, and it is the one most teams underestimate. Frequency climbs, click-through rate sags, and the effective price of a click rises even though the CPM on the report barely moved. The constraint is rarely knowing this and usually producing enough variants to rotate, which is why teams increasingly rework one strong concept into channel-specific versions rather than briefing every ad from scratch.
When to buy on CPC
Buy clicks when you cannot predict engagement. New creative, a new audience, a market you have never advertised in, or a seasonal push where last year's benchmarks do not apply. Paying only for visits puts a ceiling on how badly a test can go, and that ceiling is worth the premium built into the bid.
CPC is also the honest choice when your conversion tracking is not trustworthy yet. Handing a cost-per-result target to a platform whose pixel is double-firing or missing half your purchases produces confident, expensive nonsense. Fix measurement first, buy clicks in the meantime.
One definitional trap on Meta. The platform reports both clicks (all), which includes likes, comments, shares and taps on your page name, and link clicks, which counts only taps that opened your destination. On an engaging post the first can be roughly double the second. Build CTR and CPC on link clicks, or you will report a click-through rate that looks excellent while sending almost nobody to the site.
When to buy on CPA or a cost-per-result target
Automated bidding needs volume before it beats a human, and the two big platforms publish different thresholds. Meta says an ad set becomes learning limited when it is unlikely to receive around 50 optimization events in the week following your last significant edit. Google recommends evaluating Target CPA over a period containing at least 30 conversions, typically a month, and at least 50 for Target ROAS. Note the mismatch: Meta counts per week, Google per 30 days, so a campaign comfortably past Google's bar can still be learning limited on Meta.
Below those levels the optimizer is learning from noise. It spends unevenly, re-enters the learning phase every time you touch a setting, and responds to an ambitious target by simply not delivering.
Three failure modes account for most disappointing CPA campaigns. Optimizing for a cheap proxy event such as add-to-cart or a newsletter signup, which the algorithm will dutifully deliver in enormous quantities from people who never buy. Setting a target far below your current cost per result, which throttles delivery instead of improving efficiency. And splitting one healthy campaign into six audience-specific ones, which divides your conversion volume until none of them clears the learning threshold.
If you are working out what a result is allowed to cost in the first place, that is a margin question rather than a bidding one. The customer acquisition cost calculator works out what a customer really costs once every channel and salary is counted, and the customer lifetime value calculator gives you the ceiling that cost has to stay under.
Does the bidding model change how conversions are attributed?
No, and this is the thing that quietly undermines every model comparison. Attribution windows are configured separately from the bid unit, and they differ by network no matter what you buy on. Google Ads books a conversion to the date of the click, with windows configurable up to 90 days. Meta offers 1, 7 or 28-day click windows alongside a single 1-day view window, having removed its 7-day and 28-day view windows in January 2026. TikTok claims on 1 or 7 days only.
So two campaigns on identical CPA bidding, on two networks, report cost per acquisition under two different rulebooks. Sum the conversions each platform claims and you will exceed the number of people who actually bought, because the same purchase gets claimed twice by two networks that both touched it. That flatters your calculated CPA and makes whichever platform has the longest window look like the best performer.
How do you compare bidding models fairly across networks?
Compare delivery metrics across networks and money metrics against your own books. Spend, impressions, clicks, CPM, CPC and CTR are measured similarly enough everywhere that a cross-network comparison is broadly fair, once you know whether you are looking at served or viewable impressions and which click definition each platform used. Attributed metrics are not, and no amount of dashboard tidying makes them so.
The number that settles the argument is blended: total spend across every platform divided into the revenue your store and billing system actually recorded. It uses no attribution model, so it cannot double count, and it reconciles to money that exists. Run it alongside the per-network figures rather than instead of them, since the channel numbers are still what a media buyer optimizes with. The full case is in blended ROAS versus platform ROAS.
MixedMetrics pulls spend, impressions, clicks and the derived CPM, CPC and CTR from Google Ads, Meta and TikTok onto one board on a shared date range through read-only connectors, computes blended ROAS, blended CAC and MER against real Shopify and Stripe revenue, and labels platform-reported conversions as platform-reported so nobody adds them up. The campaign-level view of the same data sits on the ad performance dashboard.
A short decision rule
If you know your creative works and you want reach, buy impressions. If you do not know whether it works, buy clicks until you do. If you know it works and you have the conversion volume to prove it week after week, hand the optimizer a target and let it buy. Then judge the result on cost per acquisition and blended return, never on the unit you happened to be billed in.
See how MixedMetrics works for your kind of team on the use cases page.
MIXEDMETRICS // GET STARTED
See this metric live across every channel
Connect your ad platforms, store, and billing through read-only connectors and watch blended ROAS, CAC, MER, LTV, and revenue by channel land in one live dashboard.