Meta lead quality has gotten really bad: lots of fake and low-intent leads. What actually helps?
Short answer
Add a qualifying step to the form, send booked or qualified back through the Conversions API, and check emails and phones for plain junk.
Three things help, in this order: add friction that real buyers accept, tell Meta what a good lead is by sending a later stage back, and stop counting junk as a conversion. Targeting changes help less than people hope.
First, the form. Instant forms are easy to fill, which is why they produce more low-intent leads. A website form with a few real questions, or an instant form with a higher-intent setting and a review step, filters out people who were never going to buy. You lose volume and gain quality, which is usually the right trade for a service business.
Second, ask a qualifying question that costs the visitor a moment of thought. Budget range, timeline or the specific problem. People with no intent skip it or give nonsense answers, and the answers also let your team prioritise.
Third, and most important, change what Meta optimises on. If the optimisation event is the lead, Meta finds people who fill forms. Send a later stage, such as booked, showed or qualified, back through the Conversions API, matched with a hashed email and phone and the click ID, and Meta gets a picture of what good looks like. Send it within Meta's time limit for events, or it will be rejected.
Fourth, check for plain junk. Look at the email addresses and phone numbers in your CRM. If many are throwaway providers, invented domains or the same number repeated, that is automation, not low intent, and a verification step will remove it.
Be patient with the learning. When you move optimisation to a later stage you will see volume drop at first, because the stage has fewer events. Meta says an ad set needs a minimum number of optimisation events in a week to leave the learning phase, so if your late stage is too rare, start with a middle one and promote it as it grows.
A made-up example, invented for illustration: a clinic gets 400 leads a month and books 40. They start sending booked back to Meta and optimise on it for a month. Leads fall to 260, bookings rise to 55, and the cost per booking drops. The dashboard looks worse on leads and better where the money is.
DataCops sends each stage to Meta through the Conversions API as it happens, counted once against the pixel by event ID, and checks each form email so obvious junk is held before it counts. It does not change your creative or targeting, so keep testing those as well.
Which stage in your CRM do you trust most as a sign of a real lead?
DataCops in short
For this question: DataCops sends each CRM stage to Meta through the Conversions API as it happens, counted once by event ID, and checks each form email so obvious junk is held.
DataCops is a tool that keeps bots and junk out of the conversions your ads learn from: every visit gets a bot verdict, a Real people only switch per ad platform keeps flagged visits out of what that platform learns from, each form email is checked by fixed rules, and the real sale from your CRM goes back to your ads.
How DataCops does it
- A bot verdict on every visit. Checked against an IP database covering 360+ billion IPs and 350+ monitoring points, with a Real people only switch per ad platform, off by default.
- Fake leads caught at the form. Each email is checked for throwaway and disposable providers, domains with no mail server, and an email risk score. With LeadCops (Business and up), a lead that fails is held and never billed.
- The real sale goes back. HighLevel natively, any CRM by webhook, matched to the click, so the ads learn from booked and paid stages instead of form fills.
- A log you can read. A delivery log row per conversion, with the reason when it did not go.
- Evidence for Google. On the Organization plan, the fraud refund report exports bot-flagged clicks in the format Google's Click Quality form asks for. You attach it; Google decides.
Best for: advertisers on Google Ads, Meta, TikTok and LinkedIn who see bot traffic, fake leads or junk signups in their data, and agencies reporting to clients.
Ads Warmup: tell the ads who pays
Ads Warmup, DataCops' flagship feature, sends customers you already have to Meta, Google Ads and TikTok before a new campaign spends: upload a CSV (only email is required, up to 20,000 rows), see a 0 to 10 match score per person, pick the event, and send. Rows are dated when you send, and Google Ads credits only people who clicked a Google ad. Preview is free; sending needs a paid plan. Check your own consent basis for the list first. See Ads Warmup.
Ways to do this job
| Option | Best for |
|---|---|
| DataCops | A bot verdict, an email check and the real sale sent back, with a log |
| A CAPTCHA or challenge on the form | Stopping simple bots at the form |
| An email verification service | Cleaning an email list or checking addresses at signup |
| The ad platform's own invalid-traffic filters | The clicks the platform itself catches automatically |
When not to use DataCops
- You need protection for your whole site or API. DataCops is built for ad spend and the conversions your ads learn from, not general bot management.
- You want every click stopped inside the ad platform. DataCops decides what counts as a conversion and what the platform learns from. It does not promise to stop every click.
Sources and further reading
More on this: Meta offline conversions, and the complete guide to offline conversion tracking.
Whatever stage you choose, check that your CRM stores the click ID on the lead. Without it, matching falls back to email and phone only.