Archive

Archive for August, 2009

Hope Springs Eternal

August 22nd, 2009 No comments

Every day thousands of people leave behind everything they know, and travel, to someplace else. The reasons behind each move are certainly different, and I can barely talk authoritatively about my own move – but I do know that when you’re at the other end, at the beginning, you look to those that have crossed the bridge before you. You hope to see them in a place where you’d want to see yourself. Here’s the list of people, that folks at the beginning of their journey, are probably looking towards right now….

Hope Springs Eternal

Hope Springs Eternal

Hope springs eternal in the human breast;
Man never Is, but always To be blest:
The soul, uneasy and confin’d from home,
Rests and expatiates in a life to come.

-Alexander Pope,
An Essay on Man, Epistle I, 1733

Categories: Technology Tags:

Social Media, and your bottom line

August 20th, 2009 No comments

These days, many companies are attempting to get involved in Social Media outlets (TwitFaceSpace, as one of my customers refers to it).

The issue with getting involved in the “social” space (blogs, wiki’s social networks) is the commitment to keeping it up. Many of us as individuals have started blogs, but realized quickly that the ability to keep it going requires tremendous commitment, with little (or no) discernible ROI for a long time.

However is that true for corporations as well? Is there a direct connection between being engaged in the Social Media space, and your bottom line? Seems intuitive that if you do it right (that’s the catch), and your users are engaging with you in these media, then they will also engage with your products, or at least feel an increased affinity to you and your products, that might not have been there before.

The EngagementDb intends on putting that question to rest. The EngagementDb attempts to create a co-relation between user interaction and engagement in social spaces, and the companies bottom line.

It studied several distinct channels in an attempt to determine the extent of user engagement, and interaction. It then proceeded to score each of the 100 most valuable brands as identified by the 2008 BusinessWeek/Interbrand Best Global Brands ranking.

Top 100 Brands

Top 100 Brands (alright, only some of them!)

The top 10 ENGAGEMENTdb brands with their scores are:

  1. Starbucks (127)
  2. Dell (123)
  3. eBay (115)
  4. Google (105)
  5. Microsoft (103)
  6. Thomson Reuters (101)
  7. Nike (100)
  8. Amazon (88)
  9. SAP (86)
  10. Tie – Yahoo!/Intel (85)

The EngagementDb classifies organizations into 4 categories based on how, and where they choose to interact with their users.

  • Mavens – brands that have made social media a core part of their go-to-market strategies and are very active in many channels; usually driven by dedicated teams assisted by company-wide awareness and participation.
  • Butterflies — brands that recognize the need to be in many channels but have only met with real success in a subset of their activities; these companies are usually spread a bit too thin.
  • Selectives – brands that focus on just a few channels and excel in those; these efforts are usually initiated by an internal evangelist.
  • Wallflowers — brands present in only a few channels and very lightly in those; these brands are sitting on the sidelines and are wary of the risks. They are still trying to figure out the best next steps and investments in social media.

Now, you want to put it to the test don’t you? Well you can – right away. You can even attempt to rank your brand and see where you fit into that ranking. Head on over to the EngagementDb.

P.S. : As an interesting bit of insight – the EngagementDb – a piece of media about social spaces is currently drawing most of its traffic from Arrington (TechCrunch) and Twitter. I have a thought rattling about in my head about the graph of traffic sources for new content. Will try to write a post regarding that later tonight.

Ruby Regular Expressions

August 18th, 2009 No comments

For those of you that are involved in scraping via Ruby etc. that require the use of RegEx’s a great site that will be useful is Rubular.

One of the little tricks I discovered today was the use of the ?: in the regular expression.

I’m sure this is old news to most people, but since it was useful to me, maybe it is of use to someone else.

In Ruby, lets say I’m scraping a page, using the scan operator, and if there’s a <H2> I want to grab it, and if there’s an <H3> I want to grab it, and I want to ignore anything inside a <p>. Well, I can make the H2 optional, by placing it in brackets, and throwing a ? after it like so

/<H2>.*<\/H2>/mi

However, now I have the problem of cleaning the gathered data of the H2′s etc. An easier way is this -

/(?:<h2(.*?)<\/h2>)?(?:<H3(.*?)<\/H3>)?(?:<p.*?>)?/mi
Categories: Technology Tags: , ,

Analytics vs Analysis

August 18th, 2009 No comments

A gentleman whom I’ve learnt a lot from over the last few years, once mentioned to me that he wanted to write a book, called the Business of Measurement. Since he hasn’t written it yet, I will humbly provide this as a potential preview to what the book might be about…

Most sites have analytics so they can track whatever statistics they consider important.

Most times, this falls into 3 categories :

  • Page Views
  • Visits
  • [Unique] Visitors

If you’ve dealt with me ever you are aware of my views on the flaws inherent to the definitions of the above. For those of you lucky enough to have never had to deal with me, here’s a quick definition of each

Visitors Overview - Google Analytics_1250555783249

Google Analytics Dashboard

Page Views : :

Let’s assume that you came to this blog, via a search engine, and landed on this particular post (http://dragonsbehere.com/weblog/e-commerce-platform/analytics-vs-analysis). In my Analytics solution now this page will record an increased Page View count of 1.

If you were to reload this page, that number would go up again.

If you were to find my writing fascinating, and go to other posts, those pages would also incur an increased Page View Count.

Page View has become a slightly muddy issue with the rise of AJAX. What exactly counts as a Page View, when sections of the page change without the page reloading? What percentage of the page has to change before it is a new Page View? What about just counting the elements of the page?

There’s also the issue of Javascript vs Cookies vs Sessions etc. What happens if someone disables Javascript, or third-party cookies? Some of these issues were brought up at a panel a while ago (a long while ago). You can read the answers here.

Visits ::

You’re a visitor.  You opening this page on your computer constitutes a visit to my weblog (for which I thank you). Visits and Page Views usually have a 1 to many relationship – i.e. for every visit, at least one page view is recorded, and possibly more (see above regarding my fascinating writing skills). It is impossible to have more Page Views than Visits.

Obviously Visits suffers from the same problems as Page Views (Ajax, Javascript & cookies disabled) etc. It also has its own set of new issues – what constitutes a visit? What happens, if I leave the page open for session.length + 1 minute? Maybe we could get around that with an infinite session, but then, what is that session based on? Cookies? What if they are disabled, or deleted? How about storing session data on the server? (Note, for the “Shared Nothing” purists, I support your views, just making a point. Also I think it is feasible to do sessions via Db – even in a shared nothing scenario.)

Regardless – as you can see, all approaches have a positive and a negative side to them

[Unique] Visitors::

Visitors, fairly self-explanatory – for example, you’re a visitor to my blog.  Unique Visitors is meant to distinguish between people making multiple visits to the site, and just the number of people visiting the site. Visitors should have a 1 to many relationship with Visits. i.e. for every Visitor, we should record at least one visit. Similarly, Unique Visitors should have a 1 to many relationship with Visitors. You can’t have more Unique Visitors than Visitors. Similarly you can’t have more Visitors than Visits.

Visitors have their own share of issues – what happens if you visit the website from home, and then again from work? What happens if you access it from a public computer (such as a library)? What happens if you can’t store cookie (because you work for the Government) and all visits from your office (lets say – the Pentagon for example) come from a single IP address? Should all those visits be classified as a single visit?

Now, these are just the start of the Analytics part of the discussion. We still have to get to sources of traffic, pathing, landing pages, bounce rates, goal achievements etc. and we will – in future blog posts.

More importantly, what is the point of all these statistics? How does it matter how many people visited your website? Or how many Page Views you generated?

Now, that’s the analysis portion. Sure you can get a metric ton of information on what is happening on your website. Yes, there are plenty of flaws in the gathering of data inherent to the fact that the Internet is a fault tolerant system, and analytics is traditionally not.

What you do with this data is where the secret sauce lies. For example, Page Views could indicate what pages are popular, which in this case (a blog) indicates what content my audience is interested in, and what it isn’t.

Maybe I want to cater to what my audience is interested in, or maybe it indicates that I need to go seek out the audience that would appreciate the rest of my content as well. For example, in my case, the Technology posts get much higher traffic than the E-Commerce posts.

Regardless, analytics without analysis is almost pointless. I say almost because the mere act of measuring something, can cause us to change our behaviors to improve it. Which is the very point of this post. Make sure you are measuring what you want to improve. Make sure your analytical output is closely tied to your business goals.

Let’s take a rather simplistic example :

You run an e-commerce store that experiences the following basic traffic patterns :

  • Visitors – 100 /day
  • Visits – 200 / day (or two Visits per Visitor)
  • Page Views – 400 /day (or two PV per Visit, or four PV per Visitor)

The website experiences a conversion rate of 1% based on Visitors (so 1 out of every 100 Visitors will engage in some action that the business considers worthwhile.)

Now, lets say that the business is measuring Page Views for instance, and decides to increase that number, hoping for it to all trickle downstream – leading to an increased bottom line. Well, there’s a number of ways to do this – let’s consider two of them that I’ve seen used in multiple places :

Both these strategies should increase Page Views. However, the trickle down effect of increasing Page Views for an act of conversion is debatable. Will the bought traffic actually convert at the same rate as the previous (possibly organic) traffic was converting? Maybe, if its bought from a fantastically targeted program. Changing your UI to require more Page Views seems like it would definitely hurt your conversion rate – but in some cases (usually involving eyeballs on ad’s) it might help your bottom line.

As you can tell, there is no silver bullet for the analysis aspect. I can only suggest what my mentor told me. Understand the bottom line. Once it is known what the business measures itself against, whether that’s sales, or profitability, or user happiness, or some combination of those : once that can be succinctly explained, then you know what to measure.

You can’t improve what you can’t measure. Corollary : measuring the ‘wrong thing’, will lead to improving the wrong thing, possibly at the cost of the ‘right thing’.

Making Soap Requests with Ruby (on Rails even)

August 17th, 2009 2 comments

If you want to interact with another web-service on the inter-webs as we know it, sooner or later you will find the need to make a SOAP call using Ruby.

Today I ran into such a need.

I looked at a few things already out there that could do it, but for the most part, it was overkill.

So I tried to figure out how to roll my own, and this is what I found ::

Read more…

Categories: Technology Tags: , ,

gem install mysql

August 8th, 2009 No comments

If you attempt to
gem install mysql
and run into errors that look like this…

Read more…

Categories: Technology Tags: , , ,

Be Remarkable.

August 6th, 2009 No comments

Seth Godin talks about a number of things here that strike a chord (note, this was at the Business of Software Conference in 2008).

Some quick notes :

  • Be Remarkable.
  • If you’re going to interrupt everybody with an ad, it better be a product that everybody wants. So, you end up with average products for average people.
  • Go to the edges.
  • Build trust

Personalization

August 5th, 2009 No comments

Over the last few years a number of “personalization” engines have entered the market – and rightfully so. Personalization is the holy grail of merchandising, the magical ability to present the individual, with that product or products that matches his or her needs perfectly.

The problem is that information isn’t distributed equally between the actors in this play. The shopper in question knows a lot more about themselves than the site. The e-commerce site, only knows what it can know, and most times, that is not very much about an individual shopper, even if they force you to login (ala Amazon).

So with this asymmetrical information distribution, the goal is not so much perfection, as it is to best optimize available information.

We have recommendations for you...

Amazon claims they have recommendations just for me...

So with this asymmetrical information distribution, the goal is not so much perfection, as it is to best optimize available information.

Before we dive further into the concept of personalization – lets take a quick step back, and talk about ‘merchandising’. Most retailers have a product/product-line that draws in the crowds, but where their margins are very slim. Camera’s for most electronics retailers, for example. These retailers are hoping to sell you accessories, warranties, professional services, whatever they can around the primary product in order to actually realize a profit in the transaction.

Many times, this is encouraged, and achieved via a simple Product X goes well with Product Y type relationship. A good example of this is someone like SamAsh. See the Things You’ll Want section below.

Samash - Things you'll get VS Things you'll want!

Samash - Things you'll get VS Things you'll want!

This helps the customer surmount the major irritation of waiting excitedly to receive his acoustic-electric guitar only to find that he doesn’t know how to tune it, or that he needs an Amp to sound like Hendrix… stuff that any salesperson in a store would’ve told him right away.

The problem, even before this one however in our story line described above, would have been finding the right product (in this case a guitar, but could as easily have been a camera). That’s where merchandising zones like “People who viewed this, also viewed” (Overstock.com) – or “People who viewed this ultimately bought…” (Amazon.com)

People who viewed this, also viewed that...

Overstock.com - People who viewed this, also viewed that...

So, thus far, the story goes - a person entered the store, wandered the aisles, answered a few questions the salesperson asked, and voila, found a product. While looking at this product, “we” mentioned a few other products she might be interested in, and in doing so, helped her find the product she really wanted.

Then once we’d found her product, “we” showed her all the other stuff she’d need in order to get the optimal usage out of it.

Twice, in that interaction, we “suggested” products to her. How though, do we know what products to best suggest to someone?  Now - we’re at the crux of what personalization does.

Let’s go back to the store metaphor. Most times, when someone walks into a store, a salesman can ask a few questions, and assuming he knows his stuff (I know, that is indeed, someting increasingly rare these days), he should be able to lead you to a product of your choice. If he’s been around a while and he knows your name then he might also recall what other equipment you have purchased, or own, and suggest accessories accordingly.

Why can’t e-commerce stores do this? If we remove the intangibles that an e-commerce store can never know (what the person looks like, what they sound like, what their body language is saying etc.) we are left with several tangible data points that can be used here – past purchases, intent, location, budget, wish lists, other behavior patterns on the website, other people similar to this person etc.

So the idea of personalization is to optimize what we know about the person based on the tangibles, and then present to them a product that we think is best suited for them.

This is the second problem with personalization. Let’s say it’s an ideal world, and I have a ton of knowledge about the person browsing my site – I know her age, her location, the products she’s bought in the past, the average order of her past orders, what price bucket she usually picks while navigating my site (cheapest, middle, high), which shipping option she chooses (needs it today, tomorrow, or no rush), so on and so forth (and there’s a LOT of stuff in the forth part that we haven’t discussed yet)

So now I know all this – let’s say she picks products that are usually in the middle price range. When suggesting a product to her on a Product Detail Page (like SamAsh’s above) can I take this into account? Do I know for every product that I have whether it is a low, mid or high price range product? If I wanted to calculate this, what other products would I compare it against? Do I compare the chromatic tuner to all other chromatic tuners? Or to all other guitar tuners? Or to all tuners including tuning forks?

Does her gender matter? Do I know if women have picked a certain type of tuner over another, all other factors being the same?

As you can see, personalization has multiple aspects to it – we’ve briefly broached the following

  • knowing as much as possible about the customer,
  • knowing as much as possible about the products
  • knowing as much as possible about how customers interact with the products

Whatever data you have on the three points above, then needs to be mangled into a complex algorithm to try and determine the most personalized suggestion that the store can offer. This is where personalization engines started. They were in depth algorithmic approaches to the problem.

However, they soon noticed that retail stores actually had very little mined data about the third point – customers interacting with and purchasing products. So personalization engines extended themselves to listener’s as well – they now sit there, and record all these interactions. Purchases, clicks, links, emails etc. They are collecting and mining this information based on what data the algorithm needs to make decisions. Based on cookies, and logins they are also gathering information on the first point above – the customer.

For the middle point – data on the products, they rely on the retailer.

So now, we can guess at what the  the ‘secret sauce’ is? It is the ability of personalization engines to mine behavioral, and purchasing patterns for data, and their ability to combine this with the daily feed on products that they receive, run it through an algorithm in order to spit out the possible best fit for an individual.

As Moore’s Law continues its onslaught, and as individuals continue to trade privacy for better services, the rapid rise of personalization will continue. This is great for both customers (who will get better suggestions) and vendors (who will, or so the theory goes, sell more products).  Personalization has a long way to go (insert Semantic Web prophecy here) but it is definitely an area where more and more resources will find their way.