Attribution

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.

On this page

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 seeMeta's event or action typeMeta's definitionWhere 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 leadsonsite_conversion.lead_grouped"All On-Facebook Leads"Never left Facebook or Instagram
Contacts, bookings, applicationsContact, Schedule, SubmitApplicationContact by phone, chat or email; a booked appointment; a submitted applicationOn your site

Definitions are Meta's own, from its pixel reference and action types. 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:

CauseWhat happensHow to check
View-through creditA lead within 1 day of someone seeing an ad, with no click, countsCompare attribution settings: click only against click and view
Other channels in the pathSomeone clicked your ad, then came back from Google and filled the form. Meta and Google both count itCount leads once, in your CRM or site, by the visit's source
DuplicatesBrowser pixel and Conversions API both send the lead without a shared event_idCheck Events Manager for deduplication; see the Conversions API guide
Instant FormsOn-Facebook leads never visit your site, so your analytics never sees themRead them from Meta or your CRM, never from web analytics
Junk and repeatsFake details, test entries and people who send the form twiceCount unique emails or phone numbers in the CRM
Modeled conversionsMeta estimates some it cannot observe, for example after iOS opt-outsNo direct check; expect a gap that never closes

The attribution window explains most of the rest. Why Meta Ads and Shopify never match 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:

CampaignSpendLeads (Meta)Cost per leadQualifiedCost per qualified lead
Instant Form, broad$3,000150$2018 (12%)$167
Website form, quote request$3,00060$5033 (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.

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).
  3. Tag every ad's link with 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, 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

Spotted something wrong or out of date? Email hello@sporetag.com and we will fix it.