Start free trial
Share this post

How to Get Serious About Content Marketing Analytics

How to Get Serious About Content Marketing Analytics

Home Blog Digital Marketing How to Get Serious About Content Marketing Analytics

We can probably all agree that living in the past turns out to be a little bit detrimental to progress. Most of us will also agree that 2005 has long and gone. That’s why 2005-era metrics page views, unique visitors, and other basic “insights” don’t cut it anymore. At least, not on their own.

Lately, smarter companies prefer to use advanced metrics. For instance, at Medium, the most important metric is the time that a visitor spends reading an article. They call it Total Time Reading, or TTR. Upworthy uses a metric called total attention minutes instead of pageviews for their posts:

The thing is, these aren’t advanced metrics. They’re just metrics. Numbers that don’t provide contextual value and immediate insights shouldn’t be referred to as metrics. Those old numbers (page views, unique sessions, acquisition channel numbers) are just noise.

Numbers that provide real, actual value are metrics. These are usually derived from multiple data points.

Digital marketing campaign

Meaningful metrics

If you publish content on Medium, then you’re familiar with their analytics widget. It provides you with information about views, reads, and a read ratio for each post. Like I said above, simple numbers don’t give you a lot of insight on their own.
They’re there to provide you with context for the metrics that you should care about. In this case, there are 2 dumb numbers (views and reads), that are both used to compute a metric of value, called the read ratio.


That’s a pretty basic analytics implementation. Note that basic doesn’t mean that it isn’t valuable. However, it does make for a great foundation if you want to dig in deeper to extract more granular insights. In this post, we’ll see how you can implement this kind of basic setup, and how you can expand on improving it.

Want a deeper dive? Learn more about content marketing metrics with Sujan Patel in our free 10-day ecourse.

A quick detour: about consumption metrics

The metrics we’re discussing here fall into the consumption metrics category of Jay Baer’s types of content metrics that matter. This category includes the most basic metrics to help you answer questions like:

  • How many people are arriving on your site and reading your content?
  • How many people that start reading your content will finish it?
  • What percent of readers will read at least half of your article?
  • How long does the average full-article reader take to finish an article?
  • What channels did people come through?
  • Which channels are correlated with a higher read-completeness?
  • Do read-complete visitors come back more frequently than the skimmers?

By implementing even a basic analytics widget on your website, these are the types of questions that you’ll be able to answer about your content.

Implementing total time reading

A reading time metric will be one of your basic data points. It’s a great little UX touch to display the estimated minimum reading time for an article. However, this will actually be a separate number from the one you’ll be using.

I find that most of the read time estimates provided on Medium are a bit too optimistic. It could be that I read very slowly, but if I had my tinfoil hat on I’d guess that the times are purposefully deflated to make readers feel as if a whole page won’t be too much of a time investment. Either way, let’s break these times down.


You’ll have:

  • An estimated reading time, which is the number you can display to interested readers.
  • A realistic estimated reading time, which is a more conservative estimate that you’ll use to determine read completion.
  • An actual time, which will be the recorded number for the time an actual person spent on your page.

Your estimated reading time and realistic estimated reading time (RERT) figures can both be determined using a simple formula: The total words in the article divided by the words per minute (WPM) reading speed of the average reader.

The internet says that the average reading speed for comprehension is usually 200 – 400 WPM and between 400 – 700 WPM for skimming.

Hopefully you’re writing educational or interesting content, so you’ll probably want to use the comprehension range. You may also want to reduce expected WPM count for longer articles, as you’ll have to take into account thinking time and cognitive fatigue.

How to measure it

Using JavaScript, divide your article height into quarters (or 10 segments, for higher precision). Once a person has scrolled to one of those 4 or 10 milestones, your JavaScript code can validate whether enough time has elapsed at that point. If it has, an event can be fired off to record that fact.

In simple English, if your article is 200 words long and you’ve set your RERT to be 100 WPM, it should take someone 2 minutes to read your article. That means they should reach the first milestone at 30 seconds if you’ve split your article into quarters.

If a reader reaches that point in 5 seconds, they’re probably not really reading so we won’t record that event. If they reach that point at 35 seconds, we can recorded as an actual read.

Deeper down the rabbit hole

Of course, you’ll never be able to determine whether or not someone is actually reading your article by this form of measurement alone, but it’s not a bad place to start. Also, by tracking your read events this way, you’ll be able to get a read ratio, like the one Medium has.

This kind of information is actually pretty simple to capture and save for your own site. Going by the Medium example, views are recorded on each page load, and reads are determined based on the completion of an event.

I’m not 100% sure how Medium determines this, but a read is almost certainly registered when a visitor has scrolled down to a certain point in an article.
Page views and scroll depth are straightforward to implement using JavaScript. When implementing an in-house content analytics system, you’ll want to track your visitor activity as accurately as possible.

For example, only register a read as an event after a certain amount of time passes, as was explained above. This way you can be sure to exclude false positives when people reach 100% scroll depth in 4 seconds for a 1,000 word article.

If you have a comment or discussions section, or some kind of recommendation or like widget, you can also add JavaScript tracking to get an engagement ratio. You’ll be able to determine what portion of your users that finish an article then recommend it, what portion of skimmers share your articles, and how often read-complete visitors leave comments.

From here, you can also go deeper and start to use segments so that you can get read ratio by traffic source, campaign, etc. If you can, you should even drop cookies so that additional data can be recorded as well.

Using JavaScript

The good news keeps coming! You can use JavaScript to take your analytics a step further. JavaScript can be used to detect the parameters in a URL. This is how Google Analytics captures the link campaign information in the utm parameters.

For example, have a look at the URL below:

The utm_campaign parameter is awesome-campaign and Google Analytics uses this data to segment user visitor data inside of its dashboards. If you click any submission on Product Hunt, then you’ll notice that the URL will always have a ref parameter appended to it, like so:

The reality is that you can include any parameter after the question mark character, so long as it’s in a key=value format.

Let’s say that you publish a new article and share it across 5 channels. Assuming that you’d like to track how much traffic came from each of those channels, you’d share your link with different parameter values for the campaign key.

var campaignParameter =')[1]

When a person visits your article from one of your links, use the JavaScript code above to capture the campaign key’s value and store it in a variable called campaignParameter. From here you can have this value pushed up to your database.

You can also add JavaScript event tracking to any other important section of the page. Your email capture forms should have event tracking so that you can track subscription conversions for each of your articles.

Furthermore, you can detect whenever somebody navigates away from your article on just about every modern browser. This is also done with JavaScript.

There’s a function called window.onbeforeunload that fires off when the browser’s window is about to unload all of its resources. This function executes when a person closes their browser, the tab with your page, or clicks an external link.

This can help you track bounces, and is supported in all versions of Firefox, Chrome and Internet Explorer, Opera 12+, and Safari 3+, according to MDN.

Using your saved data

If you’ve decided to track your desired events and actions for your blog, you’ll want to store that data somewhere. A fantastic database to consider is Redis, a free, open source data store that’s insanely fast.

If you have access to a developer in your team, they can quickly set up a Redis database and use Webdis to have your site talk directly with it.

Redis supports a wide range data structures and is great for very quickly computing and retrieving the information that you’d want for your content analytics dashboard.

Digital marketing campaign


By using these advanced metrics, your team will be able to start asking important questions about the content and how to grow your audience. If your single most important metric is TTR, like at Medium, you’ll be able to determine what percentage of your readers actually finish an article. You’ll be able to test out different post lengths and discover the optimal article length for your audience.

Your site may currently be getting thousands of shares, hundreds of comments, and many more resource downloads and newsletter signups. But ultimately you’re in the business of making money. You’re not the online court jester that’s here to please a passer-by audience.

Your company needs to use metrics like these to isolate the people that read entire articles, discuss things with your community, and open a decent amount of your newsletter emails.

Those are the people that are ready to be sold to.

Those are the people that your outbound sales team can focus on targeting. That can only be achieved with insights designed to provide you with this sort of information. Using analytics tools to find hot leads is superior to a monthly report to your boss showing them that the last 3 articles brought in 300,000 extra readers.

Share this post
Pawel Janiak

Guest Blogger @Mention