Why do your three attribution models give you three different revenue numbers?
Shopify reports $150K in conversion revenue. Facebook conversion API logs $127K from that same period. GA4 shows $142K. All three are correct—and all three are incomplete. Each tool watches different parts of the funnel and counts touches using different rules. Shopify tracks orders placed in its system. Facebook credits its ad clicks and page views. GA4 applies configurable attribution models (first-click, last-click, linear, data-driven) that change the weight of each touchpoint. None of them is lying. They're just measuring different things.
The real problem isn't the disagreement. It's that most teams treat one number as truth and dismiss the other two as noise. That costs you visibility into where paid media actually works and where it leaks budget.
What does each model actually measure?
Shopify analytics: order-level ground truth
Shopify counts every order in your store, period. It shows you revenue by transaction, tied to the customer who completed checkout. But Shopify doesn't know what happened before the purchase—it relies on first-party cookies and UTM parameters you set manually. If a customer comes from a paid ad, goes home, comes back via organic search three days later, and buys, Shopify usually credits the last click (organic). Your paid campaign never gets credit, even though it seeded the consideration.
Facebook Conversion API: pixel-to-action tracking
Facebook's CAPI logs every conversion event your site sends to Meta's servers. It captures revenue at the transaction level and ties it to Meta IDs (when available). The advantage: Facebook owns the first-party relationship with the user and can track them across Meta properties. The catch: Facebook only credits revenue that happens within its attribution window (typically 28 days for clicks) and only on devices where Meta can match the user. If 15% of your traffic is in-app or private browsers, CAPI will undercount revenue.
GA4: modeled multi-touch attribution
GA4 attempts to solve the last-click problem with data-driven attribution (DDA), which uses machine learning to assign credit across the entire user journey. You can also toggle to first-click, linear, or time-decay models. GA4 uses cookies, server-side tracking, and cross-device modeling to stitch user sessions together. The trade-off: GA4's models are educated guesses. Data-driven attribution works best with thousands of conversions per month; under 200 conversions in a dimension, GA4 falls back to linear attribution. And GA4 doesn't always match Shopify's revenue because GA4 tracks sessions, not orders—a customer might generate two sessions and one order.
How do you reconcile them into one audit framework?
Stop asking which number is right. Instead, build a three-layer audit that uses each model's strength to answer a different question.
Layer 1: Shopify as your order ledger
Export your Shopify transaction data for the period under review (API call to `orders.json` filtered by date range). Aggregate by traffic source—if your UTM tagging is solid, Shopify tells you which paid channels drove orders. This is your baseline. Example: Shopify says Facebook ads drove 340 orders at an average order value of $89, totaling $30K revenue. Write that down. This number is sacred because it matches your accounting system.
Layer 2: Facebook CAPI as efficiency validation
Pull the same period from Facebook Ads Manager → Conversions report, filtering by purchase events logged via CAPI. Facebook will likely report fewer conversions than Shopify (maybe 280 instead of 340) because CAPI misses some traffic (privacy-blocked browsers, test orders, bot traffic Shopify counted). But the ratio between CAPI conversions and Shopify orders tells you something: if CAPI captures 82% of Shopify's orders, your implementation is solid. If it's 50%, you have a data leakage problem—either your pixel isn't firing on checkout, or you're blocking too much traffic. Investigate the gap before trusting Facebook's cost-per-purchase. The revenue Facebook CAPI reports is almost always lower than Shopify because CAPI only counts within-attribution-window conversions and doesn't backfill offline orders or delayed purchases.
Layer 3: GA4 DDA as journey context
Pull GA4's Conversions report using data-driven attribution (Admin → Conversions → Select your purchase event → Reporting identity: User-ID if available, otherwise cookie-based → Reports → Conversion paths). GA4 won't match Shopify's revenue figure, but it will show you how many touchpoints a typical converter experiences and which channels touched them first versus last. Example: GA4 DDA might show that 60% of revenue involved a paid search click at some point, even though paid search was last-click on only 30% of orders. This reveals that paid search works higher in the funnel than last-click models suggest. Use GA4 to identify under-credited channels, not to replace Shopify numbers.
What does a reconciliation audit checklist look like?
Pull reports for a single calendar month (not a rolling period—month boundaries make debugging easier).
- Shopify order report: Total orders, total revenue, orders by initial traffic source (UTM source), average order value. Validate that UTM tagging is applied uniformly—if 5% of orders have no UTM, you're flying blind on those.
- Facebook CAPI conversion report: Total purchase conversions logged, total revenue attributed, cost per purchase (spend ÷ conversions). Calculate the capture rate: CAPI conversions ÷ Shopify orders. Anything below 70% suggests implementation gaps.
- GA4 conversion report: Run both last-click and data-driven models. Compare the channels ranked by attributed revenue in each. If paid search ranks #1 in DDA but #4 in last-click, mark it for deeper investigation.
- Discrepancy log: For each major channel, document the gap. Example: "Facebook ads drove 340 Shopify orders ($30K). Facebook CAPI logged 278 conversions ($24.8K). Gap of 62 orders likely due to: private browser traffic (15%), orders placed via mobile app (8%), delayed purchases outside 28-day window (estimated 39)." This transparency matters more than forcing the numbers to match.
- ROAS and CPA by source: Calculate both. Shopify-based ROAS (revenue from channel ÷ channel spend) is your true return. Facebook-based CPA (spend ÷ CAPI conversions) is useful for Facebook's algorithm, but don't mistake it for profitability—it's already missing 18-30% of actual orders.
When should you trust each number in real decisions?
Shopify revenue figures drive profit-and-loss decisions. If Shopify says a channel generated $30K and cost you $8K, that's your real ROAS: 3.75x. Use it to decide whether to scale.
Facebook CAPI numbers drive Facebook campaign optimization. The algorithm learns best from event volume and revenue, even if it's undercounting. Keep CAPI flowing and don't adjust the pixel just because it doesn't match Shopify.
GA4 multi-touch attribution guides strategic questions. It shows you where customers first heard of you and which channels work together. If GA4 reveals that 45% of converters touched organic search at some point, invest in SEO—not because GA4 is your source of truth, but because it shows you blind spots last-click models miss.
The audit itself is the output. Once you've mapped the discrepancies, documented the reasons, and set benchmarks for each layer, you stop chasing agreement and start hunting for truth: which channels drive real orders at sustainable unit economics. Shopify, Facebook, and GA4 all contribute to that answer—none of them alone is enough.


