Simple Blog articles reading tracking using GA and GTM

Blog articles reading tracking using GA and GTM

Do you have a blog on your website? I hope you do. You may write fresh articles every week, hire a copywriter and promote your publications using Facebook. Buе in a few days after the new article was published, you check your Google Analytics report and see such numbers for the article page:

  • Bounce rate: 100%;
  • Average session duration: 0.00 sec
Google Analtycs session duration

Have you ever been in a situation like that?

The first number can be easily explained, especially when the traffic is not that high (as in the picture above): users might read the article and leave, so this was the only page visited during the user’s session. That’s the reason for the 100% bounce rate.

The story behind the second number is not that clear: there is no way that all the users view the page and leave immediately, after 0 seconds. Or is there? Or what if you were attacked by bots?

My answer is that Google Analytics tracks time between the first hit (in our case, it’s the very first pageview) and the last one (pageview, event, transaction, etc). But when we deal with only one hit (one pageview), it’s exactly when we see Average Session Duration equals 0 and the same number for Average Time on Page.

But what does it have to do with blog reading tracking?

Blog Reading Tracking

Or Scroll Depth tracking, which is more general. No matter how you name it, it gives you the opportunity to see how many people scrolled 10%, 20%,… 50%,… 100% of the certain page. Especially, if you have a blog, you definitely can make the most of this feature.

With that, you can see if you’re successful in keeping people engaged in your blog: which percent of users reads the whole article (100%), how many people close it in the middle (50-60%) or how many of them don’t go further than the first paragraph (10,20,30% — depends on the length of the article, the height of the header and the image at the beginning of the article). If you feel like starting to track your blog reading, Google Analytics events will help you.

Every time when the user scrolls the page to, for example, 10%, the hit will be sent to Google Analytics. Also, it will help you to fix the Average Session Duration problem because with blog tracking implemented Google Analytics will be more precise in time tracking. But remember: with the low traffic numbers still won’t be absolutely accurate.

How to set up Scroll Depth Tracking using Google Tag Manager?

Set up the variables

  1. Open “Variables” menu in Google Tag Manager;
  2. Find “Built-in variables” section;
  3. Click “Configure” and enable the variable {{Scroll Depth Threshold}}.

Set up the trigger

  1. Click “New” in “Triggers” menu and set a name for a new trigger. Then, choose “Scroll Depth” as a “Trigger Type”;
  2. Enable “Vertical Scroll Depths”;
  3. Choose “Percentages” or “Pixels”. In the case with websites with responsive design (when the width and height of the images and text can vary depending on the type of device used), I don’t recommend choosing “Pixels”;
  4. After choosing “Percentages”, type in the comma-separated list of percentages. When the user will scroll to every percentage you set, the event will be sent to Google Analytics. For example, if you’ve typed in “10,20,30,40,50,60,70,80,90,100”, event will be sent every 10% scrolled.
  5. In “This trigger fires on” field choose “All Pages” or particular pages. For example, I’m interested only in blog pages, so I use condition: {{Page Path}} starts with /blog/
Google Tag Manger trigger configuration

Set up the tag

  1. In “Tags” menu click “New” and set a name for a new tag;
  2. Choose “Google Analytics – Universal Analytics” as “Tag type”;
  3. Choose Event as “Track type”;
  4. Category: I name it “Blog – Scroll Depth Tracking”
  5. Action: “{{Scroll Depth Threshold}}%”. This is our built-in variable which was enabled in the first step. The percentage mark is for you to see in your Google Analytics reports the unit of measure as well;
  6. Label: I use {{Page Path}}, you can also use {{Page Title}}: this is for you to see in Google Analytics report from which page the data was sent;
  7. Non-Interaction hit: I choose False (by default, these events will be counted by Google Analytics while calculating Bounce Rate for the page), but it’s not the only right option. I’d recommend you to read this article from Google documentation and decide whether use True or False.
  8. Choose Google Analytics Setting Variable or set a new one.
  9. “Attach” the trigger to the tag and save.
Google Tag Manger tag configuration

How do the Scroll Depth Tracking data look like in Google Analytics interface?

This is an example for all blog pages but the settings at the top of the interface will let you choose the particular page (Event label) and filter out the events only for this page. The result is in the screenshot below:
Google Analytics blog reading tracking data


As you can see, it’s possible to find out the degree of your visitors’ engagement. But why even bother about this whole blog engagement thing?

  1. To understand which articles and topics are the most popular among your readers;
  2. To define the effectiveness of your traffic sources. For example, you’ve written an article and decided to promote it both on Facebook and with the help of some blogger. If you see that the majority of the audience from Facebook reads the whole article and those who came from blogger scroll 50% maximum, it means that the second channel wasn’t the best choice. When it comes to advertising budgets, all of us should be visionaries.
  3. To improve Average Time on the page and Average Session Duration tracking, especially for single-page visits. You still can’t avoid this kind of visits, I do it myself: saw the link, clicked, read (maybe even saved for later) and left.

If you want to find out how efficient your efforts with a blog are and, based on the results, optimize your content marketing strategy, set up blog reading tracking or hire a specialist to do it for you.


Leave a Reply

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