Wednesday, December 05, 2007

In the Seattle Tech Startups list

Got mentioned in the Seattle Times blog recently.. Here's the link: Marcelo's startup index refreshed.

The article refers to the list of Seattle Tech Startups that refreshes monthly, and show the websites indexed by their Alexa and Compete rankings. Jambool was the one of the highest climbers in the list, moving to #91.

Tuesday, October 16, 2007

Facebook apps -- Where to from here?

Lots of people have blogged and written about Facebook apps. Some are Facebook-lovers, and some bash it to no end. The camps are clearly divided.

I want to venture out and predict that the brouhaha about facebook apps is going to dwindle down soon. The same excitement may or may not carry over to other social platforms -- my guess is that the excitement level will be lower and shorter-lived. I also think that the applications on facebook will eventually be just about mindshare -- and in order to build their fortresses, the bigger players will buy out the smaller players. A lot of apps on Facebook run into scaling problems -- I've run into several that are now unavailable or are on hold because of scaling problems. Several other developers have made their apps available for sale on the developer forum. The reasons most often cited is a variant of "I don't have time to support it."

Eventually, there will be consolidation of apps into a few strong players. The winners have pretty much already appeared -- Social media, Rock you, Slide. The application space on Facebook will be essentially an ad network -- which is indeed all successful apps are focusing on.

There will still be a large bunch of apps that will run on their own. But these will be those that don't rely on Facebook audience to click on ads to survive -- either they are an offshoot of a larger non-facebook product, or they have have an inbuilt business model that helps it survive.

Tuesday, October 02, 2007

Measure, Fine tune, and then measure some more

Ad Tracker is a wonderful tool.

In my last post, I mentioned how we are learning about paid distribution on Facebook, and some early thoughts based on our experience. To summarize from the last post, you need a way to track installs from ad clicks -- whether an in house script, Ad Tracker, or some other mechanism -- and you need to understand how much you are really paying for getting users on Facebook.

In this post I want to talk a bit about the fine tuning process to optimize the install conversion rate.


Some background is probably in order. Feel free to skip over this paragraph if this reads like rudimentary stuff for you. A user becoming active on your app is the last step in a long series of steps -- or rather, better worded as a the drops coming out of a funnel. Lots of people online have talked about this funnel -- and a recent post by Dave Mcclure describes it as AARRR (Acquisition, Activation, Retention, Referral, Revnue). I'd like to add one more "A" before that -- Awareness. The hard value of this might be nearly zero, but it does contribute in helping improve Acquisition. What I mean is this: where Acquisition is about clickthroughs to your page, Awareness is about people knowing about you without even ever visiting your site. Putting it back in context -- in order for you to get 1 active user, you need to have a multiple users install your app, and a multiple of that come to the install page. This is the funnel you need, and the wider the mouth of the funnel, more the active user growth. Without any fine tuning, you need to have a certain number of ad clicks (assuming that's the only way you get growth for now) and therefore a certain amount to spend on advertising. The next thing to do is -- optimize the funnel. And the first step for that is measurement. As I said earlier, you need to measure conversion to installs -- and even further measure conversion to active users whenever possible.

Now that's out of the way, here's how we are somewhat fine tuning our conversion rates. At the time of our last post, our conversion rate from ad clicks to installs was hovering around 25%. Currently, for the same apps, it hovers around 40%. This means where earlier on each new install was costing us 60c approximatelyt, it now costs us 38c (assuming 15c CPC).

One of the first things we played with, obviously, was the creative. We tested several different creatives and constantly measure conversion rates, and we stuck with those that gave us higher conversion rates. We played with ad traffic through different times in the day. We put in small amounts of money into our daily budget through the day to control the ad clicks, and again measured. Did I say Ad Tracker is a wonderful tool? We found that for our app Shared Memories the times we got the best conversion rates was late evenings and weekends. Afternoons was worst.

And remember -- we were not looking for a high click through rate. We were solely looking for conversion rate. In fact lower CTR was somewhat better. Why? Awareness. A lower CTR for me meant that more people looked at the ad for Shared Memories. In non Facebook advertising, this may not be that relevant -- because you the advertiser control all of your landing page. But in case of Facebook, the landing page is a very vanilla Add Application page that is no different than any other app (in our case so far). So the best place we had to sell the user on our app was in the creative itself. And with a lower CTR but higher conversion, we were getting more people knowing about our app, and we were paying less per install. This awareness is useful -- it plants a seed in the user's mind that might bring them back to us later. It's all about conversion, my friend.

Eventually, we are building a set of applications that can help us reach out into a larger user base, and use that to advertise our existing apps. Some people question the value of game apps -- but I believe these apps are crucial to help drive traffic and lower advertising costs. They help spread Awareness -- and it goes some ways in helping increase your conversion rates from ad clicks. And if extremely popular, they can be instrumental in opening up the funnel mouth for your other apps.

We recently launched Balloonz!. Balloonz is a simple, fun game that lets you fill yucky things in balloons and thrown them at friends. Friends can dodge balloons by passing them on to someone else -- with a catch that balloons will explode in some time and you have to pass them on within that time. Users can even create their own fillings for Balloonz. Real simple. And in 5 days that this app has been of Facebook, we've grown to about 3K user installs today. Again our measuring ability and learnings with other apps helped -- our conversion rate has been close to 55% for this app.

As an end note, we will be at Community Next this week. We'd love to exchange ideas and thoughts on Facebook apps. Email me at vikas at jambool in case you are there and might be interested in chatting. I will be very interested in learning from you.

Saturday, September 15, 2007

Ad Clicks and Conversion to Installs for Facebook apps

We've been on the Facebook platform for a couple of weeks now, and we are learning everyday. Today I want to talk about using ads on Facebook to drive growth in the install user base for a Facebook app.

We released our app, Shared Memories, on Facebook about 10 days ago. We've grown to around 1500 users today, and while a large part of it is organic, viral growth, we have used PPC based ads to drive growth to our application. We've played with daily budgets, times, and creatives to try and learn more about how to optimize our investments. I want to share some of our learnings, and I want to talk about a new application we are releasing to other app owners for beta testing to help them optimize their ad performance as well.

We've advertised largely using the Social Media apps -- Appsaholic as their apps tracking and ad purchase application is called. They offer you an option to buy ad clicks from their other apps and even from other applications using an Adsense like approach for Facebook apps -- successful apps can sell ad space, and advertising apps (wannabe successful apps) can purchase the clickthroughs. The other advertising options on Facebook include doing link exchanges with other apps -- we've talked to Social Wizards who would rather only do a link exchange with someone at par with them on traffic (obviously). There is a bit of a food chain here -- Slide looks down upon Social Wizards, who in turn look down upon us. As you can imagine, it will only get harder for new applications to establish a stronghold in this community.

Other forms of advertising including putting the word about your app on forums, review sites and blogs (like this one).

The problem that an application owner will run into is that every one of these avenues costs money and time. As an individual developer, you almost have no time to track how you campaigns are doing, and it might get ineffective to te extent that any money you put into it might just be a waste.

First, let me share some of our learnings.

When Appsaholic says "Buy Installs" -- they are somewhat fooling you by their language. They really mean "Buy Clicks to the page from where users can install." Now, this is much worse than a clickthrough from a Google ad. Why? The user always have to go through a page where they have to "install" the app, and they are faced with a form asking them to allow your app to access their personal data. Hmm. As any marketing person will tell you, these pages will not convert that well. Sure, it is a necessary step, but you need to control the language and messaging, and in this case you do not. Since the users are coming through this additional step, it is a good chance that they may never get to even see your app. In other words, you are not really buying clickthroughs to a page you control -- but a clickthrough to a page rendered mostly by Facebook (except for a short description by the app owner in the right column in light font), from where the user has to decide whether to install your app.

We played with the landing page for the clickthroughs a bit. The options are that you can host it on your site, use the About application on Facebook, or directly the Install page on Facebook. Our experimentation tells us that the page that converts best is the install page on Facebook. It is somewhat obvious. The average attention span of a Facebook user is very tiny, and there will always be a dropoff at ever intermediate step from ad to install. We found the about page for our application to convert at about 18% from ad clicks, and the install page convert about 25% on average. We have not yet played with a page on our own site, though my instincts tell me to keep the user on Facebook, I'd love to see if someone has played with it and is willing to share how these pages convert. We do intend to play with these a bit and measure the conversion rate ourselves.

Right now, Appsaholic clicks are priced at a minimum of 15c. At a conversion rate of 20% from ad clicks, you are paying roughly $0.75 for every install. That is quite expensive -- especially since the really useful metric today (if that) is the "active" users, and for most apps, this tends to hover around 5-20% of their install user base. As you can imagine, the cost of getting a new "active" user probably around $3 to $4. Can you do better? Yes you can, but the first thing you have to realize is that unless you have a way of measuring your conversions from different campaigns, this is what you are roughly paying.

So how do you measure?

If you are advertising on Facebook, most advertising platforms let you take in the user id of the user as an argument that you can track internally to see what the conversion rate is. The flyers on Facebook, and the Appsaholic ads do this. If you don't have any other way of measuring, you at least need use these and log them. Then you can write your own scripts to match them against your installs.

But you start losing this ability with some other campaigns. E.g., if you are advertising your app on Google, or blogging about it, and want to track it, you don't have the ability to track how these campaigns are doing.

This is the struggle we were going through, so we built an application to do exactly this. Track ads to conversion rates for us, and give us detailed reports on how different campaigns are performing for an application. We are releasing it today to the developers on Facebook as a beta version. The application is called Ad Tracker, and it is available for you to install and manage your campaigns.

How does it work?

You can read some more details here: http://www.facebook.com/topic.php?uid=2563396458&topic=3161.

How it works is that you add an application you want to monitor, and provide the URLs where your users should go to post-install. You can add multiple campaigns for the application, and configure the destination URL for ad clicks for that campaign. What Ad tracker gives you is the URLs you should use in your app settings to direct the post-install to, and the ad clicks from your ad provider to. Ad Tracker will redirect the user immediately to the right URLs, and track the clicks to give you the desired statistics.

Simple enough? You can even add other developers as admins in your application so all of you can track them from the same place and each of you can add more campaigngs.

Try it out. Let us know what you think.

Next question you may ask is -- Is it free? For now it is. When you start managing your campaigns you will see a balance on your application that will start going negative. Our current pricing is based on # of ad clicks and # of install clicks. Install clicks are priced much lower than Ad clicks for obvious reasons -- we really want this app to be used to track conversion from ads to installs. However you will be getting a lot of non-ad driven installs, and you shouldn't be paying much to track these at all. The reason the install clicks are not free is that we don't want it to be primarily used for tracking installs only. Now you can do that, but there will be a small fee for it.

What is the fee? As I said, right now it is free. You balance will keep going negative forever. You can ignore the balance for our promotion period. We do not have an estimated time when we will end the promotion period -- but if you are an app user you will get at least one month's advance notification. We are curious to know -- how much will you be willing to pay for these stats? Here's a more tangible question we would like to get an answer for: You probably pay $150 for 1000 ad clicks at the Appsaholic base rate. How much will you be willing to spend in addition to get detailed clickthrough and conversion stats? $1? $5? 50 cents?

For now though, it is available for free, and we have not placed any limits on you trying to use it. So go for it!.

Thursday, September 13, 2007

Facebook developers meet in Mountain view

Just back from the Facebook developers meetup in Mountain View. I got a chance to show off Shared Memories app there, and was thrilled to find an actual user in the audience.

I am back with feedback -- some constructive, and some very encouraging -- and I feel super charged with the response.

The application has been out there for a week, and today we crossed 1000 installs.

Have you shared a memory with friends yet? Click here.

Friday, September 07, 2007

Pointers to some resources for Facebook

These resources are relatively easy to find, but here they are for you anyway.


  1. The Jambool activity -- this is where I've kept most of my research. You need a Jambool account (email me at vikas-jamboolinvites at jambool dot com for one).

  2. Step by step guide by Facebook for developing an app

  3. Anatomy of a Facebook application -- an excellent resource to understand the different components of the applications that you will write on Facebook.

  4. Developer wiki -- the best resource for references on the API. The following are excellent pages to read when getting started

  5. Ruby on Rails specific:

  6. People have started writing about marketing your application on Facebook. It is harder to get your app adopted now than it was 3 months ago when the platform was launched. And as it happens with every marketplace, this one is going to get saturated and getting users to adopt something new will get only harder. So as you are building your application, start thinking about how to get more users to adopt the application. We have some thoughts of our own -- and if it indeeed works out, we'll share what did we do to make the application succeed. Meanwhile, here are some good articles to read elsewhere:

Early experiences with Facebook

We are newbies on Facebook, and we are learning everyday. Facebook is still a very nascent opportunity, and I tell people everyday to get their asses here before it gets saturated. It's the next big landgrab of the net.

Everything you've heard about the Facebook platform is true -- it is truly one of the most powerful tool available to developers today to build something for the social networks and try it out with one of the biggest social graphs out there. We launched Shared Memories just 3 days ago, and we are right now into a few hundred users banging at the application, creating content -- and having fun with it! All things put aside, a developer will understand how extremely satisfying that experience can be -- to build something, put it out in front of an audience, and watch them grab it openly.

Before we go further -- Have you shared a memory with your friends yet? [Facebook link]

What's been our experience like so far? Good overall. Here's a short summary -- and we plan to write more about it as we continue to build.

The Good:
- The Social. When you put together the tools available to you -- the network, the news feeds, the notifications, the messaging -- it packs enormous power.
- Tools, API, and Integration. Thanks to the their Wiki, Developer application, other apps like Appsaholic, groups, etc., getting things set up and going is a charm.
- Simplicity. Facebook has taken special effort to make it simple for developers to integrate. As a result, the documentation is simple and integration poins are well defined.
- Data -- Facebook has been very open and that's a good thing. Their terms dictate that you can't store most of the data, but it helps your application build the right thing for the user.

The Bad
- Performance -- Facebook as a site is tad slow. Every page on the canvas tends to make calls back from our servers to FB to get additional data. All put together, this can compound the wait time for the user. Their service and platform also occasionally gets hiccups. We aren't busy enough (yet :) to experience the platform misteps, but we've seen a few.

We've already built in components in our system to rigorously measure the call times and the ability to not let them stack up in case of traffic growth. In the future posts we'll share some of the details of the performance of the Facebook api calls.

All said, it is an exciting opportunity to be a part of.

Tuesday, September 04, 2007

Jambool releases its first Facebook app

Of course, Facebook apps are all the rage these days. We just rolled out our first Facebook application: Shared Memories.

As the name suggests -- it is about memories we share with our friends. You can tag your friends with memories you've shared with them, and for eveyr memory you share, you can write stories, add photos...

Check it out -- and we'd love to know what you think...

Friday, August 17, 2007

Jambool in Alexa top 100K


We are beginning to see our traffic charts on Alexa, now that we've broken into the top 100,000.
The Alexa page again.

Also, the user pages are getting an overwhelmingly positive feedback -- and we plan to make this page more powerful over the next couple of weeks. Stay tuned!

Tuesday, August 14, 2007

User logbook launched

Check it out!.

Now as you go around collecting and doing your everyday things, you get a log book, from all your collaborations, comments, emails, attachments, posts, clips, and more!

Jambool Alexa rank is on the rise...

Jambool is in the top 150K for the last two weeks' averages!!!

Alexa page.

New release coming this week will launch user pages on Jambool -- so it's not just your activities, but a more composite view of what your world is about.

In the meanwhile, we wanted to drop a note about Amazon's recent release of Flexible payments web service. You gotta check it out... Both of us -- Reza and Vikas -- helped build the web service teams and products at Amazon, and are particularly proud of the stuff the web service team at Amazon turns out.

Wednesday, July 25, 2007

Clipboard, Comments, Photos and more!

While I was away, a whole bunch of stuff got launched on Jambool.

You can now share clips with friends and discuss them on Jambool -- through the Clipboard. Clipboard replaces the "Sent" and "Received" clips -- you can still browse these separately in the clipboard sections.


Visitors to your activities and clips can now add comments to your clips, and leave you feedback, thoughts and.. doh, comments. When you share your clips with your friends, your friends can find these clips in their clipboard, and have an option to add comments to it. You can share clips from private activities as well.




Photos clips got reworked and now you can browse thumbnails of your uploaded photos on the photo clip detail page. And of course, people you share this clip to can add comments too!

Friday, June 29, 2007

One button to rule them all...

If you read the earlier post about the new browser extension, you will would have realized that we no more have the "Send" and "Save" buttons. The functionality to both share with friends and to save to your activities on Jambool is all available from one button, and one dialog.

There are more changes in the offing -- especially around sharing with friends. Stay tuned.

Toolbar upgrade...

Jambool just released an upgraded version of the Firefox browser extension. For one, it comes with the right Jambool branding. Besides, it is a lot less intrusive than the current one.

When you install the new extension, it will give you the ability to clip your favorite parts of the web, including videos, from the right click menu.



Jambool icon and clip invoker also sits in your status bar at the bottom of the browser, and you can use that to invoke the clipper as well.



Finally, Jambool's extension also lives as an optional button in your browser and you can choose to install this button anywhere you want on your browser toolbar. It is small enough to fit right next to the address bar. This button gives your a drop down menu to jump directly to your destinations on Jambool.

Sunday, June 24, 2007

Launched new interface...

We rolled out an updated interface for Jambool activities. Besides a lot of the issues with sections that we fixed, it also helps you publish very professional views of things you do... Check it out!


Saturday, June 16, 2007

Jambool is in private beta!

We rolled out to private beta on June 1. If you've used Jambool when we first started testing the basic idea back in November, then you'll recognize a lot of stuff you've written to us about. We've been listening. :)

The response to the new release has been heartening -- there's layers of functionality that I'm sure you'll enjoy discovering. When I look around online, Jambool is the most complete and rich online research and collaboration platform. Sure, there are a lot of things we are still learning, but this will never end -- and I hope it never does.

What's next? We are actively looking for companies to partner with -- people with phyciscally separate teams, or companies who look require an online collaboration tool for their customers or for themselves. We'd love to hear from you -- and we'd love to get a chance to amaze you with Jambool's abilities.

In terms of features -- there's a long roadmap already sketched out. First, the basics. You'll see constant revisions on the site, and notes about them here -- I promise to be more dilligent from now on. We rolled out a simple revision yesterday -- you can now upload your own photo to your profile (or you can choose from a variety of hats). One of the immediate things we are working on is simplifying the interface further, better starting pages and more features around your uploaded images, files and videos. Stay tuned!

P.S. If you're interested in an invite -- please email us at vikas-jamboolinvites@jambool.com.
For all other requests, questions, responses, feedback -- send us an email at vikas@jambool.com.

Saturday, February 10, 2007

A couple of simple Rails techniques

The first is to do with making it straightforward to always populate some fields in database tables. I prefer to have most database tables have these two time fields: last_updated_at, and created_at. What you want to do is that last_update_at field is updated every time the database row is updated, and created_at is populated with the current time at the time the row is inserted.

I created a mixin "Database::Table" that defines the methods "#before_create" and "#before_save" to have the desired behaviour. Now, in your ActiveRecord classes, include this mixin, and you're done. Here's the code.


module Database

# This classes updates the timestamps on the database tables, and forces
# all subclassed tables to have created_at and last_updated_at tables
module Table

def before_create
self.created_at = Time.now
self.last_updated_at = Time.now
end

def before_save
self.last_updated_at = Time.now
end

end

end


And the code that uses it:


require "rubygems"
require "activerecord"
require "database/table"

class User < ActiveRecord::Base
include Database::Table
# code...
end


The second technique is to use tables that have the "id" field to be something other than an integer -- the default type. We use another mixin for this: "Database::UuidBase."

require 'database/table'

module Database

# This class allows subclasses to use a guid/uuid based id
# instead of the sequential id used otherwise
module UuidBase

include Database::Table

def before_create
super
self.id = uuid if self.id.nil?
end

def uuid
# user your favorite library to generate a UUID
end

end
end

You now include this mixin into your class to get both the behaviours. There are several reasons why one may want to do this.

Often there is a unique id for a table that we need to be a string, and not an integer. If it is a part of all or most of your search queries and is unique for every row, you can avoid having an additional index by replacing the default "id" column with this string.

If you use an integer field that gets auto_incremented, and you need access to this field after an insert, you have to typically load the row from the database again. This means you need to do a search, and you cannot search on the primary key -- "id." You therefore have to rely on a secondary index -- assuming you have a secondary index. Howevery, by populating a unique number _before_ it is saved into the database, you have access to the "id" field after the insert without the need to reload it from the database.