Implementation: Klaviyo to GA4
Klaviyo revenue, attributed correctly in GA4.
Klaviyo tracks the email and SMS revenue it drives on its own clock. GA4 tracks sessions and purchases on a shared clock across every channel. This workflow lines the two up so a campaign's real contribution shows up in your GA4 reports instead of getting swallowed by Direct traffic.
- $0 setup, month to month
- 30-day guarantee, pay only if satisfied
- Free proposal within 1 business day
What this workflow covers
The field map, the identity gap, and where it breaks.
The field map
Klaviyo's native Google Analytics toggle appends utm_source, utm_medium, and utm_campaign to every link in a campaign or flow automatically. Turn it on and each email, SMS, and push message tags itself before GA4 ever sees the click. The campaign or flow name is what carries over, not the audience segment or the individual message variant.
The identity match
GA4 does not know a contact is the same person across an inbox and a browser. It only sees a session arriving with Klaviyo's tags attached. Someone can read an email on a phone and buy later on a laptop with no tags on that second visit, and GA4 will credit whatever channel actually carried that later session, not the email.
Where the data enters
Attribution happens inside GA4's own acquisition and monetization reports once a tagged session converts. Klaviyo's dashboard shows a separate revenue figure, calculated on its own attribution window, which is usually longer than GA4's default lookback for the same channel. Expect the two totals to disagree; that gap is not a bug in either system.
How failures surface
Apple's Mail Privacy Protection can prefetch images and trigger a phantom open before a person reads anything, and some email clients strip query strings from link previews. When that happens, a session that really did start in a Klaviyo email lands in GA4 tagged as Direct or unassigned instead of Email. We check for this pattern before anyone trusts a channel split.
Why the two dashboards never agree, and why that's fine.
Klaviyo's own attribution window
Klaviyo applies its own attribution window to decide which orders count toward a campaign or flow. GA4 applies a separate model across every channel at once, over its own lookback. Expect the two systems to report different revenue totals for the same week; that is two different counting rules at work, not a tracking failure, and we tell you which figure to trust for which decision.
A later click can steal the credit
If a shopper clicks a Klaviyo email, then later clicks a paid social ad before buying, GA4's channel grouping will usually hand the conversion to whichever touch its model treats as decisive, not to Klaviyo. Klaviyo's own revenue figure and GA4's reported revenue answer different questions, and treating them as one number is the single most common attribution mistake we see.
We will not invent a blended number
No integration reconciles Klaviyo's revenue and GA4's revenue into one correct figure, because the two measure different things on different windows. We set up both systems to report cleanly on their own terms and explain what each figure actually counts, rather than handing you a combined number that looks precise while hiding the assumption underneath it.
Rebuilt after platform changes
Klaviyo has changed its analytics tagging behaviour before, and GA4 has changed its default channel groupings before, and both will again. We treat this setup as something to recheck on a schedule rather than a one-time install, because a silent platform update on either side is the most common way this kind of attribution quietly stops working.
How we set it up.
01
Audit current tagging
We check whether Klaviyo's Google Analytics toggle is switched on for every active flow and campaign, and whether GA4's data streams and channel groupings are set up to recognize the tags Klaviyo actually sends.
02
Turn on and verify
We enable consistent tagging across campaigns and flows, send test clicks from each message type, and confirm inside GA4's realtime and acquisition reports that sessions land under Email or SMS instead of Direct.
03
Document the two numbers
You get a short written reference showing exactly what Klaviyo's own revenue figure counts, what GA4's figure counts, and which one applies when you're deciding send frequency versus overall channel budget.
Klaviyo to GA4 attribution FAQ.
Klaviyo counts a sale as attributed to a campaign or flow using its own window, sometimes days after a click or an open. GA4 applies one shared model across every channel with a shorter default lookback. A higher Klaviyo number usually means its window is wider, not that GA4 is undercounting the channel.
You can report both figures side by side, but combining them into a single total double counts orders that both systems already claim on their own terms. We set the two reports up so you can see what each one measures and pick the figure that matches the decision in front of you.
Yes. Klaviyo's tagging toggle covers SMS and push the same way it covers email, tagging outbound links with the channel that actually sent them. GA4 shows SMS-driven and push-driven sessions separately from email-driven sessions once the tagging is consistent across all three.
Manual tags and Klaviyo's automatic tags can conflict when they use different naming, which splits one real channel into several rows inside GA4. We standardize on a single tagging source, usually Klaviyo's native toggle, so campaign names stay consistent instead of fragmenting across reports.
This setup is usually done as part of a wider GA4 or email marketing engagement. If you only want this specific workflow fixed on its own, say so in your free proposal request and we will scope it as a stand-alone project within one business day.
See what your Klaviyo revenue is actually measuring.
We'll check your current tagging, show you what GA4 and Klaviyo are each counting, and tell you honestly whether the gap between the two dashboards is a setup problem or just two different clocks.