Where it sits on the path: Ad · Lead · Sale
How to tell whether click-to-WhatsApp ads bring sales or only questions
Cost per conversation keeps falling and orders don't move. This guide turns a full WhatsApp inbox into one number you can judge the campaign on: what a sale cost you, not what a chat cost you.
The short answer
For two weeks, tag every WhatsApp conversation with the ad it came from and how it ended: sold, qualified, asked the price only, no reply, or outside your delivery area. Then divide ad spend by the paid or delivered orders those chats produced. That's your cost per sale. Judge the campaign on it, not on the number of conversations or the cost per conversation in Ads Manager.
The bottom line
- A conversation is a lead, not a sale; judge the campaign on cost per paid order, or on cost per qualified chat if you sell a service.
- Give each ad its own opening message so you know which ad started every chat.
- Put the price, delivery cities and cash-on-delivery terms in the ad itself, so you stop paying for questions one line could answer.
- Don't raise the budget because cost per conversation fell, and don't judge before two weeks of tagging.
- On the WhatsApp Business Platform, send purchases from the chat back to Meta through the Conversions API for Business Messaging so you can optimize click-to-WhatsApp campaigns for purchases, not conversations.
Want this applied to your business?
Message me on WhatsAppIn this article6 sections
- How does the problem show up in your reports?
- Why do WhatsApp ads bring questions instead of orders?
- How do you check whether the chats turn into orders?
- What does your tagging sheet tell you after two weeks?
- How do you fix the campaign without spending more?
- When do you need help connecting the ads to sales?
It's Sunday morning, the start of the Saudi working week. Ads Manager shows several hundred conversations last week, each cheaper than last month's. The inbox tells another story: "How much?", "Where are you?", "Do you deliver to Riyadh?", most of them silent after your first answer. The order sheet looks like the week before. The ad works; it just brings questions, not sales.
My view: the conversation count is the cheapest figure in Ads Manager and the furthest from revenue. Starting a chat costs one tap and a two-word question, so an ad that opens WhatsApp attracts price-checkers as readily as buyers. A conversation is a lead, not a sale. Judge the campaign on cost per paid order, or per qualified conversation if you sell a service, counted from the chats themselves, not from Meta's report.
How does the problem show up in your reports?
Put Ads Manager, the WhatsApp inbox and the order sheet side by side for one week, and you see:
- Cost per conversation falls weekly while orders stay flat.
- Most chats end once you give the price.
- Every chat asks the same things: price, location, delivery, cash on delivery.
- Many chats arrive at night or on Friday, the first day of the Saudi weekend, and wait until the next day.
- You can't tell which ad started a given chat.
Why do WhatsApp ads bring questions instead of orders?
Usually the campaign delivers exactly what you asked for, and the rest leaks away between ad and reply.
The campaign is set up to buy conversations. Ask for conversations and the platform finds people who message easily, not necessarily buyers. That's my reading of optimization, not a Meta statement: a campaign learns from the event you feed it, and a chat start tells it nothing about which chats became orders.
The ad doesn't answer the first questions. If the ad and greeting leave out the price, delivery cities and cash-on-delivery terms, every chat becomes an FAQ page you pay for, and anyone who dislikes the price leaves after you've paid for the question.
The reply is late, or never comes. A chat sent at 11 p.m. and answered at noon has usually gone cold. I cover the full reply system in following up WhatsApp leads.
You can't tell which chat came from which ad. Once ad chats mix with chats from Instagram or old customers, all you have to judge by is Meta's conversation count.
How do you check whether the chats turn into orders?
Tag every chat with its source and outcome for two weeks, then work out cost per sale:
- Link each chat to its ad. Give each ad its own pre-filled message, even one word apart ("I'd like the perfume offer", "I'd like the gift offer"), so the first line names the source. Meta's guide to ads that click to WhatsApp shows the greeting and the pre-filled message are set in each ad's creative. The customer can edit that line before sending, so log chats without it as "source unknown" rather than guessing. On the WhatsApp Business Platform through a CRM, Meta's documentation says an ad-started message carries referral information including the click ID, ctwa_clid; ask your provider to show the ad beside each chat.
- Give every chat one outcome. Five are enough: sold; qualified (asked for a quote, an appointment or order details); price only; no reply; outside the delivery area. No CRM? A spreadsheet will do.
- Work out cost per sale. Divide spend by the paid or delivered orders from those chats. An order agreed in chat isn't a sale until it's delivered; I explain why in cash-on-delivery refusals.
- Measure time to first reply. For a sample of the week's chats, log the minutes to the first human reply, by hour and day. Bad looks like night and Friday chats waiting hours.
- Read 20 chats that ended at the price. Read the words: did the customer ask something the ad should have said, compare prices, or vanish because you replied late?
A hypothetical example with round numbers: campaign A spends SAR 3,000 on 600 conversations (SAR 5 each) and gets 15 delivered orders: SAR 200 per sale. Campaign B spends the same on 300 conversations (SAR 10 each) and gets 30 delivered orders: SAR 100 per sale. Ads Manager says A is twice as good. The order sheet says the opposite.
More on cost per lead versus cost per sale in lead quality vs. lead volume.
Want this applied to your business?
Message me on WhatsAppWhat does your tagging sheet tell you after two weeks?
Read it against this table, row by row, before touching the budget or the ad.
| What you see | Likely cause | Where to check | What to do |
|---|---|---|---|
| Cost per conversation falls, orders stay flat | The campaign learns from chats, not sales | Cost per sale in your sheet | Judge on cost per sale; don't raise the budget |
| Most chats end after the price | No price in the ad, or the wrong offer for the audience | 20 chats that ended at the price | Price in the ad and greeting, then test a clearer offer |
| The same question in every chat | Ad and greeting skip delivery, payment and area | First three messages in a sample | Answer them in the ad and quick replies |
| Many chats from cities you don't serve | Targeting wider than your delivery area | The "outside delivery area" outcome | Target only where you deliver; name the cities |
| Night and Friday chats unanswered | Nobody owns out-of-hours replies | First-reply time by hour and day | Auto-reply with your reply time; a rota for peak hours |
| Orders agreed, then refused at the door | Weak confirmation, or overpromising | Delivered against agreed orders | Count delivered orders only; confirm before shipping |
| Half the chats have no known source | One opening message for all ads, or a tool that hides the referral | Source column in the sheet | One message per ad, or a tool that shows the ad |
| Plenty of qualified chats, no sales | Selling is the problem, not the ad | Qualified without "sold", per team member | Review replies and follow-up first |
How do you fix the campaign without spending more?
Start with what costs nothing: the ad copy. Add the price or a "from" price, the cities you deliver to, and cash on delivery if you offer it. You'll probably get fewer conversations. That's the point: whoever writes after seeing the price is thinking of buying.
Next, the greeting and quick replies. Write answers to the four recurring questions once, have your team send them in seconds, then ask something that moves toward an order: which size, which city, when should we deliver? Then set a reply standard, as in the follow-up article.
On the WhatsApp Business Platform, the next step changes what the campaign learns. My rule for any lead campaign: optimize to an outcome your CRM has confirmed and returned to the platform, not to a raw form fill or a chat start.
Meta's Conversions API for Business Messaging page says it accepts in-chat events, including Purchase, QualifiedLead and OrderDelivered, and gives access to purchase optimization for click-to-WhatsApp and click-to-Messenger ads only. It requires a WhatsApp Business Platform connection (Meta recommends the Cloud API), the ctwa_clid click ID from the message's referral information, and a dataset linked to your WhatsApp Business Account.
The page also warns that it doesn't deduplicate events, so deduplicate before sending, and that these events should cover only what happens inside the chat; a sale completed on your website goes through the website's own Conversions API setup.
What not to do: don't raise the budget because cost per conversation fell; you may just have bought cheaper questions. Don't judge after three days; in Saudi Arabia an order agreed today may be delivered days later. And don't move to a website sales objective before testing it as a separate campaign.
When do you need help connecting the ads to sales?
When tagging shows good conversations but no closed sales, or when you need purchases sent from your CRM to Meta and don't know how.
In the first case, the ad isn't the problem. At CoderZ I designed and directed the CRM workflows: response standards, lead capture, an owner for every lead, statuses, escalation and reporting. I think a qualified chat is usually lost when nobody is sure it's theirs, which is why every lead needs one named owner.
In the second, you need the ad, the chat, the CRM and the delivered order joined in one chain you can read from either end. That's my sales pipeline and CRM work. Start tagging tomorrow: two weeks, five outcomes, one number at the end.
Questions
Is a low cost per conversation a good sign?
On its own it's a sign of nothing. It can fall because the ad now reaches people who ask easily, not people who buy. Divide spend by the paid orders that came out of the chats; if that number falls too, the campaign really is improving.
Can I measure sales from WhatsApp ads with the WhatsApp Business app alone?
You can measure them by hand: a different opening message for each ad, and every chat tagged with its outcome in a spreadsheet. Sending purchases back to Meta through the Conversions API for Business Messaging is another matter. Meta's documentation requires a connection to the WhatsApp Business Platform for that, and recommends the Cloud API.
How long should I wait before judging a WhatsApp campaign?
At least two weeks of complete tagging. Three days isn't enough to see which chats end in an order, or when. If you sell cash on delivery, wait until the two weeks' orders have been delivered before you work out cost per sale.
Should I switch the campaign to a website sales objective instead?
Not until you know where the problem is. If your customers buy through chat and pay on delivery, sending them to a website changes how they buy, not just the ad. Test it as a separate campaign on a limited budget and compare cost per sale across the two.
Sources
- Conversions API for Business Messaging · Meta for Developers (opened 7 November 2026)
- Ads that Click to WhatsApp · Meta for Developers (opened 7 November 2026)