Requests for comment/Account creation

For most web properties, a user is considered "converted" when they create a user account. However, Wikipedia does not consider a user "converted" until they have graduated into becoming a "New Wikipedian" (ten edits into the article namespace).

Currently, there exists no practical way to determine what login or account creation processes have an impact on user conversion. This is a rather severe vulnerability in our capability to determine the best path for editor retention and participation.

This document describes a proposed system whereby much of this data may be gathered going forward as well as improving the overall user experience for logging in and creating accounts.

Since the process of logging in and account creation are tightly coupled, they are discussed together.

Users are Task-Oriented
Users typically operate in a task-oriented mode. That is, a user has a set goal in mind (make an edit, set a preference, etc.). Such tasks may or may not require a user account (editing does not, but setting preferences does).

In most cases, account creation is seen as one of the steps required to complete a specific task rather than a single task itself. Users want to get account creation out of the way and move on to what they were doing before the interruption.

MediaWiki treats account creation (and login) as a single atomic task. In this mode, account creation is a "full stop" and it cannot be easily used for guidance. It is a distracting user experience, and one often forgotten or ignored.

Requirements
It is extremely desirable to be able to track the "Source Avenue" for user account creation. In this way we will be better able to determine how, when, and why people create accounts.

The Source Avenue data must be able to be tied to a user account at any point in its history to be better able to determine how and why people either succeed or fail at becoming "new Wikipedians".

Further, a user's next activity - the "Exit Activity" is also to be tracked. The Exit Activity is the action the user takes immediately after successful account creation. This allows us to see which exit activities are better at encouraging conversion.

Module-Based Exit Activities
Since there are multiple Source Avenues for account creation there will also be multiple Exit Activities. Exit Activities are context-oriented. Each Avenue should be able to tell the Account Creation API what possible exits exist and are appropriate for that context.

Currently, for login, there exists only one Exit Activity: return to previous page.

Currently, for account creation, there exist no system-generated Exit Activities. Exit Activities are provided as links on the "success" screen but there is no way to track which activity (if any) was chosen.

Current Processes
The current processes for login and account creation are described below.

Current Login Process
The current process flow for User Login looks like this:


 * 1) The user is on any page.
 * 2) The user clicks "Login/Create Account" in the upper corner
 * 3) The user is brought to a special page, Special:UserLogin
 * 4) The user fills out the login form and submits it
 * 5) * If there are errors, the user is returned the login form
 * 6) * If there are no errors, the user is brought to a success screen.
 * 7) If no action is taken, the user is redirected to the original page (step 1)

Current Account Creation Process
The current process flow for Account Creation looks like this:


 * 1) The user is on any page.
 * 2) The user clicks "Login/Create Account" in the upper corner
 * 3) The user is brought to a special page, Special:UserLogin
 * 4) The user clicks "Create Account" (this is non-obvious)
 * 5) The user is brought to a the Account Creation page
 * 6) The user fills out the account creation form and submits it
 * 7) * If there are errors, the user is returned the account creation form
 * 8) * If there are no errors, the user is brought to an account success screen.
 * 9) Process ends

Decouple Process from Special:UserLogin
With minor exceptions, user login and account creation is tightly coupled with a single gateway: Special:UserLogin. It is proposed that the actual mechanics of this be removed from the special page and into its own API.

Special:UserLogin will remain. However, it will become a consumer of the account API. This change will allow for other mechanisms to easily access the account API as well (such as AJAX login sequences).

Source Tracking
Tracking the entry point for account creation will be of inestimable value. A permanent data store for this would make it easier to track the lifecycle of cohorts going forward and allow for strategic adjustment based on the data collected.

Source-Driven Guidance
Knowing the source of a user's account creation will allow us to tailor the success and failure screens to better suit the task at hand, guide them into additional participation venues, or provide targeted tutorial sequences.

Individual avenues of creation can provide to the account creation system a series of possible "exit activities". Which activities are taken at this point are also tracked: we would be able to see how many people viewed a tutorial, for instance, or applied for a mentorship program.

The examples below discuss theoretical features. They are intended to describe the value of this feature.

Example 1: General Account Creation
An anonymous user decides to create an account in order to "be part of Wikipedia." They click the "Login/Create Account" link while viewing the article, "Roman Mythology."

The source of the account creation, "Page: Roman Mythology" is tracked. This is a "general" account creation and does not have an obvious task associated with it.

The user fills out the account creation form and the process is completed successfully. At this point, Special:UserLogin informs the account API that the following activities are possible exits:


 * Browse other articles in the "Mythology" category
 * Edit or discuss the "Romany Mythology" page
 * Go to the User Preferences page
 * View a tutorial for new editors
 * Sign up for a mentorship program
 * Edit a page in the Sandbox
 * Return to the "Roman Mythology" page

The activity chosen is also tracked. From this, in the future, we can determine:


 * Which tasks users are most likely to perform upon successful account creation, and
 * Which immediate tasks are most likely to result in user conversion (e.g., "users who view the tutorial are 20% more likely to convert than those who do not"), which will allow us to better tailor exit activities towards conversion

Example 2: LiquidThreads Posting (AJAX)
An anonymous user writes a posting on a LiquidThreads page. Upon clicking the "submit" button, he or she is informed that they are posting anonymously and given three options in-situ via Javascript dialogs:


 * Post anonymously
 * Login
 * Create Account

Logging in or creating an account would be handled through an AJAX dialog. The user opts to create an account.

LiquidThreads informs the Account API that the source avenue is "LiquidThreads Posting" and also informs the API that possible exit activities should include:


 * Submit Posting
 * Abort Posting
 * Set LiquidThreads Preferences
 * Open user preferences (in a new window)

If the account creation is successful, the user's authentication credentials are updated, and the dialog is changed to show a successful account creation and provides the additional exit options.

The process of account creation (or login) does not wildly interrupt the user's task flow.

Tracking source here (from task-oriented, AJAX creation) will further enhance our understanding as to how users perceive account creation within task flows. Further, we will have a better understanding which tasks drive account creation.

Possible AJAX-driven tasks include:


 * LiquidThreads postings
 * ArticleFeedback Tool calls-to-action
 * ControversialContent filter preferences
 * In-Situ Wiki-Editor submissions
 * Watchlist additions

Proposed Account Creation Process
The process of Account Creation (and Login) is to become more API-oriented, allowing for greater flexibility in its usage.


 * 1) User determines to create account
 * 2) * System determines the user's current task based on Source Avenue (e.g., make edit, add to watchlist, general create).
 * 3) User submits account creation form
 * 4) * System saves the Source Avenue
 * 5) * Source Avenue informs Account API of possible exit activities
 * 6) System returns success screen with context-available exit activities
 * 7) User selects exit activity
 * 8) * System tracks selected exit activity

Interaction and Visual Design Changes
(To be completed)