Why your Meta campaign ROI drops from 4x to 1x mid-run (and which part of the setup causes it)
A Meta campaign that starts at 4x return and slides to 1x by week six isn't bad luck. It's a predictable failure with a specific cause, and most contractors who've been through it once don't realize what actually happened. They just know the leads got worse.
The short version: the campaign probably started by reaching real people with real intent, then trained itself to reach cheaper, lower-quality traffic instead. That shift happens gradually, invisibly, and it's almost entirely a function of how the campaign was built in the first place.
What "bot leads" actually means
The phrase gets used loosely, but the real problem isn't literal bots submitting fake forms. It's that Meta's algorithm, given the wrong optimization signal, starts finding people who look like "leads" by one definition while delivering nothing that resembles an actual customer.
Here's the sequence. An agency sets up your campaign optimized for form completions. In the first weeks, the algorithm learns from whoever submits the form. If a portion of those early submissions come from low-quality sources, such as people who click everything, spam-fill forms, or have no real buying intent, the algorithm treats them as the target. It then goes and finds more people who look like them. The pool shifts. Cost per lead often stays flat or drops, which looks like the campaign is working. But the jobs stop materializing from those leads.
One pattern from ASN's own sales call data captures this exactly: a contractor described getting "people looking for jobs instead of people looking for to-do work." The leads were real people. They just weren't buyers. The campaign had drifted.
The setup decision that causes the drift
Campaigns don't drift randomly. There's usually one configuration decision that sets the conditions for it.
The clearest culprit is optimizing for lead volume when you should be optimizing for lead quality. These are not the same signal. Volume optimization tells Meta "find me people who fill out forms." Quality optimization, done properly, tells Meta "find me people who behave like my paying customers." The difference in targeting destination, over the first 30 days of a campaign, is enormous.
The specific lever: when a campaign uses Instant Forms without filtering friction, it gets completions from anyone. A form that takes eight seconds to fill with zero qualifying questions is easy to complete, which is exactly why it produces high-sounding lead numbers that don't convert. Adding one or two qualifying questions, such as project type, timeline, or budget range, immediately reduces form completions. A lot of agencies avoid this because lower form completion counts look bad on a report. But that friction is doing real work. It's telling Meta that your buyer has some intent, not just an idle thumb.
The second factor is pixel setup, or more precisely, whether conversion events are firing at the right moment. If the pixel fires on form load instead of form submission, every visitor looks like a lead. If it fires on the wrong page, the same problem occurs. The algorithm trains on phantom conversions and finds more phantom traffic. This isn't theoretical. It's a configuration error that's common enough to account for a significant share of the "my leads got terrible mid-campaign" complaints contractors describe.
What good numbers look like versus what drift looks like
The Safe Step result on file at ASN gives a concrete reference point: 247 leads, $11 cost per lead, $2,800 total spend. That's not a cherry-picked number from a lucky month. It holds because the campaign was built to reach people matching a specific trade profile, not whoever was cheapest to reach.
For context on what drift looks like: a campaign that opens at $15 cost per lead, produces jobs at a reasonable clip, then slides to $9 cost per lead by week five while bookings drop is showing the classic drift signature. The number looks like improvement. The business result is the opposite. The algorithm found cheaper traffic, not better traffic.
What to watch for instead of raw CPL: contact rate and booking rate on the leads you actually receive. If you're calling 30 leads and reaching 4 of them, and booking 1, your campaign has drifted. If you're calling 30 leads and reaching 18 and booking 6, the targeting is still finding real people. The CPL number will tell you almost nothing about this.
What the agency should be doing about it (and usually isn't)
The fix isn't complicated, but it requires ongoing attention that flat-fee, low-touch management can't provide.
First, the optimization event should be tied to something downstream of a form fill wherever possible. If you have GHL or any CRM integration, firing a conversion event when someone is marked as a qualified lead, or when they book an appointment, gives Meta a much stronger signal than a form submission. That signal trains the algorithm toward real buyers.
Second, the Instant Form or landing page should have light qualifying friction built in from day one, not added later when the drift is already visible in the data.
Third, someone needs to be watching the audience composition and placement breakdown weekly. If a campaign is pulling disproportionately from Audience Network placements, particularly the off-Facebook ad network, lead quality almost always suffers. Audience Network is where a lot of accidental clicks and low-intent traffic originates. Excluding it is a standard practice that gets skipped more often than it should be.
The reason most contractors don't know this happened to them is that agencies report on CPL, not contact rate or close rate. The number they control looks fine. The number that matters to your business goes unreported.
What to ask before trusting any campaign with your money
If you've been burned before and you're considering another agency, the question to ask isn't "what's your CPL guarantee." It's "what optimization event are you using, and why." If they say "lead form completions" and stop there, that's worth pushing on. If they can't explain what signal they're training the algorithm toward, that's the setup that will drift on you by week five.
Also ask where they'll be running placement. "Automatic placements" is a default setting, not a strategy. Audience Network exclusions, placement testing, and conversion event setup are the unsexy specifics that determine whether a campaign holds its quality or slowly trains itself toward cheaper, emptier traffic.
ASN runs campaigns with all of this built into the standard setup, with no contract and no setup fee, so the first 30 days prove it before you're committed to anything. If you want to see how this applies to your trade specifically, the contact page is the right place to start.
ASN manages Meta ads for home service contractors with no setup fee and no contract. If you want to see what this looks like for your trade before committing to anything, the contact page is the right next step.
See how it works for your business