An Oracle blog about Openomics

  • sun
    November 7, 2008

Getting serious about web analytics - Part 1

Guest Author

I have been quite active on this blog this week although most of my work must have gone unnoticed to you the readers. It's that I have been working on improving the default templates I started from (Metro theme for Apache Roller) and the initial web analytics tool I got going with (Google Analytics). The more I dive into web analytics, the more I realize blogging is going to be a journey for me. I am sharing here today where I'm at on the learning curve  --I wish I had run into this blog entry before!-- through concrete examples as applied to the Openomics blog.

On-site Traffic

I use Google Analytics (GA) as mentionned above. Installation is straightforward, I copy-paste'd the Javascript provided by GA to the bottom of my Weblog and permalink Roller templates, that seemed to capture all of possible (direct) views of Openomics. Readings of the Openomics posts through the ISVe Planet (an aggregation blog for our group at Sun) are not captured though. I experimented with including the GA Javascript inside each blog entry, but it has its own downside (attributing any ISVe Planet view to Openomics), so I didn't pursue down that path.

Once the templates are instrumented, any inbound and internal navigation on the blog's HTML pages is captured. Outbound navigation and navigation to non-HTML pages is not. You can track such clicks by adding an onClick action on these links as explained here. I have instrumented all of the download and subscribe links that you can see in the sidebar on your right with onClick actions. Check it out by yourself by viewing the source code of this page.

It takes about 24 hours for the GA dashboard to start being populated with data. Then it will print plenty of tables and graphs about visitors, traffic sources, content. The report is updated once a day. Here's a snapshot of the Site Usage for Openomics since its launch 2 weeks ago.


Oddly enough, the most valuable traffic to your blog is not captured by a standard web analytics tools like Google Analytics. I am talking about the subscribers, i.e. your regular readers. In the Web 2.0 era, people navigate on the web to find new interesting sources of information but, once found, they typically subscribe to the site's feed and may, from then on, only read your content through the XML-based feed. No HTML page, no Javascript, no GA tracking.

I have started to use FeedBurner to track subscribers. As of today only, so no pretty snapshot for now, the 24-hour rule applies here too. Using FeedBurner means using a syndicated feed on feedburner.com instead of your default on-site feed. That is, after I signed up on FeedBurner and registered Openomics, I was given the feed URL http://feeds.feedburner.com/openomics that I was supposed to copy-n-paste'd in lieu of http://blogs.sun.com/openomics/feed/entries/atom.

Nowhere in my Roller template I could find the above Atom feed though. It is because the standard Roller templates use macros to generate the lists of available feeds, such as #showAtomFeedsList($model.weblog). I replaced this macro inside the sidebar template by the following code:

    <⁞ul class="rFeeds">
<li><a href="http://feeds.feedburner.com/openomics?format=xml">All</a></li>
<li><a href="http://feeds.feedburner.com/openomics_comments?format=xml">Comments</a></li>

I had to add the format=xml parameter to skip a fancy landing page at FeedBurner which would have been redundant with the subscribe buttons that I provided, in the sidebar on your right, for the more popular online feed readers. I also had to register the Comments feed for Openomics on FeedBurner to get it in.

The #showAutodiscoveryLinks() macro also prints the default on-site feeds to the blog's HTML pages. I simply deleted it from the headutil template for now.

To be continued...

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.