We often reuse certain targeting strings in messaging system, both for in-tree messages and experiments. At the moment, we don't document these commonly used combinations / heuristics. This makes it difficult to effectively communicate changes and maintain consistency across messages. This bug is for collecting an initial set of targeting constants with the intent of landing them in-tree. Our team discussed using a versioning system to highlight targeting changes. This might look like adding a new constant with `_V2` or a similar suffix added to denote an update. Experimenter offers [a model of using constants for commonly reused targeting strings](https://github.com/mozilla/experimenter/blob/main/experimenter/experimenter/targeting/constants.py#L30-L38). Example candidates for targeting constants: - `'browser.shell.checkDefaultBrowser'|preferenceValue && !isDefaultBrowser"` for user needs to set default and `(!'browser.shell.checkDefaultBrowser'|preferenceValue || isDefaultBrowser)"` for user does *not* need to set default ([see uses here](https://searchfox.org/mozilla-central/search?q=%27browser.shell.checkDefaultBrowser%27%7CpreferenceValue&path=&case=false®exp=false)) - ` (currentDate|date - profileAgeCreated|date) / 86400000 >= 28 && previousSessionEnd` for existing users - We recently began adding `previousSessionEnd` to this targeting to avoid including users with older profiles who deleted Firefox, then reinstalled and refreshed their account resulting in them seeing first run onboarding - `totalBookmarksCount <= 5` as a heuristic for users who have not imported from another browser - This also needs to be updated as the default number of bookmarks in release will be 4 with bug 1904630. - We could now use something like `!( browser.migrate.interactions.bookmarks || browser.migrate.interactions.passwords || browser.migrate.interactions.csvpasswords || browser.migrate.interactions.history)`
Bug 1907594 Comment 0 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
We often reuse certain targeting strings in messaging system, both for in-tree messages and experiments. At the moment, we don't document these commonly used combinations / heuristics. This makes it difficult to effectively communicate changes and maintain consistency across messages. This bug is for collecting an initial set of targeting constants with the intent of landing them in-tree. Our team discussed using a versioning system to highlight targeting changes. This might look like adding a new constant with `_V2` or a similar suffix added to denote an update. Experimenter offers [a model of using constants for commonly reused targeting strings](https://github.com/mozilla/experimenter/blob/main/experimenter/experimenter/targeting/constants.py#L30-L38). Example candidates for targeting constants: - `'browser.shell.checkDefaultBrowser'|preferenceValue && !isDefaultBrowser"` for user needs to set default ([see uses here](https://searchfox.org/mozilla-central/search?q=%27browser.shell.checkDefaultBrowser%27%7CpreferenceValue&path=&case=false®exp=false)) - ` (currentDate|date - profileAgeCreated|date) / 86400000 >= 28 && previousSessionEnd` for existing users - We recently began adding `previousSessionEnd` to this targeting to avoid including users with older profiles who deleted Firefox, then reinstalled and refreshed their account resulting in them seeing first run onboarding - `totalBookmarksCount <= 5` as a heuristic for users who have not imported from another browser - This also needs to be updated as the default number of bookmarks in release will be 4 with bug 1904630. - We could now use something like `!( browser.migrate.interactions.bookmarks || browser.migrate.interactions.passwords || browser.migrate.interactions.csvpasswords || browser.migrate.interactions.history)`
We often reuse certain targeting strings in messaging system, both for in-tree messages and experiments. At the moment, we don't document these commonly used combinations / heuristics. This makes it difficult to effectively communicate changes and maintain consistency across messages. This bug is for collecting an initial set of targeting constants with the intent of landing them in-tree. Our team discussed using a versioning system to highlight targeting changes. This might look like adding a new constant with `_V2` or a similar suffix added to denote an update. Experimenter offers [a model of using constants for commonly reused targeting strings](https://github.com/mozilla/experimenter/blob/main/experimenter/experimenter/targeting/constants.py#L30-L38). [This document](https://docs.google.com/document/d/1VkEJWCx_ZYeqc2HgzEkcGIspJb6vJnh2DXGDtgRbgz8/edit) can be used to compile an initial list of constants. Example candidates for targeting constants: - `'browser.shell.checkDefaultBrowser'|preferenceValue && !isDefaultBrowser"` for user needs to set default ([see uses here](https://searchfox.org/mozilla-central/search?q=%27browser.shell.checkDefaultBrowser%27%7CpreferenceValue&path=&case=false®exp=false)) - ` (currentDate|date - profileAgeCreated|date) / 86400000 >= 28 && previousSessionEnd` for existing users - We recently began adding `previousSessionEnd` to this targeting to avoid including users with older profiles who deleted Firefox, then reinstalled and refreshed their account resulting in them seeing first run onboarding - `totalBookmarksCount <= 5` as a heuristic for users who have not imported from another browser - This also needs to be updated as the default number of bookmarks in release will be 4 with bug 1904630. - We could now use something like `!( browser.migrate.interactions.bookmarks || browser.migrate.interactions.passwords || browser.migrate.interactions.csvpasswords || browser.migrate.interactions.history)`