Ways to promote your application

Translate Request has too much data
Parameter name: request
Translate Request has too much data
Parameter name: request

I am rewriting this stuff. Have patience. The following bit is new.

Getting users to use your application

You need to be very analytical. Or lucky.

Analyzing the user experience

There are several ways to look at this. One way is to focus on the user's experience and see how you can remove any obstacles for the user. Do this excercise. Describe the experiences and reactions from start to finish of an ideal user as in this sketch:

1. User is invited
2. User accepts invitation
3. User authorizes application
4. User does this, does that (Result: feeds are posted, notifications sent)
5. User invites friends
6. User doesn't use your application so frequently anymore.
7. User removes the application.

You know what you want, you want the user to progress from 1 and 2, cycle in 3-4-5, but not continue to 6-7. Now examine each step individually and very carefully. What would make the user accept an invitation? Why would a user not accept an invitation?

It's best (easiest) to describe a linear process like this, and then deviations from this ideal.

(You really want the user to use your application regularly. But that is a different problem which we will only be concerned indirectly with here.)

Change the order of things

The user will eventually have to authorize most applications, or they won't make sense. But you can almost always allow the user to wander around in your boutique and work up an appetite. "Require_login" is the biggest blocker in the user integration process.

It's more difficult to program, you have to decide how to handle users who have not authorized. It's worth the effort.

How to program without require_login

So now point 3 which was deferred. See what happens when you can change the order of the phases like that. Usually you would want an invite page right after authorization.

Examine each integration point (IP) individually

Facebook calls them "Integration Points"; they are also called communication channels by some. Invitations is one example: User A invites user B to try out your application. Other IPs are: Feeds, notifications, Tabs, Info Tabs, forums, reviews, FB's application directory, link exchange programs etc. Be creative.

The probability of attracting users via one particular channel

Each IP has two components. First the IP must be created, possibly by user A, within your application. A invites B.

Take one of your applications daily users today. The chance that she will invite one person x%. If you have N daily users today, you can expect N*x% invites to be sent out.

Second, the IP must be observed and reacted upon by some other user, B. For each invitation that your application sends the chance that the recipient will accept the invitation is y%.

So, with N daily users (DAU=N) you can expect N*x%*y% extra users sometimes in the near future.

The x and y are not static. For instance, you might post a feed anytime the user does something particular. It might become fashionable to do that; then x increases. But then FB's feed magic sets in, and your feed are aggregated and not shown all the time etc., and x drops. Or y drops because users become bored and block your application etc. That is why you must measure them continuously for each channel.

The probability of attracting users via any channel at all

You have a number of channels. It's simply the sum of all x*y for each channel.

Growth and diffusion

Take a look at the sum over all channels of x*y. If sum(x*y) > 1, you have exponential growth. Hurray, your application is "viral".

Or sum(x*y) < 1. Your most dedicated users eventually drift away.

It's either exponential growth (>1) or exponential decay (<1). In the first case your user base will double, e.g. every 14 days, in the latter it will be halving every 14 days.

Equilibrium

Your DAU is 100, and it doubles every 14 days. That is 26 times a year, so in one year's time you can expect to have 6.7 billion users, about the size of the entire human population on the planet?

You will not have exponential growth forever. Sooner or later you will reach an equilibrium where you are loosing and gaining equally many users.

One channel: The application directory

You can also fall to an equilibrium. You submit your application to the application directory, get a maximum of users in no time, and then your users just forget about it.

The directory has a number of current users, all of them see your application at exactly the same time (ideally, or over a couple of days) and decide whether they want to try it out. That's it, you cannot resubmit your application, it wouldn't make sense. There will be one peak, followed by a decay. The peak is not exponential growth, it is simply the introduction of another channel. Remember that, new channel => peak, not growth.

Afterwards, the directory will have a number of daily users, and your application will have a number of new daily visitors from the directory. But the application directory is just one channel, x was 0, now 1; y is low.

Most important channel: User that come back

What is the chance that your users come back? Are you so focused on amassing new users (to no avain) that you forget to nurse your current users?

In this case x=1, and y=the percentage of known (old) users each day out of total users yesterday. (Maybe the number really depends on the total number of users, or how long each user has been registered. We will ignore that. For the mathematicians: Think Markov chain.)

Viral applications

Your application is viral when the sum of x*y over all channels is > 1.

Examine alternatives

A/B testing. It's really quite simple. Your invitation text goes "X wants you to try out...". Then you want to try out something new: "X has challenged you to...". One is A, the other is B. Whenever a user wants to invite somebody you randomly pick A or B (doesn't have to be 50-50). Then you need some way of measuring whether A has a better acceptance rate than B, or vice versa. Then continue with the best. You can do this with many channels.

You need a lot of users for this to make sense, or the numbers will be meaningless. But stick with the idea: You must try out different things. Be creative.

The remainder of this text is the old stuff, not edited (5 long months). For now, take it as it is. big_smile

You finished your application. Now it just sits there since nobody knows about it yet. How do you get it out to fb users?

First off, you must understand about one thing. You cannot expect your application to grow by itself. Yes, friends will be invited, some will click on your feed stories, but you also have to put in the work. You want a "viral" application, but reality is: You promote your app via one "channel" (e.g. facebooks application directory) and get a number of new users, BUT they interact with your app several times a day, then every other day, then once a month. If you're lucky. The number of Daily Active Users (DAU), which is what you should worry about, will skyrocket, and then gradually decay. The general governing principle is diffusion.

A channel is the word I use for one of facebook's integration points, advertising, etc. A successful viral application is promoted via all possible channels. Promotion via one channel supports the other. This can result in accumulation rather than diffusion. I think.

What are your options? Here are a few suggestions in no particular order. Post a reply if you have some to add. I planned to make a Top 10, link to best descriptions of ways to do this and that, etc. We'll see, no promises.

1. You must have a really great application that users will enjoy coming back to.
Remember, "You finished your application." You may develop on it, but it can't be half-baked.

2. It should be a social application (involving friends).
Think "social graph". If you app is not particularly social, how  social can you make it? For instance, could you allow users to share their information while looking at your application?

3.Submit your application to the Application Directory
Select your app in the Developers application. Click submit below "Directory Status: Not Submitted". Number of users will skyrocket, and then decay. That's how it goes.
http://www.new.facebook.com/developers/?ref=sb
http://forum.developers.facebook.com/vi … hp?id=7883

4.Let users invite friends
Namworld can teach you how to make an invite-page:
http://forum.developers.facebook.com/vi … p?id=18651

5.feeds
You can use Facebook's tool for registering feeds, and that's really all you need, they will be published automatically. I dislike that you cannot delete or modify those feeds. A more flexible approach:
1) Register your templates (for instance, create a special admin-program for this)
phronmophobic describes how:
http://forum.developers.facebook.com/vi … p?id=17958
2) In your app, call feed_publishUserAction as described in the same post.

6. Notifications
In one app I send to (floor(log($n)) users, where $n is the number of friends of the currently logged in person. I could send to more, but users are probably going to use this app extensively for a week, then occasionally. Also, I would rather not send to the same person twice. Facebook's Friend Finder uses a completely different strategy - it's a completely different application. If I were to do the same, I would be spamming.
(FBPT Admin Edit): Sending notifications to a user's friends cannot be automatic unless the following policies of the Platform Policy Wiki are met:
2.4, 4.1, 4.2, 4.3, 10.2

7. Advertise on Facebook
Try it out. Pick a date, spend the least possible amount $5 on advertising one day. Make sure you don't order an ad that runs "continuously" (unless that's what you want). Like for any other channel, this will attract a lot of new users, and then the effect will decay.

8. Send an update to fans
What, you don't have fans? What's wrong with your application?

x. Other
- requests, emails

Monitoring different channels
You need to measure your progress via different channels - separately.

You would want recipients to accept an invitation, but the fact that invitations were send is something to celebrate. The number of invitations is roughly proportional to the number of currently active users. Acceptance is circumstantial. Add accepted and declined to get total number of invitations. The numbers for a date may rise several days later as the pending requests are accepted or declined. Invitations is one thing, acceptance is another. Separate.

As to advertising, the number of visitors you get is roughly proportional to the amount of money you spend. (Except for the law of diminishing return: The first $ is well spent, the result of spending the last $ of $100.000 cannot be measured.) Depending on the nature of your application you may decide to run your ad on work days, during weekends, or for an entire week. Depending on the profiles of your current users you can target your ads to e.g. Chinese women under 40. There is some rudimentary statistics of fans on your About-page (unless you have very few fans), other than that you are on your own. Or try one of these:

* FaceIt Analytics - http://apps.new.facebook.com/aw-analytics/
* Refresh Analytics - http://apps.new.facebook.com/refreshanalytics/

With FaceIt Analytics (this works) you insert some code into your program, so that everytime your user performs an action (e.g. invites a friend), that action is registered in a database which FaceIt maintains.

With Refresh Analytics (haven't tried it) there seems to be two ways. You can either submit your app's secret to Refresh Analytics, or you can wrap up the secret + some other parameters and encode it with md5, making a hash code that you give to Refresh Analytics. They won't be able to decipher the code to retrieve your secret, but Facebook can, so they send the hash instead when making a lookup in Facebooks databases (the metrics table).

Separate the channels

Ideally, all channels should be in place and working from the beginning. But you forgot one, or you want to update or modify one. It's best if you can keep the channels separate so that you will know what the effect is. For instance, you want to add notifications+feed and run an ad campaign and add new functionality in your application. Better do one, and save the other for the following weeks. Right before a campaign, make sure your application is working properly, then freeze upgrades. While the campaign is running, develop on your test application.

The list of Facebook integration points
A list compiled by FaceIt, "the largest company in the world completely focused on development of Facebook applications for clients". "By our count, there are 18 integration points (and 4 semi-integration points) for applications trying to achieve (or improve) their viral growth on Facebook." Print out and study.
http://blog.faceitapps.com/2008/08/is-y … these.html

Last edited by softy (2009-01-31 07:25:49)

Application: Supergroups = Like Friends within Groups
- tie your Facebook groups together into Supergroups
- link to others within a Supergroup (not limited to friends)
- register the years when you were "on" a Supergroup and search for overlapping users