Email MarketingMay 27, 2025

UTM Tracking in Klaviyo: Getting Credit for Every Dollar Email Earns

Without proper UTM parameters, your email revenue shows up as direct traffic in Google Analytics. Here's how to set up UTM tracking in Klaviyo so email gets credit.

Mark Cijo

Mark Cijo

Founder, GOSH Digital

UTM Tracking in Klaviyo: Getting Credit for Every Dollar Email Earns

Here's something that should make you angry. You're running email campaigns in Klaviyo. They're generating revenue. Your Klaviyo dashboard shows $50K in email-attributed revenue last month.

You open Google Analytics. It shows email drove $28K.

Where did the other $22K go? It's sitting in your "Direct Traffic" bucket. Google Analytics is giving credit for email-driven purchases to "direct" because the tracking broke somewhere between Klaviyo and your website.

This isn't a small problem. If your analytics underreport email revenue, you undervalue email as a channel. You underinvest in it. You over-invest in channels that get false credit. Bad data leads to bad decisions.

UTM parameters fix this. They're the invisible tags on your links that tell Google Analytics exactly where the traffic came from. Set them up once in Klaviyo, and every email link is properly tracked forever.

What UTM Parameters Are

UTM parameters are tags appended to the end of a URL. They look like this:

yourstore.com/products/jacket?utm_source=klaviyo&utm_medium=email&utm_campaign=spring-sale

When someone clicks that link, Google Analytics reads those parameters and attributes the visit (and any resulting purchase) to:

  • Source: Klaviyo
  • Medium: Email
  • Campaign: Spring Sale

Without those parameters, Google Analytics sees someone arriving at yourstore.com/products/jacket and has to guess where they came from. If it can't figure it out (which happens often with email clients that strip referrer data), it defaults to "direct."

The Five UTM Parameters

utm_source (required) — Where the traffic is coming from. For Klaviyo emails: "klaviyo"

utm_medium (required) — The marketing medium. For email: "email". For SMS: "sms"

utm_campaign (recommended) — The specific campaign or flow name. This is where you differentiate between your welcome series, your abandoned cart flow, and your weekly newsletter.

utm_content (optional) — Used to differentiate between links within the same email. If your email has a hero CTA button AND a text link in the footer, utm_content can tell you which one got the click.

utm_term (optional) — Originally designed for paid search keywords. In email, some brands use it for subject line variants or A/B test identifiers.

Setting Up UTMs in Klaviyo

Klaviyo has built-in UTM tracking. You don't need to manually add parameters to every link. Configure it once, and it applies to all emails automatically.

Step 1: Account-level UTM settings. Go to Account Settings, then Email Settings, then UTM Tracking. Enable "Automatically add UTM parameters to links."

Step 2: Configure default parameters. Set these defaults:

  • utm_source: klaviyo
  • utm_medium: email
  • utm_campaign: This should dynamically pull the campaign or flow name

Klaviyo supports dynamic variables in UTM parameters. Use the campaign name variable so each send automatically gets its own campaign tag. For flows, use the flow name variable.

Step 3: Verify it's working. Send a test email. Click a link. Look at the URL in your browser's address bar. You should see the UTM parameters appended. Then check Google Analytics Real-Time report to confirm the visit shows up under the correct source/medium.

The Naming Convention That Saves Your Sanity

UTM parameters are case-sensitive and freeform. If you don't have a naming convention, you'll end up with:

  • "Klaviyo" and "klaviyo" and "KLAVIYO" as three different sources
  • "email" and "Email" and "EMAIL" as three different mediums
  • Hundreds of campaign names that don't follow any pattern

Set these rules and stick to them:

Source: Always lowercase. Always "klaviyo" for email through Klaviyo. If you send SMS through Klaviyo, still use "klaviyo" but change the medium to "sms."

Medium: Always lowercase. "email" for email. "sms" for SMS. Never varies.

Campaign: Lowercase, hyphens between words. Follow a pattern: [type]-[name]-[date or identifier]. Examples:

  • campaign-spring-sale-2025
  • campaign-new-arrivals-march
  • flow-abandoned-cart
  • flow-welcome-series
  • flow-post-purchase

Content: Lowercase. Used for link differentiation within an email:

  • hero-cta
  • product-grid-1
  • product-grid-2
  • footer-link
  • text-link

Consistency is more important than cleverness. Pick a convention, document it, and never deviate. Your future self (or your analytics team) will thank you when they can actually make sense of the data.

Flow UTM Strategy

Flows need special attention because they run continuously and contain multiple emails.

Each email in a flow should have a unique campaign identifier. Don't let all abandoned cart emails show up as one undifferentiated "abandoned-cart" campaign. You need to know which EMAIL in the flow performed.

Recommended approach:

  • Email 1: flow-abandoned-cart-reminder
  • Email 2: flow-abandoned-cart-social-proof
  • Email 3: flow-abandoned-cart-incentive

Or use a simpler numbering system:

  • flow-abandoned-cart-01
  • flow-abandoned-cart-02
  • flow-abandoned-cart-03

This granularity lets you see in Google Analytics which specific flow email drove the most revenue. Maybe Email 3 (with the incentive) drives 60% of flow revenue while Email 1 (the simple reminder) drives 30%. That data informs how you optimize the flow.

Troubleshooting Common UTM Issues

Issue 1: UTMs not appearing on links. Check that UTM tracking is enabled at the account level in Klaviyo. Also check if you have any link shorteners or redirect plugins that strip parameters during the redirect.

Issue 2: Revenue attributed to "direct" despite UTMs. This happens when the customer clicks the email link, browses your site, leaves, and comes back later directly. Google Analytics attributes the conversion to the last touchpoint — which is "direct" in this case. This is a limitation of last-click attribution, not a UTM issue.

Fix: Use first-click or linear attribution models in GA4 to give email credit for the initial click even if the purchase happened on a return visit.

Issue 3: Duplicate UTM parameters. If Klaviyo auto-adds UTMs and you ALSO manually add them to links in your email, you get double parameters. The manual ones might override the automatic ones, or the URL might break. Pick one approach: either use Klaviyo's automatic UTM tagging OR add them manually. Never both.

Issue 4: UTMs on internal links. If your email has a link to your privacy policy or unsubscribe page, and UTMs are applied to ALL links, those internal pages get tracked as "email" traffic. Configure Klaviyo to exclude specific URLs from UTM tagging (like your unsubscribe link and preference center).

Issue 5: Long URLs breaking in email clients. Some email clients (particularly Outlook on desktop) can break very long URLs. If your product URL is already long and you're adding 5 UTM parameters, the total URL might exceed limits. Use link shortening selectively for very long URLs, but make sure the shortener preserves parameters.

Reading UTM Data in Google Analytics

Once your UTMs are configured and data is flowing, here's where to find it and what to look for.

In GA4: Go to Reports, then Acquisition, then Traffic Acquisition. Filter by Session source/medium containing "klaviyo / email." This shows all traffic from your Klaviyo emails.

Drill into campaigns: Under the same report, add "Session campaign" as a secondary dimension. Now you can see which specific campaigns and flows drove the most traffic, engagement, and revenue.

Compare channels: In the same acquisition report, compare "klaviyo / email" performance against other channels. What's the conversion rate from email vs. paid search vs. social? This comparison justifies your email investment (or highlights where it needs improvement).

Revenue by flow email: Filter campaign dimension by "flow-" to see all your flow emails. Sort by revenue. This tells you which specific automated emails generate the most money — and where to focus optimization.

Beyond Basic UTMs: Advanced Attribution

UTM parameters power last-click (or last non-direct click) attribution by default. But email's contribution is often bigger than last-click shows.

GA4 Data-Driven Attribution: Google's machine learning model distributes credit across touchpoints. Enable this model and email typically gets 20-40% more credit than last-click gives it.

Klaviyo's Own Attribution: Klaviyo uses a 5-day click / 1-day open attribution window by default. This means Klaviyo claims credit for purchases that happen within 5 days of an email click or 1 day of an email open, regardless of what Google Analytics says.

The discrepancy is normal. Klaviyo will always show higher email revenue than Google Analytics because they use different attribution models. Neither is "wrong." They're measuring different things. Klaviyo measures email's influence. Google Analytics measures email's last-click contribution.

Use Klaviyo's numbers for email team performance and optimization decisions. Use Google Analytics for cross-channel budget allocation and media mix decisions.

The Monthly UTM Audit

Every month, spend 15 minutes checking your UTM health:

  1. Search GA4 for your source "klaviyo." Are all emails showing up? Any gaps?
  2. Check for naming inconsistencies. Are there variant spellings or capitalization issues creating duplicate entries?
  3. Verify new flows have proper UTM parameters. Every time you add a flow in Klaviyo, check that the UTMs are configured correctly.
  4. Compare Klaviyo revenue attribution to GA4 attribution. If the gap is widening, investigate potential tracking issues.
  5. Check your "direct" traffic bucket. If direct traffic is growing disproportionately, some channel (possibly email) is losing attribution.

What To Do Right Now

Go to your Klaviyo account. Check Settings, then Email, then UTM Tracking. If it's not enabled, enable it now and configure your default source (klaviyo), medium (email), and campaign (dynamic campaign name variable).

Then go to GA4 and check how much revenue is currently attributed to "email" as a medium. Compare that to Klaviyo's reported email revenue. If GA4 shows significantly less, your UTM tracking has been broken or misconfigured — and now you know to fix it.

If you want help getting your analytics and attribution dialed in across all channels — email, paid media, organic — book a call with our team. We'll make sure every dollar of revenue is properly attributed so you can make smarter investment decisions.

Mark Cijo

Written by Mark Cijo

Founder of GOSH Digital. Klaviyo Gold Partner. Helping eCommerce brands grow revenue through data-driven marketing.

Book a free strategy call →

Want results like these for your brand?

Book a free call. We'll look at your data and show you what's possible.

Pick a Time

15 minutes. No pitch deck. Just your data and our honest take.