Most Google Ads and Meta accounts in Malaysia look fine from the dashboard. Cost per lead sits within target, lead volume is climbing month on month, and the weekly report says the campaign is working. Then sales works through the list and a large share of it goes nowhere — no response, no real budget, or someone who was never going to buy. The account usually isn’t the problem. The problem is that lead volume and lead quality are being tracked as if they were the same number.
Why Optimising for Volume Quietly Makes Quality Worse
Ad platforms optimise toward whatever conversion event they’re told to chase. If that event is a form submission, the algorithm gets better at producing form submissions — not at producing buyers. It has no visibility into what happens after a lead lands in a CRM or a WhatsApp inbox, so it keeps serving more of whatever pattern generated a submission, good or bad. A campaign can hit its cost-per-lead target every month while the leads themselves get steadily worse, because nothing in the loop is telling the algorithm that’s happening.
Widening the audience, loosening the offer (“Free Quote”, “Get a Callback”) or removing qualifying questions from a form will usually lower cost per lead. It will usually also lower the share of leads worth calling. This trade-off is easy to miss because the two numbers live in different places — cost per lead sits in the ads dashboard, and close rate sits in a CRM or a spreadsheet sales keeps to themselves. Nobody is misreporting performance; the two halves of the picture simply never get compared.
Where the Quality Actually Breaks
A few points in the funnel are worth checking before assuming the ad account is at fault:
- Targeting or ad copy that doesn’t pre-qualify — broad match keywords or a generic offer pull in browsers and price-shoppers alongside genuine buyers.
- A landing page that asks too little, so there’s no signal of budget, timeline or intent before someone becomes a “lead” — or asks too much, and only the most motivated fraction get through.
- Slow follow-up. A lead submitted in the evening and contacted two days later has usually already spoken to someone else.
- No feedback loop. Sales knows which leads closed; the ad platform never finds out, so targeting has nothing to learn from.
For B2B advertisers this often shows up as a flood of student or job enquiries against recruitment or services keywords; for B2C, it shows up as browsers who clicked out of curiosity rather than intent. Neither problem is visible on a cost-per-lead chart — it only becomes visible once someone tracks what happened to each lead after the click.
Measuring Lead Quality Instead of Lead Volume
Cost per lead is easy to track and easy to misread on its own. A few more useful measures:
- Cost per qualified lead, not cost per lead — qualified by whatever the sales team actually uses to filter, such as budget, timeline or fit.
- Close rate by campaign and ad, not only by channel. Two Google Ads campaigns can produce identical lead volume at very different close rates.
- Time to first contact, tracked as its own metric rather than an assumption.
- Closed-won and closed-lost outcomes fed back to the ad platform through offline conversion imports or enhanced conversions, so targeting eventually learns what a good lead looks like — not just what a submitted form looks like.
None of this requires an enterprise analytics stack. A shared tag on each lead in the CRM — qualified, unqualified, closed — reviewed against ad spend once a month is usually enough to see which campaigns are actually worth the budget, and which ones are just cheap to run.
The WhatsApp Gap
In Malaysia, a meaningful share of leads never stay inside the form-and-CRM flow an ads account assumes. A click-to-WhatsApp ad, or a WhatsApp button on a landing page, moves the conversation straight into a chat thread within seconds of the click. That’s often good for conversion — a real-time reply beats a contact-us-within-24-hours email — but it also breaks attribution if the conversation isn’t tagged back to the campaign, ad and keyword that started it. The enquiry shows up with no source context, sales has no idea what the person actually clicked on or asked about, and the ad platform has no record that a conversation, let alone a sale, ever happened.
Connecting the WhatsApp Business API to the same CRM the form leads land in, rather than treating WhatsApp as a separate, unmeasured channel, is usually the highest-leverage fix here — part of what connecting CRM, WhatsApp and lead follow-up is meant to solve.
Fixing the Loop, Not Just the Campaign
None of this is solved by testing a new headline or raising a bid. The fix is usually the connection between the ad account, the landing page and the CRM, so quality data can flow back into targeting decisions instead of stopping at the point of submission. That can mean rebuilding a landing page around a genuine qualifying question rather than a generic enquiry form, alongside setting up lead scoring and offline conversion tracking so sales outcomes actually reach the platform — and that tends to matter more than another round of creative testing.
It’s also why paid media performance is worth reviewing alongside the website and CRM rather than in isolation. A strong campaign pointed at a weak landing page, or landing in a CRM nobody follows up quickly, will always look like an advertising problem — even when the advertising itself is doing exactly what it was asked to do. Treating acquisition, conversion and follow-up as one connected system, rather than three separate reports, is usually what turns a healthy cost-per-lead number into an actual sales result.
If cost per lead looks healthy but sales keeps describing the same leads as unqualified, that’s usually worth tracing through the funnel rather than testing another ad variation.