Klaviyo Says $86K, GA4 Says $0: How to Fix Email Attribution

March 23, 2026
by Cherry Rose

Your Klaviyo dashboard says email drove $86,000 in revenue this month. Your GA4 says email drove $0. Both platforms have tracking enabled. Both have UTMs turned on. Neither is broken.

This is one of the most common attribution conflicts in WooCommerce, and it has a specific cause — three of them, actually. The gap isn’t a mystery once you understand what each platform is measuring. Two of the three causes are fixable today, in minutes.

Why Klaviyo and GA4 Disagree on Email Revenue

Klaviyo and GA4 use fundamentally different attribution models. Understanding this isn’t academic — it determines which number you optimize your campaigns against, and which one you report to your team.

Klaviyo’s default attribution window: 5 days for clicks, 1 day for opens. If a customer opens your email on Monday and buys on Thursday, Klaviyo counts it as an email conversion — regardless of whether they touched another channel before buying.

GA4’s attribution is session-based. The channel that drove the final session before purchase typically gets the credit. If your email subscriber clicked a Google Ad on Thursday before completing their purchase, GA4 gives that credit to Paid Search, not Email.

Neither platform is lying. They’re answering different questions. Klaviyo asks: “Was email part of the conversion journey?” GA4 asks: “What was the last touchpoint?” Both answers are useful — just not comparable to each other.

The Three Failures Creating Your Attribution Gap

Failure 1: Klaviyo’s Default UTM Medium Is Invisible to GA4

This creates the $0 in GA4 problem — and it’s fixable in five minutes.

Klaviyo’s default UTM parameters use utm_medium=campaign for campaign emails and utm_medium=flow for automated flows. GA4’s channel grouping rule for “Email” looks for utm_medium=email (or the word “email” in the medium value).

Because Klaviyo sends “campaign” and “flow” as the medium, GA4 classifies that traffic as Unassigned — and attributes $0 to Email. The revenue is there in GA4’s data. It’s hiding in Unassigned or Other Channels, not the Email row. (Klaviyo Community, confirmed by Klaviyo support, 2024.)

One real example from Klaviyo Community: a store owner reported “$86K attributed by Klaviyo to flows and campaigns but GA attributes $0 to email — all campaigns and flows have UTM tracking on.” The community moderator’s fix: change the UTM medium to email. That’s it.

The fix: In Klaviyo, go to Account → Settings → UTM Tracking. Set the default UTM medium to email for both campaigns and flows. Save. From that point forward, GA4 correctly classifies Klaviyo traffic in the Email channel.

You may be interested in: WooCommerce Attribution Windows Explained

Failure 2: Safari ITP Is Deleting Your Attribution Cookies

Fix the UTM and GA4 will start showing email revenue. But you’ll still see a gap — especially if Safari makes up more than 30% of your WooCommerce traffic.

Apple’s Safari Intelligent Tracking Prevention (ITP) expires first-party browser cookies after 7 days — dropping to 24 hours for visitors who arrived from paid ad clicks. (Apple WebKit documentation, 2025.)

Here’s how this plays out: A customer clicks your Klaviyo email on a Monday. They browse, add to cart, but don’t buy. They return on day 8 to complete the purchase. On a non-Safari browser, GA4’s attribution cookie is still alive — email gets credit. On Safari, that cookie expired. GA4 sees a new session with no source and records the purchase as Direct.

This is why stores with heavy Safari traffic see inflated Direct revenue that doesn’t make intuitive sense. Direct traffic above 30% in GA4 almost certainly contains misattributed email, social, and paid campaign revenue — not genuine brand recognition. (OWOX, 2025.)

The ITP problem cannot be fixed by changing UTM parameters. It requires first-party server-side tracking on your domain.

You may be interested in: Your WooCommerce GA4 Shows 50% Direct Traffic

Failure 3: GA4’s Attribution Model Has a Hidden Threshold

GA4 includes a data-driven attribution (DDA) model that distributes credit across multiple touchpoints before a conversion. It’s the most accurate model GA4 offers. But it only activates with a minimum of 400 conversions per month.

If your store processes fewer than 400 monthly purchases, GA4 silently reverts to last-click attribution with no notification. (Google Analytics Help, 2025.) Last-click aggressively over-credits the final session channel — typically Paid Search — while systematically undercounting email’s role in earlier touchpoints.

Check your current model under GA4 → Admin → Attribution Settings. If DDA isn’t available, your email revenue in GA4 is understated regardless of your UTM setup.

How to Fix Each Failure (In Order of Effort)

Fix 1: Update Klaviyo UTM Defaults — 5 Minutes

In Klaviyo: Account → Settings → UTM Tracking. Set the default UTM medium to email for campaigns and flows. Save. Apply to all future sends.

This fix works immediately for new emails. For existing flows already live, update the links manually or accept that historical data will remain in Unassigned. The important thing is stopping the bleeding going forward.

Fix 2: Audit Your Direct Traffic for Hidden Email Revenue

Before the UTM fix takes full effect, check how much historical revenue is hiding in Direct. In GA4: Explore → Free Form → Sessions by Source/Medium. Filter for Direct sessions that converted. Cross-reference the dates against your Klaviyo campaign send history.

Direct revenue spikes on the 1–3 days after major email campaigns are misattributed email. Klaviyo’s attribution is likely more accurate for those conversions than GA4’s Direct channel record.

Fix 3: Server-Side Tracking for Safari ITP

UTM changes solve the channel labeling problem. They don’t solve Safari’s cookie expiration. For that, you need first-party cookie persistence — which means server-side tracking on your domain.

When tracking runs server-side on your subdomain, the attribution cookie is stored and refreshed from your server, not the browser’s cookie jar subject to ITP rules. The cookie survives Safari’s 7-day limit because it’s issued first-party from infrastructure you control.

A Danish WooCommerce store that implemented server-side tracking saw Direct traffic drop 67.9%, Paid Search attribution jump 56.8%, and reported revenue increase 37.5% — because conversions previously lost to ITP were now correctly attributed. (Stape case study, 2026.)

If Safari is more than 30% of your WooCommerce traffic, server-side tracking isn’t optional — it’s the only complete fix for email attribution accuracy.

Transmute Engine™ is a first-party Node.js server that runs on your subdomain (e.g., data.yourstore.com). The inPIPE WordPress plugin captures events from WooCommerce and sends them via API to your Transmute Engine server, which then routes to GA4, Facebook CAPI, BigQuery, and more — all from your domain, bypassing both ad blockers and ITP restrictions. First-party cookie persistence means your email attribution survives Safari’s 7-day limit.

Which Number Should You Report?

Once your UTM defaults are corrected, here’s how to use each platform’s numbers purposefully:

  • Use Klaviyo revenue to evaluate email program health — how much email contributes to your business, including multi-touch journeys where email was part of the path to purchase.
  • Use GA4 Email channel revenue for cross-channel allocation decisions — when comparing email to Paid Search to Organic, GA4’s unified view gives you comparable numbers without double-counting.
  • Never compare them directly — they answer different questions and will always show different numbers. That’s by design, not a defect.

The goal isn’t to make Klaviyo and GA4 match. The goal is to trust each number for its specific job.

Key Takeaways

  • The $0 email revenue in GA4 is caused by Klaviyo’s default UTM medium (“campaign” / “flow”) not matching GA4’s email channel rule. Fix: change UTM medium to “email” in Klaviyo settings.
  • Safari ITP (7-day cookie limit) strips attribution from returning email buyers on Safari — inflating Direct traffic. Fix: server-side first-party tracking on your subdomain.
  • GA4 requires 400+ monthly conversions for data-driven attribution. Below that threshold, it reverts silently to last-click, systematically undercounting email’s role.
  • Direct traffic above 30% in GA4 almost always contains hidden email and paid revenue, not genuine brand-recall visits.
  • Klaviyo and GA4 measure different things. Use Klaviyo revenue for email program decisions. Use GA4 for cross-channel allocation. Don’t try to reconcile them to a single figure.
Why does GA4 show $0 email revenue when Klaviyo shows thousands?

Because Klaviyo’s default UTM medium is “campaign” or “flow” — not “email”. GA4’s channel grouping rule only recognizes “email” as a medium. Change your Klaviyo UTM settings to utm_medium=email and the revenue will appear correctly in GA4’s Email channel.

Which is more accurate for email revenue — Klaviyo or GA4?

They measure different things, and both can be correct. Klaviyo counts any purchase within its attribution window (5 days for clicks) after an email touch. GA4 counts purchases in the session driven by the email click, or assigns last-click credit. Use Klaviyo revenue for email program health. Use GA4 for cross-channel comparison without double-counting.

What is Safari ITP and why does it break email attribution in WooCommerce?

Safari Intelligent Tracking Prevention (ITP) deletes first-party browser cookies after 7 days, dropping to 24 hours for visitors who arrived from paid ads. If an email subscriber clicks your Klaviyo email and purchases 8 days later on Safari, GA4 loses the attribution cookie and records the purchase as Direct — not Email. Server-side first-party tracking survives ITP because the cookie is issued and refreshed from your server, not stored in the browser.

How do I stop email revenue showing as Direct traffic in GA4?

Three steps: (1) Change Klaviyo UTM medium from “campaign/flow” to “email”. (2) Ensure all email links include utm_source=klaviyo&utm_medium=email. (3) For Safari users — typically 30%+ of WooCommerce traffic — implement server-side first-party cookie tracking to permanently survive ITP’s 7-day cookie expiration limit.

Fix your Klaviyo UTM defaults today — five minutes, immediate improvement. If Safari makes up more than 30% of your store’s traffic, Transmute Engine handles the server-side attribution piece that UTM changes alone cannot fix.

Share this post
Related posts