A pretty common need for content-driven websites is to know how well their long-form text content engages visitors. Content is the lifeblood of their value proposition, and provides the pageviews and return visits that justify investments from advertisers. This got me thinking about ways to use Google Analytics to measure this in a more accurate way than currently exists.
Right now, content marketers are stuck with the rather crude "time on page", "time on site", and "pages per session" metrics. Time on page or time on site, for example, measure visitors on the site, but measure them whether or not they have actual content on screen. Pages per session can include pages that have nothing to do with content, such as "About Us" or "Contact" pages. There has to be a better, more precise, and more useful way to crack this puzzle.
I would propose a better way: we could measure how long the "container" for our main piece of content is visible to the visitor and has been on screen. We can measure this by page or by session, just as we do with time on page and time on site, but the main difference is that we are only measuring what is relevant to provide us feedback as to how engaging content is or how long our audience takes to read it.
What would we need in order to do this? We would need to add a CSS "id" tag to the HTML container that our content will be displayed in. We would also need to ensure that tag only appears when the content inside the container is the actual blog post.
The next step would be to come up with a mechanism that does the following for us:
- Watches for the presence of the container on screen (inside the browser viewport).
- Records the time the container was first visible on screen.
- Records the time at which the container stopped being visible on screen or the time at which the visitor navigated away from the page or the website.
- Subtracts the time the container was first visible from the time the container was last visible in order to get the amount of time the container was on screen.
- Sends the data to Google Analytics as an Event when the page changes so we can get data for a per-page "time on content". We'll need to be able to briefly intercept the user's navigation, make the calculation, fire off our Google Analytics data, and then let the visitor continue onto their original destination. It's possible, and it's been done before to implement "outbound link" tracking on other websites.
- Sets a visit-level cookie to add the amount of time content was visible to a running total so we can get the per-session "time on content". Divide this by the number of pages
- Sends the data to Google Analytics as an Event when the page changes so we can get data for a per-session "average time on content". Again, we'll need to intercept the user's navigation to calculate and send the data to Google Analytics.
It would also be important to set a maximum amount of time in case a user leaves the page open in the background. Consider getting someone else who is less used to reading content on the Internet to read a selection of articles of varying length on your website while timing themselves. The amount of time it takes that person to read each of the articles can be averaged out to provide you with a benchmark for how long the average user might take to read the article. Add a few seconds to that average, and then use the resulting number as your "time-out".
So there you have it: an idea for more effectively defining and measuring visitor engagement with text-based content like blogs, articles, or essays, on a website whose central value proposition is based on that content.
The more we know about how visitors are using content, and the more accurate that knowledge is, the better we can find out what sort of content works best for our target audience and adjust our strategy and posting schedules accordingly. Content may be king, but data is its queen.