-
Notifications
You must be signed in to change notification settings - Fork 45
Created new desktop-messaging tab under messaging/desktop for desktop… #830
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
2423599
Created new desktop-messaging tab under messaging/desktop for desktop…
Kand1Kane 2c8a243
Created new desktop-messaging tab under messaging/desktop for desktop…
Kand1Kane 0af793a
Merge branch 'desktop-messaging' of https://github.com/Kand1Kane/expe…
Kand1Kane 4fd5c2c
Update desktop-messaging.md
Kand1Kane 3ec7fa6
Addressed experiment pain points
Kand1Kane 698e10e
Addressed feedback
Kand1Kane 13bc9ce
Addressed feedback
Kand1Kane 8601ca9
Merge branch 'desktop-messaging' of https://github.com/Kand1Kane/expe…
Kand1Kane a1d82f6
remove redundant info
Kand1Kane File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,108 @@ | ||
| --- | ||
| id: desktop-messaging | ||
| title: Desktop Messaging | ||
| slug: /messaging/desktop/desktop-messaging | ||
| --- | ||
|
|
||
| Guide to configuring messaging system experiments on Firefox Desktop, focusing on what is specific to messages: message configuration, behaviors, and the relevant tools and reference docs. | ||
|
|
||
| ## Before You Start | ||
|
|
||
| Familiarize yourself with the key messaging system concepts: | ||
|
|
||
| - **[Surfaces](/messaging/desktop/desktop-messaging-surfaces)** - Different message types (doorhangers, feature callouts, spotlights, etc.) | ||
| - **[Display Logic](/messaging/desktop/display-logic)** - Triggers, targeting, and frequency capping | ||
|
Kand1Kane marked this conversation as resolved.
|
||
| - **[Configuration & Frequency](/messaging/desktop/message-configuration)** - Detailed configuration options | ||
|
|
||
| The general experiment lifecycle is the same for messaging as for any other experiment and is documented separately: | ||
|
|
||
| - **[Workflow overview](/workflow/overview)** and **[Getting Started for engineers](/getting-started/for-engineers)** - experimenter fundamentals and creating experiments | ||
| - **[Local Enrollment](/platform-guides/desktop/enroll-locally)** and **[Preview Mode](/platform-guides/desktop/preview)** - forced and natural enrollment, and previewing branches | ||
| - **[Testing](/workflow/testing)**, **[Launching](/workflow/launching)**, **[Monitoring](/workflow/monitoring)**, and **[Ending](/workflow/ending)** - testing, launch requests, and post-launch | ||
|
|
||
| :::info | ||
|
|
||
| Whenever you are working with the messaging system, use **#omc** for experiment review and launch requests rather than #ask-experimenter. | ||
|
|
||
| ::: | ||
|
|
||
| ### Helpful Tools & Resources | ||
|
|
||
| - **[Skylight](https://fxms-skylight.netlify.app/)** - View live messaging experiments, rollouts, and dashboards | ||
| - **[ASRouter Devtools](https://firefox-source-docs.mozilla.org/browser/components/asrouter/docs/debugging-docs.html)** - Preview and test message JSON | ||
| - **[nimbus-devtools Guide](/resources/nimbus-devtools-guide)** - Advanced testing and debugging | ||
| - **#omc** - Slack channel for messaging system questions and reviews | ||
|
|
||
| The Firefox [Messaging System source docs](https://firefox-source-docs.mozilla.org/browser/components/asrouter/docs/index.html) are the most up-to-date reference for anything specific to the messaging system: | ||
|
|
||
| - **[UI Templates](https://firefox-source-docs.mozilla.org/browser/components/asrouter/docs/#ui-templates)** - The different message surfaces (doorhangers, feature callouts, spotlights, etc.) and their schemas | ||
| - **[Trigger Listeners](https://firefox-source-docs.mozilla.org/toolkit/components/messaging-system/docs/TriggerActionSchemas/index.html)** - The user actions that can cause a message to be shown | ||
| - **[Targeting Attributes](https://firefox-source-docs.mozilla.org/browser/components/asrouter/docs/targeting-attributes.html)** - The client and browser state you can target against | ||
| - **[Frequency Caps & Groups](https://firefox-source-docs.mozilla.org/browser/components/asrouter/docs/frequency-caps.html#message-groups)** - How often a message can be shown, and how to cap groups of messages together | ||
| - **[Schemas](https://firefox-source-docs.mozilla.org/toolkit/components/messaging-system/docs/index.html)** - Message schema definitions | ||
|
|
||
| ## Configuring Message Branches | ||
|
|
||
| Each treatment branch holds the message JSON that matches the brief's design, content, and targeting. When configuring branches: | ||
|
|
||
| - Set the appropriate [feature configuration](/messaging/desktop/message-configuration) for the surface you're using | ||
| - Ensure the JSON matches the [message schema](/messaging/desktop/message-configuration) | ||
| - For multi-branch experiments, give the control branch a real `message_id` rather than an empty object so that it records an exposure event | ||
|
|
||
| :::warning | ||
|
|
||
| An empty object for control will never trigger or go through ASRouter and won't record an exposure event. As a result, the exposure analysis on Experimenter won't work correctly as there's no baseline to compare the treatments to. | ||
|
|
||
| ::: | ||
|
|
||
| Ask in #omc for review if you need clarification on multi-branch experiment setup. | ||
|
|
||
| ## Selecting a Feature ID | ||
|
|
||
| Which feature ID a messaging experiment uses depends on whether it's a holdback/rollout or a standard experiment, and on which surface the message uses. | ||
|
|
||
| ### Holdback Experiments & Rollouts | ||
|
|
||
| For rollouts and holdback experiments, you should pick up a placeholder Feature ID (`fxms-message`) that is not in use. See the [list of current messaging system feature IDs](https://experimenter.services.mozilla.com/nimbus/?status=Live). You can verify what is in use by checking the Experimenter UI and filtering for the specific feature ID using the **All Features** dropdown on the left. | ||
|
|
||
| ### Non-Holdback Experiments | ||
|
|
||
| When picking a feature ID for a non-holdback experiment, you should first prefer to run it on the [feature that matches the surface](/messaging/desktop/desktop-messaging-surfaces) that your experiment is using (`spotlight`, `featureCallout`, `infobar`, `cfr`, etc.). | ||
|
|
||
| If there are any other experiments using that feature ID that overlap in time with yours, you may still be able to use it, but ask in #omc to verify. | ||
|
|
||
| **Audience Overlap Considerations:** | ||
|
|
||
| In the case of experiment targeting overlaps you must ensure that the sum of all audience sizes, including the audience size of your experiment, is no more than 100% for each segment that overlaps. For example, if an experiment exists that uses the same targeting segment as yours is enrolling at 30%, your experiment may use that same feature ID at up to 70%, for a combined 100% of the population of that targeting segment. | ||
|
|
||
| :::note | ||
|
|
||
| Co-enrollment is supported for `fxms-message` feature IDs as of Firefox 152, so these audience-overlap constraints may not apply when targeting Firefox 152+. | ||
|
|
||
| ::: | ||
|
|
||
| If you are unable to use the feature that matches the surface of your message, reach out to #omc or a data scientist to discuss other options. | ||
|
|
||
| **Rollout Priority:** | ||
|
|
||
| Experiments take priority over rollouts, so one option is to share an ID with an existing rollout. If all IDs are taken by an experiment, it may still be usable depending on audience overlap. Check whether the targeting populations intersect. If your experiment targets Germany and the existing one targets Canada, they don't share users and can safely reuse the same ID. | ||
|
|
||
| The key is that the 'effective audience' (after all targeting criteria) doesn't overlap, not just that the IDs are "free." This also includes things like the channel, locales, and the audience percentage. | ||
|
|
||
| ## Previewing Message UI with `about:asrouter` | ||
|
|
||
| `about:asrouter` (the [ASRouter Devtools](https://firefox-source-docs.mozilla.org/browser/components/asrouter/docs/debugging-docs.html)) is the fastest way to iterate on a message's UI without enrolling. To enable it, set `browser.newtabpage.activity-stream.asrouter.devtoolsEnabled` to `true` in `about:config`, then open `about:asrouter`. | ||
|
|
||
| Paste your message JSON into the editor to render it immediately and check the layout, copy, and buttons. You can also inspect the messages currently available to the client and the provider they came from, and reset a message's impressions and frequency-cap history (or block and unblock it) so you can re-test as if you had never seen it. | ||
|
|
||
| :::info | ||
|
|
||
| `about:asrouter` previews only the **UI** of a message. It does **not** evaluate targeting or triggering. To test the full behavior of a message, enroll in the experiment. See [Local Enrollment](/platform-guides/desktop/enroll-locally) and [Preview Mode](/platform-guides/desktop/preview). | ||
|
|
||
| ::: | ||
|
|
||
| ## Additional Resources | ||
|
|
||
| - [Messaging System Documentation](/messaging/overview) | ||
| - [Experimenter Documentation](https://experimenter.info) | ||
| - [nimbus-devtools Guide](/resources/nimbus-devtools-guide) | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.