How to Track WhatsApp Leads from Paid Ads
WhatsApp conversations are invisible to your ad account by default. Here is how to attribute them without guesswork.

In a lot of markets, WhatsApp is where the actual conversation happens. The ad drives a click, the click opens WhatsApp, and everything after that is invisible to your ad account.
So Google and Meta optimise toward clicks on a button, which is a terrible proxy for a customer. Here is how to get real attribution on WhatsApp leads.
The core problem
When someone taps your WhatsApp button, they leave your website and enter an app. No pixel follows them. No cookie travels.
From your ad account’s perspective, the journey ends at the button. Everything that determines whether it was a good lead happens somewhere you cannot see.
The solution is to carry an identifier into the conversation itself.
The technique: a prefilled message with a reference
WhatsApp click to chat links accept a prefilled message. That is the hook everything else hangs on.
Instead of a static link, generate one per visitor that includes a short reference code in the message text.
Something like: Hi, I would like to know more. Ref: A7K2M9
When the message arrives, you have a code. In your own database, that code is stored alongside the click IDs, UTM parameters and landing page from that visitor’s session.
Now the conversation is connected to the ad click.
Implementing it
On landing, capture gclid, gbraid, wbraid, fbclid and UTMs into a first party cookie, as you would for any offline conversion setup.
When the page loads, generate a short random reference code and store it in the same cookie so it stays stable across pages.
Send the code, click IDs and UTMs to your backend, which stores them together.
Build the WhatsApp link dynamically with the code in the prefilled message.
Fire a click event to your analytics and ad platforms when the button is tapped, so you at least have the intent signal.
Keep the code short and easy to read. Six characters, no ambiguous ones. Somebody will retype it by hand at some point.
Closing the loop
The reference code gets you attribution. Turning it into a conversion needs one more step.
When the conversation turns into a real enquiry, or a booking, or a sale, look up the code and send a conversion back to the ad platform with the stored click ID.
How you do that depends on your setup:
If you use the WhatsApp Business API with a CRM, store the code as a field on the contact and send conversions from the CRM.
If your team uses the WhatsApp Business app manually, they paste the code into a simple form or spreadsheet when a lead qualifies.
If you use a chatbot, capture the code from the first message automatically and pass it into your system.
The manual version works. It requires somebody to actually do it, which is a process problem rather than a technical one, and it is the thing that usually fails.
Click to WhatsApp ads
If you run Meta’s click to WhatsApp ads, the ad opens WhatsApp directly with no landing page in between.
Meta can pass a referral payload with the conversation, which your WhatsApp Business API integration can read. That gives you the source ad without needing a reference code.
If you are using the app rather than the API, you do not get this, and a reference code in your ad’s prefilled message text is the fallback.
Sending conversions back
Once you know which conversations came from which clicks, send the outcomes.
For Google Ads, an offline conversion import using the stored gclid. For Meta, the Conversions API with the stored fbclid and hashed phone number.
The phone number is a genuine advantage here. WhatsApp gives you a verified phone number for every lead, which is one of the strongest matching signals available: uploading offline conversions to Meta.
What to send, and when
Do not send a conversion when the conversation starts. Every tyre kicker starts a conversation.
Send it when something meaningful happens. A qualified enquiry, a quote requested, an appointment booked, a sale. Define one clear moment and send that.
Then optimise toward it. Within a few weeks the ads will start finding people who have real conversations rather than people who like tapping buttons.
Practical notes
Test the prefilled message on both iOS and Android. Encoding of spaces and punctuation behaves differently and a broken link is silent.
Keep the message short. Long prefilled text gets edited or deleted by the user, taking your code with it.
Put the code at the end of the message, not the start, so it is less likely to be cut.
Accept some loss. Some people will delete the whole message and type their own. A recovery rate well short of perfect is still transformative compared to nothing.
The honest expectation
You will not get every conversation attributed. You will get most of them, and most is enough to change how your campaigns are optimised.
On accounts where WhatsApp is the main conversion path, this is usually the single highest impact tracking project available, precisely because the starting point is no data at all.
Need this built properly?
If the conversation happens off your site, the attribution has to travel with it. I set up and repair tracking for ecommerce stores and lead generation businesses, so the numbers in your ad accounts match the money in your bank account.
Have a look at what I do, or book a call and we can go through your setup together.



















