Analytics and Tracking

Item Array

Also called items array, item_id, item_name, item_brand, item_category, item_variant

The list of products, each with its ID, name, price and quantity, that a GA4 ecommerce event sends so reports can show which items sold.

Quick facts: Item Array

Category
Analytics and Tracking
Also called
items array, item_id, item_name, item_brand, item_category, item_variant
Level
Intermediate
Affects
Product and item reports, item revenue, ecommerce funnels, dynamic remarketing
Where to see it
GA4 DebugView, Google Tag Manager preview mode, GA4 Ecommerce purchases report
In this article4
  1. How an item array works
  2. Why it matters
  3. Common mistakes
  4. How to act on it

An item array is the list of products attached to an ecommerce event in Google Analytics 4, with each product described by fields such as its ID, name, price and quantity. When a shopper adds two of the same candle and a gift box to their basket, the add_to_cart event carries an item array with two entries: the candle with a quantity of 2 and the gift box with a quantity of 1. GA4 builds every product report from what those entries contain.

How an item array works

GA4 measures a shop as a sequence of ecommerce events: view_item when a product page loads, add_to_cart, begin_checkout and finally purchase. Each of these sends a parameter called items, which is a list holding one entry per product. Alongside the list, the event carries order-level details such as the currency, the total value and, for a purchase, the transaction ID.

Each entry needs at least an item_id or an item_name. In practice a useful entry looks like this:

FieldExampleWhat it is for
item_idCND-ORG-200Your SKU, and the most reliable way to match a product across reports and platforms
item_nameOrange and Clove CandleThe readable name shown in product reports
item_brandYour brand or the maker’sComparing brands in a shop that stocks several
item_categoryHome fragranceGrouping products; GA4 accepts up to five category levels
item_variant200gSize, colour or other option
price18.00Unit price as a number, after any item discount
quantity2How many of that item

On most sites the shop pushes this information into the data layer and a GA4 tag in Google Tag Manager reads it from there. Shopify, WooCommerce and Magento integrations build the array for you, although how complete it is varies a great deal from one plugin to the next.

Why it matters

Every product figure in GA4 comes from the item array: items viewed, items added to basket, items purchased and item revenue. If the array is thin or inconsistent, you cannot see which products people look at but do not buy, which categories bring in the most revenue or which variants sell fastest. That is exactly the information that should decide what you promote, discount or stop stocking.

For a UK shop, two details are worth settling early. Send the currency as GBP on every ecommerce event, because without a currency code GA4 may not record the revenue at all. And decide whether price includes VAT. Consumer prices in the UK normally do, but your accountant may report net sales, and GA4 should match whichever figure the business is actually managed by.

The same product IDs are used beyond GA4. Google Ads dynamic remarketing matches item IDs against the products in your Google Merchant Center feed, so an item_id that differs from the feed ID breaks the link between what someone viewed and the ad they are later shown.

Common mistakes

  • Describing the same product differently on different events, for example by name on view_item and by SKU on purchase, so GA4 treats it as two products.
  • Sending price as text with a pound sign (“£18.00”) instead of the number 18.00.
  • Leaving out quantity or price, which leaves item revenue empty or wrong even when the order total is correct.
  • An empty items list on purchase, often because the order confirmation page cannot read the basket after the customer returns from an external payment page such as PayPal.
  • Putting customer details, such as an email address or the text of a personalised engraving, into an item field. Google’s analytics terms prohibit sending personally identifiable information, and it creates a UK GDPR problem you do not need.
  • Variant names that drift over time (“Large”, “L”, “large”), splitting one product’s sales across several rows.

How to act on it

Run a test order and watch what is sent. Open GA4 DebugView or Tag Manager’s preview mode, view a product, add two of it to the basket, start the checkout and complete the order with a test payment or a full-discount code. At each step, open the items parameter and check that the ID, name, price and quantity are present and identical to the previous step.

Then compare a week of item revenue in GA4 with the same week in your shop’s own sales report. A modest gap is normal, because some visitors decline analytics cookies and some block tags altogether. A large gap, or products missing entirely, means the array needs fixing. Write the field rules into your measurement plan so that a theme update or a new plugin does not quietly undo them.

Checking the item array is one of the first jobs when I set up tracking for performance marketing, because return on ad spend by product is only as reliable as the product data behind it. The entry on ecommerce tracking covers the rest of the set-up.

Do and do not

Do

  • Use the same item_id as your shop and Merchant Center feed
  • Send price as a number and the currency as GBP
  • Test every ecommerce event with a real basket before launch

Do not

  • Put customer names, emails or personalisation text in any item field
  • Let one product appear under two different names or IDs
  • Assume your shop plugin sends every field

Questions people ask about this

Which fields are required in a GA4 item array?

GA4 only insists on an item_id or an item_name for each product. Everything else is optional as far as GA4 is concerned, but without price and quantity there is no item revenue, and without a currency code on the event the revenue may not be recorded. I send ID, name, brand, category, variant, price and quantity on every ecommerce event as a matter of course.

Does the item array need to be the same on every ecommerce event?

The core fields should be. If a product is described with the same ID, name and variant on view_item, add_to_cart, begin_checkout and purchase, GA4 can follow it through the funnel. Some fields, such as the name of the product list someone clicked from, only make sense on certain events, and that is fine.

Can Google Ads and Meta use the same product data?

Google Ads dynamic remarketing can read product IDs from the same ecommerce events, provided each item_id matches the ID in your Google Merchant Center feed. The Meta pixel expects its own format, but a tag manager can build it from the same data layer, which keeps the IDs consistent with your Meta catalogue.

Related terms

Found this useful?

Share it, or ask an AI to summarise it

Back to the glossary

Knowing the term is the easy part

Applying it to your own site and budget is the work. Book a call and I will tell you what actually applies to you.