← Back to Events

Product List View

Also known as: view_item_list, Item List View, Product Impression, Product List Impression, List View, PLP View

EngagementeventE-commerce: Product Discovery & Merchandising (Search/Filters/PDP)E-commerce

Product List View is the standard ecommerce view_item_list event, recorded when a set of products is shown to a shopper as a list (category and product listing pages, search results, recommendation carousels, cross-sell and recently viewed modules) and it carries item_list_id, item_list_name and the items array with each product's list position. It is the impression side of the list funnel: paired with Product List Click (select_item) on the same item_list_id and index, it measures how well each list, ranking position and product converts exposure into product detail views, carts and revenue.

Event Serialization

always

Business Use Case

["1️⃣ The Onsite Merchandising Manager reviews category listing performance every Monday, compares list views with Product List Click by index and item_category, and re-ranks or pins products whose top-row exposure produces click-through well below the category median before the next trading week.","2️⃣ The Recommendations Product Owner, at each monthly model review, compares list views, click-through and add-to-cart by item_list_name across Recommended For You, Recently Viewed and Cart Recommendations, and reduces placement for any module whose impressions grow while downstream carts stay flat.","3️⃣ The Site Search Manager, whenever search results list views rise but clicks per view drop for a query cluster, reviews the ranking rules and synonym set for that cluster and relaunches the ranking change as an A/B test measured on search_results list click-through.","4️⃣ The Retail Media Sales team reports sponsored-tile impressions from this event to brand partners at month-end and adjusts the price of sponsored placements by list and position according to the delivered view volume and observed click-through."]

Business Criticality

High

Journey / Navigation Area

Discovery

Owning Function

Merchandising

Calculation Notes

["1️⃣ Fires when a product list renders its results for the shopper: on the initial load of a category or search results page, when a below-the-fold module such as a recommendation carousel first enters the viewport, and again for each additional batch loaded through infinite scroll, a Load More button or pagination. A filter or sort change that returns a new result set (see Filter Applied) is a new list view; a pure client-side re-render of the same results, a quick-view modal or a browser back navigation restored from cache is not.","2️⃣ Serialization is always, deduplicated on item_list_id + page view + batch: a list or batch that has already been sent for the current page view is never resent when the shopper scrolls back to it, and carousel slides pushed into view by the shopper are sent as a new batch containing only the newly exposed items. Keep the items array at or below 200 entries per event (the GA4 limit) and split larger grids into consecutive events rather than truncating them silently.","3️⃣ item_list_id and item_list_name are required and must be stable, low-cardinality values taken from a governed list registry (for example item_list_id category_listing, search_results, pdp_recommendations, cart_recommendations with item_list_name Category Listing, Search Results, Recommended For You, Cart Recommendations). The same pair must be sent on Product List Click, Add to Cart and Add to Wishlist for items selected from the list, otherwise list-level attribution in GA4 breaks.","4️⃣ Each entry in items requires item_id and index; item_name, item_brand, item_category through item_category5, item_variant and price are strongly recommended. index is zero-based and continues across batches (the first tile is index 0 and the second batch of a 24-tile page starts at 24), and it must equal the index sent on select_item for the same tile so that click-through by position can be computed. Sponsored or retail-media tiles stay in the list with their true position and are identified through an item-level parameter, never removed from the payload.","5️⃣ The event carries no personal data: item_list_name must never embed a raw search term, email address or customer identifier, and personalised recommendation lists are labelled by strategy (for example Recommended For You) rather than by user. Under Consent Mode with analytics_storage denied the tag sends cookieless pings only; the event must not be held back or queued client-side until consent is granted.","6️⃣ Common instrumentation mistakes: firing on every page_view instead of on list render, sending the full catalogue response rather than the tiles actually rendered, restarting index at 0 on every infinite-scroll batch, using the page title or URL as item_list_name, and sending price as a formatted string with a currency symbol instead of a number with currency set on the event."]

Platform Events

PlatformEvent
Google Analytics 4view_item_list
AdobeproductListView

Data Mappings

W3 Data Layer
{
  "event": {
    "eventName": "Product List View",
    "eventAction": "view_item_list"
  },
  "listing": {
    "item_list_id": "category_listing",
    "item_list_name": "Category Listing",
    "page_type": "category",
    "currency": "USD"
  },
  "items": [
    {
      "item_id": "SKU12345",
      "item_name": "Trail Running Shoe",
      "item_brand": "Acme",
      "item_category": "Footwear",
      "item_variant": "Blue / 10",
      "price": 89.99,
      "index": 0
    },
    {
      "item_id": "SKU12346",
      "item_name": "Trail Running Shoe - Wide",
      "item_brand": "Acme",
      "item_category": "Footwear",
      "item_variant": "Blue / 10.5 Wide",
      "price": 94.99,
      "index": 1
    }
  ]
}
GA4 Data Layer
{
  "event": "view_item_list",
  "item_list_id": "category_listing",
  "item_list_name": "Category Listing",
  "page_type": "category",
  "currency": "USD",
  "items": [
    {
      "item_id": "SKU12345",
      "item_name": "Trail Running Shoe",
      "item_brand": "Acme",
      "item_category": "Footwear",
      "item_variant": "Blue / 10",
      "price": 89.99,
      "index": 0,
      "item_list_id": "category_listing",
      "item_list_name": "Category Listing"
    },
    {
      "item_id": "SKU12346",
      "item_name": "Trail Running Shoe - Wide",
      "item_brand": "Acme",
      "item_category": "Footwear",
      "item_variant": "Blue / 10.5 Wide",
      "price": 94.99,
      "index": 1,
      "item_list_id": "category_listing",
      "item_list_name": "Category Listing"
    }
  ]
}
Adobe Client Data Layer
{
  "event": "productListView",
  "eventInfo": {
    "eventAction": "view_item_list"
  },
  "item_list_id": "category_listing",
  "item_list_name": "Category Listing",
  "page_type": "category",
  "currency": "USD",
  "items": [
    {
      "item_id": "SKU12345",
      "item_name": "Trail Running Shoe",
      "item_brand": "Acme",
      "item_category": "Footwear",
      "item_variant": "Blue / 10",
      "price": 89.99,
      "index": 0
    },
    {
      "item_id": "SKU12346",
      "item_name": "Trail Running Shoe - Wide",
      "item_brand": "Acme",
      "item_category": "Footwear",
      "item_variant": "Blue / 10.5 Wide",
      "price": 94.99,
      "index": 1
    }
  ]
}
XDM Mapping
{
  "eventType": "commerce.productListViews",
  "commerce": {
    "productListViews": {
      "value": 1
    }
  },
  "productListItems": [
    {
      "SKU": "SKU12345",
      "name": "Trail Running Shoe",
      "priceTotal": 89.99,
      "currencyCode": "USD",
      "_index": 0,
      "product": {
        "brand": "Acme",
        "category": "Footwear",
        "variant": "Blue / 10"
      }
    },
    {
      "SKU": "SKU12346",
      "name": "Trail Running Shoe - Wide",
      "priceTotal": 94.99,
      "currencyCode": "USD",
      "_index": 1,
      "product": {
        "brand": "Acme",
        "category": "Footwear",
        "variant": "Blue / 10.5 Wide"
      }
    }
  ],
  "web": {
    "webPageDetails": {
      "pageType": "category"
    }
  },
  "_experience": {
    "analytics": {
      "customDimensions": {
        "eVars": {
          "eVar1": "category_listing",
          "eVar2": "Category Listing"
        }
      }
    }
  }
}

Source Data

Digital Analytics (GA4)

Dependencies

Prerequisite: List the dependencies required for this Event

Events:

Report Attributes

item_list_name item_list_id index item_category item_brand page_type device_category traffic_source

Segment Eligibility

true

Governance

Data SensitivityInternal

Dimensions

Derived Entities

Derived Metrics

Governance & Metadata

Created bydevyendarm
Created on9/21/2026
Last modified bydevyendarm
Last modified on9/21/2026
Version1.0.0
Validation stateqa passed
StatusPUBLISHED

GitHub

View related Pull Requestcatalog/events/product-list-view.yml

Community Discussion