What Engaged Sessions Actually Measure

In GA4, a session is classified as engaged if it meets any one of three conditions:

Engagement rate is the percentage of sessions that qualify as engaged. Bounce rate — when you add it back as a custom metric — is the inverse (100% minus engagement rate).

For content publishers, the 10-second threshold is the primary qualifier for most single-article sessions. A user who lands on an article, reads for 30 seconds, and leaves will be counted as engaged. A user who arrives, sees a paywall or a load error, and leaves in 2 seconds won't. This is more accurate than the old bounce rate, which counted any single-page session as a bounce regardless of how long the user stayed.

10 seconds is a low bar for content sites. A "reader" who spends exactly 11 seconds on a 2,000-word article has technically engaged in GA4's definition, but hasn't read anything meaningful. Engagement rate alone isn't sufficient to understand content quality — it tells you people didn't bounce immediately, not that they actually read your content.

Better Engagement Signals for Content

Average engagement time per session

GA4's average engagement time measures time the page was in the foreground — the browser tab was visible and the user was active. This is more meaningful than the old "time on page" metric, which measured time between page loads (and therefore couldn't measure the last page in a session at all).

For content sites, average engagement time per page is the closest proxy to "time reading" that GA4 provides without additional implementation. Find it in Reports → Engagement → Pages and Screens, where it appears as "Average engagement time per active user".

Scroll depth + time together

Enhanced measurement's scroll event fires at 90% depth. Combined with engagement time, this produces a much stronger reading signal than either metric alone: a user who scrolled to 90% AND spent more than 2 minutes on the article almost certainly read it.

You can cross-reference these in a Free Form Exploration: filter to page_view events on article pages, then look at the percentage of sessions with a scroll event where average engagement time is above your chosen threshold. Pages with high traffic but low scroll+time rates are ones where users are arriving and not reading — often a sign of misleading titles, poor formatting, or content that doesn't deliver on the headline.

Per-article completion events

For publishers where reading completion is the success metric (newsletters, editorial, research publications), implement a custom event that fires when a user reaches the end of an article body. This is more precise than the 90% page scroll — an article with a long comments section or sidebar content will reach 90% scroll well before the reader finishes the article body.

Implementation: add a small IntersectionObserver on the last paragraph or a dedicated "end-of-article" marker element. When it enters the viewport and the user has been on the page for at least 60 seconds, fire article_completed with article_title and estimated_read_time as parameters.

Content-Specific Events Worth Tracking

Content Dimensions to Register

Beyond events, content publishers benefit from custom dimensions that make GA4's reports segmentable by content properties:

Register these as event-scoped custom dimensions in Admin → Custom Definitions. Send them with each page_view event via GTM or your CMS template. Once registered, they become available as dimensions in all GA4 reports and Explore analyses.

When to Go Beyond GA4 to BigQuery

GA4 covers most content reporting needs directly. BigQuery becomes valuable when:

Our GA4 BigQuery query patterns for content publishers covers the SQL for these use cases in detail, including article performance queries, referral source analysis, return visitor rates, and content velocity tracking.

GA4 Health Check audits your property configuration to ensure the event tracking and custom dimension setup that powers content analytics is correctly implemented. Run a 60-second audit to check your content tracking setup.

Travis Gunn
Founder of GA4 Health Check. Working with Google Analytics since 2013, with over 250 clients audited across almost every industry vertical. 100% Job Success on Upwork for over a decade.