Niblin
Guide11 min read

Klaviyo Says It Drove the Sale. Meta Says It Drove the Sale. Here's Who's Lying.

Your email platform claims 40% of revenue. Your ad platform claims 60%. That's 100% of revenue accounted for - except your total is only 100%. This guide shows how to resolve the attribution conflict and find the truth.

Last Updated: May 26, 2026Atul TirkeyBy Atul Tirkey, Founder at Niblin

Your Meta Ads Manager says it drove $30K in revenue last month. Klaviyo says email generated $20K. Google Ads claims $15K. That's $65K total.

Your Shopify store did $50K.

$15K in revenue was claimed by multiple platforms. This isn't a bug - it's how attribution works. Every platform uses self-serving measurement that maximizes its own credit. And you're making budget decisions based on inflated numbers.

This guide explains exactly why Klaviyo and Meta double-count, how to measure what each channel actually contributes, and how to allocate your budget based on reality - not platform vanity metrics.

The Double-Counting Problem

Here's why your attributed revenue always exceeds your actual revenue:

  • Meta: "This person saw or clicked our ad and bought within 7 days. We drove that sale."
  • Klaviyo: "This person opened or clicked our email and bought within 5 days. We drove that sale."
  • Google Ads: "This person clicked our ad and bought within 30 days. We drove that sale."
  • Reality: The customer touched all three before buying. Each claims full credit.
Total AttributedActual RevenueOvercounting
$65K across all channels$50K in Shopify30% inflated
$95K across all channels$50K in Shopify90% inflated
$120K across all channels$50K in Shopify140% inflated

A 30-50% total overcounting is typical. Above 100% means your attribution is badly misconfigured.

How Each Platform Claims Credit

  • Default: 7-day click + 1-day view
  • Claims credit if customer saw an ad (even without clicking) and bought within 1 day
  • Claims credit if customer clicked and bought within 7 days
  • Uses modeled conversions for iOS users (estimated, not measured)
  • Revenue is self-reported from pixel/CAPI events
  • Default: 5-day attribution window after open or click
  • Claims credit if customer opened an email and bought within 5 days
  • Claims credit if customer clicked an email and bought within 5 days
  • Uses last-touch within its own channel (ignores other touchpoints)
  • Revenue pulled directly from Shopify integration

The most common overlap scenario:

  • Customer clicks a Meta ad on Monday (Meta starts 7-day window)
  • Customer receives a Klaviyo email on Wednesday, opens it (Klaviyo starts 5-day window)
  • Customer buys on Thursday
  • Meta claims it: within 7-day click window
  • Klaviyo claims it: within 5-day open window
  • You had 1 order. Two platforms report 1 conversion each. Total attributed = 2.

The Overlap Math: How Much Is Double-Counted

You can estimate your overlap rate with this simple analysis:

Overlap Rate = (Total Attributed Revenue Across All Channels - Actual Shopify Revenue) ÷ Actual Shopify Revenue × 100

Overlap RateStatusAction
0-20%HealthyMinor overlap, attribution is reasonable
20-50%NormalTypical for multi-channel businesses
50-80%HighAttribution windows are too wide or view-through is inflating
80%+BrokenCheck for CAPI dedup issues, multiple pixels, or misconfigured events
  • Meta view-through + Klaviyo email open: Both are passive touchpoints. The customer may have bought regardless.
  • Meta retargeting + Klaviyo abandoned cart: Both target the same customer who showed purchase intent. Neither may have caused the sale.
  • Google Brand Search + any other channel: Customer was already going to buy and searched your brand name. Google claims the credit.

The Customer Journey Reality

A real customer journey looks nothing like what any single platform reports:

  • Day 1: Sees Meta ad in Instagram feed (doesn't click). Meta records an impression.
  • Day 2: Sees retargeting ad on Facebook. Clicks through, browses, leaves without buying.
  • Day 3: Receives Klaviyo "You left something behind" email. Opens but doesn't click.
  • Day 4: Sees another Meta ad. Doesn't click.
  • Day 5: Googles your brand name. Clicks the Google Ad. Buys.
  • Day 5 (same session): Receives Klaviyo order confirmation.
PlatformClaims Credit?Basis
Meta AdsYes7-day click (Day 2 click) + 1-day view (Day 4 impression)
KlaviyoYes5-day open (Day 3 email open)
Google AdsYes30-day click (Day 5 click)
Shopify1 orderActual transaction

Three platforms claim the same order. The real question isn't "who drove it" - it's "what would have happened without each channel?"

Incrementality: The Only Way to Find the Truth

Attribution models tell you who touched the customer. Incrementality testing tells you who actually caused the sale.

If you turned off Meta ads entirely, how many fewer sales would you get? That gap is Meta's true incremental contribution. It's usually 40-70% of what Meta self-reports.

  • Step 1: Pick two similar geographic regions (e.g., Texas and Florida)
  • Step 2: Run Meta ads normally in Texas (control). Pause Meta ads in Florida (holdout).
  • Step 3: Run for 2-4 weeks. Compare Shopify revenue per capita in both regions.
  • Step 4: The difference = Meta's incremental contribution.
  • Repeat for Klaviyo (suppress emails to one segment, keep for another).
ChannelPlatform ClaimsTypical IncrementalityTrue Credit
Meta Ads (prospecting)100% of attributed50-70%Genuinely drives new demand
Meta Ads (retargeting)100% of attributed20-40%Many would have bought anyway
Klaviyo (flows)100% of attributed15-35%Abandoned cart/welcome flows have some lift
Klaviyo (campaigns)100% of attributed5-20%Broadcast emails mostly catch existing intent
Google Brand Search100% of attributed5-15%Almost all would have navigated directly

The uncomfortable truth: Most Klaviyo "attributed" revenue isn't incremental. The customer was already in your funnel. The email was a nudge, not a driver. Cutting email wouldn't lose 40% of revenue - it would lose 5-15%.

Budget Allocation: Using Incrementality for Decisions

Apply your incrementality factor to each channel's reported ROAS:

  • Meta reports 3.5x ROAS. Incrementality factor: 0.6. True incremental ROAS: 2.1x
  • Google Brand reports 8x ROAS. Incrementality factor: 0.1. True incremental ROAS: 0.8x
  • Suddenly that "amazing" Google Brand campaign is breakeven, and Meta is your real growth driver.
  • Shift budget from channels with low incrementality to channels with high incrementality
  • Meta prospecting usually has the highest incrementality (new demand creation)
  • Email campaigns have the lowest (capturing existing demand)
  • Retargeting sits in the middle (some lift, but much is cannibalization)
  • MER = Total Shopify Revenue ÷ Total Ad Spend (all channels)
  • If MER stays healthy as you shift budget, incrementality-based allocation is working
  • If MER drops, you cut something that was more incremental than estimated

Stop Arguing About Credit. Start Measuring Impact.

Every dollar spent arguing about attribution is a dollar not spent on growth. The question isn't "who touched the customer" - it's "what would happen if I changed my spend?"

See the full picture in one place.

Ask Niblin's AI agent "which channel is actually driving profit?" and get an answer computed from your Shopify, Meta, Google, and Klaviyo data together. No double-counting. No platform vanity metrics. Just the truth. $299/mo to start.

Start Free Trial - 15 Minute Setup

Key Takeaways

  • Every ad and email platform uses self-serving attribution that overcounts its own contribution
  • Total attributed revenue typically exceeds actual revenue by 30-80% for multi-channel businesses
  • The biggest overlap: Meta view-through + Klaviyo email open - both passive touchpoints claiming active credit
  • Incrementality testing (geo holdouts) reveals true channel contribution - usually 40-70% of self-reported
  • Klaviyo's attributed revenue is often the least incremental - most email recipients would have bought anyway
  • Meta prospecting typically has the highest incrementality (new demand creation)
  • Use blended MER as your single source of truth for overall channel mix health

Frequently Asked Questions

Why do Klaviyo and Meta both claim the same sale?

Each platform uses last-touch attribution within its own channel. A customer who saw a Meta ad then opened a Klaviyo email then purchased gets counted by both. Neither is "wrong" - they each saw a real touchpoint. The problem is both claim 100% credit for a shared conversion.

How do I know which channel actually drove the sale?

Run incrementality tests: pause Meta ads for one region and compare sales to a control region. Do the same with email. The gap in sales reveals each channel's true incremental contribution - typically 40-70% of what each platform self-reports.

Is Klaviyo revenue really incremental?

Partially. Klaviyo flows (abandoned cart, welcome series) have 15-35% incrementality. Campaign emails (broadcasts) have 5-20%. Most email recipients were already in your funnel and would have purchased regardless. Email is valuable for retention but its revenue attribution is heavily inflated.

What is a normal overlap rate between channels?

A 20-50% total overcounting across all channels is normal for multi-channel ecommerce. Above 80% usually indicates misconfigured tracking, duplicate pixels, or attribution windows that are too wide. Calculate by comparing total attributed revenue to actual Shopify revenue.

Ready to optimize your e-commerce analytics?

Connect your Shopify and Amazon stores to get unified insights across all your sales channels.