How to run experiments with ASRouter¶
This guide will tell you how to run an experiment with ASRouter messages. Note that the actual experiment process and infrastructure is handled by the experiments team (#ask-experimenter).
Why run an experiment¶
To measure the effect of a message on a Firefox metric (e.g. retention)
To test a potentially risky message on a smaller group of users
To compare the performance of multiple variants of messages in a controlled way
Choose cohort IDs and request an experiment¶
First you should decide on a cohort ID (this can be any arbitrary unique string) for each individual group you need to segment for your experiment.
For example, if I want to test two variants of an FXA Snippet, I might have two cohort IDs,
FXA_SNIPPET_V1
and FXA_SNIPPET_V2
.
You will then request a new “pref-flip” study with the Firefox Experiments team. The preferences you will submit will be based on the cohort IDs you chose.
For the FXA Snippet example, your preference name would be browser.newtabpage.activity-stream.asrouter.providers.snippets
and values would be:
Control (default value)
{"id":"snippets","enabled":true,"type":"remote","url":"https://snippets.cdn.mozilla.net/%STARTPAGE_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/release/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/","updateCycleInMs":14400000}
Variant 1:
{"id":"snippets", "cohort": "FXA_SNIPPET_V1", "enabled":true,"type":"remote","url":"https://snippets.cdn.mozilla.net/%STARTPAGE_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/release/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/","updateCycleInMs":14400000}
Variant 2:
{"id":"snippets", "cohort": "FXA_SNIPPET_V1", "enabled":true,"type":"remote","url":"https://snippets.cdn.mozilla.net/%STARTPAGE_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/release/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/","updateCycleInMs":14400000}
Add targeting to your messages¶
You must now check for the cohort ID in the targeting
expression of the messages you want to include in your experiments.
For the previous example, you wold include the following to target the first cohort:
{
"targeting": "providerCohorts.snippets == \"FXA_SNIPPET_V1\""
}