Firing on timeout is not the ideal way as the general pattern tells us people open multiple tabs which they may or may not read.
A better way is to trigger events based on scroll, that way you can better tell if there's been actual engagement on the page. I personally use this jquery based scroll tracking script for GA by Rob. http://robflaherty.github.io/jquery-scrolldepth/
> Firing on timeout is not the ideal way as the general pattern tells us people open multiple tabs which they may or may not read.
This is what I was thinking. I do this all the time. However, I have to question your statement all the same. Yes, this is something I do. But, I'm a software developer. Assuming that the general population of internet users follows my personal usage patterns would seem to be a bad idea. Being a web analyst, are you saying that you've conducted studies verifying this pattern?
Regardless, triggering based on scroll seems like a sounder approach. Thanks for the pointer.
This is a better approach, but I tend to open a page, see if it's an interesting topic in a few seconds, scroll to the bottom so that any images that don't load until you scroll to them get loaded and comments get loaded (for instance Disqus comments). After that I go back to HN and look for other interesting posts etc. Once I have more time or no internet connection I read the page.
So I think doing something like checking if the tab/page is active (http://stackoverflow.com/a/1760268/2227792) would work more accurate, though only when an internet connection is present.
However, if the post was really interesting I might look for what other posts the author has made or for an about page about the author. I'm not sure however if there is a timeout after which preforming an other action is seen as a "bounce".
It makes me wonder how relevant a bounce rate is on something like a blog-post, I think refer-less visits are more interesting as they come from users that have bookmarked your post and visit it again at a later moment.
A better way is to trigger events based on scroll, that way you can better tell if there's been actual engagement on the page. I personally use this jquery based scroll tracking script for GA by Rob. http://robflaherty.github.io/jquery-scrolldepth/