Product Analytics Table

The Product Analytics table provides performance metrics at the product, variant, and collection level. One row per product, variant, or collection per day.

📋

Table Guide

What You Can Answer With This Table

  • Which products, variants, or collections drive the most revenue? — use revenue, product_id, variant_id
  • How does ad spend translate to product-level performance? — use spend, clicks, impressions by product
  • What is the new vs returning customer breakdown by product? — use new_customer_orders with product_id

Before You Query

  • Required field: event_date
  • The id field represents product_id, variant_id, or collection_id depending on the row. Use entity to distinguish which level of granularity each row represents.
  • Metrics like spend, clicks, impressions, and visits are proportionally distributed to products based on their contribution to completed orders, using Triple Attribution and Lifetime window by default.
  • Product-level metrics are attributed per item, not per order. Orders with multiple products contribute units to each product row and may not match order-level totals on the Summary page.
  • By default, free and non-active products are excluded. To include them, enable include_free_products and include_non_active_products parameters.
  • Data reflects your primary sales platform only. Does not include marketplace sales (e.g., Amazon, TikTok Shop).

Key Relationships

TableJoin KeyUse This Join To
Productsproduct_idGroup product performance by catalog vendor, type, or status
Ordersproduct_id (via products_info.product_id)Drill from aggregated product performance into order-level purchase context

When to Use a Different Table

  • Need order-level detail (individual transactions, fulfillment, customer info) → Orders table. Product Analytics aggregates at the product level; Orders preserves individual order records.
  • Need product catalog attributes (vendor, type, status) without performance metrics → Products table.
  • Need campaign-level attributed revenue (pixel-attributed orders, ROAS by attribution model) → Pixel Joined table. Product Analytics is product-level; Pixel Joined is campaign/ad set level.
  • Need campaign-level ad platform metrics (spend, impressions, channel-reported conversions) → Ads table.
  • Using GA4 as your analytics sourceGA4 Product Analytics table. Product Analytics blends sales platform data with Pixel attribution and ad integrations; GA4 Product Analytics uses Google Analytics 4 data.

View the full Triple Whale Data Ontology →

Parameters

Parameters can be used to customize and filter the data in the table, and are applied before aggregation.

TitleIDDescription
Include Amazoninclude_amazon

Includes Amazon sales data in the results, in addition to the main sales platform.

Possible values: true, false

Defaults to false.

Include Free Productsinclude_free_products

Includes products considered "free" based on multi-item discounts.

Possible values: true, false

Defaults to false. Set to true to match order-based totals with the Summary page.

Note: Some discounts are spread across multiple items in an order; if the discount fully covers the price of some of the items, those items are counted as “free".

Include Non-Active Productsinclude_non_active_products

Includes non-active (e.g. draft or pending) products.

Possible values: true, false

Defaults to false. Set to true to match order-based totals with the Summary page.

Dimensions

Dimensions are immutable properties that can be used for grouping data.

TitleIDTypeDescription
Event Dateevent_datedateThe date the order was placed. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected).
Event Dayevent_date.daydateThe day on which the event occurred. Derived from event_date.
Event Weekevent_date.weekdateThe Sunday of the week during which the event occurred. Derived from event_date.
Event Monthevent_date.monthdateThe month during which the event occurred. Derived from event_date.
Event Quarterevent_date.quarterdateThe first month of the quarter during which the event occurred. Derived from event_date.
Event Yearevent_date.yeardateThe year during which the event occurred. Derived from event_date.
Collection IDcollection_idstring

The unique ID of the collection as defined in the sales platform.

Example value: 123456789

Collection Namecollection_namestring

The name of the collection as defined in the sales platform.

Example values: Summer Gift Guide, Long-Sleeve Packs, Christmas Collection

Entity Typeentitystring

The entity type of the item.

Example values: product, variant, product_collection

IDidstring

The unique ID of the item for the current row. The value depends on the granularity level of the query (variant-level granularity → variant_id; product-level granularity → product_id; collection-level granularity → collection_id).

Example value: 3891505496131

Inventory Quantityinventory_quantitystring

The current inventory quantity of the product or variant.

Example values: 21749, 57, 332

Namenamestring

The name of the item for the current row. The value depends on the granularity level of the query (variant-level granularity → variant_name; product-level granularity → product_name; collection-level granularity → collection_name).

Example values: Paring Knife Travel Case, Forest Green, Christmas Collection

Product IDproduct_idstring

The unique ID of the product as defined in the sales platform.

Example value: 3891505496131

Product Image URLproduct_image_urlstringThe URL of the product image.
Product Nameproduct_namestring

The name of the product as defined in the sales platform. This value is always product-level (e.g., “T-Shirt”, “Hoodie”) even when querying variant-level granularity, ensuring each variant row also shows the product it belongs to.

Example values: Green Soft Socks 3-Pack, Paring Knife Travel Case, Gift Subscription

Product Tagsproduct_tagsrepeated string

Tags associated with the product, assigned by the seller in the sales platform.

Example values: 3-pack, Sale, discount_eligible

Shop IDshop_idstring

The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports.

Example values: example-US.myshopify.com, example-EU.myshopify.com

Shop Nameshop_namestring

The name of the shop. Can be used to group or filter data by shop in multi-store reports.

Example values: example-US, example-EU

SKUskustring

The SKU (Stock Keeping Unit) for the product or variant as set within the main sales platform.

Example values: GP-BACK-02, A02630, POP200NAVY

Variant IDvariant_idstring

The unique ID of the variant as set within the main sales platform.

Example value: 33193425920151

Variant Namevariant_namestring

The name of the variant as defined in the main sales platform.

Example values: Forest Green, M, iPhone 14 Pro

Vendorvendorstring

The vendor of the product or variant.

Example values: Route, Canon, Corso, MyShop

Measures

Measures are numeric fields that can be aggregated and/or combined to calculate new metrics.

TitleIDTypeDescription
Added to Cart Eventsadded_to_cart_eventsnumericNumber of times the product or variant was added to a cart. Adding multiple units in a single action counts as one event.
Added to Cart Itemsadded_to_cart_itemsnumericTotal quantity of the product or variant added to carts. Each unit counts individually, even when multiple units are added in a single action.
Clicksclicksnumeric

Total number of ad clicks attributed to the product or variant, based on its share of units sold per ad.

Clicks for Product = (Units Sold for Product / Units Sold for Ad) × Clicks for Ad, summed across all relevant ads and campaigns.

CustomerscustomersnumericTotal number of unique customers who purchased the product or variant.
Fulfillment Costsfulfillment_costsnumeric

Total costs associated with fulfilling orders that include the product or variant. By default shown in the shop's currency.

Fulfillment Costs = Cost of Goods + Handling Fees + (Shipping Price + Payment Gateway Costs) / Total Items in Order × Units Sold

Cost of Goods, Handling Fees, and Payment Gateway Costs are configured in Cost Settings. Shipping Price is the amount the customer paid at checkout.

Impressionsimpressionsnumeric

Total number of ad impressions attributed to the product or variant, based on its share of units sold per ad.

Impressions for Product = (Units Sold for Product / Units Sold for Ad) × Impressions for Ad, summed across all relevant ads and campaigns.

New Customer Fulfillment Costsnew_customer_fulfillment_costsnumeric

Total costs associated with fulfilling orders that include the product or variant, for orders placed by new customers. By default shown in the shop's currency.

Fulfillment Costs = Cost of Goods + Handling Fees + (Shipping Price + Payment Gateway Costs) / Total Items in Order × Units Sold

Cost of Goods, Handling Fees, and Payment Gateway Costs are configured in Cost Settings. Shipping Price is the amount the customer paid at checkout.

Learn how Triple Whale classifies new/returning customers.

New Customer Ordersnew_customer_ordersnumeric

The total number of orders by new customers that contain the product or variant.

Learn how Triple Whale classifies new/returning customers.

New Customer Revenuenew_customer_revenuenumeric

The total revenue derived from orders by new customers that contain the product or variant.

Learn how Triple Whale classifies new/returning customers.

New Customer Units Soldnew_customer_total_items_soldnumeric

Total quantity of the product or variant ordered by new customers.

Learn how Triple Whale classifies new/returning customers.

New Customer Total Order Valuenew_customer_total_order_valuenumeric

The total revenue of orders by new customers that contain the product or variant, before shipping, taxes, discounts, or refunds.

Learn how Triple Whale classifies new/returning customers.

Adsnumber_of_adsnumericTotal number of ads contributing to orders containing the product or variant.
OrdersordersnumericThe total number of orders that contain the product or variant.
Repeat Customersrepeat_customernumericTotal number of unique customers who purchased the product or variant more than once.
ReturnsreturnsnumericThe total number of product or variant units returned.
Product Revenuerevenuenumeric

The total product-specific revenue from orders that contain the product or variant, after product discounts (before shipping, taxes, or refunds).

Product Revenue = (Product Price × Quantity) − Product Discounts

Ad Spendspendnumeric

Total ad spend attributed to the product or variant based on its proportional share of units sold in each ad. This does not include custom ad spend or adjustments for returns.

Ad Spend for Product = (Units Sold for Product / Units Sold for Ad) × Ad Spend for Ad, summed across all relevant ads and campaigns.

Units Soldtotal_items_soldnumericThe total number of individual units sold for the product or variant.
Total Order Valuetotal_order_valuenumeric

The total revenue of orders that contain the product or variant, after shipping, taxes, and discounts.

Total Order Value = Order Revenue (Gross Sales + Shipping + Taxes - Discounts) for each order containing the product or variant.

Note: The full order amount is counted for each product in that order, even if the order contains multiple products.

Visitsvisitsnumeric

Total number of sessions attributed to the product or variant, based on its share of units sold per ad.

Visits for Product = (Units Sold for Product / Units Sold for Ad) × Sessions for Ad, summed across all relevant ads and campaigns.

Derived

Derived fields are metrics that are pre-calculated using multiple measures or advanced formulas.

TitleIDTypeDescription
Average Purchase Priceavg_purchase_priceformula

The average price per item sold.

Average Purchase Price = Order Revenue / Units Sold

Contribution Margincontribution_marginformula

The total profit contribution after subtracting fulfillment costs and ad spend from total revenue.

Contribution Margin = Order Revenue - Fulfillment Costs - Ad Spend

Contribution Margin Per Itemcontribution_margin_per_itemformula

The profit contribution for each item sold.

Contribution Margin Per Item = (Order Revenue - Fulfillment Costs - Ad Spend) / Units Sold

Cost Per Acquisition (CPA)cpaformula

The cost to acquire a single order.

CPA = Total Ad Spend / Total Orders

Cost Per Click (CPC)cpcformula

The average cost for each click on an ad.

CPC = Total Ad Spend / Total Clicks

Cost Per Thousand Impressions (CPM)cpmformula

The cost to reach 1,000 ad impressions.

CPM = Total Ad Spend / (Total Impressions / 1,000)

Click-Through Rate (CTR)ctrformula

The percentage of ad impressions that resulted in clicks.

CTR = Total Clicks / Total Impressions

Gross Profitgross_profitformula

The total profit excluding fulfillment costs.

Gross Profit = Revenue - Fulfillment Costs

New Customer AOVnew_customer_aovformula

The average order value for new customers, indicating the average spend per order by new customers.

New Customer AOV = New Customer Total Order Value / New Customer Orders

Learn how Triple Whale classifies new/returning customers.

New Customer CPAnew_customer_cpaformula

The cost to acquire a single new paying customer.

New Customer CPA = Total Ad Spend / New Customer Orders

Learn how Triple Whale classifies new/returning customers.

New Customer Gross Profitnew_customer_gross_profitformula

The gross profit generated from new customers.

New Customer Gross Profit = New Customer Revenue - New Customer Fulfillment Costs

Learn how Triple Whale classifies new/returning customers.

New Customer ROASnew_customer_roasformula

Revenue generated from new customers relative to ad spend.

New Customer ROAS = New Customer Revenue / Ad Spend

Learn how Triple Whale classifies new/returning customers.

Pixel Conversion Ratepixel_conversion_rateformula

The percentage of visits who made a purchase.

Pixel Conversion Rate = Total Orders / Total Visits

Product AOVproduct_aovformula

The average order value for products, representing the average amount spent per order.

Product AOV = Total Order Value / Total Orders

Return Ratereturn_rateformula

The percentage of purchased items that customers return.

Return Rate = Returns / Units Sold

Return on Ad Spend (ROAS)roasformula

The total revenue generated relative to ad spend.

ROAS = Order Revenue / Ad Spend

Repeat Purchase Raterprformula

The percent of purchases made by returning customers.

RPR = Repeat Customers / Total Orders