# Meta Ads cost per lead and signups: what Meta counts, and what to pay

> How Meta counts leads and signups, why Ads Manager's cost per lead differs from your CRM, and how to work out the most a lead is worth to you.

Source: https://sporetag.com/guides/meta-ads-cost-per-lead
By the Sporetag team. Updated October 23, 2026.

Meta's cost per lead is your spend divided by the leads Meta counts, shown in Ads Manager as **Cost per result** when an ad set is optimized for leads. Whether it is good depends on one number Meta cannot see: what a lead is worth to you, which is your close rate times the profit on a sale.

This guide shows which events Meta calls a lead or a signup, why its count rarely matches your CRM, and how to set the most you should pay, with a worked example.

## What Meta counts as a lead or a signup

Meta reports many actions, and several sound alike. The ones people mean by "leads" and "signups":

| What you see | Meta's event or action type | Meta's definition | Where the person is |
|---|---|---|---|
| Leads (website) | `Lead`, reported as `offsite_conversion.fb_pixel_lead` | "When a sign up is completed" | On your site |
| Registrations (website) | `CompleteRegistration`, reported as `offsite_conversion.fb_pixel_complete_registration` | "When a registration form is completed" | On your site |
| On-Facebook leads | `onsite_conversion.lead_grouped` | "All On-Facebook Leads" | Never left Facebook or Instagram |
| Contacts, bookings, applications | `Contact`, `Schedule`, `SubmitApplication` | Contact by phone, chat or email; a booked appointment; a submitted application | On your site |

Definitions are Meta's own, from its [pixel reference](https://developers.facebook.com/documentation/meta-pixel/reference) and [action types](https://developers.facebook.com/docs/marketing-api/reference/ads-action-stats/). Two points matter:

- **Meta's names overlap.** Meta defines `Lead` as a completed sign up, and lists "a person clicks on pricing" as an example. It is whatever your site sends under that name. Decide what each event means for you, write it down, and send the same event for the same thing every time.
- **The same signups arrive under several names.** Meta reports a registration as `complete_registration`, `offsite_conversion.fb_pixel_complete_registration` and on some accounts `omni_complete_registration`. Adding those columns together counts each signup two or three times. Pick one.

## Results and cost per result

Ads Manager's **Results** column counts whatever each ad set is optimized for: leads for a lead ad set, purchases for a sales ad set. **Cost per result** divides that ad set's spend by its results.

That makes cost per result reliable for one ad set and misleading across a campaign with mixed goals. A campaign with one ad set optimized for leads and one for landing page views has two kinds of result. Their sum is not a lead count, and spend divided by it is not a cost per lead. Read cost per lead from ad sets that count leads, or from a **Leads** column you add yourself.

## Why Meta's count differs from your CRM

Ads Manager will almost always show more leads than your CRM has from Meta. Each cause has a check:

| Cause | What happens | How to check |
|---|---|---|
| View-through credit | A lead within 1 day of someone seeing an ad, with no click, counts | Compare attribution settings: click only against click and view |
| Other channels in the path | Someone clicked your ad, then came back from Google and filled the form. Meta and Google both count it | Count leads once, in your CRM or site, by the visit's source |
| Duplicates | Browser pixel and Conversions API both send the lead without a shared `event_id` | Check Events Manager for deduplication; see the [Conversions API guide](https://sporetag.com/guides/meta-conversions-api-explained) |
| Instant Forms | On-Facebook leads never visit your site, so your analytics never sees them | Read them from Meta or your CRM, never from web analytics |
| Junk and repeats | Fake details, test entries and people who send the form twice | Count unique emails or phone numbers in the CRM |
| Modeled conversions | Meta estimates some it cannot observe, for example after iOS opt-outs | No direct check; expect a gap that never closes |

The [attribution window](https://sporetag.com/glossary/attribution-window) explains most of the rest. [Why Meta Ads and Shopify never match](https://sporetag.com/guides/meta-ads-vs-shopify-sales) walks through the same gaps for purchases.

## The most a lead is worth: worked example

Example numbers, made up for illustration. A home services company sells jobs worth $2,000 on average, with a 50 percent margin after materials and labor. Of the leads that come from ads, 10 percent become paying jobs.

Value of one lead = $2,000 × 0.50 × 0.10 = **$100**. Paying $100 per lead breaks even on the first job. Paying $60 leaves $40 per lead as profit.

Now two campaigns, compared the way Ads Manager shows them and the way the business sees them:

| Campaign | Spend | Leads (Meta) | Cost per lead | Qualified | Cost per qualified lead |
|---|---|---|---|---|---|
| Instant Form, broad | $3,000 | 150 | $20 | 18 (12%) | $167 |
| Website form, quote request | $3,000 | 60 | $50 | 33 (55%) | $91 |

On Ads Manager's number, the first campaign is two and a half times better. On qualified leads it is almost twice as expensive, and above the $100 ceiling. This pattern is common: easier forms bring cheaper leads that qualify less often. Judge by the lead your sales team would call, not by the cheapest form fill.

## Signups work the same way

For a free trial, newsletter or account signup, the value of one signup is the share that later pay times what a paying customer is worth. If 4 percent of trial signups become customers worth $600 in gross profit over a year, a signup is worth $24. (Example numbers.) Read cost per signup the same way as cost per lead: from ad sets optimized for signups, against that ceiling.

For subscriptions, judge channels by the revenue that stays, not the signups. See [SaaS attribution and MRR](https://sporetag.com/guides/saas-mrr-attribution).

## Published averages

Agencies and tool vendors publish average Meta cost per lead figures by industry. They differ widely from one report to the next, because each uses different accounts, lead definitions and periods, and some mix Instant Forms with website forms. Use them to sense-check a quote, never as a target. Your ceiling is the worked example above, with your own numbers.

## Set it up so the numbers hold

1. **One event per meaning.** `Lead` for a form that asks to be contacted, `CompleteRegistration` for an account or newsletter, `Schedule` for a booking. Optimize each ad set for the one that matters.
2. **Send it from the browser and the server** with the same `event_id`, so Meta counts it once ([Meta](https://developers.facebook.com/docs/marketing-api/conversions-api/deduplicate-pixel-and-server-events)).
3. **Tag every ad's link** with [UTM parameters](https://sporetag.com/guides/utm-parameters), so your analytics and CRM know the campaign and ad behind each lead.
4. **Count qualified leads in one place**, your CRM or site, and compare them with Meta's count per campaign each week.
5. **Send the outcome back.** Tell Meta which leads became customers with [offline conversions](https://sporetag.com/guides/offline-conversions-explained), so it can find more like them.

## Common questions

### What is a good cost per lead on Meta Ads?

One below what a lead is worth to you: your close rate times the profit on a sale. At a 10 percent close rate and $1,000 profit per sale, a lead is worth $100.

### Why is my cost per lead in Ads Manager lower than in my CRM?

Meta counts leads after views as well as clicks, leads other channels also touched, and some it models. Your CRM counts each person once. Compare the two per campaign with a click-only attribution setting.

### What is the difference between Lead and CompleteRegistration?

Meta defines `Lead` as a completed sign up and `CompleteRegistration` as a completed registration form. In practice, use `Lead` for people asking to be contacted and `CompleteRegistration` for accounts, trials and newsletters, and keep to it.

### Do Instant Form leads show in Google Analytics?

No. People who fill in an Instant Form never visit your site. Read those leads from Meta or your CRM.

### Should I optimize for the cheapest leads?

Only if they qualify at the same rate. Compare cost per qualified lead, or send qualified leads back to Meta and optimize for them.

## Sources

- Meta for Developers: [Meta Pixel standard events reference](https://developers.facebook.com/documentation/meta-pixel/reference), [Ads action stats (action types)](https://developers.facebook.com/docs/marketing-api/reference/ads-action-stats/), [Deduplicate pixel and server events](https://developers.facebook.com/docs/marketing-api/conversions-api/deduplicate-pixel-and-server-events). Checked October 2026.
- Example numbers are made up for illustration.

## Where Sporetag fits

Connect Meta Ads and Sporetag's Ad spend card shows Meta's leads and signups and their cost per campaign, labeled (Meta), beside the leads your site tracked, labeled (tracked). The two are never added together. More: https://sporetag.com/docs/meta-ads-spend
