How Email and SMS Clicks Fit Into Ad Attribution: What a Klaviyo Integration Actually Does

How Email and SMS Clicks Fit Into Ad Attribution

A Klaviyo integration in an attribution tool sounds like a checkbox, and for most tools it is: revenue flows in, a column appears, and the store now has one more platform claiming credit for the same orders. 

Klaviyo’s own dashboard already reports attributed revenue under rules that count email opens, including Apple’s automated ones, across a five-day window, with no idea a Meta ad was clicked two days earlier. 

This post explains what Klaviyo counts, why its number overlaps with every ad platform’s, and what an integration has to pull for email and SMS clicks to sit correctly inside a multi channel attribution picture rather than on top of it.

How does Klaviyo attribute revenue?

Klaviyo attributes an order to the most recent Klaviyo message the customer interacted with inside a window, using a last-touch model across its own channels only. 

For accounts created after October 2024, the defaults are 5 days for an email click, 5 days for an email open, 5 days for an SMS click, 1 day for an SMS open, and 12 hours after an SMS is merely delivered, per Everboost’s 2026 breakdown of the settings. 

Klaviyo’s own documentation confirms both opens and clicks count, and that the windows are adjustable.

Three things follow from that, and each pushes Klaviyo’s number up:

  • Opens count. An email that was opened but never clicked can take credit for a purchase five days later. Apple Mail Privacy Protection fires automated opens on a large share of iPhone recipients, and those count unless you switch on the exclusion.
  • Delivered counts, for SMS. A text that arrived and was never touched can claim an order placed within 12 hours.
  • Full order value, no refunds, renewals included. Klaviyo credits the whole order, does not subtract later refunds, and counts subscription renewals that never involved a click.

None of this is wrong by Klaviyo’s rules. Klaviyo is measuring the influence of its messages on its subscribers, and it is good at that. The problem starts when the number leaves Klaviyo.

Why Klaviyo’s number overlaps with Meta’s, Google’s, and Shopify’s

Klaviyo’s attributed revenue overlaps with every other platform because Klaviyo, like every other platform, credits sales it touched rather than sales it closed, and it has no visibility into the other touches. 

Dolphin Analytics’ audit of the mismatch puts it precisely: Klaviyo credits email whenever a recipient clicked, and often opened, inside its window, regardless of what else happened.

Run one common journey through the systems. A shopper clicks a Meta prospecting ad on Monday, abandons a cart, gets a Klaviyo abandoned-cart email Tuesday, clicks it, and buys Wednesday.

  • Meta credits itself: a purchase within the 7-day click window.
  • Klaviyo credits the flow: a purchase within the 5-day click window.
  • Shopify credits Klaviyo: last non-direct click, and the email carried utm_source=klaviyo.
  • GA4 credits email: last non-direct session.

One order, four claims, and the abandoned-cart flow gets a 100 percent share from three of them. The email did real work. So did the ad that started the journey, and Klaviyo’s report cannot see it. 

This is the fragmentation we described in our post on fragmented customer journeys, with an owned channel in the middle of it.

What a Klaviyo integration should actually pull

A Klaviyo integration is useful for attribution only if it brings email and SMS clicks in as touchpoints with the same status as ad clicks, so a single model can run across paid and owned together. That requires more than a revenue feed.

  1. Clicks per profile, with timestamps. Not attributed revenue. The raw event: this subscriber clicked this message at this time. Klaviyo appends an encrypted recipient identifier, _kx, to every tracked link, and it is Klaviyo’s equivalent of a click ID, as Terminus’s Klaviyo UTM guide explains. Captured at landing alongside fbclid and gclid, it is what lets an email click sit in the same session record as an ad click.
  2. Flow versus campaign. An abandoned-cart flow and a promotional blast are different kinds of touch. The first is triggered by behavior that something else caused. The second is outbound. An integration that lumps them together hides the difference between email that recovers a sale and email that starts one.
  3. UTMs turned on and consistent. Klaviyo’s UTM tracking is off by default. When on, it applies utm_source=klaviyo and utm_medium=email or sms with dynamic campaign and message names. Turn it on, and make it match your convention (IDs where possible, lowercase always), so Shopify and your attribution tool see the same label.
  4. Opens excluded from the eligible set. An open is not a click. An Apple auto-open is not even an open. If the integration passes open-based attribution through as a touchpoint, it imports Klaviyo’s inflation wholesale.
  5. New versus returning, joined to the order. Most email revenue is retention revenue. It should be visible as such, next to the acquisition channel that earned the customer in the first place. New customer acquisition cost is the number that email should never be allowed to distort.

Where email and SMS belong in the attribution picture

Email and SMS clicks belong in the attribution record as real, verifiable touches, and they belong in the reporting as retention channels first.

  • Under a first-click model across paid and owned, 
  • most Klaviyo clicks land mid-journey or late, 
  • which is what an abandoned-cart flow is for. 
  • Under last click, 
  • they collect a lot of credit, 
  • which is why Klaviyo’s dashboard looks the way it does. 

Reading both views for the same period is the customer journey analytics that shows you what email actually does: how often it starts a journey (campaigns to dormant subscribers, referral flows) versus how often it finishes one an ad started.

That is the view a click-only, first-party record makes possible. 

  • Capture the ad click ID and the Klaviyo _kx at landing, on your own domain. 
  • Follow the session. 
  • Join the order. 
  • Then every touchpoint in the path is a click you captured, whether it came from Meta, Google, or an email, and you can run first click, last click, or any model over the whole set without importing anyone’s opens or view-throughs. 

It will not credit the email that was read and not clicked, and it will undercount some influence there. What it gives you is one order, one path, one set of rules, across paid and owned. Cross-channel attribution covers the same principle for the paid side.

What to actually do

  1. Fix Klaviyo’s own settings first. Exclude Apple MPP opens. Shorten the open window to 1 to 3 days or turn opens off for attribution. Disable the delivered-SMS touchpoint. Klaviyo’s model comparison tool shows the effect before you save.
  2. Turn on UTM tracking and align it to your convention. utm_source=klaviyo, utm_medium=email or sms, campaign and message identifiers in the remaining slots.
  3. Reconcile Klaviyo to Shopify monthly, net of refunds, renewals excluded. The gap that remains is Klaviyo’s window and open rules. Name it and track it.
  4. Ask your attribution tool what its Klaviyo integration pulls. Revenue, or clicks with timestamps and profile IDs? If it is the former, email is sitting on top of your attribution, not inside it.
  5. Report email as retention, next to acquisition. Two columns: new-customer revenue by acquisition channel, repeat revenue by retention channel. Email will dominate the second and almost never the first, and that is the honest picture.

Klaviyo’s report is accurate about Klaviyo and blind to everything else, which is the same thing that is true of Meta’s and Google’s. Bringing email and SMS clicks into the same record as ad clicks, with opens left out and retention separated from acquisition, is what a Klaviyo integration is for. 

If you want to see email, SMS, and paid clicks in one click-only, first-party attribution record on your own store, book a live AdBeacon demo.

—-

FAQ

How does Klaviyo attribute revenue?

Last touch across Klaviyo’s own channels, within a window: by default 5 days for email clicks and opens, 5 days for SMS clicks, 1 day for SMS opens, and 12 hours after an SMS is delivered. It credits full order value and does not see ad clicks.

Why is Klaviyo attributed revenue higher than Shopify?

Klaviyo counts opens (including Apple automated opens), credits delivered SMS, includes subscription renewals, ignores refunds, and claims any order inside its window regardless of other touchpoints. Shopify records completed orders net of refunds and credits the last non-direct click.

Does Klaviyo double count with Meta and Google?

Yes, in the sense that all three credit themselves for the same order if each touched the journey inside its own window. None of them deduplicate against the others.

What is the _kx parameter in Klaviyo links?

An encrypted recipient identifier Klaviyo appends to tracked links. It is Klaviyo’s click identifier, separate from UTMs, and it lets an email click be tied to a specific subscriber profile.

Should email be counted as an acquisition channel?

Rarely. Most email and SMS revenue is from existing subscribers, so it belongs in retention reporting. Run first-click and last-click views across paid and owned together to see how often email starts a journey versus finishes one.

Sources

This website uses cookies

We use cookies to personalize content, provide social media features, and analyze our traffic. We also share information about your use of our site with our analytics partners. You can change your preferences at any time. For more information, please see our Privacy Policy and Cookie Policy. Privacy Policy