- Label: Products
- Description: Catalog and performance metrics for products.
- Default group key:
product
Metrics
Sales
- total_sales (USD)
- Sales after discounts and before taxes/returns.
- Example: SUM(total_sales)
- quantity_purchased (items)
- Number of items purchased.
- Example: SUM(quantity_purchased)
- buyers (customers)
- Distinct customers who purchased the product.
- average_selling_price (USD)
- Total sales divided by quantity purchased.
- units_per_order (items)
- Quantity purchased per attributed product order.
- units_per_buyer (items)
- Quantity purchased per distinct buyer.
Sessions and funnel
- sessions (sessions)
- Distinct sessions that touched the product.
- view_sessions (sessions)
- Sessions where the product was viewed.
- Example: COUNT_DISTINCT(view_sessions)
- click_sessions (sessions)
- Distinct sessions where the product was clicked.
- cart_sessions (sessions)
- Sessions where the product was added to cart.
- purchase_sessions (sessions)
- Sessions where the product was purchased. Pair with
view_sessionsfor a true conversion rate.
- Sessions where the product was purchased. Pair with
- quantity_added_to_cart (items)
- Items added to cart from online store sessions.
- view_to_cart_rate (rate)
- Cart sessions per view session.
- cart_to_purchase_rate (rate)
- Purchase sessions per cart session.
- cart_abandonment_rate (rate)
- One minus the cart-to-purchase rate.
- session_conversion_rate (rate)
- Purchase sessions per view session.
- revenue_per_session (USD)
- Total sales per view session.
Tile engagement
- product_impressions (events)
- Tracked
product_impressionevents captured when a product tile enters the shopper’s viewport. - Example: SHOW product_impressions
- Tracked
- product_hovers (events)
- Tracked
product_hoverevents captured when a shopper hovers over a product tile on desktop.
- Tracked
- product_touches (events)
- Tracked
product_touchevents captured when a shopper taps or long-presses a product tile on mobile.
- Tracked
- hover_rate (rate)
- Product hovers divided by product impressions. Useful for measuring tile-level interest on desktop.
- touch_rate (rate)
- Product touches divided by product impressions. Useful for measuring tile-level interest on mobile.
- product_ctr (rate)
- Attributed clicks per product impression.
- product_atc_rate (rate)
- Attributed add-to-carts per product impression.
- avg_click_position (position)
- Average position of attributed clicks in the result set.
Result exposure
Exposure metrics count requests where the product appeared in the returned result set, whether or not the tile was actually rendered. Pair them with impression or click metrics to separate ranking reach from on-screen visibility.- result_appearances (requests)
- Distinct requests whose results contained the product.
- first_page_appearances (requests)
- Distinct first-page requests whose results contained the product.
- render_rate (rate)
- Product impressions divided by result appearances. Low values point to products that rank into the result set but rarely get scrolled into view.
- appearance_ctr (rate)
- Attributed clicks divided by result appearances.
Attribution transparency
Every attribution metric on this dataset is blended. These metrics let you break blended revenue down by attribution source.- deterministic_revenue (USD)
- Revenue from hard-attributed (deterministic) purchases.
- modeled_revenue (USD)
- Revenue from modeled attribution.
- deterministic_revenue_pct (rate)
- Deterministic revenue as a share of total attributed revenue.
- deterministic_clicks (clicks)
- Clicks from hard-attributed (deterministic) events.
Engagement metrics depend on
product_impression, product_hover, and product_touch events. The Storefront Pixel emits these automatically. Custom integrations must send them through the Tracking API.Dimensions
- product_family: Canonical product family the product belongs to. Products without an active canonical family fall back to their own product ID, so every row has a value. Use in
GROUP BYto roll performance up across a family (for example, all colors of the same style); auto-includesproduct_family_namein results. You cannot filter onproduct_familyinWHERE, andTIMESERIESis not supported when it is the only grouping key. - geo_country: Two-letter country code.
- geo_state: Up to three-letter province code.
- geo_city: City name as captured.
- marketing_source: UTM source.
- marketing_medium: UTM medium.
- marketing_campaign: UTM campaign.
- device_type: Device category.
- variant_id: Variant ID.
- shopping_channel: The shopping channel (
web,app, orretail). Resolves toretailwhenever the row has aretail_location_id; otherwise reports the raw channel from the request. - retail_location_id: Retail location ID for the purchase.
NULLon non-retail orders. Useretail_location_id IS NULLto exclude retail activity, or filter by a specific ID to scope to one store. - locale: Storefront locale code active for the request (e.g.,
en,fr,pt-br). - currency: ISO 4217 currency code applied to the request (e.g.,
USD,EUR). - session_returning: Session type —
neworreturning. - customer_state: Whether the shopper is authenticated —
signed_inorguest. - customer_returning: Customer type —
neworreturning, based on prior order count. - b2b_company: Shopify B2B company location identifier for the signed-in company account.
Product attributes (dynamic)
- Usage: Use
product_attributes.*to group or segment by dynamic product attributes defined in your catalog. - Examples: