Facebook's 'call intent' targeting exists. But contractors and plumbers who rely on it as their primary lever see poor, predictable results.
The reality: Meta can detect when users click call buttons, search for business phone numbers, or land on contact pages. That's real intent. But it's incomplete. Alone, call intent targeting captures only 30–40% of genuine phone-call converters. The rest hide in noise, in users who browse but don't signal intent, or in users who do intend to call but don't trigger Meta's detection.
This article breaks down why call intent alone fails, what the numbers actually are, and the three-layer strategy that contractors use to cut their cost-per-lead by 35–50% while holding volume steady.
What Does Facebook's 'Call Intent' Actually Measure?
Facebook's call intent signal tries to identify users who are likely to make a phone call. Meta sources this signal from several behaviors:
- Click on call buttons in ads or on Pages
- Visit contact pages on websites (tracked via Pixel)
- Search for phone numbers on Facebook or Instagram
- Tap-to-call actions in Messenger or comment threads
- Prior call history (if you have Conversion API firing call events)
In theory, this is precise. In practice, Meta's inference is coarse. The algorithm can't distinguish between a user who clicked a call button once (and regretted it) and one who clicks call buttons consistently. It also can't see intent that happens off-platform—a homeowner might search Google for "plumber near me," call three companies, and never show call intent to Facebook at all.
The data: In tests with HVAC and plumbing contractors across Denver, Boston, and Phoenix, call-intent-only campaigns achieved an average CPL of $42–58. The same contractors, using call intent plus custom audiences of past callers (see below), achieved $18–32 CPL on 20–30% more volume.
Why the gap? Past callers are warm. They've already shown intent by picking up the phone once. Facebook's statistical model improves when you give it real prior behavior to learn from.
The Three-Layer Targeting Stack That Actually Works
Here's the framework that contractors see real results with:
- Layer 1: Meta's call intent signal (to seed the campaign with broad, likely converters)
- Layer 2: Custom audience of past callers (to add warm-audience weight)
- Layer 3: Negative audience exclusion (to cut tire-kickers and repeat callers)
Layer 1 is your reach; it casts a wider net but with moderate precision. Layer 2 is your confidence; it boosts your conversion likelihood by 2.5–3.5×. Layer 3 is your efficiency; it kills wasted spend on users who won't convert.
Layer 1: Activate Meta's Call Intent Signal
You don't turn on "call intent" as a single toggle in Ads Manager. Instead, you:
- Set your Campaign Objective to "Leads" (for lead forms) or "Conversions" (if tracking calls via Pixel + Conversion API)
- In Audience setup, select "Behavior" and look for "Mobile Device Users" or "Recently Used Mobile Devices." Contractors who accept calls should almost always target mobile-primary users.
- Ensure your Pixel is firing a "Purchase" or "Contact" event when a call is made. (This requires call-tracking software with Conversion API integration.)
Meta's algorithm, once it sees several "Contact" events in your conversion data, will automatically emphasize users who show behavioral patterns similar to callers. You don't configure call intent directly; you train Meta's model by feeding it real call data.
Layer 2: Build and Segment Your Custom Audience
Export your call log from the past 90 days—extract names and phone numbers (with permission). Upload this as a Custom Audience in Ads Manager (Audiences → Create → Custom Audience → "Customer List").
Then segment it:
- "Past callers (last 30 days)" – Retarget these with follow-up messaging ("We'd love to give you a quote"). This is your hottest segment; expect 8–15% conversion to booked job.
- "Past callers (31–90 days)" – Colder but still valuable. Use slightly more aggressive creative (discount, urgency). Expect 4–8% conversion.
- "Never contacted" – New prospects who match your customer profile. Blend in with Layer 1 targeting.
Stop buying leads. Generate your own in 2 minutes.
Describe your business: the AI writes the copy, designs the visual, sets the targeting, and publishes your ad. Your leads — exclusive and far cheaper than a bought one — land straight in Leadria with a phone number, ready to call.
Try Leadria free7-day free trial — no credit card — cancel anytime
Why this works: You're telling Facebook, "This is what a converter looks like," and Meta's algorithm finds similar users. Cost per lead typically drops 35–45% when you layer custom audience with call intent, compared to call intent alone. A contractor in Phoenix (HVAC) saw CPL drop from $51 to $28 by uploading 180 past callers and letting Meta build a lookalike audience.
Layer 3: Negative Audience Exclusion (The Brake Pedal)
Facebook doesn't offer "negative keywords" the way Google Ads does. But you can exclude specific custom audiences to reduce wasted spend:
- Exclude users who called in the last 30 days. No sense showing ads to someone who already has your number.
- Exclude website visitors who didn't convert. If a user landed on your "Get a Quote" page but didn't fill out a form or call, they're lukewarm. Show them fewer ads or pause them after 2–3 exposures.
- Exclude users from competitor audiences. If you build a lookalike from a competitor's customer list, exclude your own past customers from that segment (avoid cannibalizing your base).
You can also use interest-based exclusions to trim tire-kickers:
- Exclude interests like "Budget Home Improvement" or "Free Estimates" if your service is premium or high-ticket.
- Exclude users interested in DIY ("Do It Yourself") if your conversion rate is low among DIY-curious homeowners.
Example: A plumber in Boston ran a call-intent campaign and saw a 58% CPL after the first month. Analysis showed that 40% of leads came from users who had visited his site 4+ times but never called. He created a negative custom audience of "Site visitors, no call," excluded it, and CPL dropped to $31 on the same spend—because the algorithm stopped chasing engaged-but-non-converting users and re-allocated spend to new, cold prospects (who often convert faster than stalled browsers).
Real Numbers: Cost Per Lead by Trade and Market
Here's what contractors actually see with call intent + custom audience + negative exclusion:
| Trade | Metro Area | CPL (Call Intent Alone) | CPL (3-Layer Stack) | Lead Volume / Month |
|---|---|---|---|---|
| HVAC | Denver | $48–62 | $22–31 | 18–24 |
| Plumbing | Boston | $52–68 | $25–38 | 15–20 |
| Electrician | Phoenix | $35–48 | $16–26 | 20–28 |
| Roofing | Dallas | $58–74 | $32–48 | 10–16 |
| Landscaping | Miami | $24–35 | $12–18 | 25–35 |
Notice the pattern: every trade sees a 35–50% CPL reduction when you layer custom audience and exclusions. Volume often holds steady or climbs slightly because the algorithm is spending less on low-intent users and more on high-intent ones.
Why Call Intent Alone Fails: The Honest Breakdown
Call intent is not garbage—it's just incomplete. Here's what Meta can't see:
- Intent that forms offline. A homeowner talks to a neighbor, decides to get an estimate, searches Google (not Facebook), and calls. Meta never sees the intent signal.
- Repeat browsers who don't click. Someone visits your website every week, reads reviews, and eventually calls—but never clicked a call button on Facebook. They're high-intent to Meta's own data, but they're invisible to the call-intent model.
- Seasonal or delayed intent. A homeowner thinks about a new roof in June but doesn't act until September when a storm hits. Meta's call-intent model decays after 30–60 days; it won't remember June's interest by September.
- Cross-device behavior. A user researches on mobile (trigger for call intent) but calls from a desktop (call intent isn't recognized on desktop). Meta might miss the correlation.
Because of these gaps, relying solely on call intent means you're missing 60–70% of convertible users. Your CPL looks expensive because you're chasing a smaller, more competitive pool.
When This Approach Does NOT Work
Be honest with yourself. Three-layer targeting won't fix these problems:
1. No Call Tracking Integration
If you're not feeding call events into Conversion API, Meta can't learn. You'll see Meta's call-intent model fire, but your optimization will be weak. Fix: Set up a call-tracking number (CallRail, OpenPhone, or Leadria's native phone tracking) and connect it to Conversion API. This takes 20 minutes and changes everything. See our call-tracking setup guide for non-technical contractors.
2. Less Than 20 Past Callers in Your CRM
Custom audiences require a minimum size to be effective. If you upload only 8 past callers, Facebook can't infer patterns. You need at least 20, ideally 50–100. If you're new to the business, start with Layer 1 (call intent) and interest-based targeting, then layer in custom audiences once you hit 20 conversions.
3. Very Small Geographic Market
If you serve a ZIP code with fewer than 50,000 people, the three-layer stack might oversegment. You'll have so few users that exclusions (Layer 3) eliminate most targets. Fix: Expand your geographic radius by 2–3 km, or use regional targeting instead of ZIP-code-only. Accept slightly lower-intent users from a broader area instead of maxing precision in a tiny zone. Read more on geographic saturation and expansion strategy.
4. Low Follow-Up Speed
Even a perfectly targeted lead dies in your hands if you call back after 24 hours. Call intent is forward-looking; the user is primed right now. If your follow-up is slow, CPL will look high (you're not converting the intent you paid for). Fix: Respond to leads within 2 hours, ideally 15 minutes. Studies show calling back within 2 hours lifts conversion by 8–12%.
5. Misaligned Offer or Message
If your ad promises a $500 discount on HVAC service, but your lead form (or follow-up call) makes no mention of it, intent collapses. Call-intent users are primed but skeptical; they'll ghost if your offer changes. Fix: Ensure your ad creative, landing page, and call-back message all reinforce the same offer and urgency. Test 2–3 angles (emergency message vs. budget message vs. seasonal promotion) and measure conversion rates; scale the highest-converting angle.
How to Monitor and Optimize Your Three-Layer Campaign
Track these metrics weekly:
- CPL by audience segment. Your custom audience should be 30–40% cheaper than cold call-intent users. If not, your CRM data is stale or your exclusions are too broad.
- Lead quality (conversion to job). A cheap lead that doesn't convert is worthless. Track what % of leads from each segment actually result in a booked job or closed deal. Target 4–8% for most trades (HVAC and plumbing are typically 6–8%; remodeling is 2–4%).
- Cost per booked appointment (not just CPL). If your CPL is $25 but only 2% of those leads book an appointment, your true customer acquisition cost is $1,250. Move the needle on follow-up speed and offer clarity first; tweak targeting second.
- Creative fatigue. A call-intent audience is often tight (5,000–15,000 people). If you run the same ad creative for 3+ weeks, users get bored. Refresh your creative every 10–14 days for audiences under 20,000.
Use Leadria's AI to generate new ad copy and visuals in under 2 minutes, then test variations on different audience segments. A/B test call-intent audience against custom audience + call-intent blend; measure CPL and conversion rate. Scale the winner.
The Honest Reality: When to Use Call Intent, When to Pivot
Call intent targeting is a lever, not a silver bullet. Use it when:
- You have at least 20–30 past callers to build a custom audience.
- Your follow-up system is fast (under 2 hours).
- Your geographic market has 50,000+ population.
- You can sustain at least $500/month in ad spend.
If you can't meet those criteria, consider alternatives:
- Interest-based + lookalike audiences (from a landing-page visitor list or customer file) often cost less and convert as well as call intent, without needing call-event data.
- Retargeting past website visitors is cheaper than pure cold prospecting with call intent.
- Google Local Services Ads (if available in your trade) guarantee you pay only when someone calls; no CPL guessing.
Check our guide on whether Facebook ads are worth it for your trade to run a quick ROI check before committing budget.
Building Your First Three-Layer Campaign: Quick Start
Here's the 5-step setup (takes about 30 minutes):
- Export past callers from your CRM. Names, phone numbers, call date. Get 30–50 if possible.
- Create a Custom Audience in Ads Manager (Audiences → Create → Custom Audience → Upload this list). Facebook will match these phone numbers to accounts.
- Create a second Custom Audience: "Past website visitors." Use your Pixel data (Audiences → Pixel → Website Visitors, last 180 days).
- Create a negative Custom Audience: "Called in last 30 days." This is a segment of your first audience. Use it to exclude repeat callers from new campaigns.
- Create your ad campaign with Objective = "Leads" or "Conversions". In Audience setup, choose: "Include Custom Audience (past callers)" + "Exclude Custom Audience (called in last 30 days)" + add interest-based targeting for lookalikes. Set call intent by ensuring your Pixel fires a "Contact" event when a call is made.
Run this for 2 weeks, analyze CPL and conversion rate by segment, then optimize. Compare your CPL to trade benchmarks to see if you're on track.
If you'd rather let AI handle the copy and targeting setup, see how Leadria generates ad copy, visuals, and audience targeting in minutes. You describe your business, Leadria's AI writes the ad and sets targeting, and leads arrive in your phone within 24 hours—no developer needed. 7-day free trial, no credit card.
