Launch Offer2 free audits with all 229 checks. No credit card required.Start free audit

GA4 Item Array Integrity: What Stops Items Reporting (2026)

Intermediate

Why does GA4 show (not set) for item names or IDs?

Item-level reporting in GA4 — showing which products were viewed, added to cart, and purchased — depends entirely on the items array being correctly populated in e-commerce events. When GA4's E-commerce Purchases report shows (not set) for item names, zero items in E-commerce Purchases, or product-level data in Google Ads Shopping reports shows no conversion data, the root cause is almost always a problem with the items array structure.

The six most common causes: empty items array, items passed as a string instead of array, missing required parameters, wrong data types, incorrect nested structure, and items array populated after the event fires.

The required items array structure

The 6 failure patterns

Failure 1 — Items array is empty

Symptom: Purchase events fire but E-commerce Purchases shows (not set) for all item dimensions.

Cause: Server-side product data wasn't available when the dataLayer push was built; cart/order object was empty due to a session timing issue; loop that populates items failed silently.

Debug: Check the raw dataLayer in browser console on the thank-you page:

Failure 2 — Items passed as a JSON string instead of array

Cause: Server-side template renders the items array as a JSON string, which is valid JSON but not a JavaScript array. GTM reads the value as a string, GA4 receives a string where an array is expected.

Fix:

Failure 3 — Missing required item parameters

Want to see whether purchase, revenue, or item-level tracking is drifting in your property?

Symptom: Items appear in BigQuery but item names show (not set) in GA4 reports.

Fix: Ensure every item object contains at minimum: item_id, item_name, price, quantity.

Failure 4 — Price as string

Symptom: Item revenue calculations are wrong; individual item prices show as 0 or (not set) in some reports.

Fix:

Failure 5 — Items array at wrong nesting level

Failure 6 — Items populated after event fires (async timing)

Fix: Await all async operations before the push:

Validating items in DebugView

  1. Open GA4 Admin → DebugView
  2. In GTM Preview Mode, trigger a purchase on staging
  3. Click the purchase event in DebugView timeline
  4. In the right panel, expand items parameter
  5. Verify: array is present, each item has item_id, item_name, price, quantity, all numeric values are numbers not strings

BigQuery query to audit items integrity

If pct_empty_items > 5%, you have systematic items array population failure.

FAQ: GA4 Item Array Integrity: What Stops Items Reporting

What is the first thing to verify when ga4 item array integrity: what stops items reporting affects revenue?

Check whether the event fired with the correct transaction ID, revenue value, currency, and item array. Those four fields explain most ecommerce reporting failures.

Should I compare GA4 only to the ecommerce platform total?

No. Use order data, checkout flow behavior, and event payload evidence together. Platform totals alone do not tell you whether the issue is loss, duplication, or attribution drift.

How do I keep this from breaking after the next release?

Build a checkout QA routine that runs after changes to cart, consent, payment, shipping, discounts, or order confirmation logic.

Audit GA4 Item Array Integrity: What Stops Items Reporting before revenue reporting drifts further

Run a free GA4 audit to catch purchase, refund, item-array, and attribution issues before they distort ecommerce decision-making.

These findings come from auditing thousands of GA4 properties. See how your property compares

GA4 Audits Team

GA4 Audits Team

Analytics Engineering

Specialising in GA4 architecture, consent mode implementation, and multi-layer audit frameworks.

Share