Monday Nov 10, 2008

Getting serious about web analytics - Part 2

Continued from Part 1.

As a convenience to the readers, besides the generic Atom feed, I have added, to the sidebar on your right, subscribe buttons for popular online feed readers. Surely everyone has a different opinion on what the most popular ones are, so I simply started from the ones provided on our CEO's blog --Jonathan must have an online-marketing specialist working out these details for him-- and added a couple I had heard of. My apologies in advance in your own favorite is not on there, but drop me a note and I will add it!

To add such button, many of these sites provide you with an online tool that generates the HTML code for you to insert, based on some preferences (e.g. button size), such as with Google. You should be able to find these pages by following some kind of Tools link at the bottom of the homepages or googling on the "subscribe button for xxx" or "subscribe badge for xxx" keywords.

Off-Site Buzz

There is a third kind of audience to a blog's content, besides on-site traffic and subscribers. It is the off-site viewing of the content as picked up by social bookmarking sites like, Digg, etc. I do not know at this point whether it is possible, and how, to track the many off-site audiences in a centralized and/or automated way. What I can do though is to provide courtesy bookmark buttons directly in the blog posts and apply the onClick trick to them so I can count how many times visitors have bookmarked them and thus have some idea about the off-site buzz of individual posts.

Creating these buttons was fairly similar to creating the subscribe buttons for the online feed readers. With three exceptions. First, some sites (like Yahoo! Buzz) give you Javascript code instead of plain HTML which may not be practical if you intended to add your own Javascript --in my case, I'm instrumenting the outbound link with an onClick action-- so I had to decode the Javascript to locate the image and subscribe URLs, and reconstruct HTML code. Second, I needed very small icons (16x16) because these bookmark buttons would follow each blog post. I used the following trick if a site was not offering such an icon; I grabbed the website's favicon.ico which you typically access at http://hostname/favicon.ico. Third, the bookmark URL typically requires as parameters the permalink and title of the blog post. And they change for every blog post! I use the Roller variables $url.entry($entry.anchor) and $entry.title which you URL-encode through $utils.encode(). Finally, this is the code that I added to the bottom of the entry-footer in my _day Roller template:

           | <a href="$url.entry($entry.anchor)&amp;title=$utils.encode($entry.title)" onClick="javascript: pageTracker._trackPageview('/social/delicious');" title="post to"><img src="" width=16 height=16 /></a>
           | <a href=";url=$url.entry($entry.anchor)&amp;title=$utils.encode($entry.title)" onClick="javascript: pageTracker._trackPageview('/social/digg');" title="Digg it!"><img src="" /></a>
           | <a href="$url.entry($entry.anchor)&amp;title=$utils.encode($entry.title)" onClick="javascript: pageTracker._trackPageview('/social/slashdot');" title="submit to Slashdot"><img src="" width=16 height=16 /></a>
           | <a href="$url.entry($entry.anchor)&amp;title=$utils.encode($entry.title)" onClick="javascript: pageTracker._trackPageview('/social/reddit');" title="submit to reddit"><img src="" alt="reddit" /></a>
           | <a href="$url.entry($entry.anchor)&amp;title=$utils.encode($entry.title)" onClick="javascript: pageTracker._trackPageview('/social/comments');" title="track in co.mments"><img src="" /></a>
           | <a href="$url.entry($entry.anchor)&amp;title=$utils.encode($entry.title)" onClick="javascript: pageTracker._trackPageview('/social/stumbleupon');" title="submit to StumbleUpon"><img src="" alt="stumbleupon" /></a>
           | <a href="$url.entry($entry.anchor)&amp;t=$utils.encode($entry.title)" onClick="javascript: pageTracker._trackPageview('/social/furl');" title="store in Furl"><img src="" /></a>
           | <a href="$url.entry($entry.anchor)&amp;title=$utils.encode($entry.title)" onClick="javascript: pageTracker._trackPageview('/social/magnolia');" title="add to Ma.gnolia"><img src="" /></a>
           | <a href="$url.entry($entry.anchor)" onClick="javascript: pageTracker._trackPageview('/social/yahoobuzz');" title="vote on Yahoo!Buzz"><img src="" /></a>
           | <a href="$url.entry($entry.anchor)&amp;t=$utils.encode($entry.title)" onClick="javascript: pageTracker._trackPageview('/social/facebook');" title="share on Facebook"><img src="" /></a>
           | <a href=";url=$url.entry($entry.anchor)&amp;title=$utils.encode($entry.title)" onClick="javascript: pageTracker._trackPageview('/social/linkedin');" title="share on LinkedIn"><img src="" /></a>

Among the off-site buzz the blog, one is of particular interest. It is the references other bloggers make to your blog, giving you visibility/access to their own audience. I use Technorati to track blog citations a.k.a. authority. For it, I had to register on the site and claim Openomics as my blog. Of course, I added a Technorati button to make it visible that this blog was claimed there and give a chance to people to add it as a favorite blog of theirs. Here's a snapshot of how Openomics stands on Technorati today. There is a long way to go to celebrity...

Concluding Remarks

Am I getting too serious about web analytics? On one hand, I am guessing/hoping that, as I learn more, I will settle on a more lightweight analytics infrastructure --running analytics from 3+ sites and tracking down to every single link do seem like an overkill. On the other hand, I cannot imagine blogging without doing a minimum of tracking. Many of us at ISV Engineering blog as an extension to our technology-adoption function at Sun, so we must seek to know how successful we are at conveying the value proposition of Sun technologies and at harnessing the Web to drive technology adoption. That is, in Google Analytics terms, how effective the blog is in the goal conversion of OpenSolaris downloads e.g. I'm lucky I have an onClick action on that link! ;-)

Friday Nov 07, 2008

Getting serious about web analytics - Part 1

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 instead of your default on-site feed. That is, after I signed up on FeedBurner and registered Openomics, I was given the feed URL that I was supposed to copy-n-paste'd in lieu of

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="">All</a></li>
    <li><a href="">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...

Wednesday Oct 22, 2008

What's in a name? Part 2

Remember when we thought Yahoo was a funny-sounding name? We were back then so accustomed to businesses named after their founder (Campbell, Kellog's, Heinz), country of origin (Air China, Air India, Korean Air) or core product (Fiat, Seat, VW). Today, coming up with a catchy, original yet descriptive name has become the norm of any enterprise; in the late 90's, when the French conglomerate Compagnie Générale des Eaux went through a series of de-mergers, the spin-off companies were named Vivendi (entertainment), Veolia (utilities), Vinci (construction).

So... all I needed then was a good name. Right. Easier said then done. Unconsciously, my engineer's mind went on a very tangible (there went my chance to come up with truely cool names like Kazaa, Skype or Joost) approach, listing the words that matched my theme and playing with them. I listed : technology, adoption, economics, open, innovation, business, value, etc. Rigth away, the portmanteau word "Technomics" for technology economics came to my mind; probably a reminiscence of past party time and/or some advertizing for electronic music.

Technomics sounded right but I decided to put it to the (Google) test. How original is that name? Does it have some connotations already? Bad ones? It turned out that there were quite a few businesses named Technomics, consulting firms mostly. I found also the book/term Techonomics associated to the economies of scale brought by technology. Finally not quite right for my theme; I'm saying innovate to create value, not consolidate to reduce cost.

So I went back to my list of terms and decided to take an even more scientific approach. Ouch. I used Google Trends to compare their popularity in web searches. See here. I concluded that the terms business, value and technology were over-rated and thus too generic to use. In parallel, I went to Wikipedia to learn more about the terms innovation and economics. Wikipedia has this great concept of disambiguation which helps you see on a single page all the different meanings and connotations that a term may have. Following links, I ended up on the page for Open Innovation.

I was surprised to run into this term for the first time only now, while open innovation is what Sun is all about (Innovate. Share. Grow.) and probably my #1 reason why Sun is a great place to work. The more I learn, the less I know. It's that Sun executives used the term Open Standards in the 90's and Open Source nowadays. Eventually, Technomics became Openomics, for open innovation economics. Maybe it should have been Opennomics with 2 n's, what do you think?

Monday Oct 20, 2008

What's in a name? Part 1

Content is king, they say, but what I had on my mind when starting this first blog was instead a solid theme and a good name. The theme, frankly, I did not pick, rather it picked me. At Sun Microsystems, I work at Market Development ISV Engineering where, among other things, we evangelize and support the adoption of Sun technologies by our application partners, inc. ISV, ASP, OEM, CSI, VAR, OSS (\*). This is a very strategic function for a company like Sun which is betting its future on open innovation; a good technology eventually gets noticed and adopted, but forcing the odds and shortening the lifecycle of technology adoption does help the company's finances a great deal.

Outside of Sun Microsystems, I have some personal interest in business valuation and occasionally work as a teaching assistant for Corporate Finance courses at the University of Toulouse. Research has been very active in demonstrating that investments in R&D and advertising are positively related to a firm's value; see here for a literature review. Among the prolific technical blogs from my fellow employees, it became obvious that I should look at my work through the prism of value creation if I was to start a blog. There was my theme! from "how partners can monetize Sun's R&D", with real-life examples from our day-to-day lives at Market Development ISV Engineering, to the global matter of "how innovation drives value".

I somehow convinced myself that this theme was good enough, in the sense that it may have an original proposition, an ample audience and a sustainable source of content... the 100's projects Sun's Market Development engineers deliver each year on a wide portfolio of technologies, inc. Java, MySQL, OpenSolaris, OpenSparc, xVM Virtualization! All I needed then was to find a good name.

(\*) Independent Software Vendor (ISV), Application Service Provider (ASP), Original Equipment Manufacturer (OEM), Corporate System Integrator (CSI), Value-Added Reseller (VAR), Open Source Software (OSS)


How open innovation and technology adoption translates to business value, with stories from our developer support work at Oracle's ISV Engineering.



« July 2016