Skip to content
MetricMaven

Attribution & Measurement

Why email and SMS clicks don’t match GA4 sessions

An email or SMS click and a GA4 session are different records. Scanners, redirects, UTM gaps, in-app browsers, and consent all change the count. Here is how to reconcile them.

Jamie IsabelJamie IsabelPublished October 12, 20268 min read
On this page

When an email or text report shows more clicks than GA4 shows sessions, the first instinct is to blame one of the tools. Usually neither is broken. The sending platform counts a hit on its own tracking link, while GA4 counts a session only after a real browser loads the landing page and runs the tag. Most of the gap sits in the steps between those two events.

A click in the platform is not a GA4 session

When someone taps a link in an email or a text, the request usually hits the platform’s tracking link first and then forwards the person to your site. The platform logs a click at that moment. GA4 logs a session only if the destination page loads, the GA4 tag runs, and the visitor’s consent setup allows measurement. If the page is slow, the tag is blocked, or the visitor never reaches the page, the platform has a click and GA4 has nothing to count.

Where the counts split

CauseEffect on platform clicksEffect on GA4 sessionsFix
Security scanners follow linksExtra clicks with no person behind themUsually none, since no person reaches the pageCount unique human clicks and ask whether the platform filters scanner hits
Slow or blocked landing pageClick still recorded at the redirectNo session if the tag does not fire in timeTest load speed and consent behavior on the landing page
UTMs missing or overwrittenClick counted under the platform’s own labelTraffic lands as direct or referralUse one UTM convention and confirm it survives every redirect
Redirects drop query stringsClick still countedSource and medium lost before the page loadsTest each link end to end, including http, www, locale, and shortener hops
Inconsistent medium valuesOne campaign, one click totalEmail traffic split across several rowsLock one medium value per channel and check GA4’s default channel group definitions
In-app browsers and ad blockersClick recorded at the redirectSession lost before the tag firesTest links in in-app browsers and review how consent and blocking affect the tag
Several clicks by one personEach click counted separatelyOne session or several, depending on GA4’s timeoutState in the report whether the number counts clicks, people, or sessions
Apple Mail Privacy ProtectionOpens inflated, clicks notNo effect on sessionsDo not use opens as a denominator
Platform revenue window counts opensRevenue credited by the platform’s own windowGA4 credits conversions under its own modelShow the two revenue numbers in separate rows with different labels
Most gaps come from the steps between the click and the page load, not from either dashboard being wrong.

Security scanners create clicks no one made

Many corporate mail systems rewrite links so they can be checked before delivery. Tools such as Microsoft Defender Safe Links, Mimecast, and Proofpoint-style gateways can follow those links automatically. The platform records a click, but no person is behind it, and a scanner usually does not carry the GA4 tag through to a session. Many platforms try to filter these hits, but not all of them do, and B2B lists are hit hardest because their recipients sit behind business mail security. Treat a raw platform click total as an upper bound, not a count of people.

Opens are not clicks

Apple Mail Privacy Protection pre-fetches the content of messages, including images, which makes many opens look like reads. That inflates opens, not clicks. Do not use opens as the denominator when you compare email to GA4. Compare clicks to sessions, and keep opens in their own row as a weaker engagement signal.

Missing and overwritten UTMs send traffic to the wrong row

A link without utm_source and utm_medium lands in GA4 as direct or referral traffic, so the session never gets attached to the email or text that produced it. Some platforms can append UTMs automatically if that setting is enabled, and some link handling can overwrite values you set yourself, so check the final URL rather than the one you pasted. Then check the site. An http-to-https redirect, a www redirect, a locale redirect, or a link shortener in an SMS can drop the query string before the page loads. Once the parameters are gone, GA4 has no way to tie the session back to the send.

Medium names decide the channel

GA4’s default channel group sorts traffic using its source and medium values. Email and SMS traffic are picked up only when those values match the patterns the default definitions expect, and SMS is typically matched on a medium of sms. Check GA4’s current channel group definitions before you rely on a channel report, because the matching rules are GA4’s to define and can change. If one team sends “Email”, another sends “newsletter”, and a third uses the platform’s name as the source, the same channel scatters across several rows and none of them looks like the email total.

Some people open SMS links inside the webview of a messaging or social app. Those webviews can handle cookies, scripts, and redirects differently from the phone’s main browser. A consent banner, an ad blocker, or a slow landing page can also end the visit before the GA4 tag fires. The platform still counts the click at the redirect, so the gap looks like a tracking failure but comes from what happens on the landing experience.

Several clicks, one visit

One person who clicks the same email three times produces three platform clicks. GA4 may record one session across those visits if they fall within its session timeout, or separate sessions if they do not. Neither count is wrong, but they answer different questions. Decide before the review whether the report counts clicks, people, or sessions, and label the row so nobody compares them as if they were the same.

Revenue attribution is a different question

Email and SMS platforms often report revenue as orders placed within a window after an open or a click. That window belongs to the platform, often counts opens, and should be checked in its documentation rather than assumed. GA4 credits conversions and revenue under its own attribution model. When the two revenue numbers disagree, they are answering different questions: whether the message earned a click, and which channel GA4 should credit for the conversion. Put them in separate rows.

How to reconcile the two

  1. Write one UTM convention for email and SMS with the exact values for source, medium, and campaign, and use it on every link.
  2. Follow each tracking link through every redirect and confirm the final landing URL keeps utm_source, utm_medium, and utm_campaign.
  3. Send a test to seed inboxes and a text to a test phone, open each link in a normal browser and in an in-app browser, and confirm a GA4 session appears under the expected source and medium.
  4. Use unique human clicks as the platform number, and ask whether the platform filters scanner hits before you trust the total.
  5. Join the platform and GA4 on landing page and campaign, filtered to your convention, and explain every remaining gap in the report.
  6. Keep opens and platform-attributed revenue out of the same row as GA4 sessions and key events.

Go further with the platform mismatch guide, the UTM convention guide, and the revenue reconciliation post. For the wider measurement setup behind these numbers, see our digital analytics service. If an email or SMS report keeps missing GA4, book a tracking audit: bring one send, its links, and the GA4 report you are comparing it to, and we will map the first workflow you can trust.

Frequently asked questions

Why don’t my email platform clicks match GA4 sessions?

An email or SMS platform records a click when its tracking link is hit. GA4 records a session only when the landing page loads and the GA4 tag fires with consent. Anything between those two steps can break the count, so the numbers measure different things.

Should I use email opens as the denominator for GA4 traffic?

No. Apple Mail Privacy Protection pre-fetches images, which inflates opens rather than clicks. Compare unique clicks to GA4 sessions, and treat opens as a separate and less reliable engagement signal.

What medium should I use for email and SMS in GA4?

Pick one value per channel, apply it to every link, and write it down. Check GA4’s default channel group definitions to confirm how your source and medium values are classified, since mixed values such as “Email”, “newsletter”, and a platform name scatter the same traffic across rows.

Can MetricMaven help reconcile email and SMS clicks with GA4?

Yes. We check the tracking links, redirects, UTM values, and landing pages, then compare unique platform clicks with GA4 sessions under one source and medium convention so the team can explain each remaining gap.

Sources and references

Tracking audit

Find out what your tracking is missing.

Every engagement starts with a written audit of what you track today, what’s broken, and what to fix first.

Book a tracking audit
  1. What we check

    Tags, events, and consent on your site, and how conversions reach GA4, your ad platforms, and your CRM.

  2. What you get

    A ranked list of tracking gaps with the business impact of each and the effort to fix it.

  3. What follows

    Your team works through the list, or we implement the fixes and keep them working.