• Home
  • Google Analytics
    • Customizations
    • For Ecommerce
  • Speaking
  • About
    • About Me
    • Contact Me
    • Disclaimer and Privacy Policy

Analytics Talk

Digital Analytics for Business

You are here: Home / Analysis / Advanced Content Tracking with Google Analytics: Part 2

Advanced Content Tracking with Google Analytics: Part 2

Posted: February 23, 2012 37 Comments

This is part two of a two part series on advanced content tracking. This post is about the reporting and analysis of how people interact with content.

As I mentioned in part one, this technique and concept was born from collaboration. There are a number of people that need to be recognized for contributing:

Nick Mihailovski – Developer advocate at Google (and the guys that sits across from me)
Thomas Baekdal – Smart guy and publisher of www.baekdal.com (you should subscribe)
Avinash Kaushik – If you don’t know Avinash…
Joost de Valk – Creator of the Google Analytics for WordPress plugin (you should use it)
Eivind Savio – Blogger and GA consultant (read his stuff)

Let’s look at some data. It’s all from this blog.

The Reports

This tracking technique uses event tracking to track how people scroll through pages on a site. So let’s start with the event tracking reports.

Here’s the Content > Events > Top Events Report.

Reading actions in Google Analytics

Reading actions in Google Analytics

All the events are bundled in the Reading category. You’re probably wondering why the Value is so high. Remember the value is the number of seconds between certain actions. That’s why the event value is so high. More on this later.

Click on Reading and you can see all of the actions that we created within this category (ArticleLoaded, StartReading, ContentBottom or PageBottom).

Reading actions in Google Analytics

Drill into the Reading event to view the specific reading actions.

Let’s take a look at this data and translate it. Of the articles that load, 82% actually start to read the article. I think that’s pretty good. I actually think that the 18% that do not start to read the article are actually visits that open the article in a new tab/window and then time out. They go away for 30+ minutes and break the tracking.

Of those that start reading the article, 63% make it to the bottom of the content. That seems pretty good. I don’t have any other reading benchmarks, so I’m content that more than half make it to the bottom of the article. But this is something that I’m going to trend over time. I’m also going to do some segmentation on this in a minute.

Of those that actually start reading an article, 18% actually make it to the bottom of the page.

Believe it or not, 18% is very high. On average the number of visits that make it to the bottom of an article is between 3% and 5%. I’m basing this observation on 5 days of data across a couple of sites.

UGH! To me that’s terrible! I thought more people read the comments. I guess I was wrong. Comments don’t seem to interest too many people.

But remember, this is top-line data. We need to get into some segments to understand what content drives these metrics.

Page Level Reading Metrics

Staying with the Top Events report, we can add a secondary dimension of Page to see which articles are loaded most often, which are read and which ones are finished.

NOTE: I’m going to filter the results below to include a single article, it will make it easier to see the report. You can use an advanced filter to focus on only the data that you’re interested in.

Page level interaction metrics in Google Analytics.

View engagement actions for individual content in Google Analytics.

Here you can see an article, how many times it was loaded, how many times people started reading it, how many times people got to the bottom of the content and how many times people made it to the bottom of the page.

Time to action measurements in Google Analytics

Average amount of time it takes to interact with content.

This is pretty cool.

Comparing this data to the average I can see that it basically follows the same trend.

  • About 82% that load the article start reading (daily avg = 82%)
  • About 55% make it to the bottom of the content (daily avg = 63%)
  • About 14% make it to the bottom of the page (daily avg = 18%)

I suggest looking at the article and checking things like how many comments the article has in order to further understand the data.

Let’s take a moment here and talk about event value. The event value measures time in seconds. These time measurements represent the following time intervals:

  • Time between page loading and start reading (i.e. scrolling)
  • Time between start reading and the bottom of the article
  • Time between start reading and the bottom of the page

The first thing that jumps out is the amount of time before scrolling, It’s about 5 minutes! (time is in seconds, so I just divided by 60). After talking with a few people we believe that this time lag is caused by people opening articles in tabs and reading them later.

Once they start reading it takes about 6.5 minutes to get to the bottom of this article and 9.5 minutes to get to the bottom of the page. Again, this depends on a number of things, like comments, article complexity, etc. But you can compare this to the site average for context.

Or, better yet, create a average for the content category, so you’re comparing the time it takes to read a technical article to the avg time it takes to read a technical article.

Be aware, these metrics can easily be skewed due to outliers.

If a few people open tabs and then walk away the results can really throw off these metrics.

Ok, more reports.

Let’s check out the traffic sources report. Remember, I created goals out of these events. Now you can look at the Goals tab and instantly see how much traffic made it to the end of an article or page:

Google Analytics Traffic Sources Report

Measure traffic sources based on actual reading metrics.

Now you can really measure the value of a traffic source based on how many people actually read your content not just time on site/page or pageviews.

NOTE: GA only counts one conversion per visit. So as soon as someone reaches the bottom of an article or page the goal will be counted. Total events are the raw count and will be higher that the total number of goals. Unique events are the number of visits that included a specific event and should match the goal counts.

Don’t Forget Advanced Segmentation

This is just the beginning. You can do some serious analysis of the data. If you’re a publisher try segmenting by things like:

  • Author
  • Publication date
  • Content category

Obviously you need these data points to create these segments. I have this data in custom variables (thanks to the Google Analytics plugin for WordPress) so I can do things like this:

Creating a Custom Advanced Segment in Google Analytics.

You can segment your reading metrics using a Custom Advanced Segment.

The resulting data is useful, but working with it in the interface can be a bit challenging. Here, take a look.

Segmented data in Google Analytics.

Get some deeper insights by segmenting reading data based on category.

This would be easier in Excel.

Advanced Data Analysis

While you can get a lot of insights from the reports, this data begs for Excel. It’s actually a lot easier to export the data and filter it in Excel especially when you’re looking at the actions with a secondary dimension of Page.

In a spreadsheet, I want to see the Dimensions of Event Action and Page URL. I want to see the metrics Total Events, Unique Events, Total Event Value (all of our time measurements) and Avg. Event Value (which is the average time measurements).

Remember, the event actions are :

  • How many times the page loaded
  • how may times people started to scroll
  • how many reached the bottom of the content
  • how many reached the bottom of the page

The first thing you’ll want to do is convert the time measurements from seconds to minutes:seconds. Then start to build some averages for your site. Build benchmaks based on category, author, publication date.

You may want to include even more Dimensions, like category, author, etc. We’re getting into some pretty serious data here :)

You can pull data using any GA excel plugin like NextAnalytics or GA Data Grabber.

Google Analytics Tracking of Content in Excel

Working with content engagement data in Excel is really powerful.

If you’re really nerdy and want to pull the data using some code, here’s the API query that I used. You’ll just need to change the date range.

http://code.google.com/apis/analytics/docs/gdata/gdataExplorer.html?dimensions=ga%253ApagePath%252Cga%253AeventAction&metrics=ga%253AtotalEvents%252Cga%253AuniqueEvents%252Cga%253AeventValue&filters=ga%253AeventCategory%253D%253DReading&start-date=2012-02-20&end-date=2012-02-20&max-results=10000

Other Things to Note

In addition to the above data, there are a few more things to be aware of. First, your bounce rate is going to go down. Way down. The event that tracks scrolling counts as an interaction. So if the visitor does not view any other pages they will NOT be counted as a bounce.

Second, your time on site and page will go up. I’m not going to get into all of the details here but for visits that only include one pageview, Google will use the last engagement HIT of the session to calculate time. So this will be the time the visitor gets to the bottom of the content or the page.

If you use this technique expect your bounce rate to drop and your time on site to rise.

Your time measurements are going to be MUCH more accurate.

Before and After

To wrap up some analysis I thought it would be interesting to take a look at a few pieces of content and their perceived performance before this tracking technique.

Here’s a piece of content with data compared week over week. This week with the new content tracking vs. last week. Look at the HUGE difference in time on page and bounce rate.

Comparing content before and after the code change.

There will be a huge change in your metrics after implementing this technique.

An obvious improvement right? I’m getting much better numbers now that the code has been changed.

What About Custom Variables?

If you read part one then you’re probably wondering about the custom variables. The code actually sets a custom variable when someone reaches the bottom of the page in more than 60 seconds. If they get to the bottom in less then 60 seconds then they are a scanner.

After seeing how few people actually make it to the bottom of the HTML page I think this code should be moved to the bottom of the Content section. So I moved the code. I also changed the code to be a page-level custom var.

Custom vars will give you much of the same data that you get from events. Analysis for custom vars will have to wait.

That’s the end… for now.

I hope you find this interesting. I certainly do. I think it opens the door to a different, more accurate, method to track content.

Again, thank you to all the people that have contributed.

Filed Under: Analysis Tagged With: advanced, Analysis, content, Tracking

Comments

  1. Brendan Halloran says

    February 23, 2012 at 7:30 pm

    Thanks for the analysis Justin – it makes for very interesting reading, especially the information about how this affects average time on page (and therefore average time on site) and bounce rate. The traditional definition of bounce rate needs to be redefined when the data collection approach is changed in such a substantial way.

    Would Google ever consider including this type of reporting in GA, or is it simply a pipedream like so many other customised tracking scripts that GA enthusiasts have been implementing themselves over the years?

    Reply
    • Justin Cutroni says

      February 24, 2012 at 12:11 pm

      @Brendan: Never say never. But with that said, we need to change the entire way that people think about content measurement before something like this will get any traction. Perhaps an really smart person like yourself can build a cool tool that uses the GA API to create better content reports!

      Reply
  2. Dan says

    February 24, 2012 at 1:52 pm

    Nice article, Justin.

    Also, should you be in a situation where you want to implement this without affecting the time on site or bounce rate you can add the non-interaction value in the events. Comes in handy when folks are relying on trending and not necessarily accuracy.

    Reply
  3. Eivind Savio says

    February 24, 2012 at 3:16 pm

    Thanks for sharing part 2 also Justin.

    As I commented in Part 1 I’ve done things a little bit differently using your script.

    I’ve tracked Scrolling Allowed instead of Article Loaded
    I’ve tracked Content Length
    I’ve used 30 seconds as a classification of a Reader

    And as I you wrote, these data begs for Excel, so I have also done that. So for those who are interested, in this picture you’ll find my data. I have removed the worst “time outliers” since they skew my data too much.

    Reply
  4. Victor Acquah says

    February 24, 2012 at 8:50 pm

    @Eivind: What is the difference between “allowed scrolling” and “scroll started” ? Is “allowed scrolling” basically the total number of page views? ( i.e same thing as “article loaded” – just a different name? ).

    Does your modified code allow you to track interactions with specific parts of a page ? e.g. read article, read comments, watched video, shared article e.t.c? I’d like to be able to get a much finer detail of info about specific on page events for each user visit. thx.

    Reply
  5. Eivind Savio says

    February 25, 2012 at 4:11 am

    @Victor
    What is the difference between “allowed scrolling” and “scroll started” ? Is “allowed scrolling” basically the total number of page views? ( i.e same thing as “article loaded” – just a different name? ).

    “Allowed scrolling” is measuring if you have to scroll the article or not to read it based on the height of the article. If the article is so long that you have to scroll it, that will be tracked as “Allowed scrolling”. The difference between “Allowed scrolling” and “Pageviews” on my site is 2 %.

    Does your modified code allow you to track interactions with specific parts of a page ? e.g. read article, read comments, watched video, shared article e.t.c?

    No, my code doesn’t allow me to do that. But if you want to do that, I guess you can modify the Scroll Analytics for Jquery to do that.

    Reply
  6. Nate says

    February 27, 2012 at 10:33 am

    @Elvind Not being a JS whiz myself I’d love it if you posted a copy of your version of the code. The changes you mention seem like they are exactly what I’d like to be using to gather my information but I’m not sure how to make them.

    thanks in advance.

    Reply
  7. Eivind Savio says

    February 27, 2012 at 5:47 pm

    @Nate
    I’ll try to publish my script (and my Excel sheet) this weekend.
    I’m a slow writer. :)

    Reply
  8. Allan says

    March 9, 2012 at 1:37 pm

    Those are some awesome GA tools! I have been wondering how far people actually read through the pages I’m tracking. I’m glad that your statistics show what I’ve been assuming in writing content and page design. Thanks!

    Reply
  9. Prasad Sistla says

    March 12, 2012 at 5:59 am

    Very nice post, on content tracking. Thanks for the collective team work.

    Prasad

    Reply
  10. Jim Snyder says

    April 19, 2012 at 4:01 pm

    Good Stuff Justin. I just finished up tracking for a similar app that does close to this. I also used Custom Variables to track steps on a personalization engine. I found using the reports much easier than trying to use Funnel Visualization, Goal Flow (or Events flow)!

    Cheers,

    Jim

    Reply
  11. Olaf Calderon says

    May 9, 2012 at 5:10 pm

    I was thinking about the time lag before scrolling and then thought that perhaps there should be time tracking onfocus of the article instead of just the whole page, or at least the whole page(window?). Usually, when we read an article, we have our pointer over it or at least within the browser window so that we can actually scroll. If we load a an article to another tab, there’s no focus so the time tracking should not kick in. This would give you more accuracy about when the reader is actually ON the article doing something.

    Aside from that, I think this is awesome – especially for any blog where the whole Bounce rate had almost become irrelevant. You can’t tell when people just bounced or when they read the article and then left –

    Reply
  12. Ammar Haider says

    June 7, 2012 at 4:10 am

    @Justin
    Really great tool im trying to implement for clients we provide content for..

    Frustratingly though, I can’t get this to work in terms of specifying a div and getting the script to trigger an event when the end of the div is reached. The event is triggered as soon as the user moves the scroll bar.

    Have only tried this on the traditional ga.js GA code could this be the issue?

    Reply
  13. Daniel Alvarez says

    July 16, 2012 at 5:20 pm

    Hello Justin…. Wonderfull article….I have a two parts question. If the case is that I don’t want to use a goal for the PageBottom or ContentBottom Events, could I create a segment which includes ActionEvent = PageBottom | ContentBottom? and the second part is…. a segment indicates that those sessions where a PageBottom event was triggered would be in the bucket?

    Thanks

    Reply
  14. James says

    September 10, 2012 at 6:09 am

    Hi Justin,

    Are you aware of any services similar to http://www.tynt.com/ that help you to track when people copy and paste your content for use elsewhere – either on their own blogs or email / share with contacts etc?

    This would give you an idea of what content people are interested in.

    Thanks,

    James

    Reply
    • Justin Cutroni says

      September 12, 2012 at 9:34 am

      @James: Yes, I do know Tynt. And it is helpful to measure interest. While I have not used it, I can only image that there is far less data than from measuring people actually scrolling on-site. But it’s something that I should check out. Thanks for the tip!

      Reply
  15. Arseniy says

    October 30, 2012 at 12:24 pm

    Great work! Thank you very much!

    I have one question: is it possible to count as a goal total number of events, and not just unique events?

    Thank you in advance!

    Reply
    • Justin Cutroni says

      October 31, 2012 at 9:26 am

      @Arseniy: Unfortunately no. You can only convert at a goal one time per visit. Hope that helps.

      Reply
  16. Jenn says

    November 5, 2012 at 1:15 pm

    So happy I stumbled upon this site. Great article and very easy to follow. I installed today on our site. Just a quick question to make sure I’m doing this correctly. Is all I had to change in the main code is the name of my div tag when the content begins? I’m not seeing Reader under Top Event yet but I’m not sure long this takes to calculate.

    Reply
    • Justin Cutroni says

      November 6, 2012 at 9:19 am

      @Jenn: Make sure you have JQuery installed. All of the code runs off of JQuery. Give that a shot.

      Reply
  17. Gordon Simmons says

    March 13, 2013 at 6:04 pm

    Thanks, Justin, for this great blog. I have a client that will be very happy I came across this method. It’s exactly what they need!

    Reply

Trackbacks

  1. Advanced Content Tracking with Google Analytics: Part 2 – Analytics … | SFWEBDESIGN.com says:
    February 24, 2012 at 12:46 am

    […] Read more here:  Advanced Content Tracking with Google Analytics: Part 2 – Analytics … […]

    Reply
  2. Marketing Day: February 24, 2012 says:
    February 24, 2012 at 4:53 pm

    […] Advanced Content Tracking with Google Analytics: Part 2, cutroni.com […]

    Reply
  3. SearchCap: The Day In Search, February 24, 2012 says:
    February 24, 2012 at 4:53 pm

    […] Advanced Content Tracking with Google Analytics: Part 2, Analytics Talk […]

    Reply
  4. SearchCap: The Day In Search, February 24, 2012 | Market 7 says:
    February 24, 2012 at 9:25 pm

    […] Advanced Content Tracking with Google Analytics: Part 2, Analytics Talk […]

    Reply
  5. All About People Search » Blog Archive » SearchCap: The Day In Search, February 24, 2012 says:
    February 27, 2012 at 11:31 am

    […] Advanced Content Tracking with Google Analytics: Part 2, Analytics Talk […]

    Reply
  6. Modified Bounce Rate in Google Analytics | randyzwitch.com says:
    May 11, 2012 at 5:58 am

    […] the standard Google Analytics metrics would change if I implemented this code and how my changes compared to Justin’s.  I’ve always suspected my bounce rate in the 80-90% range didn’t really represent […]

    Reply
  7. Compreender cálculos de tempo do Google Analytics says:
    May 14, 2012 at 10:50 am

    […] foi o motivo por trás das mensagens de conteúdo avançada de rastreamento Parte 1 e Parte avançada de rastreamento de conteúdo 2 .Como Comprimento visita é calculadoVisite comprimento também usa batidas de noivado para obter […]

    Reply
  8. Rethinking Blog Metrics - Analytics Talk says:
    July 30, 2012 at 5:50 pm

    […] Advanced Content Tracking with Google Analytics: Part 2 […]

    Reply
  9. Increase Customer Retention with Relevant Ideas and Education | Geonexus says:
    November 19, 2012 at 1:15 pm

    […] You can use Justin Cutroni’s advanced content tracking with Google Analytics (Part 1 and Part 2) to find […]

    Reply
  10. The Ultimate Resource for Google Analytics | Creating For U says:
    March 8, 2013 at 4:26 am

    […] “Advanced Content Tracking with Google Analytics: Part 2” – Analytics Talk […]

    Reply
  11. ¿Por dónde empezamos con Google Analytics? II | webylitics says:
    March 20, 2013 at 7:02 am

    […] “Advanced Content Tracking with Google Analytics: Part 2” – Analytics Talk. Seguimiento de los segmentos avanzados parte II […]

    Reply
  12. Confluence: Amazee Metrics says:
    April 25, 2013 at 8:56 am

    Google Analytics Snippets…

    This section contain google analytics tracking cod…

    Reply
  13. Das Klickvieh von fefe und andere Zahlen - pop64.de says:
    May 3, 2013 at 5:06 am

    […] normales, nicht angepasstes Google Analytics. Das einzige fancy-Ding, dass hier läuft ist das da: Advanced Content Tracking with Google Analytics: Part 2. damit kann ich in den Ereignissen sehen, wie weit Besucher […]

    Reply
  14. The Ultimate Resource for Google Analytics | HostGator Web Hosting Blog | Gator Crossing says:
    December 19, 2013 at 12:58 pm

    […] “Advanced Content Tracking with Google Analytics: Part 2” – Analytics Talk […]

    Reply
  15. The Ultimate Resource for Google Analytics | Creatively Twisted Designs says:
    February 14, 2014 at 3:43 pm

    […] “Advanced Content Tracking with Google Analytics: Part 2” – Analytics Talk […]

    Reply
  16. Cuatro formas de controlar la tasa de reboteLa Métrica - La Métrica says:
    February 21, 2014 at 9:23 am

    […] Advanced Content Tracking with Google Analytics: Part 2 […]

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

My Books

Google Analytics by Justin Cutroni
Learn More on Amazon.com

Performance Marketing co-authored by Justin Cutroni
Learn More on Amazon.com

Recent Posts

  • Understanding the Google Analytics Cohort Report
  • Using Offline and Online data to drive Google Analytics Remarketing
  • Understanding Cross Device Measurement and the User-ID
  • Universal Analytics: Now out of beta!
  • Advanced Content Tracking with Universal Analytics

Categories

  • About Google Analytics (25)
  • Analysis (52)
  • Analytics Strategy (3)
  • Campaign Tracking (14)
  • Ecommerce (8)
  • Event Tracking (10)
  • Remarketing (2)
  • Reporting (10)
  • Resources (7)
  • Tag Management (5)
  • Tips (25)
  • Tracking (52)
  • Uncategorized (64)
  • Universal Analytics (9)
  • Web Analytics (15)

Copyright © 2023 ·News Pro Theme · Genesis Framework by StudioPress · WordPress