Charities and small teams

Tracking links shared on WhatsApp and by SMS

Messaging is where a lot of small organisations actually reach people: a WhatsApp message to volunteers, a text reminder before an event, a link shared in a community group. It is also where tracking most often goes dark. This guide explains why, and how to tag the links you send so they still show up properly in GA4.

Why messaging links often show as (direct)

When someone clicks a link on a website, their browser usually tells the next website where they came from. That is the referrer, and it is how GA4 knows a visit came from, say, a partner's site.

Links opened from messaging apps and text messages often arrive without a referrer. The phone simply opens the link. With no referrer and no campaign tags, GA4 has nothing to go on and records the visit as (direct) / (none), alongside people who typed your address. Your WhatsApp campaign might be working well, and you would never see it.

The answer is the same as for email and print: put the information into the link itself with UTM tags.

Text messages (SMS)

SMS is the easy one. GA4 has a default channel called SMS, which picks up visits where the source or the medium is exactly sms. So tag text message links like this:

https://example.org/quiz-night?utm_source=sms&utm_medium=sms&utm_campaign=2026-02-quiz-night&utm_content=reminder-1

Some teams prefer the sending service as the source and sms as the medium. Either way, keep sms exactly as written, lower case, so the visits land in the SMS channel. Use utm_content to tell reminders apart: invite, reminder-1, day-before.

Text messages have little room, and a long tagged link eats into it. If space matters, use a short address on your own site that redirects to the tagged link, and test that the redirect keeps the tags.

WhatsApp and other messaging apps

There is no WhatsApp channel in GA4's default rules, so you have a choice to make. Here are the two common options and what each means for your reports.

OptionTagsWhere it lands in GA4Good for
Treat it as socialutm_source=whatsapp, utm_medium=socialOrganic Social channelTeams who see WhatsApp groups as part of their social activity
Give it its own mediumutm_source=whatsapp, utm_medium=messagingUnassigned, unless you add a custom channel groupTeams who want messaging reported separately from social media

Neither is wrong. What matters is choosing one, writing it into your naming rules and sticking to it. If you are unsure, start with social: it puts the visits in a channel people already look at, and the source still shows whatsapp whenever you want to separate it.

Use utm_content for the audience or group: volunteers, parents-group, trustees. That way you can see which group responded, not just that WhatsApp did.

The forwarding problem

Messages get forwarded. Someone in your volunteer group forwards the appeal link to their family group, and from there it goes further. Every forwarded copy carries the same tags, so all those visits count under whatsapp / volunteers.

You cannot stop that, and it is not entirely bad: the volunteers' message started the chain. Just be honest about it when you report. "Visits from the volunteers' WhatsApp link" includes visits from people they passed it on to. If you need to separate them, the only reliable way is a different link for each group you send to directly.

Telegram, Signal and other apps

The same approach works for any messaging app. Use the app's name as the source, such as telegram or signal, and the medium you chose for WhatsApp, so all your messaging sits together in reports. Keep the source names exactly the same each time; a list of approved values in your naming rules stops Telegram and telegram becoming two rows.

A worked example

A youth football club promotes a summer tournament. They send:

Their links:

https://example.org/tournament?utm_source=sms&utm_medium=sms&utm_campaign=2026-07-summer-tournament&utm_content=parents-reminder

https://example.org/tournament?utm_source=whatsapp&utm_medium=social&utm_campaign=2026-07-summer-tournament&utm_content=parents-group

https://example.org/tournament?utm_source=whatsapp&utm_medium=social&utm_campaign=2026-07-summer-tournament&utm_content=coaches-share

Afterwards they filter GA4 to the campaign and compare content values. If coaches-share brought in far more visits than the parents' group, that tells them sharing through coaches reached beyond the club's own families, which is useful to know for next season.

Practical tips

What you still will not see

Tags tell you a visit came from a link you sent. They cannot tell you how many people read the message, how many saw the preview and did not tap, or who forwarded it. For messaging, the visit count is the floor, not the full picture.

Build your messaging links with the UTM Builder, which includes WhatsApp, Telegram and other platforms, and read why campaign traffic shows as (direct) for the bigger picture.