Google Analytics Audit Test #

17

(not set) Item at 'purchase'

Why It Matters:

One of the most critical data points in understanding friction and opportunities in the shopping process on a product-by-product level.

Industries:

Ecommerce

Checks For:

Accuracy

How accurate is your recent data?

Insight Category:

Behavior

Can you tell what visitors are doing?

Google Analytics Audit logo

Background

A GA4 audit is essential for uncovering missing insights—key data points that organizations don't yet know and can act upon. A well-done audit evaluates both behavioral tracking and traffic attribution, ensuring each is accurate and useful. It also assesses whether the data collected truly supports business decisions and reporting.

Test Detail

This test checks whether purchase events are firing with incomplete or missing product metadata, particularly when item_name or item_id appear as (not set).

The purchase event is the most important event in ecommerce tracking, and missing item details at this stage severely impacts:

  • Product-level revenue reporting
  • Marketing attribution to product purchases
  • ROAS by SKU or category
  • Inventory and merchandising decisions
  • Funnel accuracy for what users actually bought

If GA4 records purchases without product data, you are missing out on opportunities to improve product sales performance.

Check This Test for Free! Instantly.

Our free instant audit tool checks for 90 issues in 90 seconds.

Then gives you a prioritized list of items to tackle.

No cost, no sales call... just free goodness.

Google Analytics audit test results.

How to Conduct This Test

Basic Tests

  • In GA4 > Explore, create a Free-form report:
    • Dimensions: Item name, Item ID
    • Metrics: Purchase events, Revenue
    • Filter for event_name = purchase
    • Check for (not set) in either dimension
  • In Reports > Monetization > Ecommerce purchases, look for rows labeled (not set)

Advanced QA

  • In BigQuery, run the below query:
    SELECT ep.key, ep.value.string_value, COUNT(*) AS count
    FROM `your_dataset.events_*`,
         UNNEST(event_params) AS ep
    WHERE event_name = 'purchase'
      AND (ep.key = 'item_name' OR ep.key = 'item_id')
      AND (ep.value.string_value IS NULL OR ep.value.string_value = '(not set)')
    GROUP BY ep.key, ep.value.string_value;
  • If you see any significant volume of purchases with (not set) item names or IDs, you're missing critical business insight.

Automated, Free Audit

Need a faster answer? Run our Instant Audit

Or hire a pro to ensure your ecommerce tracking captures exactly what your customers buy.

How To Fix

Fixing 'purchase' events with (not set) items

  • Use the recommended push to the dataLayer, ensuring the items array is complete:
    gtag('event', 'purchase', {
      transaction_id: 'T12345',
      currency: 'USD',
      value: 129.99,
      tax: 5.00,
      shipping: 10.00,
      items: [
        {
          item_id: 'SKU_789',
          item_name: 'Noise-Canceling Headphones',
          quantity: 1,
          price: 129.99
        }
      ]
    });
  • In Google Tag Manager, make sure:
    • The dataLayer contains the full items array at the time of purchase
    • Tags use the correct data structure and all key fields are mapped correctly

QA Tips

  • QA the event using DebugView:
    • Confirm that purchase includes full product metadata for every item in the order
    • Watch for edge cases where cart recovery, PayPal, or one-click checkout paths skip the tracking layer
    • Hire a pro to implement robust purchase tracking and protect your revenue reporting from silent data loss.