Klaviyo is the most popular email and SMS platform for Shopify stores. Its abandonment flows - browse abandonment, cart abandonment, checkout abandonment - are responsible for a significant share of email revenue. But there is a structural problem most brands never discover: the majority of abandonment events never reach Klaviyo. The flows work. The triggers don't fire.
This guide explains how Klaviyo's tracking works, why it misses 60-70% of abandonment events, what server-side tracking changes, and how Shopify stores are using it to recover 2-3x more revenue from flows they already built.
How Klaviyo Tracking Works
Klaviyo relies on a JavaScript snippet that runs in the visitor's browser. When a shopper views a product, adds an item to their cart, or begins checkout, the snippet captures that event and sends it to Klaviyo's servers. If Klaviyo can match the event to a known profile, the event becomes a flow trigger. If the match is successful and the visitor qualifies for an abandonment flow, the email sequence begins.
This is client-side tracking. It depends on two things happening simultaneously:
-
The Klaviyo script must execute successfully in the shopper's browser - not blocked, failed to load, or restricted by privacy features.
-
Klaviyo must identify the visitor - an active cookie must link that browser session to a known Klaviyo profile.
The critical detail: Klaviyo's identification cookie has a functional window of approximately 24 hours. After a visitor's last identified session, the cookie either expires or is cleared by the browser. Safari's ITP enforces this aggressively, capping first-party cookies set via JavaScript at 7 days and often clearing them sooner.
A shopper who visits your store on Monday, returns on Thursday, adds a product to their cart, and abandons - that shopper is invisible to Klaviyo if their cookie from Monday no longer exists. No profile match. No trigger. No email.
For a full explanation of how client-side and server-side tracking differ, see our guide on what server-side tracking is and how to install it for Shopify.
Why Klaviyo Misses 60-70% of Abandonment Events
The gap between actual abandonment events and the ones Klaviyo captures is driven by three distinct mechanisms. Each one removes a portion of your events before Klaviyo can act on them.
1. Ad blockers and browser privacy features
Ad blockers don't just block ads. They block tracking scripts, including Klaviyo's JavaScript snippet. When an ad blocker prevents the script from loading, no client-side events are generated. The visitor browses products, adds items to their cart, abandons, and leaves. Klaviyo receives nothing - no event, no profile update, no trigger.
Browser privacy features compound this. Firefox Enhanced Tracking Protection, Brave's shields, and Safari's ITP all restrict or block third-party tracking scripts to varying degrees. The combined effect across your traffic means a meaningful percentage of visitors are browsing in conditions where Klaviyo's tracking cannot function.
2. Cookie expiry and the 24-hour identification gap
Even when Klaviyo's script loads and executes successfully, identification depends on cookies. Cookies expire. Browsers clear them. Privacy settings restrict them.
Consider a typical shopping journey: a customer sees your Instagram ad on her phone during lunch, taps through, browses two products, and closes the browser. Three days later, she opens Safari on the same phone, types your store URL directly, adds a product to her cart, and gets distracted before completing checkout.
By the time she returns, Klaviyo's cookie from the first visit is gone. The second session - the one with the actual cart abandonment - is anonymous. The Added to Cart event either isn't sent or can't be matched to her profile. The abandonment flow doesn't trigger.
This is the most common cause of missing triggers. It's also the hardest to detect, because Klaviyo's flows appear to work normally for the events that do make it through.
3. Cross-device and cross-browser journeys
Modern shoppers don't stay in one browser on one device. They start on their phone (often in an in-app browser from Instagram or TikTok), continue on a laptop, and sometimes finish on a tablet. Each browser context has its own cookies. Klaviyo sees these as separate, unconnected visitors.
This matters because cart context from one session doesn't carry over. A visitor who added to cart on mobile and later visits your store on desktop is, from Klaviyo's perspective, a completely new anonymous visitor. No abandonment trigger fires because Klaviyo has no record of the mobile cart activity.
For Shopify stores where 60-70% of traffic originates from mobile - often through social media ads that open in-app browsers - this cross-device gap affects the majority of shopping journeys.
For a deeper analysis of each mechanism, see why Klaviyo misses 60-70% of cart abandoners.
The Invisible Problem: You Can't See What Didn't Fire
This is the most important thing to understand about the gap: Klaviyo cannot show you what it doesn't know about.
When you review your abandoned cart flow in Klaviyo, you see metrics for the events that successfully fired and matched to a profile. Open rate, click rate, conversion rate, revenue per recipient - all calculated against the flow entries that actually occurred. The flow might look healthy. A 45% open rate. An 8% click rate. Strong revenue attribution.
But those metrics tell you nothing about the events that never arrived.
There is no "missed events" counter in Klaviyo. There is no alert saying "You had 1,200 cart abandoners this week, but we only received events for 400 of them." Klaviyo reports on what it received. The other 800 abandoners simply don't exist in any report, dashboard, or flow metric.
This creates a dangerous illusion. Brands invest time optimizing subject lines, send timing, and discount incentives - all of which optimizes for the 30-40% of abandoners Klaviyo already captures. The 60-70% whose events never fire remains completely unaddressed.
The only way to see the gap is to compare Klaviyo's flow entries against actual store events. When stores add server-side event capture and see flow entries double or triple, the scale of what was missing becomes clear.
What Server-Side Tracking Changes
Server-side tracking changes how abandonment events reach Klaviyo. Events are captured at the server level and sent directly, bypassing ad blockers, browser restrictions, and cookie limitations. But raw event delivery alone isn't enough. The real change comes from two capabilities working together.
Persistent shopper profiles
Client-side tracking identifies visitors through cookies that last approximately 24 hours. Server-side tracking with persistent shopper profiles extends that identification window to 7, 14, or even 100+ days.
When a visitor first lands on your store, TrackBee creates a persistent profile that links to that visitor across sessions, browsers, and devices. When the same shopper returns three days later on a different browser and adds something to their cart, TrackBee recognizes them. The abandonment event fires and reaches Klaviyo matched to the correct profile.
This is the direct solution to the 24-hour cookie gap. Instead of losing identification after a day, the shopper remains identifiable for weeks or months. The gap between "actual abandoners" and "abandoners Klaviyo knows about" shrinks dramatically.
To understand how session enrichment and shopper profiles work in detail, see session enrichment explained.
Server-side event capture
Every event - PageView, ProductView, AddToCart, BeginCheckout, Purchase - is captured server-side, independent of what happens in the visitor's browser. Ad blockers can't prevent it. Cookie consent doesn't block it. In-app browsers from Instagram and TikTok don't restrict it.
The events are enriched with hashed customer identifiers (email, phone, address when available) before being sent to Klaviyo. This enrichment means Klaviyo receives more identifiable events with more data points per event than browser-based tracking can deliver.
Browse Abandonment: What Changes with Server-Side Data
Browse abandonment flows target visitors who viewed products but didn't add to cart. They are typically the highest-volume abandonment flow and the most affected by the identification gap.
With client-side tracking only, Klaviyo's browse abandonment flow triggers when a known visitor views a product and leaves without adding to cart. The problem: most product viewers are anonymous. They arrived from an ad, viewed products in an in-app browser, and left. Klaviyo's script either didn't load in that browser context or couldn't match the visitor to a profile. No trigger.
With server-side tracking and persistent profiles, the same visitor is identified through their server-side profile. The product view event fires server-side. If the visitor was previously identified (through a past purchase, email signup, or Klaviyo form submission), the event matches to their profile. The browse abandonment flow triggers.
The result is a significantly larger pool of qualified flow entries. Not more emails to the same people - more emails to people who were previously invisible.
For specific tactics on improving browse abandonment performance, see how to improve your Klaviyo browse abandonment flow and recover more revenue.
Cart Abandonment: What Changes with Server-Side Data
Cart abandonment flows are typically the highest-revenue abandonment flow - and cart abandonment is one of the most costly problems in ecommerce. They also have the most to gain from server-side tracking, because every missed cart trigger represents a visitor with clear purchase intent who never received a recovery email.
With client-side tracking, the trigger fires when a known Klaviyo profile adds to cart and doesn't purchase within the flow's time window. Ad blockers, cookie expiry, and cross-device journeys collectively prevent 60-70% of these events from reaching Klaviyo.
With server-side tracking, the cart event is captured regardless of browser conditions. Persistent profiles maintain identification across sessions and devices. The shopper who added to cart on her phone and didn't return for three days is still identified. The trigger fires. The recovery email sends.
What stores typically see after enabling server-side events for Klaviyo:
-
2-3x more abandonment flow triggers - not from re-sending to existing recipients, but from reaching abandoners who were previously invisible
-
Maintained or improved flow conversion rates - the additional recipients are genuine abandoners with purchase intent, not low-quality traffic
-
Significant incremental revenue from flows that were already built and optimized
For detailed strategies on cart abandonment flow optimization, see how to improve your Klaviyo abandoned cart flow.
How to Set Up Server-Side Tracking with Klaviyo
The setup involves running parallel flows alongside your existing native Klaviyo flows, ensuring no disruption while capturing additional events.
Step 1: Connect Klaviyo in TrackBee
In your TrackBee dashboard, navigate to Stores, select your store, and open Connections. Add Klaviyo as a connection. TrackBee will begin sending server-side Browse Abandonment and Cart Abandonment events to your Klaviyo account.
Step 2: Create parallel TrackBee flows in Klaviyo
Rather than modifying your existing Klaviyo flows, create separate flows triggered by TrackBee events. This gives you two parallel flow systems:
-
Native Klaviyo flows: triggered by Klaviyo's own client-side events (keep these running as-is)
-
TrackBee flows: triggered by server-side events from TrackBee (these capture the visitors Klaviyo misses)
This parallel structure means you can compare performance side by side and never risk disrupting your existing flows.
Step 3: Add profile filters to prevent duplicate sends
The critical step in a parallel flow setup is deduplication. You need profile filters that ensure a visitor who was captured by both the native flow and the TrackBee flow only receives one email sequence, not two.
Configure your TrackBee flows to exclude profiles who have already entered the corresponding native Klaviyo flow within the relevant time window. This ensures TrackBee flows only send to the additional abandoners that Klaviyo's native tracking missed.
Step 4: Verify event delivery
After setup, monitor both flow systems. You should see your TrackBee flows receiving entries for visitors who don't appear in your native flows. This is the recovered audience - the 60-70% who were previously invisible.
The entire setup takes minutes and requires no developer involvement. TrackBee handles the server-side event capture, enrichment, and delivery. Klaviyo handles the flow logic and email sending.
Real Results: 5 Brands Recovering Abandoned Revenue
The numbers below are from real Shopify stores that added server-side abandonment events to their Klaviyo setup. Each result reflects incremental revenue from flows triggered by events that Klaviyo's native tracking missed.
Zwarte Roes: +194% abandonment revenue in 30 days
Zwarte Roes, a Dutch fashion brand, saw their Klaviyo abandonment revenue increase by 194% within 30 days of enabling server-side events through TrackBee. The existing flows were already well-optimized. The revenue increase came entirely from reaching abandoners whose events had previously never triggered a flow.
Don't Waste Culture: +53% Klaviyo abandonment revenue
Don't Waste Culture, a sustainable fashion brand, added server-side abandonment events and saw a 53% increase in Klaviyo abandonment revenue. The growth came from the expanded pool of flow recipients - visitors who had abandoned carts and browse sessions that Klaviyo's client-side tracking couldn't capture.
HappyFlops: $89,000 in Klaviyo abandonment revenue in 6 weeks
HappyFlops generated $89,000 in abandonment flow revenue within six weeks of adding server-side events. This represents revenue from recovery emails that would not have been sent without server-side event capture. The flows were standard abandonment sequences - the difference was the volume of triggers reaching them.
Sassy Saints: $15,000 extra browse abandonment revenue in 30 days
Sassy Saints recovered $15,000 in additional revenue in their first 30 days, specifically from browse abandonment flows triggered by server-side events. Browse abandonment is typically the flow most affected by the identification gap, because product viewers are disproportionately anonymous visitors arriving from ads.
Marielle Stokkelaar: EUR 24,000 extra Klaviyo revenue in 30 days
Marielle Stokkelaar, a Dutch jewelry brand, generated EUR 24,000 in additional Klaviyo revenue within 30 days. The revenue came from both browse and cart abandonment flows triggered by events that were previously lost to cookie expiry and cross-device journeys.
The pattern across all five
None of these brands changed their flow structure, email copy, or discount strategy. The revenue increase came from one change: reaching abandoners who were previously invisible to Klaviyo. The scale of recovery - 53% to 194% - reflects how large the gap is between what Klaviyo captures natively and what actually happens on a Shopify store.
Impact on Klaviyo Revenue Attribution
When server-side events expand your flow audience, Klaviyo's revenue attribution changes in predictable ways.
Total flow revenue increases
More flow entries mean more emails sent, which means more conversions attributed to flows. Brands typically see total Klaviyo-attributed revenue increase by 30-80% in the first month, depending on store traffic volume, ad spend, and existing flow maturity.
Revenue per recipient stays stable or improves
The additional recipients are genuine abandoners with demonstrated purchase intent - they viewed products, added to cart, and simply weren't captured by Klaviyo's native tracking. Conversion rates for server-side flow entries are comparable to or better than the existing flow audience.
Klaviyo's share of total revenue grows
As flow triggers increase, Klaviyo captures a larger share of your store's total revenue attribution. This doesn't mean other channels are performing worse - it means Klaviyo is finally getting credit for recovery emails that should have been sending all along.
Reporting becomes more accurate
With server-side events filling the gap, the difference between actual store activity and what Klaviyo reports narrows. You see a more complete picture of abandonment behavior, flow performance, and email-driven revenue.
Frequently Asked Questions
Does server-side tracking replace Klaviyo's native tracking?
No. It supplements it. Your existing Klaviyo setup stays exactly as-is. Server-side events run in parallel, capturing what Klaviyo's native tracking misses. Deduplication ensures no visitor receives duplicate emails.
Will this cause duplicate emails?
Not when set up correctly. Profile filters prevent a visitor captured by both systems from receiving emails from both flows. TrackBee flows exclude profiles already in native Klaviyo flows.
How quickly will I see results?
Most stores see increased flow entries within 24-48 hours. Revenue impact depends on your flow timing - full impact is typically visible within 7-14 days.
Do I need to rebuild my Klaviyo flows?
No. You create parallel flows triggered by TrackBee events, using the same email templates and timing you already have. Your existing native flows stay untouched.
What events does TrackBee send to Klaviyo?
Browse Abandonment and Cart Abandonment. These are the events most affected by the identification gap and where the revenue impact is largest.
How does TrackBee identify visitors that Klaviyo can't?
TrackBee builds persistent shopper profiles that maintain identification across sessions, browsers, and devices for 7, 14, or 100+ days - compared to Klaviyo's approximately 24-hour cookie window.
Is this compliant with privacy regulations?
Yes. TrackBee operates as a first-party data processor, uses hashed customer identifiers, and respects consent signals. It is compatible with Google Consent Mode V2 and works with consent platforms like Pandectes and Consentik.
Do I need a developer?
No. The entire setup can be done without development work. TrackBee is built for Shopify and designed for marketers, not engineers.
What to do next
If your Klaviyo abandonment flows are performing well on paper but you suspect there's more revenue to capture, the gap between what Klaviyo sees and what actually happens on your store is almost certainly the reason.
Server-side tracking with persistent shopper profiles closes that gap. It doesn't replace what Klaviyo does well. It captures what Klaviyo structurally cannot.
Start your free 30-day TrackBee trial - no credit card required. Connect your Klaviyo account in minutes, set up your parallel flows, and see how many abandonment events have been missing.


.png)

