> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upstackdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Session and Page Analytics

> Measure session and page performance in Upstack Analytics — duration, bounce rate, engagement, scroll depth, and pageviews — to diagnose UX issues and rank top-performing content.

Session and page analytics help you understand how visitors interact with your store beyond individual events. Sessions group a visitor's events into a single browsing journey. Page metrics reveal which content engages and which drops visitors off.

<Tip>
  Session analytics are especially useful for identifying where visitors disengage. A high bounce rate on product pages paired with strong AddToCart rates on collection pages might indicate your product pages need stronger calls-to-action.
</Tip>

## Session Metrics

A **session** begins when a visitor loads their first page and ends after 30 minutes of inactivity. All events within that window are grouped under a single `session_id`.

### Available Session Metrics

| Metric                 | Description                                      | How It's Calculated                                                                                                 |
| ---------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |
| **Session Duration**   | Total time spent in the session.                 | Time between the first and last event in the session.                                                               |
| **Pages per Session**  | Number of distinct pages viewed.                 | Count of PageView events with unique `page_path` values.                                                            |
| **Bounce Rate**        | Percentage of single-page sessions.              | Sessions with exactly one PageView and no other interaction events, divided by total sessions.                      |
| **Engagement Score**   | Composite score reflecting session quality.      | Weighted combination of pages viewed, time on site, and interaction events (AddToCart, Search, etc.). Scale: 0–100. |
| **Session Conversion** | Whether the session included a Purchase.         | Binary: `converted` or `not_converted`.                                                                             |
| **Events per Session** | Total number of events fired during the session. | Count of all events in the session.                                                                                 |

### Filtering by Session Properties

You can filter analytics data by session-level attributes to isolate specific visitor segments:

* **Traffic source** — `utm_source = facebook` shows only sessions from Facebook traffic
* **Device type** — `device_type = mobile` isolates mobile browsing behavior
* **Geography** — `country = US` limits to US sessions
* **New vs. returning** — `is_returning = true` shows only repeat visitors
* **Conversion status** — `session_conversion = converted` filters to sessions that resulted in a purchase

Combine session filters with any measure to answer targeted questions:

* "What is the average session duration for mobile visitors from Facebook who converted?"
* "What's the bounce rate for desktop visitors landing on collection pages?"

## Page Metrics

Page analytics aggregate data at the `page_path` level, showing how individual pages perform across all sessions.

### Available Page Metrics

| Metric              | Description                                       | How It's Calculated                                                                                |
| ------------------- | ------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| **Page Views**      | Total times the page was viewed.                  | Count of PageView events for the `page_path`.                                                      |
| **Unique Visitors** | Distinct visitors who viewed the page.            | Count of unique `identity_id` or `session_id` values.                                              |
| **Time on Page**    | Average time visitors spend on the page.          | Difference between the PageView timestamp and the next event's timestamp within the session.       |
| **Scroll Depth**    | How far down the page visitors scroll on average. | Percentage of page height scrolled, captured by the Upstack Pixel.                                 |
| **Exit Rate**       | Percentage of sessions that ended on this page.   | Sessions where this page's PageView was the last event, divided by total PageViews for this page.  |
| **Entry Rate**      | Percentage of sessions that started on this page. | Sessions where this page's PageView was the first event, divided by total PageViews for this page. |

<Note>
  Time on Page is calculated from the interval between consecutive events. If the visitor's session ends on a page (no subsequent event), time on page cannot be measured for that visit. These unmeasured visits are excluded from the average.
</Note>

### Filtering by Page Path

Page analytics support filtering by URL path patterns:

* **Exact match** — `page_path = /products/classic-tee`
* **Starts with** — `page_path starts with /collections/` shows all collection pages
* **Contains** — `page_path contains /blog/` shows all blog content

### Common Page Analysis Patterns

**Top pages by traffic:**
Select Page Views and Unique Visitors. Group by `page_path`. Sort by Page Views descending. Identifies your highest-traffic content.

**Landing page quality:**
Select Bounce Rate and Entry Rate. Group by `page_path`. Filter to pages with high Entry Rate. A landing page with high traffic but high bounce rate needs optimization.

**Product page engagement:**
Filter `page_path starts with /products/`. Select Time on Page, Scroll Depth, and the AddToCart rate. Identifies which product pages drive the most engagement.

**Content performance:**
Filter `page_path starts with /blogs/`. Select Page Views, Time on Page, and Scroll Depth. Longer time on page and deeper scroll depth indicate content that resonates.

## Connecting Sessions to Outcomes

Session and page metrics become most powerful when connected to conversion data:

| Question                                        | How to Answer                                                               |
| ----------------------------------------------- | --------------------------------------------------------------------------- |
| Which landing pages drive the most revenue?     | Group Revenue by `page_path` (entry pages only)                             |
| Do longer sessions convert better?              | Compare Session Duration for converted vs. non-converted sessions           |
| What's the engagement threshold for conversion? | Compare Engagement Score distributions for converting vs. bouncing sessions |
| Which pages are in the conversion path?         | Look at page sequences for sessions with a Purchase event                   |

<Warning>
  Bounce rate can be misleading on its own. A blog post with high bounce rate might still be valuable if it drives email signups (Subscribe events). Always consider bounce rate alongside other engagement signals.
</Warning>

<CardGroup cols={2}>
  <Card title="Measures & Dimensions" icon="ruler-combined" href="/data-dictionary/measures-and-dimensions">
    Full reference for all available measures and dimensions.
  </Card>

  <Card title="Attribution Reporting" icon="chart-pie" href="/analytics/attribution-reporting">
    Understand how conversions are attributed across marketing channels.
  </Card>
</CardGroup>
