Skip to content

Guide 42 · Ecommerce · GA4 + Tag Manager

The item parameters: item_id, item_name, price, quantity, brand, category, and the rest of the prescribed set

Checked 11 November 2026 · Verification: reference file checked in Python (figures recomputed from the worked example) · Steps traced to Google's developer docs and Analytics Help, opened 11 November 2026 · 6-minute read

The items array has one prescribed parameter set, and the Ecommerce purchases report is built from it. Send the brand, the category, the variant, and the discount — not just the ID and the price.

Expected signal

After step 4, DebugView shows the purchase event with both items fully described — brand, category, variant, list, and discount — and value 72.05. After about 24 hours, the Ecommerce purchases report breaks the same order down by item brand and item category.

Download the reference: the item-parameters reference (JSON) (1758 bytes, MD5 597bad1733e8ec870a2c76152b474836). It holds the event parameters, the worked example, and the recomputed figures.

What you need

  • The Google tag on the site. The event is sent through the Google tag; the install guide covers it.
  • Access to the website source code, or a Tag Manager container. The item parameters are set where the event is sent.
  • The product record for each item. The worked order is Google's full example: two tees with every prescribed parameter filled in, from item_id to location_id.

The trace

  1. Send item_id and item_name for every item. Only one of the two is required, but Google recommends both. The worked order sends SKU_12345 with Stan and Friends Tee and SKU_12346 with Google Grey Women's Tee. The ID joins the order to the product feed; the name is what the report shows.
  2. Send price and quantity as numbers. The tee is 10.01 each with quantity 3, so its line is 10.01 × 3 = 30.03; the grey tee is 21.01 each with quantity 2, so its line is 21.01 × 2 = 42.02. The order value is 30.03 + 42.02 = 72.05. Price and quantity must be numbers, not quoted strings, or the multiplication fails.
  3. Send brand and category so the report can group by them. Both items carry item_brand Google and item_category Apparel, with the deeper levels item_category2 Adult, item_category3 Shirts, item_category4 Crew, and item_category5 Short sleeve. The Ecommerce purchases report offers item brand and each category level as a dimension; an order that sends none of them can only ever be reported by name.
  4. Record the discount on the item, not in the price. Google's rule is that price is the discounted unit price and discount is the unit price discount. The tee carries discount 2.22 per unit, so 2.22 × 3 = 6.66 for the three tees; the grey tee carries discount 3.33 per unit, so 3.33 × 2 = 6.66. The order's total recorded discount is 6.66 + 6.66 = 13.32, and the value net of discount is 72.05 − 13.32 = 58.73. The value parameter itself stays at the gross 72.05 in Google's example; the discount is its own dimension.
  5. Send the rest of the prescribed set where you have it. The worked items also carry affiliation (Google Merchandise Store), coupon (SUMMER_FUN), index (0 and 1), item_list_id (related_products) and item_list_name (Related Products), item_variant (green), and location_id (the Google Place ID for the store). Google's recommendation is to set each ecommerce parameter you have data for, regardless of whether it is optional.
  6. Check it in DebugView. Turn on debug mode, trigger the event, and open DebugView (Admin, then Data display, then DebugView). Expand the event and check both items: brand, category, variant, discount, price, and quantity all present. A parameter that is missing here is missing from the reports too.

Dead ends

DEAD END — PRICE NET OF DISCOUNT WITH NO DISCOUNT RECORDED. If the price is sent already reduced and the discount parameter is left out, Analytics has no record that a discount happened. The order looks like a cheap sale instead of a discounted one. Send the discounted unit price and the unit discount together, as Google documents.

DEAD END — CATEGORY AS ONE FLAT STRING. A category sent as Apparel / Adult / Shirts in item_category is one category, not three levels. The five levels exist so the report can roll up from Short sleeve to Apparel. Split the hierarchy across item_category through item_category5.

DEAD END — ITEM_LIST_ID ON THE ITEM THAT OVERRIDES THE EVENT. When item_list_id is set on the item, the event-level item_list_id is ignored. An item that carries the wrong list ID is reported under the wrong list, even when the event names the right one. Keep the list ID the same on the item and the event, or leave it off the item.

End state

Every item in every ecommerce event carries item_id and item_name, a numeric price and quantity, item_brand and the category levels, the variant, the list it came from, and the discount per unit. The worked order is two items, 30.03 and 42.02, value 72.05, total recorded discount 13.32, net of discount 58.73. DebugView shows the full item record the same minute, and after about 24 hours the Ecommerce purchases report groups the order by brand and category.

Sources

Checked 11 November 2026. The parameter set above is the one in Google's ecommerce developer guide and the recommended events reference, both opened 11 November 2026. No step was run inside a live Analytics property, because that needs a Google sign-in and this site does not sign in as anyone. The figures were recomputed in Python: 10.01 × 3 = 30.03, 21.01 × 2 = 42.02, 30.03 + 42.02 = 72.05, 2.22 × 3 = 6.66, 3.33 × 2 = 6.66, 6.66 + 6.66 = 13.32, and 72.05 − 13.32 = 58.73. The reference file was checked the same way.