Funnelcake: Difference between revisions

3,268 bytes added ,  5 September 2017
Completely rewrite with 2017 info about Funnelcakes
(Completely rewrite with 2017 info about Funnelcakes)
Line 1: Line 1:
= TODO =
== Firefox Funnelcakes ==
# ken - create wiki page outlining steps
# team - fill in steps we feel are missing
# ken - organize next funnelcake meeting
# team - discuss documented task list, dates, reasonable release date


= Meeting Notes =
“Funnelcakes” are special builds of Firefox that let us test changes to the acquisition funnel or product by distributing variations to real users via the download page. For example, we might change a Firefox preference to “true” that is normally “false”; we could then distribute the “true” version to a targeted subset of users and measure how that change affects Firefox use.
* [[Funnelcake:2008-11-24|2008-11-24]]


= Next Meeting =
== Anatomy of a successful Firefox install ==
* revise task list
* assign dates to major tasks
* file bugs needed
* set up a Q1 schedule for funnelcake


= Task List =
Funnelcakes change how our download and install funnel works. Here’s how things normally go:
Steps needed to perform a funnelcake release.


'''In advance:'''
# A user decides to download Firefox and finds their way to the Mozilla web site and the Firefox download page hosted there.
# create repack (Kev)
# The user clicks on the “Download Firefox” button. Server technology (“the bouncer”) determines which platform, locale, channel and version the user should get, and redirects the user to that particular binary file on our CDN. The download begins.  
# installers to be made available at https://people.mozilla.org/files/partners/mozilla04/3.0.4/ (or something similar).  worksheet will be here: https://intranet.mozilla.org/Firefox:Distribution:Funnelcake4.
# When the download has finished, the user installs Firefox using the downloaded file.  
# QA testing + signing of release (Tomcat)
# Next, the user opens Firefox. Since this is the first time the user has opened a fresh install of Firefox, Firefox will automatically request a page served by our website, the “First Run” page.
# Repacking (Kev)
# The user enjoys and depends on Firefox for many years. It helps them navigate through all the times of their life.
# builds to be made ready for signing at people.mozilla.org:/tmp/funnelcake4-304-signed.tar
# Build signs (Nick Thomas); now at people.mozilla.org:/tmp/funnelcake4-304-signed.tar
# signed builds available at https://people.mozilla.org/files/partners/mozilla04/3.0.4/
# Create all unique pages (e.g., download.html, firstrun, whatsnew) (Wil Clouser)
# pages available on trunk
# Page testing and approval by QA (Stephen Donner)
## For the following pages, download the en-US builds for Win, Mac, Linux, install, and ensure their first-run pages are instrumented (f=4 or something similar):
### https://www.mozilla.com/en-US/
### https://www.mozilla.com/en-US/firefox/firefox.html
### http://www.mozilla.com/en-US/firefox/upgrade.html
### http://www.mozilla.com/en-US/firefox/personal.html
### https://www.mozilla.com/en-US/firefox/all.html
#### en-US links for Win, Mac, Linux should be Funnelcake-instrumented
##### All other download links should be normal
# Set-up download servers and enable mirrors (Oremj)
# builds should be available at something like http://dm-download03.mozilla.org/
# Double check the builds (Tomcat)


'''At midnight:'''
When a funnelcake experiment is underway, the above steps are different:
# Pages pushed to production (Wil Clouser)
* Some subset of users at step 2 download a special version of Firefox (the funnelcake version) with a unique anonymous number associated with the entire experiment (funnelcake id).
# Pages verified (Stephen Donner)
* When those funnelcake users visit the First Run page in step 4, the URL for that page includes a parameter (usually ?f=funnelcake-id) identifying them as part of the cohort. This allows us to understand how the funnelcake affected install rates.
* When the user is enjoying Firefox, the funnelcake ID is also included in the distribution.id field of Firefox. This allows us to understand usage and retention rates of those anonymous cohorts.


'''Day of launch:'''
== How to run a Funnelcake experiment ==
# Change pages back to normal on trunk and stage (Wil Clouser)
# Verify on authstage once it syncs (Stephen Donner)


'''At following midnight:'''
'''TLDR;''' Design an experiment, ask the Release Engineering team to build a special version of Firefox, and ask the Mozilla.org team to distribute that special version to a particular segment of downloaders.
# Back out to normal pages (Wil Clouser)
# Change the 3 bouncer entries between 0:00 and 0:01.  All Firefox-3.0.4-04 entries should point to the same locations as Firefox-3.0.4 entries. (John O'Duinn)
# Verify that three entry points all back to serving regular builds on all three platforms (Stephen Donner)


'''Done!'''
'''More specifically:'''


= Bugs Filed =
# At least 4 weeks<sup>*</sup> before you hope to launch your experiment, design it. A good experiment will have a hypothesis, a measurement method, a timeline, and any details someone else might require to reconstruct it at a later date. The Firefox Growth team has experiment templates for [https://docs.google.com/document/d/1iGaLTwPYA6AmxJ8EssuMyNoErsgun4vPOcC-ijfixIY/edit Google Docs] and [https://mana.mozilla.org/wiki/display/FIREFOX/BLANK_Template_AB_Test_Details Mana]. Here is an [https://mana.mozilla.org/wiki/display/FIREFOX/Vietnam+Funnelcake+with+AVIM+Pre-Installed+V2 example funnelcake experiment]. You can share your experiment by adding it to this [https://mana.mozilla.org/wiki/display/FIREFOX/Detailed+Experiment+Reports+of+Firefox+Growth+Team list of experiments].
* [https://bugzilla.mozilla.org/show_bug.cgi?id=468179 468179] -- master bug
# Convince stakeholders on teams involved that the experiment is worthwhile. Talk to the Growth Team if you want help assessing this.
* [https://bugzilla.mozilla.org/show_bug.cgi?id=468181 468181] -- create repack
# At least 2 weeks<sup>*</sup> before you hope to launch your experiment,
* [https://bugzilla.mozilla.org/show_bug.cgi?id=468183 468183] -- QA repack
## File a bug for the release engineering team explaining what the funnelcake should include, which version and channel of Firefox it should be based on, what locale it is for, and when distribution should begin. [https://bugzilla.mozilla.org/show_bug.cgi?id=1257899 Here is an example RE bug].
* [https://bugzilla.mozilla.org/show_bug.cgi?id=468186 468186] -- sign builds
## Add your funnelcake to [https://docs.google.com/spreadsheets/d/1gZ-GFyubAAlIxh-u-5SR52rqKKfBRLRuwrjSq97QkWA/edit#gid=0 the big list of all funnelcakes ever] and fill in all the fields that spreadsheet requires. This is also where you’ll get your funnelcake number.
* [https://bugzilla.mozilla.org/show_bug.cgi?id=468192 468192] -- create pages
## File a bug for the Mozilla.org team to build an Optimizely experiment to distribute the funnelcake to a specific segment (include relevant factors such as locale, geography, user agent, segment size), as well as any other changes. [https://bugzilla.mozilla.org/show_bug.cgi?id=1202004 Here is an example Mozilla.org bug].
* [https://bugzilla.mozilla.org/show_bug.cgi?id=468193 468193] -- QA pages
## If the experiment is sufficiently complex to involve many more bugs than that, file a meta bug to organize all the other bugs. (In many cases the two bugs above are sufficent).
* [https://bugzilla.mozilla.org/show_bug.cgi?id=468194 468194] -- push live at midnight
# Participate in the process however you can: Testing, building Optimizely experiments, following up on bugs, making sure the launch is smooth, etc.
* [https://bugzilla.mozilla.org/show_bug.cgi?id=468522 468522] -- change bouncer entries
 
''* Add more time if your experiment is very complex, e.g. requires substantial changes to the product or download funnel.''
 
FAQ
 
'''Q: How many users do I need for statistical validity?'''
A: It depends on your needs, but a common rule of thumb is you need 40,000-50,000 installs (which implies a larger number of downloads -- determined by the conversion rate of the segment you’re targeting). Use a tool like [https://www.optimizely.com/resources/sample-size-calculator/?conversion=1&effect=1&significance=95 Optimizely’s sample size calculator] to plan your experiment.
 
'''Q: Is there a list of all the funnelcakes ever run?'''
A: [https://docs.google.com/spreadsheets/d/1gZ-GFyubAAlIxh-u-5SR52rqKKfBRLRuwrjSq97QkWA/edit#gid=0 Here is a list of all the funnelcakes ever run]!
 
'''Q: How are numbers for funnelcakes assigned?'''
A: They are arbitrary (they don’t have any algorithmic meaning), but sequential. You can see the sequence on [https://docs.google.com/spreadsheets/d/1gZ-GFyubAAlIxh-u-5SR52rqKKfBRLRuwrjSq97QkWA/edit#gid=0 the big list of funnelcakes].
 
'''Q: How do we measure retention using funnelcakes?'''
A: One field in the big list of funnelcakes is “distribution ID”. This field is included in the channel that Firefox sends to telemetry. We can monitor telemetry data (including retention) for users of a particular channel (such as a funnelcake) using [https://docs.google.com/spreadsheets/d/1gZ-GFyubAAlIxh-u-5SR52rqKKfBRLRuwrjSq97QkWA/edit#gid=0 tools like this].
 
'''Q: How do we use funnelcakes to gather qualitative data?'''
A: The firefox user advocacy and research teams can target specific distribution IDs (such as the one assigned to a funnelcake) with [[Advocacy/heartbeat|heartbeat surveys]]. Furthermore, we can distribute funnelcakes to [https://www.usertesting.com/ usertesting.com] testers.
Confirmed users
583

edits