Attribution Models

Cross-Platform Attribution in 2026: Why Meta + Google + TikTok ≠ Your Actual Sales

Panto Source

Panto Source

Cross-Platform Attribution

You check your dashboards. Meta says 487 conversions. Google claims 512. TikTok reports 203. Add them up: 1,202 conversions.

Then you check Shopify: 650 orders.

This isn't a glitch. It's multi-platform attribution working exactly as designed — with every platform claiming credit for the same customers.

This guide explains why the math never adds up, how to measure your actual attribution inflation, and what to do about it in 2026.

The Math Problem in 30 Seconds

Every ad platform grades its own homework. When a customer sees your TikTok ad, clicks your Google search result, and converts after a Meta retargeting ad, all three platforms claim that single sale as their own.

THE DOUBLE-COUNTING PROBLEM
════════════════════════════════════════════════════════════════════════════

    ONE CUSTOMER JOURNEY:
    
    Day 1: Sees TikTok ad (doesn't click)
    Day 3: Clicks Google Search ad
    Day 5: Sees Meta retargeting ad
    Day 7: Returns direct to site Purchases
    
    ─────────────────────────────────────────────────────────────────────────
    
    WHAT EACH PLATFORM REPORTS:
    
    TikTok:    +1 conversion (7-day view-through)
    Google:    +1 conversion (30-day click)
    Meta:      +1 conversion (7-day click, 1-day view)
    
    TOTAL REPORTED:  3 conversions
    ACTUAL SALES:    1 order
    
    ─────────────────────────────────────────────────────────────────────────
    
    SCALE THIS ACROSS 650 ORDERS:
    
    Platform reports:    1,200+ "conversions"
    Shopify orders:      650 actual sales
    
    Attribution Inflation: 85%
    
════════════════════════════════════════════════════════════════════════════
THE DOUBLE-COUNTING PROBLEM
════════════════════════════════════════════════════════════════════════════

    ONE CUSTOMER JOURNEY:
    
    Day 1: Sees TikTok ad (doesn't click)
    Day 3: Clicks Google Search ad
    Day 5: Sees Meta retargeting ad
    Day 7: Returns direct to site Purchases
    
    ─────────────────────────────────────────────────────────────────────────
    
    WHAT EACH PLATFORM REPORTS:
    
    TikTok:    +1 conversion (7-day view-through)
    Google:    +1 conversion (30-day click)
    Meta:      +1 conversion (7-day click, 1-day view)
    
    TOTAL REPORTED:  3 conversions
    ACTUAL SALES:    1 order
    
    ─────────────────────────────────────────────────────────────────────────
    
    SCALE THIS ACROSS 650 ORDERS:
    
    Platform reports:    1,200+ "conversions"
    Shopify orders:      650 actual sales
    
    Attribution Inflation: 85%
    
════════════════════════════════════════════════════════════════════════════
THE DOUBLE-COUNTING PROBLEM
════════════════════════════════════════════════════════════════════════════

    ONE CUSTOMER JOURNEY:
    
    Day 1: Sees TikTok ad (doesn't click)
    Day 3: Clicks Google Search ad
    Day 5: Sees Meta retargeting ad
    Day 7: Returns direct to site Purchases
    
    ─────────────────────────────────────────────────────────────────────────
    
    WHAT EACH PLATFORM REPORTS:
    
    TikTok:    +1 conversion (7-day view-through)
    Google:    +1 conversion (30-day click)
    Meta:      +1 conversion (7-day click, 1-day view)
    
    TOTAL REPORTED:  3 conversions
    ACTUAL SALES:    1 order
    
    ─────────────────────────────────────────────────────────────────────────
    
    SCALE THIS ACROSS 650 ORDERS:
    
    Platform reports:    1,200+ "conversions"
    Shopify orders:      650 actual sales
    
    Attribution Inflation: 85%
    
════════════════════════════════════════════════════════════════════════════

This isn't fraud. It's how attribution windows work — each platform counts any customer who touched their ads within their lookback window, regardless of what other platforms also touched.

The Attribution Inflation Formula

Before you can fix the problem, measure it:

ATTRIBUTION INFLATION RATE
════════════════════════════════════════════════════════════════════════════

                          Total Platform-Reported Conversions
    Inflation Rate (%)  = ─────────────────────────────────────  -  1  ×  100
                               Actual Backend Conversions
    
    ─────────────────────────────────────────────────────────────────────────
    
    EXAMPLE:
    
    Meta reported:        487 conversions
    Google reported:      512 conversions
    TikTok reported:      203 conversions
    ─────────────────────
    Total reported:       1,202 conversions
    
    Shopify orders:       650 actual sales
    
                          1,202
    Inflation Rate (%)  = ─────  -  1  ×  100   =   85%
                           650
    
    ─────────────────────────────────────────────────────────────────────────
    
    BENCHMARKS:
    
    Inflation < 30%       Healthy minimal overlap
    Inflation 30-60%      Moderate typical for multi-channel
    Inflation 60-100%     High significant double-counting
    Inflation > 100%      Severe platforms claim 2x+ your actual sales
    
════════════════════════════════════════════════════════════════════════════
ATTRIBUTION INFLATION RATE
════════════════════════════════════════════════════════════════════════════

                          Total Platform-Reported Conversions
    Inflation Rate (%)  = ─────────────────────────────────────  -  1  ×  100
                               Actual Backend Conversions
    
    ─────────────────────────────────────────────────────────────────────────
    
    EXAMPLE:
    
    Meta reported:        487 conversions
    Google reported:      512 conversions
    TikTok reported:      203 conversions
    ─────────────────────
    Total reported:       1,202 conversions
    
    Shopify orders:       650 actual sales
    
                          1,202
    Inflation Rate (%)  = ─────  -  1  ×  100   =   85%
                           650
    
    ─────────────────────────────────────────────────────────────────────────
    
    BENCHMARKS:
    
    Inflation < 30%       Healthy minimal overlap
    Inflation 30-60%      Moderate typical for multi-channel
    Inflation 60-100%     High significant double-counting
    Inflation > 100%      Severe platforms claim 2x+ your actual sales
    
════════════════════════════════════════════════════════════════════════════
ATTRIBUTION INFLATION RATE
════════════════════════════════════════════════════════════════════════════

                          Total Platform-Reported Conversions
    Inflation Rate (%)  = ─────────────────────────────────────  -  1  ×  100
                               Actual Backend Conversions
    
    ─────────────────────────────────────────────────────────────────────────
    
    EXAMPLE:
    
    Meta reported:        487 conversions
    Google reported:      512 conversions
    TikTok reported:      203 conversions
    ─────────────────────
    Total reported:       1,202 conversions
    
    Shopify orders:       650 actual sales
    
                          1,202
    Inflation Rate (%)  = ─────  -  1  ×  100   =   85%
                           650
    
    ─────────────────────────────────────────────────────────────────────────
    
    BENCHMARKS:
    
    Inflation < 30%       Healthy minimal overlap
    Inflation 30-60%      Moderate typical for multi-channel
    Inflation 60-100%     High significant double-counting
    Inflation > 100%      Severe platforms claim 2x+ your actual sales
    
════════════════════════════════════════════════════════════════════════════

An 85% inflation rate means your platforms are collectively claiming nearly double your actual conversions. Every budget decision you make based on platform ROAS is built on inflated numbers.

ATTRIBUTION INFLATION SCALE
════════════════════════════════════════════════════════════════════════════

    YOUR INFLATION RATE:
    
    0%        30%        60%        100%       150%       200%+
    
    
    ├──────────┼──────────┼──────────┼──────────┼──────────┤
    HEALTHY MODERATE HIGH   SEVERE  CRITICAL 
    ├──────────┼──────────┼──────────┼──────────┼──────────┤
    
    HEALTHY (0-30%):     Minimal platform overlap. Data is usable.
    MODERATE (30-60%):   Typical for multi-channel. Adjust decisions.
    HIGH (60-100%):      Significant double-counting. Don't trust ROAS.
    SEVERE (100-150%):   Platforms claim 2x your actual sales.
    CRITICAL (150%+):

ATTRIBUTION INFLATION SCALE
════════════════════════════════════════════════════════════════════════════

    YOUR INFLATION RATE:
    
    0%        30%        60%        100%       150%       200%+
    
    
    ├──────────┼──────────┼──────────┼──────────┼──────────┤
    HEALTHY MODERATE HIGH   SEVERE  CRITICAL 
    ├──────────┼──────────┼──────────┼──────────┼──────────┤
    
    HEALTHY (0-30%):     Minimal platform overlap. Data is usable.
    MODERATE (30-60%):   Typical for multi-channel. Adjust decisions.
    HIGH (60-100%):      Significant double-counting. Don't trust ROAS.
    SEVERE (100-150%):   Platforms claim 2x your actual sales.
    CRITICAL (150%+):

ATTRIBUTION INFLATION SCALE
════════════════════════════════════════════════════════════════════════════

    YOUR INFLATION RATE:
    
    0%        30%        60%        100%       150%       200%+
    
    
    ├──────────┼──────────┼──────────┼──────────┼──────────┤
    HEALTHY MODERATE HIGH   SEVERE  CRITICAL 
    ├──────────┼──────────┼──────────┼──────────┼──────────┤
    
    HEALTHY (0-30%):     Minimal platform overlap. Data is usable.
    MODERATE (30-60%):   Typical for multi-channel. Adjust decisions.
    HIGH (60-100%):      Significant double-counting. Don't trust ROAS.
    SEVERE (100-150%):   Platforms claim 2x your actual sales.
    CRITICAL (150%+):

Why Every Platform Over-Reports

Each platform has a different attribution window — the lookback period they use to claim credit for conversions.

Attribution Windows by Platform (2026)

Platform

Click Window

View Window

Meta

7 days (configurable)

1 day (default)

Google Ads

30 days (default)

N/A (search)

TikTok

7 days (default)

7 days (default)

Pinterest

30 days

1 day

Snapchat

28 days

1 day

The overlap problem: A customer clicks a Google ad on Day 1, views a TikTok ad on Day 3, and converts on Day 6. Google claims it (within 30-day click window). TikTok claims it (within 7-day view window). Both report +1 conversion for the same $100 order.

Longer windows = more claimed conversions. A platform with a 30-day window will always report more conversions than one with a 7-day window, even if their actual contribution is identical.

The Phantom Conversion Problem

Double-counting is bad enough. But there's a second layer: platforms also report conversions they never actually saw.

When iOS privacy, browser blocking, and ad blockers hide 40-60% of your actual conversions, platforms fill the gap with modeled estimates.

THE PHANTOM CONVERSION BREAKDOWN
════════════════════════════════════════════════════════════════════════════

    YOUR 650 ACTUAL SHOPIFY ORDERS:
    
    ┌───────────────────────────────────────────────────────────────────┐
    
    OBSERVED by platforms:        ~350 orders (54%)                
    BLOCKED by iOS/browsers:      ~300 orders (46%)                
    
    └───────────────────────────────────────────────────────────────────┘
    
    ─────────────────────────────────────────────────────────────────────────
    
    WHAT PLATFORMS REPORT:
    
    Actually observed:               350 conversions
    Modeled/estimated:               200+ "conversions" (filling the gap)
    Double-counted (overlap):        650+ "conversions"
    ─────────────────────────────
    Total platform reports:          1,200+ "conversions"
    
    ─────────────────────────────────────────────────────────────────────────
    
    THE RESULT:
    
    Some conversions are counted twice (overlap)
    Some conversions are guesses (modeled)
    Some conversions are invisible (blocked but not modeled)
    
    Your "data" is a mix of real, estimated, and fictional numbers.
    
════════════════════════════════════════════════════════════════════════════
THE PHANTOM CONVERSION BREAKDOWN
════════════════════════════════════════════════════════════════════════════

    YOUR 650 ACTUAL SHOPIFY ORDERS:
    
    ┌───────────────────────────────────────────────────────────────────┐
    
    OBSERVED by platforms:        ~350 orders (54%)                
    BLOCKED by iOS/browsers:      ~300 orders (46%)                
    
    └───────────────────────────────────────────────────────────────────┘
    
    ─────────────────────────────────────────────────────────────────────────
    
    WHAT PLATFORMS REPORT:
    
    Actually observed:               350 conversions
    Modeled/estimated:               200+ "conversions" (filling the gap)
    Double-counted (overlap):        650+ "conversions"
    ─────────────────────────────
    Total platform reports:          1,200+ "conversions"
    
    ─────────────────────────────────────────────────────────────────────────
    
    THE RESULT:
    
    Some conversions are counted twice (overlap)
    Some conversions are guesses (modeled)
    Some conversions are invisible (blocked but not modeled)
    
    Your "data" is a mix of real, estimated, and fictional numbers.
    
════════════════════════════════════════════════════════════════════════════
THE PHANTOM CONVERSION BREAKDOWN
════════════════════════════════════════════════════════════════════════════

    YOUR 650 ACTUAL SHOPIFY ORDERS:
    
    ┌───────────────────────────────────────────────────────────────────┐
    
    OBSERVED by platforms:        ~350 orders (54%)                
    BLOCKED by iOS/browsers:      ~300 orders (46%)                
    
    └───────────────────────────────────────────────────────────────────┘
    
    ─────────────────────────────────────────────────────────────────────────
    
    WHAT PLATFORMS REPORT:
    
    Actually observed:               350 conversions
    Modeled/estimated:               200+ "conversions" (filling the gap)
    Double-counted (overlap):        650+ "conversions"
    ─────────────────────────────
    Total platform reports:          1,200+ "conversions"
    
    ─────────────────────────────────────────────────────────────────────────
    
    THE RESULT:
    
    Some conversions are counted twice (overlap)
    Some conversions are guesses (modeled)
    Some conversions are invisible (blocked but not modeled)
    
    Your "data" is a mix of real, estimated, and fictional numbers.
    
════════════════════════════════════════════════════════════════════════════

Meta's Aggregated Event Measurement, Google's Enhanced Conversions modeling, and TikTok's privacy-era estimates all fill gaps with statistical guesses. These models are proprietary — you can't audit them or understand their assumptions.

The Budget Allocation Trap

Inflated numbers create impossible budget decisions:

THE MISLEADING ROAS COMPARISON
════════════════════════════════════════════════════════════════════════════

    WHAT YOUR DASHBOARDS SHOW:
    
    Platform         Spend        Conversions     Revenue        ROAS
    ────────         ─────        ───────────     ───────        ────
    
    Meta             $15,000      487             $48,700        3.2x
    Google           $12,000      512             $51,200        4.3x
    TikTok           $8,000       203             $20,300        2.5x
    
    DECISION: Shift budget from TikTok (2.5x) to Google (4.3x)
    
    ─────────────────────────────────────────────────────────────────────────
    
    THE REALITY:
    
    Total claimed conversions:    1,202
    Actual Shopify orders:        650
    Inflation rate:               85%
    
    If we deflate proportionally:
    
    Platform         Actual Share     True Conversions     True ROAS
    ────────         ────────────     ────────────────     ─────────
    
    Meta             ~40%             ~260                 1.7x
    Google           ~43%             ~280                 2.3x
    TikTok           ~17%             ~110                 1.4x
    
    ─────────────────────────────────────────────────────────────────────────
    
    THE PROBLEM:
    
    You can't know the "actual share" — platforms don't coordinate
    The deflation might not be proportional
    Some platforms over-claim more than others
    
    Every budget decision is a guess.
    
════════════════════════════════════════════════════════════════════════════
THE MISLEADING ROAS COMPARISON
════════════════════════════════════════════════════════════════════════════

    WHAT YOUR DASHBOARDS SHOW:
    
    Platform         Spend        Conversions     Revenue        ROAS
    ────────         ─────        ───────────     ───────        ────
    
    Meta             $15,000      487             $48,700        3.2x
    Google           $12,000      512             $51,200        4.3x
    TikTok           $8,000       203             $20,300        2.5x
    
    DECISION: Shift budget from TikTok (2.5x) to Google (4.3x)
    
    ─────────────────────────────────────────────────────────────────────────
    
    THE REALITY:
    
    Total claimed conversions:    1,202
    Actual Shopify orders:        650
    Inflation rate:               85%
    
    If we deflate proportionally:
    
    Platform         Actual Share     True Conversions     True ROAS
    ────────         ────────────     ────────────────     ─────────
    
    Meta             ~40%             ~260                 1.7x
    Google           ~43%             ~280                 2.3x
    TikTok           ~17%             ~110                 1.4x
    
    ─────────────────────────────────────────────────────────────────────────
    
    THE PROBLEM:
    
    You can't know the "actual share" — platforms don't coordinate
    The deflation might not be proportional
    Some platforms over-claim more than others
    
    Every budget decision is a guess.
    
════════════════════════════════════════════════════════════════════════════
THE MISLEADING ROAS COMPARISON
════════════════════════════════════════════════════════════════════════════

    WHAT YOUR DASHBOARDS SHOW:
    
    Platform         Spend        Conversions     Revenue        ROAS
    ────────         ─────        ───────────     ───────        ────
    
    Meta             $15,000      487             $48,700        3.2x
    Google           $12,000      512             $51,200        4.3x
    TikTok           $8,000       203             $20,300        2.5x
    
    DECISION: Shift budget from TikTok (2.5x) to Google (4.3x)
    
    ─────────────────────────────────────────────────────────────────────────
    
    THE REALITY:
    
    Total claimed conversions:    1,202
    Actual Shopify orders:        650
    Inflation rate:               85%
    
    If we deflate proportionally:
    
    Platform         Actual Share     True Conversions     True ROAS
    ────────         ────────────     ────────────────     ─────────
    
    Meta             ~40%             ~260                 1.7x
    Google           ~43%             ~280                 2.3x
    TikTok           ~17%             ~110                 1.4x
    
    ─────────────────────────────────────────────────────────────────────────
    
    THE PROBLEM:
    
    You can't know the "actual share" — platforms don't coordinate
    The deflation might not be proportional
    Some platforms over-claim more than others
    
    Every budget decision is a guess.
    
════════════════════════════════════════════════════════════════════════════

Shifting budget based on platform-reported ROAS is like navigating with a broken compass. The numbers move, but they don't point toward reality.

The Cross-Device Black Hole

Customer journeys span multiple devices. Your attribution can't follow them.

THE CROSS-DEVICE IDENTITY PROBLEM
════════════════════════════════════════════════════════════════════════════

    ONE HUMAN, THREE "GHOSTS":
    
              📱 Phone              💻 Laptop             📱 Tablet
                 
                 
           ┌──────────┐          ┌──────────┐          ┌──────────┐
           User A  User B  User C  
            (anon)    (anon)    (anon)   
           └──────────┘          └──────────┘          └──────────┘
                 
                 
           Sees IG ad            Clicks Google          Direct visit
           (no action)           (researches)           (purchases)
    
    ─────────────────────────────────────────────────────────────────────────
    
    YOUR TRACKING SEES: 3 anonymous users, 1 conversion (Direct)
    REALITY: 1 customer, influenced by Instagram and Google
    
════════════════════════════════════════════════════════════════════════════
THE CROSS-DEVICE IDENTITY PROBLEM
════════════════════════════════════════════════════════════════════════════

    ONE HUMAN, THREE "GHOSTS":
    
              📱 Phone              💻 Laptop             📱 Tablet
                 
                 
           ┌──────────┐          ┌──────────┐          ┌──────────┐
           User A  User B  User C  
            (anon)    (anon)    (anon)   
           └──────────┘          └──────────┘          └──────────┘
                 
                 
           Sees IG ad            Clicks Google          Direct visit
           (no action)           (researches)           (purchases)
    
    ─────────────────────────────────────────────────────────────────────────
    
    YOUR TRACKING SEES: 3 anonymous users, 1 conversion (Direct)
    REALITY: 1 customer, influenced by Instagram and Google
    
════════════════════════════════════════════════════════════════════════════
THE CROSS-DEVICE IDENTITY PROBLEM
════════════════════════════════════════════════════════════════════════════

    ONE HUMAN, THREE "GHOSTS":
    
              📱 Phone              💻 Laptop             📱 Tablet
                 
                 
           ┌──────────┐          ┌──────────┐          ┌──────────┐
           User A  User B  User C  
            (anon)    (anon)    (anon)   
           └──────────┘          └──────────┘          └──────────┘
                 
                 
           Sees IG ad            Clicks Google          Direct visit
           (no action)           (researches)           (purchases)
    
    ─────────────────────────────────────────────────────────────────────────
    
    YOUR TRACKING SEES: 3 anonymous users, 1 conversion (Direct)
    REALITY: 1 customer, influenced by Instagram and Google
    
════════════════════════════════════════════════════════════════════════════

Example: A Typical Cross-Device Journey

What actually happened:

  • Phone (lunch): Sees Instagram ad → Interested but busy

  • Laptop (evening): Searches brand on Google → Researches

  • Tablet (weekend): Returns directly → Purchases

What your tracking sees:

  • Phone: Anonymous impression (no login)

  • Laptop: Anonymous click (different cookies)

  • Tablet: Direct visit → Purchase (no attribution)

Attribution result:

  • Instagram: 0 conversions (can't connect to purchase)

  • Google: 0 conversions (can't connect to purchase)

  • Direct: +1 conversion (gets all credit)

Your analysis: "Instagram and Google don't convert. Direct traffic is our best channel."

Reality: Instagram built awareness. Google enabled research. Both were essential. You just can't see it.

2026 Reality: Probabilistic Matching Is Dead

In 2026, cross-device tracking has become even harder:

  • Google's Privacy Sandbox restricts the signals available for probabilistic matching

  • Apple's Private Advertising API limits cross-app identity signals on iOS

  • Browser fingerprinting is increasingly blocked by default

The only reliable bridge across devices is now server-side first-party identifiers — hashed email addresses, phone numbers, or account IDs that you collect directly from customers. Without logged-in users or deterministic matching, cross-device journeys appear as separate anonymous visitors.

2026 Update: Meta's Attribution Overhaul

In March 2026, Meta announced significant changes to how it defines "clicks" for attribution. Previously, likes, shares, and saves counted as clicks — inflating click-through attribution numbers.

Before (Pre-March 2026)

"Click" included:

  • Link clicks (actual site visits)

  • Likes

  • Shares

  • Saves

  • Comments

Result: Inflated click-through conversions

After (March 2026+)

Click-through attribution: Only link clicks that lead to website

New "Engaged-view" category: Social engagement actions (likes, shares, saves) — separate from click attribution

Impact on Your Data

  • Click-through conversion numbers will drop

  • This is more accurate, not worse performance

  • Historical comparisons will be misleading

  • Your "baseline" ROAS needs recalibration

Don't Panic: Lower ROAS ≠ Lower Profit

When you see your Meta ROAS drop after this update, remember:

Your actual revenue hasn't changed. The same customers are buying. The same ads are working. Meta just stopped counting "fluff" (likes, saves) as clicks.

If your ROAS was 4.2x before March 2026 and drops to 2.8x after:

  • Your real ROAS was always closer to 2.8x

  • The "missing" 1.4x was inflated by social engagement clicks

  • You're now seeing a more honest picture of click-driven performance

What to do:

  1. Don't cut budget based on the apparent "drop"

  2. Establish new baselines using post-March 2026 data only

  3. Use the new "Engaged-view" metric to understand social engagement value separately

This change makes Meta reporting more honest — but it also means your historical data is incompatible with current reporting. Any trend analysis crossing March 2026 is comparing apples to oranges.

The Fix: Unified Attribution

Platform-native reporting can't solve multi-platform attribution because platforms are competitors, not collaborators. The fix requires a source of truth outside the platforms.

THE UNIFIED ATTRIBUTION FLOW
════════════════════════════════════════════════════════════════════════════

    PLATFORM-NATIVE (BROKEN):
    
    ┌────────┐    ┌────────┐    ┌────────┐
    Meta  Google TikTok 
    └───┬────┘    └───┬────┘    └───┬────┘
        
        
    ┌────────┐    ┌────────┐    ┌────────┐
     +487    +512    +203   
    conv   conv   conv   
    └────────┘    └────────┘    └────────┘
    
    TOTAL: 1,202 conversions (but you only have 650 orders)
    
    ─────────────────────────────────────────────────────────────────────────
    
    UNIFIED ATTRIBUTION (FIXED):
    
    ┌────────┐    ┌────────┐    ┌────────┐
    Meta  Google TikTok 
    └───┬────┘    └───┬────┘    └───┬────┘
        
        └─────────────┼─────────────┘
                      
                      
              ┌──────────────┐
              UNIFIED    
              TRACKING   │◄──── Server-side + First-party IDs
              LAYER     
              └──────┬───────┘
                     
                     
              ┌──────────────┐
              SHOPIFY    │◄──── Source of Truth
              650 orders 
              └──────────────┘
                     
                     
              ┌──────────────┐
              CREDIT SPLIT 
              Meta: 40%    │◄──── Multi-touch model
              Google: 43%        (Time Decay recommended)
              TikTok: 17%  
              └──────────────┘
    
════════════════════════════════════════════════════════════════════════════
THE UNIFIED ATTRIBUTION FLOW
════════════════════════════════════════════════════════════════════════════

    PLATFORM-NATIVE (BROKEN):
    
    ┌────────┐    ┌────────┐    ┌────────┐
    Meta  Google TikTok 
    └───┬────┘    └───┬────┘    └───┬────┘
        
        
    ┌────────┐    ┌────────┐    ┌────────┐
     +487    +512    +203   
    conv   conv   conv   
    └────────┘    └────────┘    └────────┘
    
    TOTAL: 1,202 conversions (but you only have 650 orders)
    
    ─────────────────────────────────────────────────────────────────────────
    
    UNIFIED ATTRIBUTION (FIXED):
    
    ┌────────┐    ┌────────┐    ┌────────┐
    Meta  Google TikTok 
    └───┬────┘    └───┬────┘    └───┬────┘
        
        └─────────────┼─────────────┘
                      
                      
              ┌──────────────┐
              UNIFIED    
              TRACKING   │◄──── Server-side + First-party IDs
              LAYER     
              └──────┬───────┘
                     
                     
              ┌──────────────┐
              SHOPIFY    │◄──── Source of Truth
              650 orders 
              └──────────────┘
                     
                     
              ┌──────────────┐
              CREDIT SPLIT 
              Meta: 40%    │◄──── Multi-touch model
              Google: 43%        (Time Decay recommended)
              TikTok: 17%  
              └──────────────┘
    
════════════════════════════════════════════════════════════════════════════
THE UNIFIED ATTRIBUTION FLOW
════════════════════════════════════════════════════════════════════════════

    PLATFORM-NATIVE (BROKEN):
    
    ┌────────┐    ┌────────┐    ┌────────┐
    Meta  Google TikTok 
    └───┬────┘    └───┬────┘    └───┬────┘
        
        
    ┌────────┐    ┌────────┐    ┌────────┐
     +487    +512    +203   
    conv   conv   conv   
    └────────┘    └────────┘    └────────┘
    
    TOTAL: 1,202 conversions (but you only have 650 orders)
    
    ─────────────────────────────────────────────────────────────────────────
    
    UNIFIED ATTRIBUTION (FIXED):
    
    ┌────────┐    ┌────────┐    ┌────────┐
    Meta  Google TikTok 
    └───┬────┘    └───┬────┘    └───┬────┘
        
        └─────────────┼─────────────┘
                      
                      
              ┌──────────────┐
              UNIFIED    
              TRACKING   │◄──── Server-side + First-party IDs
              LAYER     
              └──────┬───────┘
                     
                     
              ┌──────────────┐
              SHOPIFY    │◄──── Source of Truth
              650 orders 
              └──────────────┘
                     
                     
              ┌──────────────┐
              CREDIT SPLIT 
              Meta: 40%    │◄──── Multi-touch model
              Google: 43%        (Time Decay recommended)
              TikTok: 17%  
              └──────────────┘
    
════════════════════════════════════════════════════════════════════════════

The components:

Server-side tracking bypasses browser blocking to capture more conversions. When your server sends conversion data directly to platforms via Conversions APIs, you recover the 40-60% of events that client-side pixels miss.

First-party data collection (email, phone, account IDs) creates persistent identifiers that survive cookie deletion and cross-device journeys.

Multi-touch attribution models distribute credit across touchpoints instead of letting each platform claim 100%.

Warning: The Last-Click Trap in Unified Tools

Even unified attribution tools often default to last-click attribution — which naturally over-credits Google Search (it's usually the final touchpoint before purchase).

For 2026's longer, multi-device customer journeys, consider these models instead:

Model

Best For

How It Works

Time Decay

Long consideration cycles

Recent touchpoints get more credit, but earlier ones still count

Linear

Understanding full journey

Equal credit to every touchpoint

Position-Based

Valuing discovery + conversion

40% first touch, 40% last touch, 20% middle

Pro tip: If Google Search dominates your attributed revenue but you're spending heavily on Meta/TikTok awareness campaigns, you likely have a last-click bias problem. Switch to Time Decay to see if those upper-funnel channels are actually driving the searches.

The Gold Standard: Incrementality Testing

Even the best multi-touch attribution can't answer the ultimate question: Would this sale have happened anyway?

View-through conversions are especially suspect. Did that TikTok ad cause the purchase, or did the customer just happen to see it before buying something they'd already decided to purchase?

Conversion Lift Tests (incrementality testing) answer this by comparing:

  • Test group: Sees your ads

  • Control group: Doesn't see your ads

  • Measurement: Difference in conversions between groups

This is the 2026 gold standard for proving a channel actually drives new sales rather than just claiming sales that were going to happen regardless. Use incrementality to validate your attribution model's conclusions.

See: Incrementality Testing vs A/B Testing for implementation guidance.

The Measurement Stack: Where This Fits

Multi-platform attribution is the final layer of a complete measurement system:

Layer 3: Attribution (This Article)

Question: "How do I distribute credit across platforms?"

  • Unified attribution across Meta, Google, TikTok

  • Deduplication of overlapping conversions

  • Multi-touch models (linear, time-decay, position-based)

Layer 2: Persistence

Question: "Is my tracking data surviving long enough to attribute?"

  • Server-side tracking bypasses browser blocking

  • Conversions API recovers iOS-blocked events

  • First-party data survives cookie deletion

See: iOS Ad Tracking, Browser Pixel Blocking guides

Layer 1: Collection

Question: "Am I capturing conversion events at all?"

  • Pixel implementation

  • Event setup (ViewContent, AddToCart, Purchase)

  • Data layer configuration

Build From the Bottom Up

  • Attribution without Persistence = Attributing incomplete data

  • Persistence without Collection = Nothing to persist

All three layers work together.

If you're losing 40-60% of conversions to iOS and browser blocking (Layer 2), your attribution data (Layer 3) is 40-60% fictional. Fix the foundation before optimizing the attribution model.

Diagnostic Checklist

Use this to assess your multi-platform attribution health:

Step 1: Calculate Inflation Rate

  • Sum all platform-reported conversions (same time period)

  • Compare to backend conversions (Shopify orders)

  • Calculate: (Platform Total / Backend) - 1 × 100

  • Benchmark: <30% healthy, 30-60% moderate, >60% high

Step 2: Check Data Completeness

  • Compare Shopify orders to Meta reported purchases

  • Calculate iOS Gap: (Shopify - Meta) / Shopify × 100

  • If gap > 40%, fix tracking before optimizing attribution

Step 3: Audit Attribution Windows

  • Document each platform's click and view windows

  • Identify longest window (likely biggest over-claimer)

  • Consider standardizing windows across platforms

Step 4: Assess Cross-Device Tracking

  • What % of customers are logged in?

  • Do you collect email/phone at first touch?

  • Can you match mobile browsing to desktop purchases?

Step 5: Evaluate Unified Solution

  • Do you have a single source of truth for conversions?

  • Are you using server-side tracking?

  • Is Conversions API implemented for major platforms?

  • Can you run multi-touch attribution across all channels?

The Bottom Line

Every ad platform will tell you they're your best performer. That's their job — they're selling you ad inventory, not giving you objective measurement.

The math is simple: if your platforms collectively report more conversions than you actually have orders, someone is lying. Usually, everyone is lying — not maliciously, but structurally. Each platform claims credit for overlapping customers using incompatible attribution windows.

The fix requires three things:

  1. Fix your tracking foundation (server-side, CAPI) so you're attributing real data, not gaps

  2. Implement unified attribution that sees all platforms and deduplicates conversions

  3. Use your backend (Shopify/CRM) as the source of truth, not platform dashboards

Platform-reported ROAS is marketing. Backend revenue is reality. Build your attribution system on reality.

Get Started

Start Tracking Every Sale Today

Join 1,389+ e-commerce stores. Set up in 5 minutes, see results in days.

Request Your Demo

By submitting, you agree to our Privacy Policy. We'll reach out within 24 hours to schedule your demo.