The Product Analytics table provides insights into product performance, including sales, orders, and customer metrics. Analyzing this table helps understand sales drivers, purchasing trends, and marketing campaign effectiveness on product sales.
Note
event_date
is a required field for queries on this table.
Dimensions
Dimensions are immutable properties that can be used for grouping data.
Name | Type | Description |
---|---|---|
event_date | date | The date the order was placed or the ad was run. Based on the time zone of the shop at the moment of purchase, or the time zone of the ad platform at the time the ad was run. |
event_date.day | date | The day on which the order was placed. Derived from event_date . |
event_date.week | date | The Sunday of the week during which the order was placed. Derived from event_date . |
event_date.month | date | The month during which the order was placed. Derived from event_date . |
event_date.quarter | date | The first month of the quarter during which the order was placed. Derived from event_date . |
event_date.year | date | The year during which the order was placed. Derived from event_date . |
entity | string | The entity type of the product. Example values: product , variant |
id | string | The unique ID of the product or variant. Example value: 42153843458192 |
title | string | The title of the product or variant. Example values: Basic Hero Tee , XL , Black |
product_id | string | The unique product ID. Example value: 7806442569870 |
product_title | string | The title of the product. Example values: $20 USD Gift Card , Unisex Hoodie |
variant_id | string | The unique variant ID. Example value: 33193425920151 |
variant_title | string | The title of the variant. Example values: Forest Green , M , iPhone 14 Pro |
sku | string | The stock keeping unit associated with the product or variant. Example values: SIL-RING-4445 , NVDPROTECTION03 |
vendor | string | The vendor of the product. Example values: Route , Canon , Corso |
product_tags | repeated string | Tags associated with the product for categorization. Example values: 3-pack , Sale , discount_eligible |
inventory_quantity | string | The current inventory quantity of the product or variant. Example values: 21749 , 57 , 332 |
Measures
Measures are numeric fields that can be aggregated and/or combined to calculate new metrics.
Name | Type | Description |
---|---|---|
revenue | numeric | Total revenue from sales. |
new_customer_revenue | numeric | Revenue from sales to new customers. |
orders | numeric | Total number of orders placed. |
new_customer_orders | numeric | Number of orders placed by new customers. |
total_items_sold | numeric | Total quantity of items sold across all orders. |
fulfillment_costs | numeric | Total costs associated with order fulfillment. |
new_customer_fulfillment_costs | numeric | Fulfillment costs specifically for orders placed by new customers. |
customers | numeric | Total number of unique customers. |
total_order_value | numeric | The total value of all orders. |
new_customer_total_order_value | numeric | Total order value specifically from new customers. |
number_of_ads | numeric | Total number of ads related to the products. |
spend | numeric | Total ad spend on the products. |
clicks | numeric | Total number of clicks on ads related to the products. |
impressions | numeric | The total number of times ads related to the products were displayed. |
Derived
Derived fields are metrics that are pre-calculated using multiple measures or advanced formulas.
Name | Type | Description |
---|---|---|
cpa | formula | Cost to acquire a single paying customer. Formula: safe_divide(sum(spend), sum(orders)) as cpa |
new_customer_cpa | formula | Cost to acquire a single new paying customer. Formula: safe_divide(sum(spend), sum(new_customer_orders)) as new_customer_cpa |
roas | formula | Total revenue generated relative to ad spend. Formula: safe_divide(sum(revenue), sum(spend)) as roas |
new_customer_roas | formula | Revenue generated from new customers relative to ad spend. Formula: safe_divide(sum(new_customer_revenue), sum(spend)) as new_customer_roas |
cpm | formula | Cost of 1,000 impressions of the ad. Formula: safe_divide(sum(spend), sum(impressions) / 1000) as cpm |
cpc | formula | Average cost for each click on an ad. Formula: safe_divide(sum(spend), sum(clicks)) as cpc |
ctr | formula | Ratio of visitors who click on a specific link, to the total number of visitors who viewed the ad. Formula: safe_divide(sum(clicks), sum(impressions)) as ctr |
gross_profit | formula | Total profit excluding fulfillment costs. By default shown in the shop's currency. Formula: sum(revenue) - sum(fulfillment_costs) as gross_profit |
new_customer_gross_profit | formula | Gross profit generated from new customers specifically. Formula: sum(new_customer_revenue) - sum(new_customer_fulfillment_costs) as new_customer_gross_profit |
product_aov | formula | Average Order Value (AOV) for products, representing the average amount spent per order. Formula: safe_divide(sum(total_order_value), sum(orders)) as product_aov |
new_customer_aov | formula | AOV specifically for new customers, indicating the average spend of new customers per order. Formula: safe_divide(sum(new_customer_total_order_value), sum(new_customer_orders)) as new_customer_aov |
avg_purchase_price | formula | Average purchase price across all items sold, indicating the average price per item. Formula: safe_divide(sum(revenue), sum(total_items_sold)) as avg_purchase_price |
contribution_margin | formula | Contribution margin calculated as revenue minus COGS and advertising spend. Formula: sum(revenue) - sum(fulfillment_costs) - sum(spend) as contribution_margin |
contribution_margin_per_item | formula | Contribution margin per item, showing the profit contribution for each item sold. Formula: safe_divide(sum(revenue) - sum(fulfillment_costs) - sum(spend), sum(total_items_sold)) as contribution_margin_per_item |