Sales

How to Know Which Ad Campaigns Bring Customers

To know which ad campaigns bring customers, link every lead to its campaign, close each deal in the CRM with a value, and compare cost per customer, not clicks.

Luca Bosso
Luca Bosso
|10 min read
CRM dashboard comparing ad campaigns by leads, customers acquired and revenue

To know which ad campaigns bring customers, every lead has to keep the campaign it came from, every deal has to be closed in your CRM as won or lost with a value, and you then divide each campaign's spend by the customers it produced, not by its clicks or leads. The ad platform can only count what happens on the platform; the sale happens later, in your CRM, so that is where the two numbers have to meet.

If today you see clicks and cost per lead in Meta or Google Ads but cannot say which campaign paid for itself last quarter, by the end of this guide you will have a working chain from ad spend to signed customer, and a monthly figure to move budget on.

What you need before you start

  • Admin access to your ad accounts. For Meta, a profile with full control of the business account and the Page; for Google Ads, edit access to the account. If an agency runs the campaigns, ask for your own login.
  • A CRM where deals are closed, not just leads collected. Attribution stops at the last step that gets recorded. If deals are won in a chat and never marked in the CRM, no report can count them.
  • A deal value on every won deal. A number, even a rough one, entered when the deal closes. Without it you can count customers but not revenue.
  • A naming rule for campaigns. Something like service_audience_month written the same way everywhere. Names like "Campaign 3 copy" make every report unreadable.
  • One person responsible for closing deals as won or lost. Attribution depends on outcomes more than on tracking.

The three numbers that matter

Most small teams judge campaigns on the first number in the table below because it is the only one the platform shows. The decision belongs on the second and third.

MetricWhat it measuresWhere you read it
Cost per leadSpend divided by contacts collectedAd platform, or the CRM if spend is connected
Cost per acquired customerSpend divided by deals won from that campaignCRM, once leads keep their campaign and deals are closed
Revenue per campaignSum of won deal values traced to that campaignCRM, from the deal values
Close rateWon deals divided by leads from that campaignCRM pipeline, filtered by source

An example to make it concrete. Imagine a six-person travel agency running two campaigns at the same monthly spend. The first brings 80 leads at a low cost per lead; the second brings 30. If the first produces 2 bookings and the second 6, the "expensive" campaign costs a third as much per customer. The ad platform would have told you to scale the wrong one.

Facebook and Instagram campaigns with Meta lead forms

This is the case where attribution is closest to automatic, because the lead never leaves Meta before reaching you, and the campaign data can travel with it.

  1. Connect Meta Business from the CRM settings. In Flusia the connection starts from the Meta Ads integration: you authorise access from the settings with the profile that manages the ad account, with no code involved.
  2. Choose which campaigns and forms feed the pipeline. Switch on the live ones first, not the whole history: old test forms only add noise to the numbers.
  3. Check that every new lead carries campaign, ad set and ad. Open the first lead that arrives and look at its source details. In Flusia each Meta lead is linked to its campaign, ad set and single ad, and lands in the pipeline already assigned to a salesperson. If you have not set up the lead flow yet, the field mapping and assignment are covered in the guide on sending Facebook and Instagram leads to a CRM.
  4. Close every deal with an outcome and a value. Won with the amount, or lost with a reason. This is the step that turns a list of contacts into a measurement.
  5. Read cost per lead, cost per acquisition and revenue per campaign side by side. Marketing Intelligence in Flusia joins the spend from the connected ad account to the deals closed in the CRM, so for each campaign you see these figures in the dashboard and measure return on the closed deal, not on the click. At this point you will see which campaigns produce customers and which only produce form submissions.

A useful side effect: once your best customers are in the CRM, you can build custom audiences on Meta from CRM segments, so campaigns look for people similar to those who actually bought.

Campaigns that send people to your website

Many campaigns point to a landing page instead of an instant form. Here nobody hands you the source: the visitor arrives at your site and fills in your form, and the campaign has to be carried across.

  1. Add UTM parameters to every ad destination URL. At minimum utm_source (for example facebook or google), utm_medium (paid) and utm_campaign with the campaign name following your naming rule. Keep the values lowercase and consistent: Facebook and facebook count as two sources in most reports.
  2. Make sure your site form saves the UTM values with the contact. In Flusia the website form creates the lead with its source and UTM already attached. If your form is built differently, the procedure for connecting it is in the guide on connecting your website contact form to the CRM.
  3. For Meta traffic, check the automatic tracking. Flusia applies automatic UTM tracking to leads that reach the website through Meta campaigns, so they are attributed like form leads. Open a recent contact and confirm the campaign is there.
  4. Send yourself a test visit through the ad URL. Click the real link, fill in the form with a test address such as test@example.com and check that the lead shows the campaign. Then remove the test contact so it does not count.
  5. Close the deals and read the same three numbers. From here the work is identical to the Meta form case.

Search campaigns bring higher intent leads, so they are often the ones where cost per lead looks high and cost per customer looks good. You only find out if the campaign stays attached to the lead.

  1. Use a consistent UTM scheme on every campaign. You can set the parameters once at account level with the final URL suffix in Google Ads, so every ad inherits them. Use the same utm_source and utm_medium values every time.
  2. Carry the campaign into the CRM. For a landing page, it is the website form reading the UTM values; for Google Ads lead forms and calls, the routes are described in the guide on getting Google Ads leads into your CRM.
  3. Log phone calls with their source. A call from an ad is still a lead. Whoever answers creates the record and sets the source while talking, otherwise search campaigns will look worse than they are.
  4. Compare Google and Meta on cost per acquired customer. In Flusia, Marketing Intelligence covers both Meta and Google Ads, so the two channels can be judged on the same figure instead of on their own platform metrics.

Alternative method: a spreadsheet with source and UTM

If you are not ready for a CRM, you can do a simpler version with a shared spreadsheet. It is better than nothing, and it is honest to say where it breaks.

  1. Create one row per lead with these columns: date, name, source, utm_campaign, outcome (open, won, lost), deal value, close date.
  2. Fill the campaign from the form email or the ad platform export every day, not at month end.
  3. Add a second sheet with monthly spend per campaign, copied from Meta and Google Ads.
  4. Once a month, count won deals and their value per campaign and divide spend by won deals.

The limits are real. Someone has to copy every lead by hand, and the day they forget, the numbers drift. Outcomes are updated late or never, because the spreadsheet is not where the sales work happens. Phone leads are usually missing. And the ad set and single ad are almost always lost, so you can compare campaigns but not the ads inside them. If you find yourself spending an hour a week reconciling the sheet, that is the moment to move it into a CRM.

Who we are and who this is for

Flusia is an Italian CRM for small and medium businesses and agencies that sell services: leads from Meta forms and website forms land in the pipeline with their source, deals are closed with a value, and Marketing Intelligence connects ad spend to closed deals per campaign. It is built for small teams that run their own campaigns or work with an agency. Marketing Intelligence is part of the Matrix plan, described on the pricing page, and you can try Flusia free for 30 days with no card required; during the trial you see everything in Matrix.

Common mistakes

Judging campaigns on cost per lead. It is the cheapest number to read and the easiest to misread. A campaign with cheap leads that nobody reaches is a cost, not a win. Move budget only on cost per acquired customer.

Leaving deals open forever. If half the leads from a campaign have no outcome, the report shows a close rate that is simply missing data. Close them as won, lost or "to revisit" with a date, as you would across the whole sales pipeline.

Changing campaign names halfway through. Renaming or duplicating campaigns with new names splits the history in two. Decide the naming rule before launch and keep it.

Reading results too early. Some services take weeks from lead to signature. Judge a campaign on leads that have had time to close, not on last week's.

How long it takes, and what comes next

Connecting Meta and choosing campaigns and forms takes around fifteen minutes; adding UTM parameters to your ads and testing the site form takes another thirty. The part that takes longer is the habit: closing every deal with an outcome and a value, every week. After one full sales cycle you will have your first trustworthy cost per customer per campaign.

The next step is to see it on your own campaigns: try Marketing Intelligence on your Meta and Google Ads campaigns free for 30 days with no card required, or ask for a demo to see it with your own data first.

Frequently asked questions

Why does Meta show more conversions than I actually got? Ad platforms count conversions with their own rules, including people who saw an ad and converted later. Your CRM counts only the deals you closed. When the two disagree, the CRM is the number to make decisions on.

Can I see which single ad brought a customer? Yes, if the lead arrives with its campaign, ad set and ad and the deal is closed in the CRM. Leads copied in by hand usually lose that detail.

What is a good cost per acquired customer? It depends on what a customer is worth to you. Compare it with the average value of a won deal from that campaign: if acquiring a customer costs a small share of what they pay you, the campaign is worth keeping.

Do I need UTM parameters if I only use Meta lead forms? Not for the form leads themselves, because the campaign travels with the lead. You need them as soon as any campaign sends people to your website.

Try Flusia free for 30 days

No credit card required. Setup in less than 24 hours.

Get started

Share this article

Written by

Luca Bosso

Luca Bosso

Founder of Flusia

Related articles