6/05/2005

Lazy registration (with AJAX)

Below are my thoughts on a new method of performing user registration to an AJAX web application. In reality it could be applied to any application, but ties in nicely with the AJAX work I do. There's also a possibility that such a method already exists and I haven't come across it, doing some googling though didn't bring up anything.

Anyway, I'm referring to "Lazy registration". One of the problems with a web-based application/service is forcing a user to register. On one hand you want the user to signup so you can create an account in the database and get their email address to confirm (as best as possible) their identity among other things. On the other hand it is imperative to keep the barrier of entry for new users as low as possible. Any registration forms requiring email addresses, passwords, checking an email and entering a code, all inhibit the user from going through with the registration process and generally distract from the task at hand (such as 'Subscribe to RSS Feed xyz')

Lazy Registration
How can we have the benefits of both user registration and having a low barrier of entry? The first step is to have many entry points to grab new users. In FeedTagger I have buttons that say 'Add feed' even when displayed to the general public. With a "lazy registration" model, clicking on such a button would perform the following steps:
  1. Send a message back to server with relevant context of operation (ie: 'Add Feed xyz')
  2. Create a default user account with blank/random username, email, password fields - along with any default settings
  3. Automatically log this new user account it
  4. Load new page with initial operation ('Add Feed xyz') performed and display the first page once logged in
  5. (Optional) When logging in the user set a cookie that never expires
We now have a user that has only pressed one button, but has their own account and can begin personalising everything to suit them!

Once a user is logged in there should be visual clues pointing out the gaps in their account settings. Perhaps a question mark (?) placed next to username and email would be a good start. Clicking that will display an input box with the settings saved. A logout button should be displayed, but clicking on it without confirming your username and email should be discouraged as a user will have no way of logging back in.
I mention the option of setting a cookie that never expires to handle the users login. This allows a user to begin customising their account and save their settings for a long time over multiple browser instances, giving them the longest possible time to confirm their account settings. Much like how Google news customisation works, but with a final registration confirmation step allowing a user to move between machines and have a some privacy/security (login/logout)

Using this "Lazy registration" method we have removed all barriers to begin customising a web application for the user. Anyone can signup without even realising it, but have the option of confirming their registration by entering an email address/username. I see such a mechanism as imperative to introducing new web applications/services to a public that wants things to 'just work'.

9 Comments:

Blogger CloCkWeRX said...

Reminds me of how Flickr do business ( they give the visual cues that say you've already got an account, you didn't even realise it [even if its a lie])

Or how wikipedia do things.

Or amazon.

Mmm, I should bash out some proof-of-concept type code and rant about this sometime...

1:08 AM  
Blogger redbarren said...

yep that rox. the registration, pre-population to feeds and all related issues is a big big issue.. netnewswire 2.0 do this very neatly (after i spend 15 mins downloading app oh and it only works on a mac)

the quicker the better, i like it

bb

11:41 PM  
Anonymous Ramin said...

I've been contemplating the same scenerio for many months now. How to minimize the registration process and make it feel as natural as possible. For a community site that I am putting together, I wanted to do something similar to what you have suggested. Have the user already as a member when they click on a certain section, but have them fill out their information little by little as they explore the site. For exmaple, if they decided to visit the message boards, the site would politely remind them that they do not yet have a username and that it is recommended they provide one (otherwise they will be known as 98389743). Basically each section of the site would "recommend" anothre piece of information be filled in. This way the user isn't overwhelmed with filling everything out at once.

I'm all about ease of use and I've also noticed that 90% of my friends won't try out a new site or service simply because of the registration process. Great ideas guys. Keep it up, i'd love to see what other recommendations people have on this topic.

10:12 PM  
Blogger cboone said...

Good thoughts.

Question 1: what's Ajaxian about this?

Question 2: what's a good way to strongly encourage people to transition from a no-work guest account into a regular verified account?

Question 3: what's a good way to let people know that if they don't make the transition, all the stuff they've been merrily doing will vanish when they switch browsers / switch computers / clear their cookies / etc.? After all, most people aren't used to this model — the create-an-account-then-do-stuff model is pretty well ingrained by this point; and pretty well disliked — so they might get confused fairly easily.

11:27 PM  
Anonymous Ramin said...

cboone,

1. Not exactly sure about this one myself, but in my case, one option would be to trasfer the user's info to the server using Ajax as they fill em in. This could be done w/o ajax as well.

2. I think a good way to encourge people is to show them the benefits of providing more info (ex. Tell us a username you'd like to use in the chat room instead of guest834329 - This will be your username from now on. etc etc.) In some cases, it may even be mandatory. However, using the incremental system, I think users will be more inclined to fill out information as they "explore" the site.

3. There needs to be a minimum amount of information grabbed from the user. If all they do is visit the home page and leave, then there's no need to save their info. However, if they choose to "explore" the site, then they will inevitably be either forced or encouraged to fill out some information (according to my model at least.)

No matter what, there needs to be SOME level of effort from the user who is interested in the site and wants to get more involved. All we can do is try to make it a bit easier. I doubt there is any way to make it totally transparent and/or automated.

1:37 AM  
Anonymous Anonymous said...

There's no ajax here at all. I guess you just wanted to get on Dion's Ajaxian blog?

4:16 AM  
Blogger tahpot said...

cboone: I think the answer to question 1 is that it solves your question 2 and half of 3 ;) In hindsight the post should have been titled "Lazy registration for AJAX apps"

2. The easiest way is to allow a user to click on an input box where it says 'enter username here'. This would save the settings via an xmlhttprequest, with minimal effort on the users behalf. Username,email,password could all be entered in this 'lazy' manner

3. This is an important point and a difficult one to resolve completely. Some form of visible notification when loading each session allowing the user to "save an account password for security and to use across multiple computers" - of course this would be done with ajax as well to keep the barrier low.

The key is to use async server calls to slowly build up a registration profile on the user so they can move at their own pace.

11:36 AM  
Anonymous Michael Mahemoff said...

Like other features, it's possible in conventional web apps, but much neater in Ajax, for some of the reasons mentioned above. Specifically, it fits in nicely with the async style to gradually build up the user's profile.

Email verification is interesting. You could perhaps have an input area on which the user can paste a verification string. Or, if they choose to click a link, the Ajax application in the browser (often in another window/tab) could be notified that the user is now verified, and carry on with that information.

I've added a placeholder for a "Lazy Registration" pattern at AjaxPatterns.org.

7:52 PM  
Anonymous Anonymous said...

I have been to your site and I too am working very hard at 4u.com adsense riches site to increase my revenue. I am also looking into many NEW ways to utilize the design to further direct people to follow my ads.
4u.com adsense riches site

9:38 AM  

Post a Comment

<< Home