How To Track Content Engagement with Google Analytics

Published May 29, 2014
Measuring visitor engagement with website content is an important part of successful content marketing. Unfortunately, traditional metrics like Bounce Rate don't provide enough insight. In this blog post, we describe three better metrics for content engagement. Learn how to track them with Google Analytics.

Measure Content Engagement

Are Visitors Engaging with Your Content?

You may be getting lots of traffic from paid, referral, social media and organic search, but how can you tell if that traffic is engaging with your content?

The usual page engagement metrics, Bounce Rate and Avg. Time on Page, can lead you astray. Often, these metrics do not accurately report how much time visitors actually spend reading your content. Their shortcomings are described in Footnote 1 – Limitations of Typical Page Engagement Metrics.

Better Metrics for Content Engagement

Rather than looking at Bounce Rate and Avg. Time on Page, wouldn’t it be better to know how many visitors actually begin reading your content? Or how many finish reading it before leaving the page? Wouldn’t you like to know how much time visitors spend on your content, even if they bounce? This would enable much deeper insights.

Three better metrics, and how to track them in Google Analytics, are described below. These metrics are:

  1. Percentage of Visitors who are Readers
  2. Percentage of Visitors who are Finishers
  3. Average Time to Finish Reading

The tracking for these metrics is based on user interaction with with the content, as measured by scrolling.

Background - Where do these Metrics Come From?

A couple weeks ago, a client and I were discussing how to better measure content engagement with Google Analytics. This client's website received a lot of one-page visits and Google Analytics could not provide out-of-the-box insight regarding how engaged this traffic was.

The fact that it was bounce traffic didn't mean that the visitors were not engaged, because many were coming via links from social sites, reading an article and then going back to social media.

I did some research on how to set up custom tracking in Google Analytics for measuring content engagement. While researching this, I found an approach described by Justin Cutroni, that seemed perfect for this client. Actually, the approach seemed like a great fit for many of my clients. To make it easy for them to implement, I created a free WordPress plugin based on Justin's blog post. It’s a free plugin, with basic instructions for installation and usage.

Before we jump into using the plugin, lets talk a little about Justin's approach for measuring content engagement.

Justin Cutroni’s Advanced Content Tracking with Google Analytics

Justin Cutroni is a highly regarded Google Analytics blogger who works for Google. A couple years ago, he published two blog posts describing how he added Google Analytics tracking code to his blog to measure reader engagement. Part 1 explains the JavaScript tracking code and Part 2 shows how to create Google Analytics reports that access the tracking data.

Justin’s approach involves tracking user scrolling and aims to measure three aspects of engagement:

  1. Do visitors start reading?
  2. Do visitors read all the way to the end?
  3. How long do visitors take to reach the end of your content?

1. Do Visitors Start Reading?

Among the visitors to your page, some (hopefully most!) start reading. These are classified as Readers. Others arrive on your page, take a quick look and then leave. One of the metrics that Justin's approach produces is the Percentage of Visitors who are Readers. You can think of these visitors as being partially engaged.

In Justin's sample code (and our plugin), Readers are tracked as visitors who scroll a certain amount into your page. By default, the plugin classifies a visitor that scrolls at least 150 pixels down as a Reader. You can adjust that threshold in the plugin settings or by tweaking Justin's JavaScript.

Obviously, this is not a perfect method for classifying a Reader. A visitor could accidentally bang into the mouse and cause a scroll-down. On the other hand, it is not a bad approximation. If the visitor started scrolling, something probably caught their eye and they began reading.

2. Do Visitors Read All the Way to the End?

Some of your Readers will finish reading the content and others will leave partway through. Those who read all the content are classified as Finishers. Another metric that Justin looks at is the Percentage of Visitors who are Finishers. You can think of these visitors as fully engaged.

Finishers are tracked as visitors who scroll all the way to the bottom of your content. Again, this is not a perfect measurement, because some people may just scroll past everything to find out what’s at the bottom of the page. However, it is a decent approximation and Justin makes it more useful by incorporating a third metric – Average Time to Finish Reading.

3. How Long do Visitors take to Reach the End of Your Content?

Some of your Finishers will simply scroll through all the content and not read it. Others will read it carefully and thoughtfully.

Justin's code (and our plugin) tracks the amount of time it takes for a Finisher to scroll to the bottom. In Google Analytics, you can then see the Average Time to Finish Reading.

The Finishers who skim through quickly and are not really engaged bring down this average. The Finishers who read carefully take much longer and bring up the average. So, you can use the Average Time to Finish Reading as an overall measure of engagement for a page of content. Since different types of content take different amounts of time to read, this isn't a good measure for comparing across pages. However, it is a good metric to segment across traffic sources to get an idea of where the most engaged traffic is coming from.

Installing and Using the Tracking Code

The remainder of this post describes how to use Google Analytics to report the three engagement metrics described above. If you want to set up the tracking on your own site, you can install the plugin or copy Justin's JavaScript code into your site. Then you can generate the reports described below from your own Google Analytics account.

Metric 1: Percentage of Visitors who are Readers

Once you have the tracking code installed, wait a few hours (sometimes as many as 24) and you should start seeing the engagement tracking events showing up in your Google Analytics account. In Google Analytics, open Behavior >> Events >> Top Events. Examine the table in the bottom half of the report and you should see an Event Category named "Reading". That is the category that all these events are classified under.


Now, click on "Reading" to drill down to see the Event Actions. You should see the 4 types of Event Actions representing different types of engagement.


  • ArticleLoaded - these are the events indicating that a page was viewed.
  • StartReading - these are the events indicating that a visitor started reading.
  • ContentBottom - these are the events indicating that a visitor finished reading.
  • PageBottom - these are the events indicating that the visitor scrolled all the way to the bottom of the page.

The Percentage of Visitors who are Readers metric is the ratio of the StartedReading events to the ArticleLoaded events:

Percentage of Visitors who are Readers = StartedReading / ArticleLoaded

From the data show above, the value that I am currently getting on this blog (after 12 hours) is 21/26 = 80.8%

Metric 2: Percentage of Visitors who are Finishers

You can use the data in the same table shown above to calculate the Percentage of Visitors who are Finishers. That is the ratio of ContentBottom events to the ArticleLoaded events:

Percentage of Visitors who are Finishers = ContentBottom / ArticleLoaded

Looks like for the last 12 hours on my blog, the metric is 15/26 = 57.7%

Metric 3: Average Time to Finish Reading

Lastly, the Average Time to Finish Reading is calculated by Google Analytics as the Average Event Value for the ContentBottom action. The Average Event Value is the last column in the table above, expressed in seconds.

Looks like my value is 281.07 seconds = 4 minutes 41 seconds.

In Part 2 of Justin's blog post, he provides this table to explain what the timings data stored in the event values means:


Get More Details from Justin

Justin Cutroni goes into more depth about how the tracking code works and the types of analysis that you can do with the data. He gets into detail about how you can use the data with Google Analytics Segments to gain insight into which traffic sources are engaged by which content. He also shows how to use it to compare engagement across content categories, authors and publication dates. I encourage you to read his post.

Feedback Please

If you try out this plugin, let us know what your experience was like. Please give us feedback in the comments section below.

Footnote 1 – Limitations of the Usual Page Engagement Metrics
Bounce Rate (Exit Rate)

Visitors may come to your content via a link or social media, read on page and leave. Google Analytics counts that as a bounce. But, a bounce does not necessarily mean that the visitor was not engaged. They might have read that one page thoroughly – but instead of visiting any other pages on your site, they want back where they came from. This is very common behavior for traffic coming from social media and certain aggregator sites like A high bounce rate on a page with lots of referral traffic does not necessarily indicate a lack of engagement.

Avg. Time on Page

Bounces and exits do not figure in to Google Analytics’ Time on Page calculation. If your content page has a high Bounce Rate or Exit Rate, then the Avg. Time on Page calculation is going to be based on a small sample of Pageviews. It would be much more accurate to have a timing metric calculated from all the Pageviews. For that, we need to know how much time is spent on a page that the visitor exits from. Since Google Analytics has no way, out of the box, of knowing how much time is spent on an exit page [reference], it excludes those Pageviews from the calculation.


When the client first came to you, you talked up the value of Google Analytics. You emphasized the importance of seeing where your traffic was coming from. You went on and on about how Google Analytics can show traffic sources to pinpoint whether people came from search, social media or a specific site referral, and how valuable this data was. You sold them on it, so much so that your client looked forward to receiving that first report, the magical day when they would finally understand where visitors were coming from.
But then the report came, and it looked like this:



It showed that 10% of your client’s traffic came from “(direct)/(none)”. What does this label mean? How do you explain Direct traffic to your client? Better yet, how do you explain “none”?
Let’s take a closer look at understanding Direct traffic in Google Analytics and how we can address it with clients.
Digital marketers spend a lot of time focused on PPC and SEO campaigns in order to drive desirable traffic to a website. The phrases we’re ranking for and bidding on get meticulous attention, so much so that we often forget about some of the other ways that visitors find us.

We put a tremendous amount of the effort we put into reviewing organic search data and PPC campaign performance in analytics. But how closely do we monitor referral reports?

If that’s not a channel you review regularly, you may be missing out on seeing traffic that is coming directly from links you’ve obtained around the web, local business listings, news mentions, and more. Many times, links are only considered as a means to an end, a metric that Google uses in determining how to rank sites in the SERPs (search engine results pages). But the fact is, many of a site’s links may be directly contributing to its traffic.

In this article, we’ll review how to look at referral reports in Google Analytics, and some of the many ways to use that data to better inform your web marketing decisions.


Remember how your mom told you not to stand too close to the television because it might hurt your eyes?

The same rules can apply to data. If you’re too close, you may miss the patterns and trends that are crucial to understanding your website’s performance. You can’t judge a site’s performance looking at data in the bubble of a single day, you must consider any day’s traffic compared to the days before and after.

Google Analytics makes it fairly easy to analyze trends over long periods of time. But it also allows you to stand right in front of that TV, to look at more granular levels of time, right down to the hour.
There’s a better way to get that close to the data, without burning your retinas. We’ll cover how to analyze traffic effectively in today’s post.