The ad platform reports a record month, yet the shop shows no difference. A campaign for a product that “doesn’t sell” somehow holds up in the results. Both phenomena have the same cause: conversions and attribution work differently from what the platforms suggest. This guide sets out what is known for certain about sales sources, what no system knows and how to make good budget decisions anyway.
Concepts
What conversion and attribution mean in e-commerce
Both terms sound technical, yet they determine how every report is interpreted:
Definitions
A conversion is an event counted by a specific measurement system according to its own rules: time window, counting method and consent requirements. A conversion in an ad platform and a paid order in the shop are two different things, often with different numbers for the same period.
Attribution is a conventional way of dividing credit for a conversion between customer touchpoints. Conventional, because no one sees the full journey in its entirety: each system knows only its own fragment.
These definitions lead to a practical rule for reading reports. The number of conversions answers the question “what did this system count”, not “how much did the shop sell”. Attribution answers the question “how did we agree to divide credit”, not “which channel really caused the purchase”. Anyone who reads the platforms with this in mind avoids most costly misunderstandings.
Shop database
What a shop system does not record about sales sources
The shop database keeps a register of orders, not the customer’s history online. Before the order was placed, the customer may have seen a video ad, clicked a product ad, returned from a newsletter and only bought on a later visit. This is what a typical journey looks like, and what remains of it in the shop:
The shop recorded the number, amount, products and date. The three earlier touchpoints live in three different systems: each sees only its own fragment and none sees the whole.
What exactly the shop database stores, and what it lacks:
| The shop records | The shop does not record |
|---|---|
| orders: amounts, statuses, products, customer | earlier sessions and visits without a purchase |
| order dates, statuses and cancellations | the source, channel and campaign of the visit (known to GA4 and the ad platforms) |
| products, quantities and prices in each order | ad impressions and touchpoints without a click |
| coupon codes, payment and delivery methods | ad costs and campaign data |
Key takeaway
The order records the effect; the visit source lives in GA4 and the dashboards. Channel figures from GA4 are a consistent estimate for comparisons, but reading the last visit as the reason for the purchase leads to systematically undervaluing the channels that work at the start of the journey.
Measurement gaps
Consent, cookies and tags: where conversions get lost
Several filters stand between an order and its trace in measurement systems. GDPR requires consent for measurement: some customers withhold it and their transactions disappear from analytics. The cookies that click identifiers rely on are shortened by browsers and cut by blockers. Tracking codes must have time to fire on the thank-you page: after an interrupted redirect from the payment gateway, the tag does not fire. The effect, using illustrative numbers:
Platforms do not stop at such thinned-out data: they model missing conversions statistically, add purchases after a mere ad view and apply their own time windows. That is why the number in the dashboard can be both higher than the number of orders (modelling, windows, duplicates between platforms) and short of real transactions (consent, blockers). The mechanisms behind these discrepancies are taken apart in a separate guide: automated e-commerce analytics.
An order records the effect. The cause is scattered across dashboards, browsers and consent settings. No database stores it in full.
The basket effect
An ad for product A also sells B and C
A product ad brings the customer into the shop, not to the checkout with a single product. A customer clicks an ad for coffee, then adds a second coffee and filters to the basket. A brand ad does the same across the whole catalogue: it sells “anything”, because it brings in people who only decide in the shop what to buy.
Product ad
Ethiopia coffee, whole bean 1 kg cost per click: €0.53Order #10482
Ethiopia coffee 1 kg22.25
Brazil coffee 250 g6.00
Paper filters ×1003.00
Total€31.25
One click for €0.53, three items on the receipt. Which one should the cost be assigned to? And if the customer clicked the coffee ad but bought only filters: did the coffee campaign fail or work?
That is why the calculation “cost of the ad for product A divided by sales of product A” misleads in both directions. It understates the result of a campaign whose clicks end in purchases of other products, and overstates the result of products that add to other products’ baskets. Even Google Shopping, the only platform with cost at product level, knows the ad cost of the clicked product. It says nothing about the contents of the basket that resulted.
The real risk
Switching off campaigns based on a false per-product calculation costs the sales of the whole basket. A campaign for a lead product can have a dismal result measured on the lead product alone and an excellent one measured on the whole revenue GA4 or the dashboard attributes to it. Assessment belongs at campaign level, on that revenue read as an estimate, and in MER for the whole shop.
Limits of the data
Fully linking ad spend to orders is impossible
The three previous sections add up to one technical conclusion. The shop stores effects without paths, measurement systems see paths with gaps, and the basket breaks the link between the advertised and the purchased product. So no method exists that links every euro spent to a specific order, for anyone, in any tool. Rather than search for such a link, it is worth knowing three levels of data certainty:
Hard data
- Paid orders: amounts, products, margin (consistent with the accounts)
- Ad spend per platform, campaign and day
- MER: revenue divided by total spend. No attribution can distort it
Approximations (useful if there is a single rule)
- Channel split of transactions and revenue in GA4, one model for every channel
- Channel ROAS from GA4 or dashboard revenue, one rule for all platforms, read as an estimate
- Data-driven attribution in GA4 as a second viewpoint for assisting channels
Out of reach (for everyone)
- The full path of every customer across channels and devices
- Ad cost assigned to a specific order
- Ad cost for product A compared with sales of product A (partial exception: Google Shopping knows the cost of the clicked product, but not the basket)
Methodological note: tool vendors promising “full multi-touch attribution” are also subject to consent, blockers and cross-device purchases: their paths are modelled from incomplete data, not observed. The question to ask is not about the promise but about what share of orders has a complete trace at all.
In practice
How to measure ad performance despite attribution gaps
Knowing the limits simplifies measurement rather than complicating it. Since the “specific order” level is out of reach, all the effort shifts to the levels that work: orders, channels and days. A proven set looks like this:
Set a point of reference
Calculate whole-shop metrics (revenue, margin, MER) on paid orders from the shop. Treat dashboard figures as directional signals for in-platform optimisation, never as accounting.
MER every week
Order revenue divided by total ad spend. Resistant to attribution, consent and modelling. If it falls while budgets grow, the ads are genuinely losing efficiency.
One comparison rule for all channels
For comparisons between platforms: channel figures from GA4 under one model, identical for every channel, read as an estimate. Alongside this, data-driven attribution from GA4 as a check for assisting channels.
Trace hygiene and tests
Monitor GA4 coverage: purchase transactions in GA4 divided by paid orders in the shop for the same day. A drop signals a problem with consent or tagging. Check the impact of brand ads with tests: switch on, switch off, compare MER and sales.
This set has one technical requirement: orders, spend and GA4 data must meet in a single model. DataOrganizer maintains it automatically: every day it pulls orders from the shop, costs from all platforms and GA4 data, calculates MER from shop revenue and total spend, compares daily orders with GA4 purchase transactions and shows channel figures from GA4 or the dashboards labelled with their source. Questions can be put to the AI assistant in the app or via MCP in your own chat; the reconciliation covers only connected sources.
All of them are “true”. Each one counts something different:
| System | Count | What it actually counts |
|---|---|---|
| Google Ads | 412 | conversions within a 30-day post-click window, partly modelled |
| GA4 | 356 | transactions measured with consent; 33 orders are missing mainly due to consent refusals and blockers |
| Shop | 389 | paid orders · reference point |
For budget decisions: MER for August was 6.4 (€23,655 revenue / €3,695 spend). For channel comparisons I use GA4 figures under one model, the same for Google, Meta and the others, labelled as an estimate.
Calculation behind the chat figures: €23,655 / €3,695 = 6.4. All values in this post’s examples are illustrative: the mechanisms are universal, but the proportions differ in every shop.
FAQ
Common questions about conversions and attribution
Does an online shop record where a customer came from?
In the order data used for analysis, practically not. The shop database stores orders: amounts, statuses, products, payment and delivery methods and the customer. The source of the visit, the channel and the campaign are recorded by GA4 and the ad platforms, each seeing only its own fragment.
Why does Google Ads show more conversions than I have orders?
The dashboard counts by its own rules: attribution windows (e.g. 30 days after a click), view-through conversions and modelled conversions where consent is missing. On top of that, the same transaction may appear in Google and Meta simultaneously. Paid orders are the reference point; treat dashboards as a directional signal.
Can ad cost be linked to a specific order?
Generally not: click identifiers survive only for some visits, platforms do not expose the cost of an individual click linked to a transaction, and one ad sells different products. Reliable levels are the whole shop and the day (MER from orders), while channel and campaign ROAS come from GA4 or the dashboards as an estimate. A partial exception: Google Shopping knows the ad cost of the clicked product, but still not the contents of the basket.
How do you calculate the return on brand ads?
Not through dashboard ROAS: a brand ad collects clicks from people who would often have bought anyway, and its effect spreads across the whole basket. A fairer approach is on–off tests while watching MER, sales and brand traffic, and geographic tests at larger scale. Such advertising is assessed at the level of whole-shop results during the test window.
Which attribution model is best for e-commerce?
None reproduces the truth: each divides credit by convention. What works is a combination: one consistent model for comparing channels in GA4, identical for every platform, data-driven in GA4 as a second point of view and MER as a measure of return on the whole budget, immune to attribution. More on this combination in the guide to automated e-commerce analytics.
Cheat sheet for the whole guide
Three principles of a sound approach to attribution
1. Separate outcomes from interpretation. Paid orders, spend and MER are hard figures. Channel splits from GA4 and the dashboards are conventions: they work if the rule is the same for all platforms. The full customer journey and cost tied to an individual order remain out of reach for everyone, whatever tools promise.
2. Assess campaigns by the baskets they open. An ad for product A also sells B and C, and a brand ad sells any product. The calculation “cost of ad A divided by sales of A” penalises campaigns that bring in customers and rewards products added to other people’s purchases.
3. Measure the hygiene of your own data trail. GA4 coverage (purchase transactions in GA4 versus paid orders in the shop, day by day) tells you how much data you are actually working with. DataOrganizer maintains this measurement automatically: orders, costs and GA4 in one model, with MER calculated from shop revenue and channel figures from GA4 or the dashboards labelled with their source.
DataOrganizer · measurement based on orders, not promises
Connect your shop, ad platforms and GA4: orders, spend and GA4 data meet in one model, with MER from shop revenue and channel figures labelled with their source. Demo account available instantly; you pay only for connected sources.