Metrics & KPIs

Cost Per Result

By the AdFlint research team · Last reviewed November 2026

Meta's spend divided by the count of whatever result the chosen optimization event defines, so the denominator changes with the campaign objective.

It is a variable metric wearing a single label. A traffic campaign's result is a link click; a sales campaign's is a purchase, so the column cannot be compared between ad sets with different objectives. The common misreading happens in rolled-up reporting, where mixed campaigns average into one cost per result that describes nothing in particular and hides both.

Key takeaways

  • Cost per result divides spend by whatever the ad set's optimization event counts, so the denominator changes by objective.
  • The figure also depends on the attribution window, so changing the window changes the number without the ads changing.
  • Never compare or average it across objectives such as traffic, leads, and sales.
  • Add a custom column for the business outcome you care about and judge by that.

In practice.

Cost per result is a column in Meta Ads Manager that divides your amount spent by the number of results, where a result is whatever the campaign's optimization event counts. In a sales campaign optimizing for purchases, a result is a purchase. In a traffic campaign, it is typically a link click. In a lead campaign, it is a lead. The column header often changes to say 'cost per purchase' or 'cost per lead', but the number lives in the same slot. That is the key point: the label is constant, and the thing being counted is not. Two ad sets side by side can show cost per result and be measuring entirely different events. Some campaigns have only one result type, which makes the column reliable; others allow several, and the column then follows the optimization event you chose.

The result for each ad set comes from its optimization goal, set when you build it. Meta then counts the matching events inside your attribution setting and divides. So the figure depends on three choices you made: the objective, the optimization event, and the attribution window. Change the window from 1-day click to 7-day click and the count of results rises, so cost per result falls, without the ads changing. Meta's developer announcement from October 2025 notes that windows such as 1-day click, 7-day click, 28-day click, and 1-day view remain available for fields including results, which shows the count is tied to the window. The label changing from 'cost per result' to 'cost per purchase' is a hint, not a guarantee, so open the settings and confirm the event.

Cost per result interacts with bidding. If you use a cost per result goal or cost cap, the number you set is a target for this same measured value, so the target and the report must use the same definition of a result. It also interacts with campaign mix: if one account runs traffic, engagement, and sales campaigns, the account-level cost per result averages a link click at $0.50 with a purchase at $40 and produces a number that describes nothing. Always read it at the level where the result is a single thing, usually the ad set or an identical group of campaigns. Bid controls such as cost cap use the same idea. If your target is set against purchases but your ad set optimizes for something else, the numbers will not line up.

The usual mistakes follow from that. Comparing cost per result across objectives is the first. Optimizing for a cheap result is the second: a campaign optimized for link clicks will deliver clicks at a low cost per result and produce few sales, while a purchase campaign shows a high cost per result and real revenue. The third is reading a rising number as a creative problem when the audience or the window changed. A fourth is forgetting that the column is Meta's own count, so it may not match your store or CRM. A rising cost per result is a symptom with many causes: audience saturation, higher auction competition, a creative that has worn out, or a tracking change.

To read it well, set the columns to show the specific action you care about, such as purchases and cost per purchase, alongside the generic column, and check they match. For each ad set, write down what a result is and what a result is worth to you. This week, open your three biggest ad sets, confirm what each one counts as a result, and set up a custom column for the business outcome you actually track, such as leads that book a call. Judge by that column, and use the generic one only within a single objective. Ask of every figure: what is counted, in what window, in which campaign. Three answers make the number usable. When a client or partner reports a cost per result, ask for the objective and event behind it first. The number is meaningless without them, and the question takes ten seconds.

Worked example

A salon sees a misleading blended number

Suppose a hair salon runs two Meta campaigns with $500 each. A traffic campaign gets 1,000 link clicks, so its cost per result is $0.50. A lead campaign gets 20 booking requests, so its cost per result is $25. Combined, the account shows 1,020 results on $1,000 spent, a cost per result of about $0.98.

That blended number is meaningless: it looks excellent because clicks swamp bookings. Looking at each campaign, the owner sees that the traffic campaign produced no bookings the salon could trace, while the lead campaign cost $25 per request. If one in three requests books, the real cost per booked client is about $75. The owner shifts budget to the lead campaign.

Cost Per Result compared with

The settings this gets confused with, and how to tell them apart.

Common questions.

What does cost per result mean in Meta Ads Manager?

It is amount spent divided by the number of results, where a result is whatever your optimization event defines, such as a purchase, lead, or link click.

Why is my cost per result different from my cost per purchase?

If the ad set optimizes for something other than purchases, the result is a different event. Cost per result only equals cost per purchase when purchases are the result.

Can I compare cost per result across campaigns?

Only if the results are the same event, counted with the same attribution window. Comparing a click campaign with a lead campaign is not meaningful.

Why did my cost per result change when I changed the attribution window?

Because the window controls which conversions count. A longer window counts more late conversions, so results rise and cost per result falls, even though the ads are the same.

Sources

You should not need to know this to advertise.

AdFlint handles the settings for you, inside the Google and Meta accounts you already own.

Next step: How AdFlint tracks and optimizes these numbers

Try AdFlint free