By Stormly in Knowledge
Published: Sep 4, 2026
Why Your Channel Numbers Never Add Up (and the Product-Level Truth Underneath)
You run a campaign on Pinterest for two weeks. Pinterest’s dashboard says it drove 412 sessions and $2,100 in revenue. You open Shopify Analytics and total revenue for the same period is $1,800. You check your Google Analytics report: it credits Pinterest with $640. Three numbers, three platforms, the same two weeks.
Which number do you plan the next campaign around?
This is the attribution problem, and it does not have a clean solution. What it does have is a useful reframe: the disagreement between your channel numbers is mostly a measurement problem, but the decisions that actually matter do not require the measurement to be correct.
Why every ad platform claims more than it should
Each ad platform runs its own attribution model, with its own lookback window, and reports conversions its own way.
Pinterest’s default attribution gives credit for any purchase that happens within 30 days of a click and 30 days of a view. Google’s default credits the last click. Meta uses a 7-day click, 1-day view window and its own Conversions API data layer. Shopify Analytics uses last-click attribution on sessions it can actually track.
When a customer sees a Pinterest post, clicks a Google Shopping ad three days later, and buys, Pinterest takes credit (within its window), Google takes credit (last click), and Shopify may record it as direct or organic if the Google click came through a browser that blocked the referrer.
That is not a bug in any single platform. Each system is measuring what it can see and reporting it according to how its model defines value. But the combined effect is that when you add up your platform revenue figures, the total routinely exceeds your actual bank deposit, sometimes by 2x.
Ad blockers and cross-device tracking make it worse
Platform-level double-counting is the structural problem. The second layer on top of it is signal loss.
Safari’s Intelligent Tracking Prevention strips most third-party cookie data after 24 hours. Firefox’s Enhanced Tracking Protection does the same by default. Add uBlock Origin or any major browser extension and you lose pixel-based tracking for roughly 30 to 40 percent of sessions, depending on your audience. For stores with design-conscious or tech-adjacent buyers, that number can be higher.
Why GA4 misses 30 to 60 percent of Shopify purchases is a well-documented problem, and the causes (ITP, ad blockers, cross-device journeys, and checkout domain fragmentation) apply to any pixel-based measurement system, not just GA4.
Cross-device is its own gap. A customer discovers your store via a Pinterest ad on their phone during lunch, saves the product, and opens it on their laptop that evening to buy. Pinterest correctly identifies its role in discovery. Your analytics platform has no idea the phone session and the laptop purchase are the same person. The conversion gets attributed to “direct” and the phone session shows as abandoned. Pinterest looks worse than it actually performed.
What Shopify Analytics gets wrong, and how to reconcile the numbers you can’t trust covers the specific mechanics of Shopify’s measurement gaps, including why add-to-cart counts and purchase counts are often lower than reality, but the cross-device problem predates Shopify and has no platform-level fix.
The Pinterest paradox and what it is actually telling you
The thread that surfaces in r/shopify most often goes something like this: “Pinterest is driving traffic but my dashboard says it makes no money. How are you all dealing with this?”
The frustrating answer is that Pinterest is almost certainly not lying and your dashboard is not lying. They are each measuring a subset of the truth. Pinterest can see that people who engage with its content eventually purchase. Your dashboard can see the purchases it tracked. Neither can see all of the conversions, and neither is measuring the same thing.
The instinct is to install a better pixel, set up the Conversions API, or add server-side tagging. These are all legitimate investments and each one moves you closer to the true number. But you will never reach it. There will always be an ITP session, a deleted order, a mobile app purchase that the browser tracker missed.
The question worth asking is different from “which tool is accurate”: which products are actually selling, to whom, and are those customers coming back?
The product-level truth underneath attribution
Your order database does not have an attribution problem.
Every order in your Shopify or WooCommerce backend contains the product SKU, the order value, the customer email, and the timestamp. None of that depends on a pixel firing correctly. None of it is affected by an ad blocker. It is the ground truth of what your store actually did.
Product-level analytics uses this record as its foundation. Instead of asking “which channel drove revenue,” it asks: which products are converting at what rate, which product combinations drive repeat purchase, and which SKUs are sitting in carts and leaving.
A product that converts at 4.8 percent on first visit versus a 1.2 percent category average is signaling something, whether that signal arrives via Pinterest, organic search, or email. A product that consistently appears in the second or third order of customers who were first acquired through any channel is a retention asset, regardless of which campaign initially brought that customer in.
This is where the difference between product analytics and marketing analytics becomes operational rather than academic. Marketing analytics answers the channel question. Product analytics answers the catalog question. You need both, but when channel attribution is noisy, the catalog view holds steady.
Stormly’s product-level reports are built on order and behavior data, not on pixel events. The retention curves, cart abandonment rates by SKU, and purchase cohorts work off the order database. When Pinterest attribution is unreliable, the product data is not. You can still see which products the Pinterest-period buyers actually purchased and whether they came back within 30, 60, or 90 days.
See the product-level truth in your store. Try Stormly free.
Using product data to make better channel decisions
The goal is not to give up on channel attribution. It is to triangulate.
Run a cohort comparison by acquisition period. If the period when your Pinterest campaign ran shows a cluster of first-time buyers purchasing a specific product, and that product has a 38 percent 90-day repeat-purchase rate compared to a 14 percent store average, that is a strong signal about Pinterest’s actual value, even if the attributed revenue number is wrong.
The logic: customers who respond to that campaign are buying a product that creates loyal customers. The channel may be undervalued by attribution precisely because the downstream retention value is not captured in a last-click 7-day conversion window.
The reverse tells you something equally important. A channel that claims high attributed revenue but consistently drives buyers toward your lowest-LTV products (high-margin but one-purchase items with low return rates) is overvalued by its own reporting. ROAS that ignores 90-day retention will give you the wrong answer about which channels deserve more budget.
This connects directly to when to shift budget from acquisition to retention and the product signals that decide. The product signal comes first. The channel budget decision follows from it.
A practical reconciliation routine
You will not get perfect attribution. Here is what actually works.
Use your order database as the revenue denominator. Total revenue for any period is what Shopify or your payment processor shows as settled orders. Full stop. Ad platform revenue claims are useful for direction but should not be compared directly to each other or to your actual deposit. Compare them internally, month over month, to detect trends.
Triangulate with a simple three-column check. Once a month, log: (1) total orders from your order database, (2) total attributed conversions across all ad platforms summed together, (3) the ratio. A ratio of 1.4 means your platforms are collectively claiming 40 percent more revenue than actually occurred. That ratio stabilizes over time and becomes a useful benchmark. If it spikes to 2.1 in a month, something changed: a new campaign type, a pixel issue, or an attribution window setting.
Segment at the product level, not the channel level. Ask which products moved in volume this period, which products had above-average cart abandonment, and which appeared most in first orders from new customers. These questions do not require clean attribution. They require your order data, which you already have.
For a broader view of how these analytics types fit together, what eCommerce analytics actually covers and where the most useful data lives outlines the split: marketing analytics tells you the acquisition picture, product analytics tells you the catalog and merchandising picture. When one is noisy, lean on the other.
What this means for daily decisions
When Pinterest and your dashboard disagree, stop trying to find the correct number before making a campaign decision. You will spend three days in the attribution rabbit hole and end up with a confidence interval, not an answer.
Instead, look at what the Pinterest-period order data shows at the product level. Did your store sell more of the products that drive repeat purchase? Are the customers who entered during that period returning at a higher-than-average rate 30 and 60 days later? If yes, you have evidence the channel is doing something valuable, even if you cannot precisely attribute every dollar.
eCommerce attribution works best when product analytics and marketing analytics inform each other. The channel tells you the direction. The product tells you the depth. Neither is complete without the other.
Your channel numbers will never perfectly add up. The product-level data underneath them will.
See your store’s product-level view without the attribution noise. Try Stormly free or book a demo.