BlogB2B Marketing Attribution
Why Your Meta Ads Lead Quality Is Dropping, and the Fix
Three months ago your Meta campaigns produced qualified leads at €35, and today half the leads at the same price are unqualified or ghost the call. The root cause in how Meta optimizes, and the CRM-to-CAPI fix that retrains the algorithm on real buyers.

Contents
Summarise this article with AI
Opens the page with a ready prompt in:
Nothing is sent until you pick a service.
Three months ago your Meta lead gen campaigns were generating qualified leads at €35 each. Today they're still €35, but half of them are unqualified, ghost the calls, or aren't even your target customer.
The campaigns didn't change. Your targeting didn't change. Your funnel didn't change. And that is exactly the point: nothing had to change for the leads to get worse. The decay is the optimisation working correctly on the instruction you gave it three months ago.
Here's the real reason your Meta lead quality is dropping, how to confirm it is happening to you rather than guessing, and the technical fix that solves it permanently.
Quick Summary: Why Meta Lead Quality Decays
In short
Meta optimises towards whatever event you told it counts. If that event is a form submission, the algorithm gets steadily better at finding the cheapest people who submit forms, and the cheapest form submitters are the least likely to buy. The decay is mathematically guaranteed, not a bug. iOS and Safari make it worse by forcing Meta to fill the gaps with modelled conversions, so the algorithm trains on progressively noisier data and expands the audience to compensate. The fix is to change the signal: send the qualified lead and the closed deal from your CRM back through the Conversions API, with the fbclid and hashed contact data attached so Meta can match them. The algorithm then retrains on real buyers. Expect visible improvement in three to six weeks.
The Root Cause: Meta Optimizes for What You Reward
Meta's algorithm optimises for whatever you tell it is a conversion. If you've defined 'conversion' as a form submission, Meta will find more form submitters, not more buyers. That sentence sounds obvious and is almost always where the problem is, because a form submission is the only event most lead gen accounts have ever been able to send.
Think about what the algorithm is actually doing. It has a budget, a bid target and a definition of success, and it is searching a population of billions for the cheapest people who match that definition. In the first weeks of a campaign it has little data, so it casts a reasonably wide net and finds a mixed group: some serious buyers, some browsers, some people who fill in every form they see.
Then it learns. Every form submission teaches it something about who submits forms cheaply, and it steers towards those people. The serious buyers were never the cheapest segment, because serious buyers are also being bid on by everyone else selling to them. Over a few months the algorithm converges on the people it can convert most cheaply, which is precisely the segment that fills in forms without intent. Your cost per lead holds beautifully while your cost per customer quietly doubles.
The uncomfortable version
A campaign whose lead quality is decaying is not broken. It is succeeding at the objective you set. The objective is the thing that is wrong.
How iOS and Modelled Conversions Compound It
The second mechanism runs underneath the first and makes it faster. iOS restrictions and Safari's tracking prevention block a significant share of Meta Pixel data, so a proportion of the conversions that do happen never reach Meta as observed events.
Meta compensates with modelled conversions: statistical estimates of what probably happened, based on the events it can still see. That is a reasonable engineering response to a real problem, and it is also lower-quality training data by construction. A modelled conversion tells the algorithm roughly how many people like this converted; an observed one tells it exactly who did.
Train on estimates and the audience model gets blurrier. A blurrier model expands rather than sharpens, because the algorithm can no longer tell two neighbouring segments apart. So the targeting broadens, quality drops, and the next round of training happens on data from that broader audience. The decay is gradual and compounding, which is why most marketers only notice once it is materially worse, and why the campaign that produced it looks fine in every report they have.
Confirm It Is Happening Before You Fix It
Lead quality is the thing everyone complains about and almost nobody measures, so it is worth spending an hour proving the pattern before you rebuild your tracking. Four checks, all of which you can do with what you already have.
- Qualification rate by month of first touchExport CRM leads from paid social, group them by the month they arrived, and calculate what share reached qualified in each cohort. A healthy account is flat. A decaying one falls month over month while cost per lead stays put.
- Cost per qualified lead, not cost per leadDivide the month's Meta spend by qualified leads rather than by form fills. This is the number that has been getting worse, and it is usually the first time anyone has looked at it.
- Who the leads actually areRead fifty recent leads. Wrong company size, wrong country, wrong job title and obviously fake entries are the signature of an algorithm optimising on submission rather than intent.
- The modelled share in Events ManagerIf a large part of your reported conversions is modelled rather than observed, the second mechanism is active and the fix below matters more, not less.
If the qualification rate by cohort is falling, you have confirmed it. If it is flat and the leads are simply expensive, you have a different problem and this article will not fix it.
The Permanent Fix: CRM-Validated Signals
Send Meta a different conversion signal. Instead of 'form submitted = success', tell Meta 'qualified lead = success' or 'closed deal = success'. That means connecting your CRM to the Meta Conversions API so deal-stage events flow back with enough identity attached for Meta to match them to the original click.
Two things make this work where audience tweaks and creative refreshes do not. First, it changes what the algorithm is searching for, at the level the searching happens. Second, it feeds real observed events back into a system that has been increasingly reliant on estimates, so the model sharpens instead of blurring.
Which stage you send matters. Sending the closed deal is the purest signal and the slowest: if your sales cycle is ninety days, Meta gets one data point per lead per quarter, which is not enough volume to learn from. Sending the qualified lead is usually the right trade, because it arrives within days and is already a much better filter than a form submission. Many accounts send both, weighted.
Implementation: Three Steps
Step 1: Get the click ID into the CRM
Nothing downstream works without this. Meta needs to connect the conversion you send back to a click it already knows about, and the fbclid is what makes that connection reliable.
- Capture the fbclid at the moment of the click and persist it in first-party storage, server-side rather than in a JavaScript cookie that Safari will expire in seven days.
- Pass it through every form submission, including the ones on landing pages your agency built and the booking tool nobody remembers connecting.
- Store it on the CRM lead record so it survives the full sales cycle. A click ID that dies with the session is a click ID you cannot send back.
Step 2: Send the stage changes to Meta
- Fire on the stages that mean something: qualified, meeting booked, closed won. Not every stage, or you are back to rewarding volume.
- Map them to real events. Schedule when a meeting is booked, Purchase with a value when a deal closes, and a Lead event with a custom qualification parameter in between.
- Send hashed email, phone, name and city alongside the fbclid. Match quality is what decides whether the event is used, and identity is what drives match quality.
- Check event match quality in Events Manager. Aim for 7 or above; below that Meta is downgrading or discarding your events and the whole exercise is wasted.
Step 3: Leave it alone and watch the right number
The most common way this fails is impatience. Cost per lead will rise when you switch the optimisation event, because qualified leads are more expensive to find than form fills. That is the fix working, and it is also exactly when people panic and switch back.
What to expect, and when
| Period | What happens | What to watch |
|---|---|---|
| Weeks 1-2 | CRM events appear in Events Manager with a match quality score. Nothing has changed in performance yet. | Event match quality at 7+, and event volume matching your CRM. |
| Weeks 3-6 | The algorithm retrains. Cost per lead rises, qualification rate rises faster. | Cost per qualified lead, not cost per lead. |
| Months 2-3 | Audience targeting has re-converged on buyers. Cost per closed deal falls below where it started. | Cost per closed deal, and pipeline value per euro of spend. |
Do not restart the learning phase every week
Changing the optimisation event, the budget or the audience during the retraining period puts the campaign back into learning and resets the clock. Set it, then leave it for a full six weeks.
What Does Not Fix It
Every one of these gets tried first, because each is cheaper than rebuilding the signal. None of them addresses the mechanism, so each buys a few weeks at most.
- Narrowing the audience. Meta's delivery will find the cheapest converters inside whatever boundary you draw. A smaller box does not change what it is optimising for inside the box.
- Refreshing the creative. Worth doing for fatigue, irrelevant here. New creative shown to the same optimisation target reaches the same people.
- Adding qualifying questions to the form. This helps a little and costs volume. It also teaches Meta nothing, because the event you send back is still 'form submitted'.
- Raising the bid or the budget. Buys more of the same leads, faster.
- Switching to Lead Ads or away from them. Changes the friction, not the objective. Both work fine once the signal is right.
- Excluding converters. Useful hygiene, no effect on who the algorithm considers a success in the first place.
The pattern is the same in every case: they change the input while leaving the definition of success alone. The definition is the problem.
How LeadJourney Closes the Loop to Meta

LeadJourney captures the fbclid server-side at the first visit, so it survives Safari's seven-day cookie cap, iOS restrictions and ad blockers, and writes it onto the CRM record along with the campaign, ad set and creative. That is step one done without hidden fields on every form.
Native CRM integrations with HubSpot, Salesforce, Pipedrive, Close and more (plus any other CRM by webhook) read your pipeline stages. You choose which ones count as a conversion, and LeadJourney sends them to the Meta Conversions API with the fbclid and the hashed identity data attached, plus the deal value when a deal closes. The same stages go to Google, LinkedIn and Microsoft at the same time, so you are not fixing one platform while the other three keep training on form fills.
The reporting side matters as much as the sending side. Because the CRM stages are attributed back to the campaign, ad set and creative, you can watch cost per qualified lead during the retraining period rather than cost per lead, which is the only way to tell the fix working from the fix failing. Setup takes about 21 minutes, no developer, with a 14-day free trial.
Further Reading
Carry on with the Meta Conversions API for lead generation, event match quality explained and how to send CRM data back to Meta and Google. For the wider problem, see the true cost per lead and how to increase lead quality in performance marketing.
In the glossary
FAQ
Frequently Asked Questions
The questions advertisers ask when Meta lead quality starts sliding.
Why is my Meta lead quality getting worse over time?
Because the algorithm is getting better at the job you gave it. If a form submission is defined as the conversion, Meta will keep finding cheaper form submitters, and the cheapest form submitters are the least likely to buy. Nothing in your targeting has to change for the leads to get worse. The decay is the optimisation working.
How does iOS make Meta lead quality worse?
iOS restrictions and Safari's tracking prevention block a share of pixel data, and Meta fills the gap with modelled conversions. A modelled conversion is a statistical estimate rather than an observed event, so the algorithm trains on progressively noisier data and expands the audience to compensate. The result is broader targeting and weaker leads.
How do I fix Meta lead quality?
Change the signal. Send Meta the qualified lead or the closed deal from your CRM instead of the form submission, through the Conversions API, with the fbclid or hashed contact data attached so it matches. Meta then optimises towards people who resemble your buyers rather than people who resemble your form fillers.
Should I optimise for qualified leads or closed deals?
Usually qualified leads, because of volume. Meta needs a steady stream of conversion events to learn from, and if your sales cycle is ninety days then closed deals arrive far too slowly to train on. A qualified lead arrives within days and is already a far better filter than a form submission. Send closed deals as well, with their value attached, so the revenue side is measurable even when it is not the optimisation event.
How long does it take for lead quality to improve?
Expect CRM events to appear in Events Manager with good match quality within the first two weeks, visible improvement in lead quality between weeks three and six as the algorithm retrains, and cost per closed deal falling over the following two to three months. It is not a same-week fix and it does not need to be repeated. Expect cost per lead to rise while cost per qualified lead falls, and judge it on the second number.
What event match quality score do I need?
Aim for 7 or above in Meta Events Manager. Below that Meta is discarding or downgrading matches, so the CRM events you send never reach the optimisation you sent them for. Sending hashed email, phone, name and city alongside the fbclid is what usually moves the score into range.
Keep reading
More from the blog
B2B Marketing AttributionB2B Marketing Attribution: Models, Data and Revenue (2026)
A B2B deal closes months after the click, is bought by a committee and is recorded in the CRM rather than in any ad platform. This guide covers the whole discipline: what B2B marketing, revenue and sales attribution each credit, lead-level against account-level architecture, pipeline stages as conversions, what your CRM does on its own, build or buy, and a seven step implementation.Read the article22 min read
B2B Marketing AttributionCross-Channel Attribution: What It Is and Why It Breaks
Meta claims 118 conversions, Google claims 96, LinkedIn 34 and Microsoft 12. The CRM has 214 leads. Cross-channel attribution is the work of turning four honest, incompatible answers into one, and this guide covers the four methods that try it, what each of them can and cannot see, and the setup that decides whether any of them holds.Read the article14 min read
B2B Marketing AttributionWhy GA4, Meta and Google Never Agree With Your CRM
Four dashboards, four numbers, the same week, and somebody has to decide which one is real. The seven structural reasons the counts can never match, from attribution windows and view-through conversions to timestamps, identity and definition drift, then the useful half: which number to trust for which decision, and a reconciliation your team can run this week.Read the article13 min read
Retrain the algorithm
Stop the lead quality decay. Fix it permanently.
Stop watching Meta lead quality drop quarter after quarter. Send qualified-lead and closed-deal signals from your CRM back to Meta CAPI and retrain the algorithm on real buyers.


