Tracking Item Lists in GA4: Category Pages and Search | Adslytics | Adslytics

GTM Data Layer How-To Guide

Tracking Item Lists in GA4: Category Pages and Search Results

By Muhammad Farooq · March 24, 2026 · 5 min read
Tracking Item Lists in GA4: Category Pages and Search Results

What Item List Tracking Reveals

Most ecommerce analytics focuses on what users purchase. GA4 item list tracking reveals an earlier and often more impactful insight: which product listings drive product page visits. A category page might show 20 products, but the data shows that 70% of clicks go to items in positions 1-4. This data informs category page ordering, featured product selection, and search ranking decisions.

The Two Item List Events

  • view_item_list: fires when a product listing page renders (items come into the viewport). Each item includes its position in the list.
  • select_item: fires when the user clicks on a specific product in a list, identifying which list item they chose.

view_item_list Data Layer Structure

window.dataLayer.push({ecommerce: null});
window.dataLayer.push({
  'event': 'view_item_list',
  'ecommerce': {
    'item_list_id': 'category_womens_dresses',
    'item_list_name': "Women's Dresses",
    'items': [
      {
        'item_id': 'SKU-001',
        'item_name': 'Floral Summer Dress',
        'item_category': 'Dresses',
        'price': 79.99,
        'quantity': 1,
        'index': 1,                      // Position: 1-based
        'item_list_id': 'category_womens_dresses',
        'item_list_name': "Women's Dresses"
      },
      {
        'item_id': 'SKU-002',
        'item_name': 'Wrap Midi Dress',
        'item_category': 'Dresses',
        'price': 89.99,
        'quantity': 1,
        'index': 2,
        'item_list_id': 'category_womens_dresses',
        'item_list_name': "Women's Dresses"
      }
      // ... all visible products
    ]
  }
});

select_item Data Layer Structure

// Fire when a product link is clicked (usually in click handler)
window.dataLayer.push({ecommerce: null});
window.dataLayer.push({
  'event': 'select_item',
  'ecommerce': {
    'item_list_id': 'category_womens_dresses',
    'item_list_name': "Women's Dresses",
    'items': [
      {
        'item_id': 'SKU-001',
        'item_name': 'Floral Summer Dress',
        'price': 79.99,
        'quantity': 1,
        'index': 1    // Position where the user clicked
      }
    ]
  }
});

Implementation Approaches

For server-rendered pages (WordPress, Magento, Shopify themes): push view_item_list on page load with all visible products. Product click handlers push select_item.

For client-side rendered pages (React/Vue category pages): push view_item_list after products have rendered. Use Intersection Observer if you want to only track products that are actually visible in the viewport rather than all products on the page.

Search Results

Internal search results use the same events with a search-specific list ID:

window.dataLayer.push({ecommerce: null});
window.dataLayer.push({
  'event': 'view_item_list',
  'ecommerce': {
    'item_list_id': 'search_results',
    'item_list_name': 'Search Results: "summer dress"',
    'items': [ /* search result products with index positions */ ]
  }
});

Summary

view_item_list and select_item tracking reveals product discovery patterns across category pages and search results. Include item_list_id, item_list_name, and index (position) in both events to enable GA4's item list performance reports. Push view_item_list when products render; push select_item on product link click. The position (index) data is the key insight — it shows which list positions generate the most product page visits.

See our Enhanced Ecommerce Tracking Setup service for implementation.

Need item list tracking implemented? Contact Adslytics.

Need expert tracking setup?

Our Google Tag Manager experts have delivered 500+ tracking setups with a 98% success rate.

Get a Free Consultation →
← Back to Blog
Muhammad Farooq

Author

Muhammad Farooq GTM & Analytics Expert · Adslytics Founder

Tracking specialist with 10+ years of experience in Google Tag Manager, GA4, Server-Side Tracking, and Google Ads. Founder of Adslytics — a dedicated analytics agency with a 98% success rate across 232+ projects on Upwork.

Top Rated Plus LinkedIn Visit the author's profile →