Skip to main content
  • 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_sessions for a true conversion rate.
  • 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_impression events captured when a product tile enters the shopper’s viewport.
    • Example: SHOW product_impressions
  • product_hovers (events)
    • Tracked product_hover events captured when a shopper hovers over a product tile on desktop.
  • product_touches (events)
    • Tracked product_touch events captured when a shopper taps or long-presses a product tile on mobile.
  • 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 BY to roll performance up across a family (for example, all colors of the same style); auto-includes product_family_name in results. You cannot filter on product_family in WHERE, and TIMESERIES is 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, or retail). Resolves to retail whenever the row has a retail_location_id; otherwise reports the raw channel from the request.
  • retail_location_id: Retail location ID for the purchase. NULL on non-retail orders. Use retail_location_id IS NULL to 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 — new or returning.
  • customer_state: Whether the shopper is authenticated — signed_in or guest.
  • customer_returning: Customer type — new or returning, 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:

Examples

Sales by product (last 7 days)
Views by campaign (this month)
Sales by color (past 30 days)
Sales by product family (last 30 days)
Revenue for a specific retail location (last 7 days)
Online sales only, excluding retail (last 7 days)
Top products by impressions (last 30 days)
Hover rate trend (last 30 days)
Top click-through products with a volume floor (last 30 days)
Render rate by product family, filtered to families with meaningful exposure

Next steps