Tutorial: DIY Engagement Tracking

(This lesson by PublicSource’s Alexandra Kanik on how to track audience data in a spreadsheet was originally posted in 2015.)

Where does the most engaged traffic come from? How long is the content engaging users? What might make content more engaging to users both at the time of publication and afterwards?

There are services that answer these questions: ChartBeat has “Engaged Time” and Upworthy has “Attention Minutes.” Both are a step towards better understanding how readers interact with our content. But not everyone can afford ChartBeat, and Upworthy’s method requires more coding skills than many journalists have.

So a couple of analytics-minded folks and I decided to work with some free tools and accomplish something close.

We came up with what we call Engagment Minutes, a measure of how long people are spending with your content.

Engagement Minutes gives you a heightened look at the success of an article because we’re not just looking at either quantity or quality, but both.

Consider two articles: one has 1,000 pageviews and 1:02 average time on page. The other has 500 pageviews and 3:40 average time on page.

A traditional analytics approach might give more weight to the first article. I mean, more people clicked, right?

Engagment Minutes shows us a different picture. The first article, the one with 1,000 pageviews, has a total of 17 hours and 31 minutes of engaged reader time. The second article, the one with only 500 pageviews, has a total of 30 hours and 33 minutes.

Analyzing stories in the context of Engagement Minutes allows us to determine what’s working and what isn’t. With proper story tracking, you can even start to get at the reasons one piece of content might work well, while others fail to reach and engage your audience.

The following tutorial details how to create a week-by-week Engagement Minutes report. With that report and some additional information about your content you can start answering questions about what best engages your audience.

Follow along using this tracking template.


Tracking template reference sheet: tracking

In order to analyze your content, first you’re going to need to track it. At PublicSource, we track a number of things about each story, including:

  • Title
  • Author
  • Publish date
  • Geographic relevance
  • Topics
  • Multimedia elements

Depending on your organization, your mission, your funders, etc., you might want to track different things. For the purpose of tracking engagement, you’ll want to at least record the above list of attributes.

Picking stories to analyze

Tracking template reference sheet: tracking

For those who publish less frequently, you might be able to analyze every piece of content that goes on your site. But if you publish every day or multiple times a week, you might want to select a handful of pieces to analyze as a representative sample.

I generally select content on both sides of the performance scale — ones that performed unexpectedly well and ones that underperformed.

You’re going to want to choose stories that were published around the same time to reduce audience variables. For example, a story published in March compared with a story published in July might see very different analytics because people take more vacations in the summer and might not be around to read your stuff.


To start, choose three or so pieces of content. Record their attributes in the “tracking” sheet of your tracking spreadsheet.

Choosing the time periods

Tracking template reference sheet: set-time-period

Choosing what time periods to look at is going to depend on the types of content you put out. If your content is more timely, you might want to do a two-week or even a single-week look. If you write pieces that tend to be relevant for longer, a month might be more appropriate for you.

In this example, we’ll be looking at content week-by-week, over the course of a month.


Create a new sheet in your tracking spreadsheet. Call it “weekly-calculations”.

For each piece of content you’ve chosen to analyze, create four rows, one for each week of the month we’ll be analyzing.

Add the start and end dates for each week. You’ll notice the story “Life means death…” was published on a Tuesday, but its first start date is a Sunday. For consistency’s sake, I like to start weeks on Sundays and end them on Saturdays.


Recording the numbers

Tracking template reference sheet: weekly-calculations

In addition to looking at the content’s overall weekly performance, we’re going to look at how it performs on different traffic channels:

  • Direct traffic
  • Social media traffic
  • Referral traffic
  • Newsletter traffic
  • Search traffic

Here’s a term dictionary if you’re not sure what those channels mean.


Head on over to Google Analytics. Navigate to Behavior > Site Content > All pages.

Using the search bar below the line chart and above the table view, search for the first piece of content on your list. Everything we’re doing in Google Analytics is going to be story specific.

NOTE: It will probably be easier for you to search your stories based on their titles, rather than their urls. You can switch this by clicking “Page Title” next to Primary Dimensions.EM-2

You should now have a table that lists only one story.

Adjust the time period settings for this page to correspond to the first week you have for the content in your “weekly-calculations” sheet.

Record the total pageviews and average time on page.

NOTE: Column formatting is important, so make sure your pageviews column is set to be a number and your average time on page is set to be a duration.

To get the channel analytics we discussed above, we have to add a secondary dimension.

Click on Secondary dimension > Acquisition > Default channel grouping.

You’ll see the single content listing is now represented by several rows, each with a different value in the Default Channel Grouping column.


Record pageviews and average time on page for each of those channels. Again, make sure these columns are formatted correctly. Repeat this for each week of each story.

Your spreadsheet should now look like this:

Calculating the minutes

Tracking template reference sheet: weekly-calculations

Now we’re going to take that data and create our DIY Engagment Minutes analytic.

First, add three new columns after our total average time on page column (column F in the example.)

  1. column G: average_time_decimal: this will convert your average time on page into a decimal number
  2. column H: engagment_minutes_decimal: this will calculate engagement minutes in decimals
  3. column I: engagment_minutes: this will convert your decimal engagement minutes to human-readable hours and minutes.


If your spreadsheet is set up like the example, you should be able to simply copy and paste the following formulas into the appropriate columns:

  • column G: average_time_decimal
    • = F2*1440
    • set format to number
  • column H: engagment_minutes_decimal
    • = G2*E2
    • set format to number
  • column I: engagment_minutes
    • = H2/1440
    • set format to duration

Repeat the above steps for each channel.

Here’s what your spreadsheet should look like now (I’ve included some shading for easier reference)

Now we don’t need all those calculation columns. So let’s move everything over to a new sheet where we can refine our columns and take a closer look.

Copy everything in this sheet and special paste into a new sheet called diy-minutes. The special paste will copy values, not formulas. If we just copy and paste normally, when we go to delete our calculation columns, everything will break!

While in your newly created diy-minutes sheet, go ahead and get rid of your calculation columns. If your spreadsheet structure matches the example, that would be columns G, H, M, N, S, T, Y, Z, AE, AF, AK, AL.

Go back through and add duration formating to your average time on page and engagement minutes columns. Add date formating to your start and end dates.

Analyzing the results

We’ve just created a week-by-week Engagement Minutes report for three of our pieces of content.

We can now sort this report by the various columns to see which content did better overall, on social, etc.

Now this is where our story tracking comes back into play. Once we figure out what content did the best or worst, our next question should be “Why?”

Maybe you’ll see that your environmental content routinely does better than your health care content. Maybe content that has multimedia elements does better on social.

If you’re following along in the example document, you might notice that there are some extra columns at the end of the weekly-calculations and diy-minutes sheets. I wanted to know if frequency of social media posting was having an effect on how engaged our readers were with our content over time, so I recorded Facebook and Twitter referrals (a Google Analytic) and how many actual Facebook and Twitter posts we had posted about the content.

I counted our social media posts by hand, which took a long time. Now, an amazing analytics tool called NewsLynx will do it for you.

By combining Engagement Minutes and analytics about how often we were posting to social media, I discovered that we essentially forgot about our content after it was a week old. The stories that we write are longer, investigative pieces. They remain relevant long after they are published. Certainly longer than a week.

This type of analysis allowed us to see that social was a big driver of engagement, and therefore focus more of our time pushing content via that channel.

There are myriad analytics that you can pair with Engagement Minutes to make informed decisions about how to better organize and promote your content. Here are some ideas to get you started:

  • Engagement Minutes + subject area
  • Engagement Minutes + content geographic reach
  • Engagement Minutes + user location

Ultimately, the goal is to help you track and compile your data points so you can better understand what actions are yielding which results, and how to adjust to achieve higher numbers.

Now it’s your turn—try it out! Let us know how it goes in the comments.