You added a WhatsApp button to your site, the chats are coming in, and your boss asks the obvious question: which campaign sent them? If you open Google Analytics 4 and search for the answer, you usually find nothing. The click left your site, the conversation happened inside WhatsApp, and GA4 never saw it. This guide shows how to close that gap with tools you already have.
Why UTM parameters don't work on wa.me links
UTM parameters are read by the analytics tag on the page that receives the visit. When someone taps https://wa.me/50688887777?text=Hi, the destination is WhatsApp, not your website, so there is no GA4 tag on the other side to read utm_source or utm_campaign. Adding UTMs to the wa.me URL does nothing except make the link longer.
That means you have to measure at two points instead of one: the click on your website (which GA4 can see) and the conversation in WhatsApp (which only you can see). The rest of this article covers both.
Step 1: Make sure Enhanced Measurement is tracking outbound clicks
GA4 records clicks on links that leave your domain automatically, as long as Enhanced Measurement is on. Go to Admin → Data streams → your web stream → Enhanced measurement and confirm that Outbound clicks is enabled.
When it is, every tap on a wa.me or api.whatsapp.com link sends a click event with three useful parameters:
link_url– the full WhatsApp URL, including the prefilled textlink_domain–wa.meorapi.whatsapp.comoutbound– set totrue
Open Reports → Realtime, click your own WhatsApp button and look for the click event. If you see it, the data is flowing.
Step 2: Turn WhatsApp clicks into their own event
A generic click event mixes WhatsApp with every other external link on your site. Create a dedicated event so it is easy to report on:
- Go to Admin → Events → Create event.
- Name it
whatsapp_click. - Add two matching conditions:
event_nameequalsclick, andlink_domaincontainswa.me. If some of your buttons use api.whatsapp.com, create a second rule for that domain. - Leave "Copy parameters from the source event" checked so
link_urlcomes along.
Then go to Admin → Key events and mark whatsapp_click as a key event. From now on it appears next to purchases and form submissions in your acquisition reports, and every click is attributed to the session's source, medium and campaign – which is exactly the information UTMs were supposed to give you.
Step 3 (optional): Use Google Tag Manager for more control
If your site runs Google Tag Manager, you can fire a GA4 event directly instead of relying on Enhanced Measurement. Create a Click – Just Links trigger where Click URL contains wa.me, and attach a GA4 Event tag named whatsapp_click with parameters such as button_location (header, product page, footer). This tells you not only how many people clicked, but which button they used – useful when you have more than one WhatsApp entry point on the same page.
Step 4: Carry the campaign into the chat with a reference code
GA4 now knows which campaign produced the click. Your sales team, however, only sees a WhatsApp message. The simplest bridge is a short reference code at the end of the prefilled text:
- Instagram bio:
Hi! I'd like a quote. (ref: IG-BIO) - Google Ads landing page:
Hi! I'd like a quote. (ref: GADS-NOV) - Printed flyer QR code:
Hi! I'd like a quote. (ref: FLYER-01)
Each source gets its own link, built in seconds with a WhatsApp link generator. When a message arrives, the agent records the code in the CRM or a simple spreadsheet. At the end of the month you can compare GA4 clicks per campaign with real conversations per campaign – and see where people tap the button but never send the message.
Reading the numbers: clicks vs. conversations
Expect a gap. Not every click becomes a conversation: some people open WhatsApp and close it, and others tap on a computer without WhatsApp installed. A sudden drop in that ratio usually points to a technical problem: a wrong phone number format, a message that is too long, or a desktop-only audience. Track the ratio monthly:
| Source | GA4 whatsapp_click | Chats with ref code | Click-to-chat rate |
|---|---|---|---|
| Instagram bio | 420 | 311 | 74% |
| Google Ads | 260 | 143 | 55% |
| Flyer QR code | 95 | 81 | 85% |
In this example Google Ads produces plenty of clicks but the weakest conversion into conversations, so the next test is the landing page message, not the ad budget.
Common mistakes
- Opening WhatsApp in the same tab. GA4 can lose the event if the page unloads before it is sent. Add
target="_blank"to WhatsApp buttons. - Counting your own clicks. Define internal traffic in GA4 and filter your office IP, or test in an incognito window.
- Different numbers in different formats. wa.me needs the full international number without +, spaces or leading zeros. One wrong link silently kills a channel.
- Codes nobody records. A reference code only works if the person answering the chat writes it down. Make it part of the reply script.