Materials Explorer field catalog

–
materials
–
signals
–
total fields

Materials Explorer (static view) — every material and field. The interactive view needs JavaScript (in a JS-capable browser this list is hidden and the interactive UI is shown instead). If you are reading this from an AI, MCP client or agent, use the machine-readable source instead: /wp-json/qa-platform/guide or for-ai/materials.yaml.

allpv — 1 row = 1 pageview

Raw data for every pageview. Behavioral signals such as deep read, exit position and rage clicks sit on the same row.

tracking_id "all" (cross-site aggregate): supported

Keys & IDs (Key)

Identifiers used for joins and filtering. You normally filter on resolved columns such as url or device_type instead.

  • pv_id [uint32] [join] — Pageview identifier. Join key against click_event and others.
  • session_id [uint64] [join] — Filter by session. Fast via the column DB binary scan.
  • reader_id [uint32] [join] — Filter by user. Usually combined with url or similar.
  • page_id [uint32] [join] — Per page. You normally filter on url and use page_id as the join key.
  • device_id [uint8] — Device ID. 1=PC, 2=tablet, 3=SP. The label is device_type.
  • source_id [uint32] — Source ID. The label is utm_source.
  • medium_id [uint32] — Medium ID. The label is utm_medium.
  • campaign_id [uint32] — Campaign ID. The label is utm_campaign.
  • content_id [uint32] — Content ID. The label is utm_content.
  • version_id [uint32] — Page version ID. Used for A/B and version comparison.
  • prev_page_id [uint32] [since 2026-04-17] — Previous page ID. 0 selects landing pageviews.
  • next_page_id [uint32] [since 2026-04-17] — Next page ID. 0 selects exit pageviews.

Session basics (Signal)

Basic browsing metrics. Range filters work here (browse_sec gte:30, for example).

  • access_time [uint32] — UNIX time. Normally handled for you by the period parameters. You can also filter by time of day.
  • month [since 2026-08-05] — Month the row belongs to (YYYY-MM). A virtual column derived from access_time on the site clock. Put it in keep to aggregate by month, which is the only way to build a monthly trend. Narrow the period with time instead; filtering on this column runs as a slow post_filter.
  • pv [uint16] — Pageview number within the session (1 = landing).
  • speed_msec [uint16] — Load speed in ms. Lets you pull pageviews that took 3 seconds or more.
  • browse_sec [uint16] — Time on page, in seconds.
  • is_last [uint8] — Last pageview of the session (0/1). For finding exit pages.
  • is_newuser [uint8] — New user (0/1).

Read depth (Signal)

Per-pageview scroll reach, deep read and where the reader stopped.

  • depth_position [uint8] [✦] — Deepest scroll reach, 0-100%. gte:80 means read to the bottom, lte:20 means left near the top.
  • deep_read [uint8] [✦] — Deep-read flag. 1 when there are 5 or more spots held for 3 seconds or longer.
  • stop_max_sec [uint16] — Longest pause, in seconds. The spot the reader stayed on longest.
  • stop_max_pos [uint8] — Position of the longest pause, 0-100%. Goes with stop_max_sec.
  • exit_pos [uint8] [✦] — Exit position, 0-100%. lte:30 means the reader left within the first screen.

Frustration (Signal)

Rage clicks, dead clicks and form submits. Signals of friction with the UI.

  • irritation_click_count [uint8] [✦] — Number of rage-click bursts: 5 or more clicks within 3 seconds. gte:1 means friction with the UI.
  • dead_click_image_count [uint8] [✦] — Clicks on images that carry no link. gte:1 means a missed opportunity.
  • is_submit [uint8] — Form submit fired (0/1). Observed from the native submit event, including submits via Enter. For form CVR.

Exploration behavior (Signal)

Re-reading, skimming and hesitant mouse movement. Measures how well navigation works.

  • scroll_back_count [uint8] [✦] — Times the reader jumped back up 1000px or more within 3 seconds, i.e. re-reading.
  • content_skip_count [uint8] [✦] — Times the reader skipped down 1000px or more, i.e. content that went unread.
  • exploration_count [uint8] [✦] — Times the mouse swept back and forth horizontally, i.e. hunting for something to click.

Raw-data presence flags (Signal)

Whether scroll / click / event raw data exists for that pageview (as a count). neq:0 finds heatmap-eligible pageviews from the column DB alone.

  • is_raw_p [uint8] [since 2026-07-09] — Count of scroll raw data (raw_p) held, 0/1/2 and up. neq:0 selects heatmap-eligible pageviews.
  • is_raw_c [uint8] [since 2026-07-09] — Count of click raw data (raw_c) held, 0/1/2 and up. neq:0 selects pageviews eligible for a click heatmap.
  • is_raw_e [uint8] [since 2026-07-09] — Count of event raw data (raw_e) held, 0/1/2 and up. neq:0 selects pageviews with recorded events.

Viewport (Signal)

Actual visible area. Useful for segmenting by responsive breakpoint.

  • window_inner_width [uint16] — innerWidth in px. between:768,1199 for the tablet band, gte:1200 for the desktop band.
  • window_inner_height [uint16] — innerHeight in px.

Page transitions (Signal)

Which page came before and after. For path analysis.

  • prev_url [since 2026-04-17] — URL of the previous page. null on landing pageviews.
  • prev_title [since 2026-04-17] — Title of the previous page.
  • next_url [since 2026-04-17] — URL of the next page. null on exit pageviews.
  • next_title [since 2026-04-17] — Title of the next page.

Source & referrer (Signal)

Where the visit came from.

  • url — Page URL. Exact matches are fast via url_hash.
  • title — Page title. More efficient to filter on url and keep this.
  • source_domain — Referring domain. Indexed, so fast.
  • referrer — Referrer.
  • utm_source — Source.
  • utm_medium — Medium. Unique index, so fast.
  • utm_campaign — Campaign. Unique index, so fast.
  • utm_content — Content.
  • utm_term — Search term (utm).

Device & user (Signal)

Device, OS, language and country.

  • device_type — One of three values: PC / SP / tablet. Case matters.
  • os — OS (UAos). Indexed, so fast.
  • browser — Browser (UAbrowser).
  • language — Language.
  • country_code — Country code, roughly 200 values. Indexed, so fast.
  • ua — Composed UA string. Filtering on it directly is discouraged; use os and browser instead.
  • original_id — Original ID. Indexed, so fast.

Page-type flags (Signal)

Page kind, classified automatically (generated column). Filter directly on is_*.

  • page_type — Page type as a bit flag. Filtering on is_* is normally more efficient.
  • page_fetch_status — HTML fetch status. 1 = success, -1 = failure.
  • is_article — Article (0/1).
  • is_product — Product (0/1).
  • is_list — Listing (0/1).
  • is_form — Form (0/1).
  • is_trust_info — Trust information (0/1).
  • is_faq — FAQ (0/1).
  • is_landing — Landing (0/1).
  • is_search — Search results (0/1).
  • is_account — Account (0/1).
  • is_cart — Cart (0/1).
  • is_checkout — Checkout (0/1).
  • is_confirm — Confirmation (0/1).
  • is_thanks — Thank-you (0/1).
  • is_top_page — Top page (0/1).
  • is_event — Event (0/1).
  • is_recipe — Recipe (0/1).
  • is_job — Job posting (0/1).
  • is_video — Video (0/1).
  • is_howto — How-to (0/1).
  • is_qa_forum — Q&A forum (0/1).

Goal completion (Signal)

Whether each configured goal was met. The definitions live in sites[].goals in /guide.

  • is_goal_1 [uint8] — Goal 1 met (0/1).
  • is_goal_2 [uint8] — Goal 2 met (0/1).
  • is_goal_3 [uint8] — Goal 3 met (0/1).
  • is_goal_4 [uint8] — Goal 4 met (0/1).
  • is_goal_5 [uint8] — Goal 5 met (0/1).
  • is_goal_6 [uint8] — Goal 6 met (0/1).
  • is_goal_7 [uint8] — Goal 7 met (0/1).
  • is_goal_8 [uint8] — Goal 8 met (0/1).
  • is_goal_9 [uint8] — Goal 9 met (0/1).
  • is_goal_10 [uint8] — Goal 10 met (0/1).

click_event — 1 row = 1 click

Raw data in which every click is stored automatically. Carries the selector and coordinates, and joins to the raw pageview log.

tracking_id "all" (cross-site aggregate): supported

Keys & IDs (Key)

Keys for joining to allpv.

  • pv_id [uint32] [join] — Which pageview the click happened on. Joins to allpv.
  • session_id [uint64] [join] — Per session.
  • page_id [uint32] [join] — Per page.

What was clicked (Signal)

What was pressed and when. event_sec tells you whether they read before clicking.

  • event_sec [uint16] [✦] — Seconds from page display to the click.
  • element_text [uint32] — Text of the clicked element.
  • selector [uint32] — CSS selector.
  • to_url [uint32] — Destination URL.
  • is_external [uint8] — External link (0/1).
  • action_id [uint8] — What was clicked, as an observed fact. 1: click / 2: form (a click inside a form area) / 3: tel / 4: mailto.
  • element_id [uint32] — Element id.
  • element_class [uint32] — Element class.
  • element_data [uint32] — data attribute.

Click coordinates (Signal)

Click position in %. For heatmap-style aggregation.

  • page_x_pct [uint16] — Click X position in %.
  • page_y_pct [uint16] — Click Y position in %. For analysing upper vs lower page.

gsc — 1 row = (page x query x day x search surface)

Search Console stored at (page x query x day) grain. Joins to the raw pageview log.

tracking_id "all" (cross-site aggregate): not supported — callable for this site only

Keys & IDs (Key)

page_id is N:M against allpv. Joining with no filter multiplies the rows out (a Cartesian product, i.e. row explosion), so narrow on url or keyword first, then join.

  • page_id [uint32] [join] — Per page. N:M against allpv. An unfiltered join explodes the row count, so narrow first.
  • query_id [uint32] — Keyword ID. Search on keyword to get a set of query_id.
  • search_type [uint8] — 1 = web, 2 = image, 3 = video.

Search performance (Signal)

Clicks, impressions, CTR and position. position is rewritten into a column DB scan, so it is fast.

  • clicks [uint32] [✦] — Daily clicks.
  • impressions [uint32] [✦] — Daily impressions.
  • ctr [✦] — clicks / impressions. Computed at execution time (post_filter).
  • position [✦] — Average position. Rewritten to position_x100 so it can be scanned in the column DB, which is fast.
  • position_weighted — position x impressions. For weighted averages.
  • position_x100 [uint16] — Raw value of position x 100.

Time dimension (Signal)

A gsc row carries no date of its own. This is the axis to use when you want monthly aggregation.

  • month [since 2026-08-05] — Month the row belongs to (YYYY-MM). Derived from the date Storage injects as it loops over the daily files. Put it in keep to aggregate by month. Narrow the period with time instead.

Resolved columns (Signal)

Labels resolved from query_id and page_id.

  • keyword — Search query. Resolved from query_id.
  • url — Page URL.
  • title — Page title.
  • page_type — Page type.
  • page_fetch_status — Fetch status.

page_version — 1 row = one version of a page

Version history of page content. Lets you compare before and after a revision without mixing the two.

tracking_id "all" (cross-site aggregate): not supported — callable for this site only

Keys & IDs (Key)

Joins to allpv.version_id. Versions are tracked per page x device, because PC and SP use different templates and so have separate revision histories. That is why device_id is part of the key.

  • version_id [join] — PK, and the join key against allpv.version_id.
  • page_id [join] — Page identifier. Narrowing by URL in allpv and then joining is recommended.
  • device_id — 1=PC, 2=tablet, 3=SP. Part of the key because PC, SP and tablet each have their own revision history.

Version metadata (Signal)

Version number, creation date and URL.

  • version_no — Version number within the same page x device. 1 is the first version. calc MAX() gives the latest.
  • update_date — Date the version was created. For finding changes made on a particular day.
  • url — URL.
  • title — Title.
  • device_type — PC / SP / tablet.

summary_allpage — 1 row = period totals per page x dimension

Returns summary data for every page. Convenient for per-page aggregation.

tracking_id "all" (cross-site aggregate): supported

Grouping dimensions (Key)

The axes you aggregate along. Kept as numeric IDs; device_type is added for you.

  • page_id [uint32] — Page identifier. Use this material for rankings.
  • device_id [uint8] — 1=PC, 2=tablet, 3=SP. device_type is added for you.
  • utm_source — Source, with the label already resolved.
  • utm_medium — Medium.
  • utm_campaign — Campaign.
  • source_domain — Referring domain.
  • is_newuser [uint8] — New (1) or returning (0).
  • is_QA [uint8] — Flag for traffic that came through QA.

Cumulative measures (Signal)

Totals over the period. Numeric range filters run as post_filter.

  • pv_count [uint32] — Total pageviews over the period.
  • user_count [uint32] — Total users over the period.
  • bounce_count [uint32] — Total bounces over the period.
  • exit_count [uint32] — Total exits over the period.
  • time_on_page [uint32] — Total time on page over the period, in seconds.
  • lp_count [uint32] — Total number of times the page was the entry point.

Resolved columns (Signal)

Restored from page_id.

  • title — Title.
  • url — URL.
  • wp_qa_id — WordPress post ID.