Monday was a doozy. But good things have come out of it.

When we added pinging to our tracking code back in April, a few of you raised concerns that the new way we calculate time-on-site values may be misleading, since lots of people use tabbed browsing and open pages in the background, not to view them until minutes or hours or sometimes days later. This has its consequences on our end too: a user who opens a page in the background and isn’t actually viewing the page, they are still sending us “pings” for 10 minutes (by default). This basically means for someone not actually using your site, they could still send ~15 overall “hits” to our tracking servers during that time. Big waste of resources on our end.

What happened on Monday was unrelated to pinging, but the pinging does add a lot of network activity to our servers. It accounts for just over 50% of our overall network requests. So when our load balancers crashed on Monday due to overwhelming network activity (theory is that it was related to Cyber Monday craziness), disabling pinging in our tracking code helped us calm the storm quickly. Pinging has been disabled since approximately 12pm PST on Monday, which is why your bounce rate and your time-on-site values since then have been off kilter.

We really want to alleviate the load these unnecessary pings put on us, and we want to make your analytics more meaningful too. So we took some suggestions you gave us back in April and integrated them into our new tracking code, which was just deployed about 20 minutes ago.

What changed

Now when a visitor opens a page in a background tab or window, the page view is not logged and the pinging does not start until that page is actually being viewed by the person. If they open it in the foreground, tracking will work as it always has. This change only affects people opening background tabs. We think this will provide much more meaningful data to you, because now we’ll only be logging the visit once they start using your web site.

The only downside to this is that if you are comparing Clicky’s visitor log to that of another service you may also using on your site, some of the arrival times for your visitors won’t match up. For example, IP address may show up in Clicky as arriving at your site at 1:30pm, whereas your other service may show them as arriving at 1:25 instead. When you see something like this, the reason will be because that visitor initially opened your page in a background tab at 1:25pm, but didn’t start viewing/using the page until 1:30pm.

Pretend that when this person started using your site at 1:30pm, they looked around at a few pages and left at 1:35. Would you rather we report that they were there for 10 minutes from 1:25 to 1:35 (the old way), when they were really only there and using your site for the last 5 minutes of that visit (the new way)? The new way more accurately reflects this visitor’s actual “session” on your site, and hence is a better way to look at things in our opinion.

This is what “analytics” is all about – “analyzing” your data to make it more meaningful. Like how our bounce rate is different than other services, but it’s better because it’s different. This is another one of those things. We celebrate our differences as the purple cow of analytics, and hope that you do too.

Update: No action is required on your part. The tracking code that your site links to, hosted on our servers, has been updated, so everyone gets it automatically.

Also, after this being live for most of today, the difference on our end is quite noticeable. The load on our load balancers has dropped by almost 15%, and the load on the tracking servers behind them has dropped more than 30%. Yay!

Update 2: Although it worked fine in testing, there is some strange bug with Safari that was causing this browser not to be tracked 100% of the time. Based on our numbers it looks like about 1/3 of Safari visitors weren’t getting tracked. We have updated the code so that this new method does not apply to Safari anymore. Since Opera doesn’t support document.hasFocus() and Chrome’s implementation is wonky (it always returns “true”), this means that basically only Firefox 3+ and IE7+ support the new method. This is more than 2/3 of internet visitors though.

Update 3 (Dec. 8): We have reverted to the old version of our tracking code. While most users/sites experienced no problems, a few experienced drastic differences in visitors logged.