tl;dr
Each product gets the revenue of its own line items. The attribution model decides which channel gets the credit.
Changing the attribution model moves revenue between channels, never between products.
Ad spend is split per ad and per day by first product views: the first product page a visitor opens in a session.
Product ROAS = attributed revenue ÷ the ad spend given to that product. Products that get views but few sales show a low ROAS.
Adding a product dimension never changes your channel, campaign or ad totals. It only splits them.
When you add a product dimension to an Attribution report, every order is split into one row per product it contains. Revenue, orders, costs and marketing spend are then shared out across those rows. This article explains how each number is split.
Available product dimensions
Attribution reports work at variant level.
Dimension | What it shows |
Product title | The product's name |
Variant title | The variant's name, for example size or color |
SKU | The variant's SKU |
Product type | The product type set in your shop |
You can also group these four fields into your own groups with Custom Categories.
Bundles. In here, a bundle shows as one row.
Revenue and orders
Each product gets the revenue of its own line items. Klar then works out each product's share of the order.
Gross revenue for a line item is its price × quantity, plus its part of the order's shipping. By default, shipping is split by quantity.
Net revenue is gross revenue minus discounts, taxes and duties.
Refunds are taken off the refunded product only. A product that was fully refunded ends up with roughly zero net revenue.
The attribution model then applies on top. If a channel gets 40% of an order's credit, each product row in that order gets 40% of its own revenue under that channel.
Orders and customers are counted as fractions. An order is shared across its products by each product's share of gross revenue. An order with two products of equal value counts as 0.5 orders for each. Added up across products, the total is still one order.
How marketing spend reaches a product
Ad platforms report spend per campaign and ad, not per product. So Klar distributes each ad's spend across products by how much shopper interest each product got from that ad's visitors.
Interest is measured with first product views: the first product page a visitor opens in a session. The visitor does not need to land on a product page. Someone who lands on your home page, browses a category and then opens the jacket counts as a first product view for the jacket. Each product gets an ad's spend in proportion to the first product views from that ad's visitors, day by day.
Example: A Meta Ad drove 1,000 first product views on one day, and 300 of them were for Product A. Product A then gets 30% of the Meta Ad's spend for that day.
Rules that always apply
Spend never moves between channels. Meta spend is only shared across products that Meta traffic viewed. The same applies to any other dimension in your report, such as campaign.
Spend with no product views stays on n/a. If an ad had spend but no tracked first product views, its spend shows on the n/a row. Total spend is never lost or changed.
Spend follows interest, not sales. A product that gets many first views but few orders still carries a large share of spend. This makes it visible when a product attracts traffic that doesn't convert.
Product-level ad data is not used. For example, Google Shopping reports spend per product item. This is not matched to your catalog for Attribution.
What counts as marketing spend: ad platform spend, plus custom costs you have marked as marketing. CM3 = CM2 − marketing spend, using the distributed spend above.
Example: which channel gets which product's revenue
The attribution model decides which channel gets credit for an order. Each product's share of the order then decides how much of that credit goes to each product. The two never mix: changing the model moves revenue between channels, never between products.
A customer clicks a Meta ad on Monday and a Google search ad on Wednesday. On Wednesday they buy a jacket (€80 net) and socks (€20 net).
Model | Channel | Jacket revenue | Socks revenue | Orders |
Last click | €80 | €20 | 1.0 | |
First click | Meta | €80 | €20 | 1.0 |
Linear | Meta | €40 | €10 | 0.5 |
Linear | €40 | €10 | 0.5 |
Whatever the model, the jacket always gets 80% of the credit and the socks 20%. In the Linear model, Meta's 0.5 orders are split into 0.4 for the jacket and 0.1 for the socks.
Example: Product ROAS
Product ROAS = the revenue attributed to a channel for that product ÷ the channel spend given to that product. Revenue follows orders; spend follows first product views. Comparing the two shows which products turn traffic into sales.
On one day, a Meta ad spent €2,000 and its visitors made 1,000 first product views:
Product | First product views | Share of views | Meta spend | Meta net revenue | ROAS |
Jacket | 500 | 50% | €1,000 | €4,000 | 4.0 |
Socks | 300 | 30% | €600 | €600 | 1.0 |
Cap | 200 | 20% | €400 | €0 | 0.0 |
Total | 1,000 | 100% | €2,000 | €4,600 | 2.3 |
How to read it:
The jacket converts Meta traffic well. It is a good candidate for more budget or its own campaign.
The cap gets a fifth of Meta's traffic but no sales. Look at its price, product page or the ads that drive visitors to it.
The total matches the ad. The ad's ROAS without a product dimension is also 2.3. Adding a product dimension only splits the numbers; it never changes the totals.
Example: campaigns and products
When you add a campaign dimension next to a product dimension, each campaign's spend is split only across the products its own visitors viewed. The product a campaign advertises does not matter; what visitors look at does.
Two Google campaigns on one day:
Campaign | Spend | First product views from its visitors | Spend per product |
Jackets – Shopping | €500 | Jacket 400, Socks 100 | Jacket €400, Socks €100 |
Brand search | €300 | Jacket 150, Socks 150 | Jacket €150, Socks €150 |
The jacket campaign advertises only jackets, but its visitors also browsed socks. So 20% of its spend lands on socks. Revenue from any socks those visitors buy is credited to the campaign too.
Brand search visitors land on the home page, not a product page. Half of them opened the jacket first and half the socks, so the spend splits 50/50.
Example: one order, two products
A customer buys a jacket and a pair of socks. The order has €100 net revenue and €71 total costs, so order CM2 is €29 (29%). The attribution model gives Meta 50% of the credit for the order. Shipping and tax are left out to keep the numbers simple.
| Jacket | Socks | Order |
Net revenue | €80 | €20 | €100 |
Meta: net revenue (50% credit) | €40 | €10 | €50 |
Meta: orders (50% credit) | 0.4 | 0.1 | 0.5 |
Meta's spend is added to these rows separately, based on product interest from Meta traffic.
Frequently asked questions
Can I see a product's real margin on its own? Not in Attribution. Use the order-level or Profit & Loss reports, which show costs per item and per cost type.
Can I group by vendor, tags or collection? Not at the moment. Attribution supports product title, variant title, SKU and product type, and Custom Categories built from those four.
