Mobile/Projects/Dynamic snippets add-on
Contents
Tracking
- bug 922792 is tracking the server side work
- bug 937820 is tracking the client side work
Goals
Build and bundle an add-on to access and display Dynamic Snippets (brought in from the Dynamic Snippets service) via the new promotional banner API (bug 905262) as part of the new about:home design.
Overview
Firefox for Android currently features a hard-coded set of rotating snippets in a banner on the home screen (Example).
We want to stop hard-coding that content and instead take advantage of (and eventually extend) the existing Snippets service that is currently used by Firefox for Desktop.
We also want to give partners the opportunity to add a limited number of their own snippets to that banner rotation -- all strictly within Mozilla's branding and content policies -- so they can also take advantage of this space to communicate with and better engage their customers.
Specifications
- Use Margaret's new API bug 905262
- Use the existing Dynamic Snippets service
- Integrate with Ian's about:home redesign
Implementation
- Prototype here: https://github.com/leibovic/promo-banner
Phase 1 MVP
Requirements
- Develop initial version of a Dynamic Snippets add-on that is able to use the existing Snippets infrastructure (with any necessary modifications) & ship that bundled with Firefox for Android.
User stories
User
- As a user, I want to be clearly informed of any data being collected through or about the Dynamic Snippets add-on & service. Opting-in and out should be part of the general data collection pane, as used for other features, and the default (opted in or out) should be the same as other existing defaults. If I have opted out, or if there are no dynamic snippets available that are appropriate to my device, no Dynamic Snippet content will be shown on the about:home screen.
- As a user, I expect that Firefox will continue to protect my security and privacy when developing the content and infrastructure for the Dynamic Snippets add-on & service.
- As a user, I only ever want to see snippets that are appropriate for my localized version of Firefox.
Support
- As a Mozilla user advocate, I want to be able to target Dynamic Snippets to particular Firefox versions and release channels so we can get feedback from users of specific releases and channels.
Marketing
- As a member of Mozilla Marketing, I want to be able to see up-to-date stats about how many people have seen a particular snippet (impressions) and how often people have clicked on a particular snippet's link (clickthroughs).
- As a member of Mozilla Marketing, I want to be able to slice the impressions & clickthrough data in a number of ways -- by partner, localization, Firefox version, Firefox release channel, etc. (TBD: Need a complete list from Marketing.)
- As a member of Mozilla Marketing, I must be able to review and approve any content submitted by partners to be included in the Dynamic Snippets banner rotation. No content will be displayed in the banner rotation that has not been reviewed and approved by at least one full-time member of the Mozilla Marketing team.
- As a member of Mozilla Marketing, I expect periodic review of long-running partner snippets, ensuring that partner organizational issues don't leave stale or incorrect snippets in the system, and both partner and user needs continue to be met.
- As a member of Mozilla Marketing, I expect to have available a partner notification and escalation channel if a partner's snippet is causing issues, either technical or marketing, such that the snippet can be permanently or temporarily withdrawn from circulation and the partner notified.
- As a member of the Mozilla Marketing team, I want a quick and easy way to input approved materials for inclusion in the Dynamic Snippets banner.
- As a member of the Mozilla Marketing team, I want to be able to add snippets in any language Firefox currently supports. [TODO: localization integration?]
- As a member of the Mozilla Marketing team, I want to be able to target snippets to users of particular localizations of Firefox.
Product
- As a Mozilla product manager, I want there to be no more than 4 Dynamic Snippets in rotation at any one time for a given set of parameters, so we have some assurance that users will see the snippets in a timely fashion.
- As a Mozilla product manager, I want to continue having Mozilla's promotional materials to be included in the Firefox Promotional Banner rotation, alongside any partners' promotional material.
- As a Mozilla product manager, I want to be able to target snippets to particular Firefox versions and release channels so we can send information to those specific users.
- As a Mozilla product manager, I want the ability to quickly remove partners' promotional materials from the Firefox Promotional Banner rotation should any problems or conflicts arise. (For some to-be-determined definition of "quickly", likely within 24 hours.)
- As a Mozilla product manager, I want to be assured that dynamic banner materials are not causing -- and do not have the potential to cause -- any security or privacy issues for our users.
- As a Mozilla product manager, I expect partners' content and assets in the Firefox Promotional Banner to comply with a clear set of branding and legal policies and guidelines that we will provide and enforce.
- As a Mozilla product manager, I do not want snippets to have any noticeable negative impact on Firefox or device performance.
UX design
TBD
Phase 2 (v2)
Requirements
- Write initial version of Dynamic Snippets branding & content policy guidelines
- Figure out initial version of Dynamic Snippets content submission and approval process for partners
- Expand targeting criteria to include geographic location, device (?), and Android version (?)
- Allow users to turn the Dynamic Snippets banner off and on again
- Improve overall user experience by hiding snippets they have already interacted with and do not have any reason to see again
- Expand metrics reporting tool to account for new targeting criteria & make any other improvements that have emerged from v1 usage and testing
User stories
User
- As a user, I want the ability to quickly and permanently hide the Dynamic Snippets banner so I never have to see that content again.
- As a user, I want to be able to re-enable the Dynamic Snippets banner later, even if I have shut off and removed the banner from my home screen.
- As a user, when I tap on a snippet, I (do/don't)? expect to see it again when I go back to the home screen. (Final behaviour TBD in consultation with UX.)
- As a user, I only ever want to see snippets that are appropriate for my location.
Partner
- As a partner, I want the ability to include a single custom promotional banner in the Dynamic Snippet rotation. This can involve having multiple banners in circulation, each targeting a different user demographic.
- As a partner, I want the promotional material in the Dynamic Snippets banner to be refreshed by clients at least once per day, so if I want to replace the snippet we have in the banner rotation, it will appear no more than 24 hours after it has been added, subject to content distribution and policy review restrictions, and the settings and network state of users' handsets.
- As a partner, I want to be able to specify both the start date and end date for when my custom banner appears in the Dynamic Snippets banner rotation. If I do not specify a start date, that should be assumed to mean "as soon as possible". If I do not specify an end date, that should be assumed to mean "indefinitely" or "until I ask that it be removed or replaced".
- As a partner, I want to be able to customize the text content, link target, and image/icon for each Dynamic Snippet I submit to Mozilla, within branding parameters.
- As a partner, I want my submitted content to be reviewed and either approved or sent back for revisions within a previously agreed-upon range of time. Any potential delays should be communicated by Mozilla in a timely manner, including estimations for when those delays will be resolved. (Basically we need a well-managed approval queue.)
- As a partner, I want submitting content to be included in the Dynamic Snippet banner rotation to be as simple as possible. Ideally, I won't have to learn any new tools or systems, and a real human will be involved in the process so any issues that arise can be resolved quickly and easily.
- As a partner, I expect Mozilla to provide a well-defined escalation chain and avenues for appeal and discussion related to snippet approval. I don't expect Mozilla work weeks, vacations, etc. to impact my ability to rapidly withdraw a snippet or have one approved.
- As a partner, I want to be able to target Dynamic Snippets by localization & by other device criteria, such as Firefox version. (Full set of criteria TBD)
- As a partner, I want to be able to access or receive regular reports about the efficacy of the promotional materials I have included in the Dynamic Snippet banner rotation.
- As a partner, I want to be able to slice the available metrics data by language, location, localization, device, Firefox version, Android version...(final list TBD)
- As a partner, I want to be able to target Dynamic Snippets by language, location, localization, device, Firefox version, Android version...(final list TBD)
- As a partner, I want to be able to include images for HiDPI and other form factors, so the image displayed in the Snippet is high-quality regardless of device.
Marketing
- As a member of the Mozilla Marketing team, I want to be able to target Dynamic Snippets by language, location, localization, device, Firefox version, Android version...(final list TBD)
UX Design
TBD