Skip to main content

How product dimensions work in Attribution

See which products each channel and ad actually sells, and what each product costs you in ad spend.

Written by Marc Garbella

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

Google

€80

€20

1.0

First click

Meta

€80

€20

1.0

Linear

Meta

€40

€10

0.5

Linear

Google

€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.

Did this answer your question?