We have an online newsletter platform which consists of multiple interactive 'pages'.

Readers read the newsletter through a web browser, and Google Analytics is installed in the viewer as our analytics backend.

The viewer is a single page app (SPA) and transitions between newsletter pages are done by Javascript.

We use the 'Average time on page' metric in Google Analytics to give our publishers an idea of how long their newsletter is being read for. It was typically around the 4 - 6 minute mark, which would be correct for the audience our publishers push their newsletters out to.

We then introduced per-page stats, where publishers can get an idea of how many 'views' each of the pages in their newsletter is getting. We use Google Analytics event tracking for this.

We set the event category to Page, event action to view, and the event label to the page ID from the database. Every time a reader clicks through to a page, it sends an event to Google Analytics. Then when the publisher wants to get their stats, our app queries Google Analytics to get the total number of Page views for each page ID.

The problem we have is after we introduced this event tracking, our average time on page has skyrocketed across all newsletters. It's gone from about 4 - 6 minutes to upwards of 1 hour.

I'm not really sure where to start fixing this issue, so I'm hoping someone will have some ideas.


2 Answers 2


'Average time on page' is quite a misleading metric by default. GA infers time on page by comparing the a hit time stamp with the following page view.

For the final page view in a session, the time on page will always be 0 seconds because there is no consecutive page view time to compare with. GA excludes these supposed '0 second page views' (exits) when calculating the average time on page.

My guess is that your 'view' events are not 'non-interaction ' events - so google treats them like page views, factoring them into time on page calculations. As many users will leave your single page app after browsing a publication, I would suggest that the 'view ' events are actually improving the accuracy of your time on page metric by showing which page views actually lasted 0 seconds, and which involved interactions, I.e 'view' events.

If for some reason you want to return to the old page view duration tracking, start tracking the events as 'non interaction' events ( this is a tick box in Google Tag Manager, I haven't done it directly via GA, so you'll have to search for instructions).


I am guessing that when your app is collating the information, it might be adding up event data across sessions, and hence the longer than expected time.

If you are summing up the event data across sessions for users, perhaps you need to define the metric you are reporting to your user.

Also, if I keep the app in the background, does GA report session data from that as well? Does your calculation include such data as well?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.