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
- Open GA4 Admin → DebugView
- In GTM Preview Mode, trigger a purchase on staging
- Click the
purchaseevent in DebugView timeline - In the right panel, expand
itemsparameter - 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?
Should I compare GA4 only to the ecommerce platform total?
How do I keep this from breaking after the next release?
Related guides for GA4 Item Array Integrity: What Stops Items Reporting
Shopify GA4 Setup: Web Pixel vs theme.liquid in 2026
The 2026 best practice for Shopify GA4 is Web Pixel via Customer Events API — Shopify's sandboxed pixel system that runs GA4 in isolation, supports the Customer Privacy API for consent, fires standard e-commerce events automatically, and works on all Shopify plans (including Basic)…
Item Array Integrity: What Stops Items Reporting in GA4 (2026)
Items fail to appear in GA4 e-commerce reports when the items array is missing, malformed, or inconsistent across the funnel. Eight common bugs: (1) missing item_id (the only required field — items without it are dropped), (2) item_id mismatched between view_item and purchase (same product reports as different items)…
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.