web_ performance
The web_performance schema captures online store page-load and Core Web Vitals reporting. It supports performance views by page, storefront, device, browser, and the page elements associated with measured web-vital events.
Anchor to Use casesUse cases
- Page loads: Group
page_loadsbypage_type,page_path, ordevice_typeto see where load volume concentrates. - Visual stability: Compare
cls_good_view_count,cls_okay_view_count, andcls_poor_view_countto split views by layout-shift band. - LCP percentiles: Show LCP percentile metrics such as
lcp_p50_msbybrowser_familyorstorefront_idto see how load speed varies across browsers and storefronts. - Web-vital targets: Use target fields like
largest_contentful_paint_targetandcumulative_layout_shift_targetto identify which page elements are associated with measured web-vital events.
Anchor to MetricsMetrics
Counts and calculations that let you track key business indicators. Metrics show up as the columns when queried.
Metrics you can use when querying .
- Anchor to cls_distributioncls_
distributioncls_ distribution ARRAY<INTEGER>ARRAY<INTEGER> A breakdown of page loads by Cumulative Layout Shift, which measures how much content moves unexpectedly while the page loads. The values show measured loads, then good (0.1 or lower), needs improvement (above 0.1 through 0.25), and poor (above 0.25). Use
to see how layout stability is spread across visits.- Anchor to cls_good_view_countcls_
good_ view_ countcls_ good_ view_ count INTEGERINTEGER - Anchor to cls_okay_view_countcls_
okay_ view_ countcls_ okay_ view_ count INTEGERINTEGER - Anchor to cls_poor_view_countcls_
poor_ view_ countcls_ poor_ view_ count INTEGERINTEGER - Anchor to fcp_distributionfcp_
distributionfcp_ distribution ARRAY<INTEGER>ARRAY<INTEGER> A breakdown of page loads by First Contentful Paint, which measures how quickly the first visible content appears. The values show measured loads, then good (1.8 seconds or faster), needs improvement (above 1.8 through 3 seconds), and poor (slower than 3 seconds). Use
to see how early loading speed is spread across visits.- Anchor to fcp_good_view_countfcp_
good_ view_ countfcp_ good_ view_ count INTEGERINTEGER - Anchor to fcp_okay_view_countfcp_
okay_ view_ countfcp_ okay_ view_ count INTEGERINTEGER - Anchor to fcp_p50_msfcp_
p50_ msfcp_ p50_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to fcp_p75_msfcp_
p75_ msfcp_ p75_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to fcp_p90_msfcp_
p90_ msfcp_ p90_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to fcp_p99_msfcp_
p99_ msfcp_ p99_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to fcp_poor_view_countfcp_
poor_ view_ countfcp_ poor_ view_ count INTEGERINTEGER The number of page load events in which the first visible content appeared after more than 1.8 seconds.
- Anchor to inp_distributioninp_
distributioninp_ distribution ARRAY<FLOAT>ARRAY<FLOAT> A breakdown of page loads by Interaction to Next Paint, which measures how quickly a page responds after visitor interactions. The values show measured loads, then good (200 milliseconds or faster), needs improvement (above 200 through 500 milliseconds), and poor (slower than 500 milliseconds). Use
to see how responsiveness is spread across visits.- Anchor to inp_good_view_countinp_
good_ view_ countinp_ good_ view_ count INTEGERINTEGER - Anchor to inp_okay_view_countinp_
okay_ view_ countinp_ okay_ view_ count INTEGERINTEGER - Anchor to inp_p50_msinp_
p50_ msinp_ p50_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to inp_p75_msinp_
p75_ msinp_ p75_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to inp_p90_msinp_
p90_ msinp_ p90_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to inp_p99_msinp_
p99_ msinp_ p99_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to inp_poor_view_countinp_
poor_ view_ countinp_ poor_ view_ count INTEGERINTEGER - Anchor to lcp_distributionlcp_
distributionlcp_ distribution ARRAY<INTEGER>ARRAY<INTEGER> A breakdown of page loads by Largest Contentful Paint, which measures how quickly the largest visible content appears. The values show measured loads, then good (2.5 seconds or faster), needs improvement (above 2.5 through 4 seconds), and poor (slower than 4 seconds). Use
to see how main content loading speed is spread across visits.- Anchor to lcp_good_view_countlcp_
good_ view_ countlcp_ good_ view_ count INTEGERINTEGER - Anchor to lcp_okay_view_countlcp_
okay_ view_ countlcp_ okay_ view_ count INTEGERINTEGER - Anchor to lcp_p50_mslcp_
p50_ mslcp_ p50_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to lcp_p75_mslcp_
p75_ mslcp_ p75_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to lcp_p90_mslcp_
p90_ mslcp_ p90_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to lcp_p99_mslcp_
p99_ mslcp_ p99_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to lcp_poor_view_countlcp_
poor_ view_ countlcp_ poor_ view_ count INTEGERINTEGER - Anchor to p50_clsp50_
clsp50_ cls UNITLESS_SCALARUNITLESS_SCALAR - Anchor to p75_clsp75_
clsp75_ cls UNITLESS_SCALARUNITLESS_SCALAR - Anchor to p90_clsp90_
clsp90_ cls UNITLESS_SCALARUNITLESS_SCALAR - Anchor to p99_clsp99_
clsp99_ cls UNITLESS_SCALARUNITLESS_SCALAR - Anchor to page_loadspage_
loadspage_ loads INTEGERINTEGER Total number of page load events
- Anchor to percent_of_page_loadspercent_
of_ page_ loadspercent_ of_ page_ loads PERCENTPERCENT - Anchor to ttfb_distributionttfb_
distributionttfb_ distribution ARRAY<INTEGER>ARRAY<INTEGER> A breakdown of page loads by Time to First Byte, which measures how quickly the server starts responding. The values show measured loads, then good (800 milliseconds or faster), needs improvement (above 800 through 1,800 milliseconds), and poor (slower than 1,800 milliseconds). Use
to see how server response time is spread across visits.- Anchor to ttfb_good_view_countttfb_
good_ view_ countttfb_ good_ view_ count INTEGERINTEGER - Anchor to ttfb_okay_view_countttfb_
okay_ view_ countttfb_ okay_ view_ count INTEGERINTEGER - Anchor to ttfb_p50_msttfb_
p50_ msttfb_ p50_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to ttfb_p75_msttfb_
p75_ msttfb_ p75_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to ttfb_p90_msttfb_
p90_ msttfb_ p90_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to ttfb_p99_msttfb_
p99_ msttfb_ p99_ ms MILLISECOND_DURATIONMILLISECOND_DURATION - Anchor to ttfb_poor_view_countttfb_
poor_ view_ countttfb_ poor_ view_ count INTEGERINTEGER
ARRAY
A list of values. The element type appears inside angle brackets, such as ARRAY<STRING>.
INTEGER
A whole number without decimal places, used for counts, quantities, and other discrete numeric values.
MILLISECOND_DURATION
A duration measured in milliseconds.
FLOAT
A floating-point number used for measurements, rates, and other continuous numeric values.
UNITLESS_SCALAR
A numeric scalar value without a unit.
PERCENT
A percentage value represented as a decimal, where 0.25 represents 25%.
Anchor to DimensionsDimensions
Attributes of your data that let you look more granularly at aspects of the data. Group and filter by dimensions to shape the rows your query returns.
Dimensions you can use when querying .
- Anchor to browser_familybrowser_
familybrowser_ family STRINGSTRING Type of web browser used for the session
- Anchor to cumulative_layout_shift_targetcumulative_
layout_ shift_ targetcumulative_ layout_ shift_ target STRINGSTRING Asset for which cumulative layout shift is measured
- Anchor to daydaydayDAY_TIMESTAMPDAY_TIMESTAMP
Day (timestamp) the data was recorded
- Anchor to day_of_weekday_
of_ weekday_ of_ week DAY_OF_WEEKDAY_OF_WEEK The day of week a page load happened, with values Monday through Sunday.
- Anchor to device_typedevice_
typedevice_ type STRINGSTRING Values are Mobile and Desktop.
- Anchor to hourhourhourHOUR_TIMESTAMPHOUR_TIMESTAMP
Hour (timestamp) the data was recorded
- Anchor to hour_of_dayhour_
of_ dayhour_ of_ day HOUR_OF_DAYHOUR_OF_DAY The hour of day a page load happened, with values 0 through 23.
- Anchor to interaction_to_next_paint_targetinteraction_
to_ next_ paint_ targetinteraction_ to_ next_ paint_ target STRINGSTRING Asset for which interaction to next paint is measured
- Anchor to largest_contentful_paint_targetlargest_
contentful_ paint_ targetlargest_ contentful_ paint_ target STRINGSTRING Asset for which largest contentful paint is measured
- Anchor to micro_session_idmicro_
session_ idmicro_ session_ id IDENTITYIDENTITY Shopify identifier for the online store session
- Anchor to minuteminuteminuteMINUTE_TIMESTAMPMINUTE_TIMESTAMP
Minute (timestamp) the data was recorded
- Anchor to monthmonthmonthMONTH_TIMESTAMPMONTH_TIMESTAMP
Month (timestamp) the data was recorded
- Anchor to month_of_yearmonth_
of_ yearmonth_ of_ year MONTH_OF_YEARMONTH_OF_YEAR The month of year a page load happened, with values 1 through 12.
- Anchor to page_pathpage_
pathpage_ path STRINGSTRING Values are URL paths that begin with
/, without the domain.- Anchor to page_typepage_
typepage_ type STRINGSTRING - Anchor to quarterquarterquarterQUARTER_TIMESTAMPQUARTER_TIMESTAMP
Quarter (timestamp) the data was recorded
- Anchor to secondsecondsecondSECOND_TIMESTAMPSECOND_TIMESTAMP
Second (timestamp) the data was recorded
- Anchor to shop_idshop_
idshop_ id IDENTITYIDENTITY - Anchor to storefront_idstorefront_
idstorefront_ id IDENTITYIDENTITY - Anchor to weekweekweekWEEK_TIMESTAMPWEEK_TIMESTAMP
Week (timestamp) the data was recorded
- Anchor to week_of_yearweek_
of_ yearweek_ of_ year WEEK_OF_YEARWEEK_OF_YEAR The week of year a page load happened, with values 1 through 53.
- Anchor to yearyearyearYEAR_TIMESTAMPYEAR_TIMESTAMP
Year (timestamp) the data was recorded
- Anchor to shop_nameshop_
nameshop_ name STRINGSTRING Name of your store
STRING
A sequence of characters representing text data.
DAY_TIMESTAMP
A date value truncated to day precision.
DAY_OF_WEEK
A day within a week, used for weekday-based grouping and filtering.
HOUR_TIMESTAMP
A timestamp truncated to hour precision.
HOUR_OF_DAY
An hour within a day, typically represented as an integer from 0 to 23.
IDENTITY
A unique identifier for a Shopify resource such as a customer, product, or order.
MINUTE_TIMESTAMP
A timestamp truncated to minute precision.
MONTH_TIMESTAMP
A date value representing the start of a month.
MONTH_OF_YEAR
A month number within a year.
QUARTER_TIMESTAMP
A date value representing the start of a fiscal quarter.
SECOND_TIMESTAMP
A timestamp truncated to second precision.
WEEK_TIMESTAMP
A date value representing the start of a week.
WEEK_OF_YEAR
A week number within a year.
YEAR_TIMESTAMP
A date value representing the start of a year.