Measuring content marketing ROI.

If there’s one thing content marketers hate to be asked to do, it’s this. But without it, how would you know if your content marketing strategy is working?

There’s a ton of material on how to devise and implement a content strategy, come up with topics, and produce good content, but measuring the success of that same strategy seems to be one of the murkiest areas of inbound marketing.

It’s a challenge we’ve faced before at Hubstaff, and it resulted in the conclusion that we need to track and measure our efforts and compare them against the results we get from them. Everything we do in this direction is captured in what we call a content report.

The goal of the content report is to get all of the data we need to track in one place so we can answer the question, ‘what is your ROI on content marketing?

Measuring the ROI of content: A comprehensive system (including resources) Click To Tweet

By the end of this article, you’ll learn about our process for measuring the ROI of our content marketing effort and will get the inside scoop including our real data.

I’ll even give you step-by-step advice on how to create your own content report that can help you analyze your content’s performance, and convince your boss or team that content is worth investing in.

Power up your workday

Reach your goals faster with time tracking and work management.

Try Hubstaff
power up with Hubstaff

Content is part of your overall marketing strategy

The marketing in content marketing implies that everything you do in these areas should have a bigger aim. The content you produce and distribute should tie to the overall goals of your business.

That’s why the way you measure that performance should also relate to how you measure the overall performance of your company.

For example, for many businesses that employ content marketing successfully (Hubstaff included), one of the main goals with content is to generate qualified leads.

Therefore, one of the metrics we track is the number of email signups we get from our blog and how many of the people and businesses behind those emails are likely to become customers of Hubstaff.

However, before you can get to this level of detail with your metrics, you need to understand very well how your business works and what goals you have for each component of your marketing strategy, content included.

Apply the lean startup methodology to content

If you’re not already familiar with the lean methodology, you might want to check out Eric Ries’ bestseller (or this primer).

Since we’re a bootstrapped SaaS business, we live and breathe Lean in everything we do – including content.


Source: CoSchedule

While I was doing the research for this article, I came upon the graphic you see above, which is part of an article on CoSchedule’s blog aptly named “Here’s Why You Don’t Need A “Content Marketing Strategy”.

I don’t agree with the title because I don’t think there’s a contradiction between strategy and the lean cycle – in fact, what we’ve done at Hubstaff is to make the iterative approach part of our content marketing strategy.

We explore various topics and approaches, find out what is working, and double down on it. For example, just in the last 3 months we’ve tried:

  • Publishing data-driven posts (the one you’re reading right now falls in this category)
  • Using content upgrades to fuel up our list-building effort
  • Producing more listicles (where it makes sense to have them)
  • Producing fewer listicles, i.e. addressing topics with an exhaustive go-to guide that is higher quality than a simple listicle

However, the critical piece in applying the lean approach (and the one most people fail to get right) is measurement. That’s why our content report is so important to us and why we spend a lot of time (that can go towards producing even more content) on it.

Figure out your goals with content marketing

This was already mentioned in the beginning, but you really have to drill down deep here if you want to have success with your content.

(Source: Link)

Being a SaaS company, the goals that really matter to us are the following:

  • Creating brand awareness
  • Building relationships
  • Generating leads
  • Getting people to start a trial and convert to a paid plan

Yes, this is all.

Instead of chasing dozens of goals, we have just these 4. They allow us to stay focused and chase only the things that provide real value and help Hubstaff grow.

You’ll see that focused approach carries on in how we track our efforts.

Tie content marketing goals to KPIs

Once you know what your goals are, come up with key performance indicators (KPIs) you’ll use to track how you’re performing on those goals.

A KPI is a ‘shortcut’ to measuring your performance against a goal.

Sometimes it’s easy to pick a KPI – for tracking sales, you usually have a good indication of when that happened; but for other things it can be challenging – how do you track ‘brand awareness’ for example? In these cases, you find an objective metric, like site sessions or social media shares/mentions, that you can track.

Don’t worry too much about picking ‘the best KPIs’ – you’ll be mostly interested in how your performance is developing through time, not in the absolute value.

On the flip side, remember that once you start tracking a certain KPI, everyone with a vested interest in the success of your content (your employees for example), will be after getting those right.

So, if you have a KPI about the quantity of traffic to your site and nothing about its quality, don’t be surprised when your content team starts producing and sharing content along the lines of “The 10 most important kittens of 2016”.

Yes, it’s an exaggeration, but you get the point.

Getting back to the goals I laid out above, here are the metrics that we track:

  • Awareness: sessions, landing pages, SEO traffic and rankings
  • Relationships: repeat visitors, time on page, bounce rate, social shares
  • Lead generation: email subscribers
  • Sales: thank-you pages, event tracking (I’ll explain everything about these, including why they matter and how to set them up in the next section)

To track these quickly, I’ve set up a custom dashboard in Google Analytics, which allows me to see each of the critical metrics at a glance:

Content KPIs Google Analytics

You can track most of the data you need in Google Analytics, but there are 2 more essential tools that you need in order to get the full picture:

Google Search Console

Search Console Search Analytics https

It gives you information about your performance in search – how are you ranking on average for keywords, how many people click on your content in search engine results pages (SERPs), etc.

It is very important to use the Search Console in order to track the performance of the SEO part of your content marketing strategy.


BuzzSumo is a great tool… unfortunately, it’s also paid. (And at $99/month, it’s rather pricey.)

Ever since Twitter made changes to their API and limited access to stats on shares, BuzzSumo has been the only effective way of finding out how many Twitter shares our articles get.

SharedCount is a great free alternative, which lets you export and use data any way you want, but they’ve been affected by the API changes and don’t show the Twitter data anymore.

Here’s an example of the data you can get from BuzzSumo: Most Shared Content

As you can see BuzzSumo only shows you the top 5 results on its free version. However, there is a way to see the results for other posts on your site outside those 5. To do this, you need to get the BuzzSumo browser plugin (Chrome version).

You’d need a BuzzSumo account to get the data for Twitter, but creating one is free. After you install the plugin, go to the page for which you want to get the data and click the plugin button, this is what you will see:


It’s a good workaround, but it requires manual work.

Tracking content marketing success with Google Analytics

All the metrics we’ve discussed so far concern the top of our funnel – visits/sessions, shares, landing page stats all cover how people are consuming our content. However, our ultimate goal with content is to make people do something and move to the next step of our funnel:

None of these metrics can tell you how many of your readers become leads and how many of those leads ultimately convert to be paying customers.

In order to do this, you have to determine your criteria for what counts as a lead and then devise a way to track that.

For example, at Hubstaff we work hard to convert our readers into email subscribers. Once a person leaves us their email, we count them as a lead, because we believe there’s a good chance of them at least trying our software.

However, none of this happens automatically. We know that, in order to convert a reader into an email subscriber, we need to offer them something of value. The main tool we use for that is our email course “Secrets of Remote Business” where one of our co-founders, Dave Nevogt, shares everything he’s learned managing remote teams for 10 years.

Every time someone signs up for the email course, we know they’ve crossed from one segment of our funnel into the next. In order to track this, we’ve set up a special thank-you page for the email course that can only be reached when you sign up for it:

Email Course Thank You Page

We’ve set up a goal in Google Analytics, that fires every time someone visits that page – because we know for sure that means someone has converted:


This is really the most basic way to track conversions and you can use the exact same method to count sales. There are many ways to make this more sophisticated, collect more data, and track different variables. If you haven’t done this before, the next section explores how to set this up.

How to set up goal tracking in Google Analytics

Setting up goals in Google Analytics is really straightforward and it will give you a great base to work with that you can later develop and build upon (by adding more goals, tracking various things and so on).

To get started, visit the Admin tab in your Google Analytics profile, click on Goals and then New Goal:


Under Goal setup select Custom and click on Continue. Then under Goal description add a name (make it something that will make it easy to remember what is the effect of the goal) and pick Destination as the Type:


In the final step, use the Destination field to add the path of the thank-you page (add it as /thank-you-page not with the full URL):


You can use the Value and Funnel options to track additional information, but this is enough for the basic setup.

Click Save and you’ll even be able to see stats retroactively if your thank-you page has been active for a while and has got some visits to it.

Remember that it is very important to make sure the Destination page is only accessible after a successful conversion, otherwise, your numbers will be off.

Combine your data in a monthly report

Choosing what metrics to track and how to get the data is essential, but you need to get all this in one place and make sense of it.

I have a spreadsheet that I am using to track our key metrics for the Hubstaff blog. To help you get a better understanding, I’m giving you a copy of the spreadsheet that I have built for our blog and will walk you through step-by-step on how to build your own report.

Don’t waste time building your content report from scratch. Get a copy of our report spreadsheet.

In order to make it work, you need to add the special Google Analytics Add-on to Google Spreadsheets, here’s how to do it:

KPI Goal Tracking Google Sheets

After you add and connect the add-on, go to Add-ons > Google Analytics > Create new report. A sidebar will appear in the right part of your screen:


Add a name and choose the relevant account and property from your Google Analytics profile. Then pick the metrics and dimensions that you’d like to extract data for (use the reference links to get an idea of what the available data points are).

For example, if you’d like to get the number of sessions per month on your blog, this is how you should set up your report:


Set the start and end date to cover the period for which you want to track data. For metrics, choose ga:sessions (this is the total number of sessions), for dimension, write down ga:yearMonth. When you run the report in this form, you’ll get a list of months and the corresponding number of sessions:


Repeat this for all metrics that you’d like to pull from Analytics.

In the next step, go to the worksheet (tab) where you want to compile your data. In our sample, this is called KPI report.

Add all the months you want to combine the data for in the first column of your sheet. It is important to list them in the same format as they are written in the report sheet(s) as this will make the matching easier.

The next step involves doing a little bit of formula magic, but it’s easy enough to do.

We’ll use VLOOKUP to match all rows in your KPI report and pull the data from each report into one, easily digestible report.

Here’s the syntax for the VLOOKUP function:

VLOOKUP(search_key, range, index, [is_sorted])

All details are explained in detail in the Google Docs help files, but for our purpose here’s what you need to know:

  • Search_key is the value you’re looking for – in our case, this will be the month and year index
  • Range is the set of cells that is searched for the search_key
  • Index is the column from which the value will be returned – the first column in the range is always 1
  • Is_sorted is an optional attribute; if you set it to TRUE the formula will return the nearest match, which is smaller than or equal to the value of the search_key; however, if you set it to FALSE, only an exact match will be returned.

It sounds complicated, but I promise it’ll get clear when you see it in action.

Let’s say I want to populate this cell with the number of sessions from organic search for the month of March 2016, which I have in a separate report/worksheet:


This is what the formula will look like:

=VLOOKUP(A20,’GA Data :: Site visitors’!$A$16:C45,3,True)

  • A20 is the value I’m looking for, 201603 in this case.
  • ‘GA Data :: Site Visitors’!$A$16:C45 is the range where the formula is looking for 201603 (Notice the use of the $ signs, I’ll explain its purpose below.)
  • Next, 3 is the column for which the value corresponding to A20 will be returned.
  • True means that only in case VLOOKUP finds exactly 201603 in ‘GA Data :: Site Visitors’!$A$16, that the value in 3 will be added to the cell.

Here’s what the range in “GA Data :: Site Visitors”!$A$16” looks like:


Notice how the values I want to add to the KPI Report worksheet, are in the Organic search column, which is 3rd in this range.

When you add the formula, check to make sure it’s carrying over the correct numbers and copy and paste it to the whole range of cells where you’d like to copy the data from your Google reports.

Repeat the same process for all metrics you want to combine in your KPI report.

What’s a $ for?

When copying a formula, Spreadsheets would automatically adjust the ‘address’ of any cells you have in the formula. So, if instead of $A$16, we had put only A16, once we copy the formula to the next row in our report, it will change the cell to A17. Adding the $ sign tells Spreadsheets to keep the same Column or Row. For example, if we add it as A$16 and copy the formula to a cell 1 row down and 1 column to the right, it will change to become B$16, thus changing the column, but keeping the row number (because of the $).

What should you do with all this data?

When you find a (relatively) easy way to play with data, it’s easy to get carried away and start tracking a plethora of arcane metrics.

However, going back to the beginning of this article, remember that you should only track the metrics that make sense to your business.

Because of that, it’s hard to cover every possible use case, but I’ll use my experience at Hubstaff to talk about some of the challenges we faced with our metrics and how we overcame them.

Counting visits can be misleading

Our blog doesn’t get an insane amount of visitors – we have about 50k per month as of June 2016.

Sudden peaks in traffic can have a big effect on the overall performance and stats. Consider this example:


Looks depressing, right?

It seems we’ve lost a quarter of our audience in 6 months.

Only by looking at the larger picture you see that amount of traffic wasn’t ordinary – it was the result of one of our articles hitting the front page of HackerNews:


That’s why when I first started building the content KPI dashboard for Hubstaff, I started tracking blog session as a 3-month trailing average – essentially taking the last 3 months and converting them into an average.


As you can see from the screenshot, there’s still a peak in the numbers for the month when our article went viral, but they’re much more balanced compared to the core numbers.

More importantly, following a trailing average also carries some of the positive benefit in the following months – in the screenshot above, while the core numbers are declining in July and August of 2015, in the trailing average column, they keep growing.

We feel that this gives us an adequate picture of what is happening on the blog.

Making a decision about how you’re going to attribute conversions

For Hubstaff, we have the blog and the main site set up under different Properties in Google Analytics. This allows us to track the blog stats independently, but it also means we have to do a little bit of magic to track the conversions on the main site.

The simple way to track this is to look at the Referrals report on the main site profile in Analytics and limit only for those visitors who come to the main site from the blog:


We use this to see what blog posts drive traffic AND conversions on the main site:


However, that’s often not enough. We use a number of different links and assets to drive people to our homepage from the blog, sometimes within the same blog post:



In order to be able to track these more accurately and attribute clicks and conversions to each, we use the so-called UTM tags.

Buffer has a great primer on them, but simply speaking they’re a set of tags we add to the links we place on marketing assets, such as the banners you see above, to track the visits and conversions from each separate call-to-action we use on the blog.

We make sure that the Source for all such links is set to blog, so I can easily filter all those in the Acquisition > All Traffic > Source/Medium report in Google Analytics:


We use additional tags, which allow us to get a very detailed data about what particular banners work best, what is the best location and copy to place them on, and what blog posts the most clicks and conversions come from.

How to calculate your content marketing ROI

Finally, we get to the Holy Grail of content marketing ROI: measuring it.

If there are 2 metrics you need to know about your business, they are CAC and LTV.

CAC stands for Customer Acquisition Cost

Here’s an example of how you can calculate it for your blog:

Let’s say you publish 4 blog posts per month and each costs you $150. Additionally, you spend around $50/post on editing, graphics, amplification, etc.

4 x $150 = $600

4 x $50 = $200

I’ll assume you spend another $200/month on hosting for your blog, subscriptions for services like Optinmonster and Hellobar, etc.

That puts the total budget at $1000 spent on content marketing per month.

Let’s say that in any given month you generate 10 new paying customers from your blog, then

CAC = $1000 (budget) / 10 (new paying customers) = $100

So your cost of acquiring a new customer from the blog is $100.

Repeat the same calculation for all your main marketing channels – it’s a great to compare them and figure out which channels are working, and which are underperforming.

LTV measures the Lifetime Value of a single customer

LTV is a measure of the total revenue you get from a typical customer.

Let’s say you’re running a SaaS business (like Hubstaff) with 3 customers who pay as follows:

  • Customer 1 pays $5/month
  • Customer 2 pays $10/month
  • Customer 3 has paid $84 for a whole year in advance.

Let’s assume that you know from your historical data that the average customer who signs up for your service, remain a paying customer for 36 months.

Then, your average LTV = [ $5 (monthly payment for customer 1) + $10 (same for customer 2) + ($84/12) (same for customer 3) ] / 3 (to get the average) * 36 (the average “lifetime” of a customer) = $264

Compare CAC and LTV to analyze your content ROI

In our example, we have CAC = $100 and LTV = $264, and CAC < LTV meaning that it’s profitable to invest in content marketing.

However, what exactly is profitable is open to debate.

For us, we want our CAC to be less than 1/3 of our LTV. (Remember that LTV is just revenue, not profit per client.)

Our current LTV is $750 and our blog generates around 60 paying customers per month:


If we use the rule above, that means we could be spending up to $15,000 per month on the blog:

60 (paying customers) * $750 (LTV) / 3 = $15,000

I just showed you a quick (and dirty) way to calculate (and/or defend) your content marketing budget.

Ready to start tracking content marketing ROI?

Once you start generating those reports for your own site, you’ll find the insight they provide will give you many ideas how to improve your strategy and strengthen your content production.

As a startup you have limited resources, so you need to make sure you are spending time on things that matter. Without doing this sort of analysis, you are gambling with your time. Put in the effort to understand not only if content marketing, on the whole, is generating a positive ROI, but if specific forms of content outperform the others (and then double down on them).

For example, in the past, we’ve noticed that roundup-style posts tend to perform very well for us in terms of social shares; while targeting branded keywords (like ‘Android time tracking’ for example) helps us reach the segment of our audience who are in the decision-making stage of their buyer’s journey.

My final piece of advice is: don’t be afraid to start small with measuring your content performance. Start tracking what is important AND easy to find and build from there.

Am I missing a critical piece? Let me know how you measure your content performance in the comments – I’m always looking forward to learning from our readers!