Contents
CTWA became the default format for a reason
Click-to-WhatsApp ads are close to standard in medical tourism, and the reason is simple: prospective patients do not want to fill in a form, they want to talk. A "message on WhatsApp" button reliably out-engages a landing page form.
That preference brings a measurement problem with it. The moment the chat opens, the person moves into a space Meta cannot see. The number in your ads manager becomes "conversations started", and that number tells you nothing useful: how many of those hundred conversations became patients is known only to you.
Where exactly the chain breaks
A WhatsApp chat that started from an ad carries an invisible label on its first message: an ad click identifier (Meta calls it ctwa_clid). That label is the only proof of which ad produced the conversation.
The chain breaks in three places:
- The label is never captured. If the number is not connected through the WhatsApp Business API, the information never arrives. The message lands, the chat opens, the source is unknown.
- It is captured but not stored. The conversation reaches the CRM and the label is not written to the record. Three weeks later, when the sale closes, there is nothing left to attribute.
- The sale is never reported. The most common case by far. Everyone uses the right systems; nobody built the feedback loop.
All three end in the same place: Meta does not know which patient your money bought.
The prerequisite: the number must be on WABA
This is the step most often skipped and last discovered. The ad click identifier is only carried on chats arriving through the official WhatsApp Business API (WABA).
If your number is connected by QR code, tied to a desktop app, or routed through a different provider, messages still arrive but source data does not. The best available fallback is matching on the phone number: Meta can recognise the person, but not which ad produced them — so it cannot be used for campaign optimisation.
The difference looks small and decides everything. When someone asks months later why the ads never seem to learn, this is usually the answer. Finish the official WhatsApp API setup before you build measurement on top of it.
Who marks the conversion — a person or an automation?
The textbook answer is automation: when the status becomes "sale closed", fire the event. In practice, who changes that status and when is what decides whether this works.
The healthiest arrangement we see: the consultant does the job they already do — move the patient's status forward — and the conversion goes as a by-product. Add a separate "report to Meta" step and within a few weeks it becomes the step nobody performs.
In MetoCRM this is reduced to a mobile screen: people who came from ads are listed newest first, each card carries up to three buttons (interested · appointment · sale), and tapping one changes the patient's status. There is no separate measurement task; measurement is a side effect of selling.
And one more thing: mis-taps are certain. So the event does not leave immediately — the system waits 15 minutes and sends only if the status still stands. Undo inside that window and nothing reaches Meta. Since a wrongly sent conversion cannot be deleted, that window is the quiet hero of the setup.
Setup checklist
- Is the number on WABA? If not, fix that first; everything downstream runs on partial data.
- Is the chat's ad identifier stored? The CRM must persist that field when it opens the conversation.
- Is the pixel connected and access validated? A pixel id you have no permission for should never be accepted silently.
- Which status maps to which event? Three events are enough: Contact, Lead, Purchase. Negative statuses are not sent.
- What value goes with a sale? Flat average or the real quote total — with mixed treatments, the latter.
- Have you verified with a test event? Use a test code in Meta's Events Manager and confirm without polluting live data.
- Is dispatch logged? "Did it send?" must have a written answer: event, person, timestamp and Meta's response.
When do you see results?
Set the expectation correctly: conversion feedback is not a button that lowers cost per patient tomorrow. Meta's optimisation only becomes meaningful above a certain data volume — Meta's own guidance talks about roughly fifty optimisation events per ad set per week. A company closing three sales a week will never reach that threshold on Purchase alone.
The practical approach: optimise campaigns on a higher-volume intermediate event (qualified lead) and send the sale event for measurement and reporting. The algorithm gets enough data to learn, and you still see the real outcome.
The first real payoff is usually this: you see plainly which campaigns bring messages and no patients. Once that table exists, moving budget stops being an argument and becomes a decision.