By Stormly in Knowledge
Published: May 30, 2026
eCommerce Attribution: Why Product Analytics and Marketing Analytics Must Work Together
Your marketing team sends a report on Monday. The Facebook campaigns hit 3.2x ROAS last month. Email drove 19% of total revenue. Paid search brought 340 new customers at $41 average CAC. Green across the board.
On Tuesday, operations flags that returns are up 17% this quarter. Wednesday, someone notices the products featured most heavily in last month’s winning campaign are barely showing up in repeat orders. You have no eCommerce attribution analytics connecting these two observations.
These three data points are about the same customers. Nobody is connecting them.
That is the eCommerce attribution problem as it exists in most stores running between $2M and $20M in annual revenue. Not a broken pixel. Not a missing event. A structural disconnect between what your marketing data tracks and what your product data tracks, with no one regularly looking at both at the same time.
The attribution gap between your two dashboards
Marketing analytics answers the acquisition question: where did the customer come from, what did they click, what did the campaign cost, what was the return on spend. Channel mix. ROAS by campaign. CAC by source. These metrics matter and you need them.
But they all stop at the moment of checkout. The conversion fires, the revenue gets attributed to the source, and the marketing platform moves on. What the customer bought, whether they returned it, whether they placed a second order, which product category they came back for: none of that feeds back into the acquisition picture.
Product analytics answers the behavior question: what did the customer do after they arrived. Which products they browsed and bought. Which items appeared in repeat orders. Which SKUs have high cart abandonment. Which categories build loyalty.
For stores working with eCommerce product-level funnel analytics, this is where the real catalog decisions live. But product analytics on its own also has a blind spot. It tells you what customers did. It does not tell you how they got to you.
This is why the difference between product analytics and marketing analytics matters specifically for eCommerce. They are not competing approaches. They are two layers that need to be connected for either one to produce fully reliable answers.
What gets decided wrong when the layers are separate
When marketing analytics and product data do not talk to each other, a set of specific errors tends to repeat across teams. They look like reasonable decisions right up until they do not.
You optimize for the wrong ROAS. A campaign shows 3.8x return at a 7-day attribution window. Looks good. But if the products that campaign drove have a 9% 90-day repeat rate, that 3.8x was a one-time transaction. A campaign with 2.1x ROAS that sent buyers into your core category, where repeat rate runs at 43%, may have produced better economics over a quarter. Without connecting customer lifetime value analytics to acquisition source, this distinction is invisible.
You misread which channel is building your business. Email is chronically undervalued in last-click attribution models. But when you look at 90-day behavior by channel at the product level, email-acquired customers often show 2 to 3 times higher repeat rates than paid social customers. The channel that looks weaker in the acquisition report is sometimes the one building the business for you.
You scale discount campaigns that quietly hurt margins. Discount-driven creative converts well and tends to produce strong initial ROAS. It also tends to attract buyers who will not return unless there is another discount. If your eCommerce KPI reporting is built around acquisition metrics, those campaigns look healthy until your repeat purchase rate slides four months in.
You diagnose funnel problems at the wrong level. Aggregated data shows 2.6% overall conversion rate. But per-SKU analysis will often show that the same marketing campaign produces completely different drop-off rates depending on which products it features. Fixing a landing page when the actual problem is a product mismatch is a common outcome when both layers are not connected.
None of these errors are unique to large or small operations. They happen wherever marketing data and product data live in separate tools with no routine process for joining them.
See how Stormly connects acquisition source to product behavior in a single view → Start free trial
The workflow that works when you connect both
Here is what the combined workflow looks like for a Shopify store running Facebook and email as primary channels.
You start the same way you normally would: review campaign performance by ROAS, CAC, and conversion volume. The acquisition layer still matters. You are not replacing it.
Then you run the product cross-reference: for each top campaign, which specific SKUs did those buyers purchase? What are the repeat rates on those SKUs over 30, 60, and 90 days? What is the cart abandonment rate on the products those campaigns heavily featured?
The intersection tells you things neither layer could tell you alone.
Campaign A drove 310 purchases at 3.2x ROAS. Of those buyers, 61% bought from the seasonal clearance section. That category has an 8% 90-day repeat rate. Campaign B drove 190 purchases at 1.9x ROAS. Of those buyers, 73% bought from the core cookware range. That range has a 44% repeat rate.
Campaign A produced revenue. Campaign B built customers.
The third step is where you act: Campaign B gets more budget. Campaign A either gets restructured around products with better retention profiles, or it is reduced. The decision is now grounded in data from both layers.
Connecting repeat purchase analytics by product to acquisition source is the mechanism that makes this work. The concept is not complicated. The difficulty is that doing it manually, across separate exports from your ad platform and Shopify, takes hours and happens rarely if ever.
What this looks like in Stormly
Stormly gives eCommerce teams the combined view without requiring a data engineering project. You do not export from Meta, download from Shopify, and join rows in a spreadsheet. The acquisition-to-product behavior report connects those layers in a single view.
In practice: you open the campaign analysis view, select the relevant campaigns from the previous 30 days, and Stormly shows the products those buyers purchased, SKU-level cart abandonment rates, and repeat purchase behavior over 30, 60, and 90 days, segmented by acquisition channel.
A Stormly user running a mid-sized home goods store found this exact pattern. Their best-performing paid search campaign by ROAS was almost entirely driving clearance purchases. Clearance buyers had a 5% 90-day repeat rate. A lower-ROAS campaign targeting their core kitchen collection was bringing in buyers with a 39% repeat rate and a 2.4x higher 90-day LTV. The clearance campaign had been running for nine months. Marketing analytics showed it performing well. Product behavior analytics told the other half of the story.
Within two months of reallocating budget, their repeat purchase rate moved from 19% to 28%, and their email reactivation campaigns started working better because the subscribers were people who genuinely wanted the core products.
There is also a foundational point worth raising: why GA4 misses 30 to 60 percent of Shopify purchase events matters for attribution because if your conversion tracking is incomplete, your attribution model is working from wrong input numbers before the product analysis even begins. Reliable first-party purchase capture is the prerequisite.
The org structure problem underneath the data problem
Most eCommerce teams not running this analysis are not failing because of technical complexity. They are failing because the marketing team owns acquisition dashboards and the product or operations team owns catalog and customer data. Different tools. Different metrics. Often different reporting lines.
No one person is sitting in both chairs on a regular basis. Marketing celebrates a campaign win. Nobody connects it to what happened downstream over the next 90 days. The returns queue fills quietly. The repeat rate slides. Quarterly reviews find the problem in retrospect, well after the campaign budget was already spent.
Fixing the tooling is faster than reorganizing the company. When acquisition data and product behavior data are in the same place, answering “did this campaign build our customer base or just our quarterly revenue” does not require coordinating across teams or waiting for a data pull. You look.
One check to run today
Take the three campaigns you ran last month with the highest conversion volume.
For each one: which specific products did those buyers purchase? What is the 90-day repeat rate for those products? What is the cart abandonment rate on those SKUs?
If you can answer that in under 10 minutes, your layers are already connected. If it means building a spreadsheet or submitting a data request, you have the disconnect this article describes.
Stormly is built to close that gap. It connects Shopify order and product data to acquisition source so you can see, for any campaign, what it actually produced downstream. Not just the cost and the conversion. What it built.
See marketing + product analytics together in Stormly → Start free trial