Product View
Counts the number of times a product is viewed either as a widget across the site/app or on product detail view. This metric is foundational for understanding product interest, merchandising effectiveness, and the top of the commerce conversion funnel. It helps teams evaluate product discovery and the relationship between product exposure and downstream actions such as add-to-cart, checkout, and purchase.
Business Use Case
Merchandising teams use this metric to identify high-interest products and optimize assortment placement. UX and product teams use it to assess PDP traffic and navigation effectiveness. Marketing teams compare product views by campaign, channel, and audience to evaluate traffic quality. Analysts use it as the denominator for add-to-cart rate, product conversion rate, and purchase funnel diagnostics.
Business Criticality
High
Journey / Navigation Area
Digital Analytics
Scope
Event
Formula
Product View = COUNT of product view eventsCalculation Notes
1️⃣ Count each qualifying product detail view as one product view. 2️⃣ Count multiple items as separate views only if implementation supports it; otherwise, count one per viewed product. 3️⃣ Exclude non-product pages, quick-view overlays (unless defined), bot/internal traffic, QA environments, and duplicate events. 4️⃣ Ensure product_id is populated and stable across platforms. 5️⃣ Count multiple views of the same product in a session unless a unique product views metric is required.
Technical Details
Events
| Platform | Event |
|---|---|
| Google Analytics 4 | view_item |
| Adobe | prodView |
Data Mappings
W3 Data Layer
{
"event": "product_view",
"ecommerce": {
"currency": "USD",
"value": 129.99,
"items": [
{
"item_id": "SKU-12345",
"item_name": "Classic Running Shoe",
"item_brand": "Acme",
"item_category": "Footwear",
"item_category2": "Running",
"item_variant": "Blue / 10",
"price": 129.99,
"quantity": 1
}
]
},
"page": {
"pageType": "product",
"pageName": "Classic Running Shoe"
},
"product": {
"productId": "SKU-12345",
"productName": "Classic Running Shoe"
}
}GA4 Data Layer
{
"event": "view_item",
"ecommerce": {
"currency": "USD",
"value": 129.99,
"items": [
{
"item_id": "SKU-12345",
"item_name": "Classic Running Shoe",
"item_brand": "Acme",
"item_category": "Footwear",
"item_category2": "Running",
"item_variant": "Blue / 10",
"price": 129.99,
"quantity": 1
}
]
}
}Adobe Client Data Layer
{
"event": "product-view",
"product": {
"productInfo": {
"sku": "SKU-12345",
"name": "Classic Running Shoe",
"brand": "Acme",
"price": 129.99
},
"category": {
"primaryCategory": "Footwear",
"subCategory1": "Running"
},
"attributes": {
"variant": "Blue / 10"
}
},
"page": {
"pageInfo": {
"pageType": "product",
"pageName": "Classic Running Shoe"
}
}
}XDM Mapping
{
"eventType": "commerce.productViews",
"timestamp": "timestamp",
"web": {
"webPageDetails": {
"name": "page.pageName",
"URL": "page.url"
}
},
"productListItems": [
{
"SKU": "ecommerce.items[].item_id",
"name": "ecommerce.items[].item_name",
"brand": "ecommerce.items[].item_brand",
"priceTotal": "ecommerce.items[].price",
"quantity": "ecommerce.items[].quantity",
"categories": [
{
"category": "ecommerce.items[].item_category"
},
{
"category": "ecommerce.items[].item_category2"
}
]
}
],
"commerce": {
"productViews": {
"value": 1
}
}
}SQL Queries
Google Analytics 4 (BigQuery)
SELECT DATE(TIMESTAMP_MICROS(event_timestamp)) AS event_date, COUNT(*) AS product_view FROM `your_project.your_dataset.raw_digital_events`, UNNEST(event_params) AS params WHERE event_name IN ('view_item', 'product_view', 'prodView') AND COALESCE((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'product_id'), (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'ecommerce.items[0].item_id')) IS NOT NULL GROUP BY event_date ORDER BY event_date;Adobe Experience Platform (AEP Query Service)
SELECT DATE(eventTimestamp) AS event_date, COUNT(*) AS product_view FROM your_dataset.raw_digital_events WHERE eventType IN ('commerce.productView', 'commerce.viewItem') AND COALESCE(productListItems[0].SKU, _experience.analytics.customDimensions.eVars.eVar1) IS NOT NULL GROUP BY event_date ORDER BY event_date;Source Data
Digital Analytics
Dependencies
Prerequisite: List the dependencies required for this Metric
Events:
Dimensions:
Report Attributes
product_id, product_name, item_brand, item_category, item_variant, page_type, device_category, platform, source, medium, campaign, channel_group, country, region, session_id, user_id
Recommended Reporting Views
Segment Eligibility
True
Governance
Derived KPIs
Governance
GitHub
catalog/metrics/product-view.yml