Requirements from draft measurement specifications document:
# Modules
## General
### How often is each module clicked on? What is the proportion of users who click on each one?
### How many modules do users tend to interact with (where “interact” means any click)?
### Which modules tend to be interacted with repeatedly?
### Which modules are interacted with most by those users who are activated and retained (acknowledging that the causality may be going in either direction)?
### How long do desktop users hover over each module? (analogous measurement for mobile depends on pending mobile design)
### Does the placement of the module on the page appear to influence interactions?
### What is the impact on retention from doing the call-to-action on each module?
#### For example: what percentage of users who contact their mentor are retained?
## Specific modules
### Help module
#### What percent of users click one or more of the help links?
##### If so, which link(s) do they click?
#### What percent of users use the search functionality?
##### 1: Focus on the search box
##### 2: Submit a search, number of characters in search
##### 3: Click a result, number of results, ranking of clicked result
#### How far do users go in the workflow of asking a question on the Help Desk?
##### 1: Click to ask a question
##### 2: Type a question
##### 3: Submit
##### 4: Click a link in the confirmation dialog
#### What is the average length of questions asked?
#### What percent of users who post a question return to view the answer?
#### What percent of newcomers that had no email address add one when asking a question?
#### What percent of newcomers confirm their email address (within 48 hours) after asking a question?
#### What percent of newcomers ask a question without an email address?
### Mentorship module
#### What percent click on a link to learn more about the mentor?
#### How far do users go in the workflow of asking their mentor a question?
##### 1: Click to ask a question
##### 2: Type a question
##### 3: Submit
##### 4: Click a link in the confirmation dialog
#### What is the average length of questions asked?
#### (Measured by hand) What percent of users who post a question receive an answer from their mentor?
##### Do they get an answer from someone that is not their mentor?
#### What percent of users who post a question appear to return to view the answer, by doing any of the following?
##### Clicking the Echo notification saying they have been pinged in the response.
##### Clicking on the link in the “Your recent questions” list.
##### Responding to the answer on the talk page.
#### (Measured by hand) What percent of newcomers who ask a question post a second time on their mentor’s talk page?
##### How often does the first question become a conversation?
##### How often is a second question asked?
##### How often do conversations move beyond transactional wiki talk?
#### What percent click on one of the links to view their question after they’ve asked it?
#### What percent of newcomers that had no email address add one when asking a question?
#### What percent of newcomers confirm their email address (within 48 hours) after asking a question?
#### What percent of newcomers ask a question without an email address?
#### Are newcomers more likely to ask questions to mentors who have a high edit count and short time since last edit compared to mentors with lower edit counts and/or longer time since last edit?
### Impact module
#### What percent click on a link when the module is in its “unactivated state” (when the user has no edits to articles)?
#### What percent click to view an article?
#### What percent click to view the pageviews analysis tool?
#### What percent click to view all their contributions?
#### How often do users return to open the pageviews analysis tool multiple times?
### Start module
#### What percent of users that had no email address add an email address through this module?
#### What percent of users confirm their email address through this module?
#### What percent of users click the button for the tutorial?
#### What percent of users click the button to start their user page, and what percent of them actually save a user page?
#### What percent of users click the link to learn more about creating a user page?
``` lang=json
{
"description": "Logs interactions with the homepage modules on the Special:Homepage provided by the GrowthExperiments extension",
"properties": {
"action": {
"type": "string",
"required": true,
"enum": [
"impression",
"hover-in",
"hover-out",
"link-click"
],
"description": "Action the user took:\n\n- impression: Module is shown to user\n\n- hover-in: User mouse pointer enters the element.\n\n- hover-out: User mouse pointer leaves the element\n\n- link-click: User clicks a link in the module"
},
"action_data": {
"type": "string",
"description": "For all actions: completion state of the module, one of 'complete', incomplete', or 'n/a'. Additional data for certain actions:\n\nFor action=link-click: symbolic name of the link being clicked"
},
"user_id": {
"type": "integer",
"required": true,
"description": "The user id."
},
"user_editcount": {
"type": "integer",
"required": true,
"description": "The total number of edits of the user."
},
"module": {
"type": "string",
"enum": [
"start-accountcreated",
"start-tutorial",
"start-userpage",
"start-email",
"impact-activated",
"impact-unactivated",
"help",
"mentorship"
],
"required": true,
"description": "The module the user is interacting with"
},
"is_mobile": {
"type": "boolean",
"required": true,
"description": "Whether the mobile site is being used."
},
"session_token": {
"type": "string",
"required": true,
"description": "Session token that survives across pages (mw.user.sessionId()), but not browser restarts, used in deterministic user bucketing. This will only be set for client-side (JavaScript-generated) events, for server-side events the value will be an empty string."
},
"homepagemodules_session_id": {
"type": "string",
"required": true,
"description": "One-time token per page load. This is like page_token and has the same behavior, but it isn't obtained through getPageViewToken(), so its value is different."
}
}
}
```