Closed Bug 793936 Opened 8 years ago Closed 8 years ago

Implement Campaign Manager for Firefox for Android Product Announcements

Categories

(Cloud Services :: Server: Product Announcements Campaign Manager, defect, P1)

ARM
Android
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: elan, Assigned: jrconlin)

References

(Depends on 1 open bug, )

Details

(Whiteboard: [snippets])

Attachments

(1 file)

The campaign manager for Android Snippets is a webtool for:
*creating and deploying new campaigns 
*managing existing campaigns 

Here is the pretty mockup:
https://bug774497.bugzilla.mozilla.org/attachment.cgi?id=663143

The following services are required:
*public snippet service
*snippets database which contains all of the campaign data (all locales)
*metrics tool which contains all of the collected data. Thus far, metrics include: Fetches (aggregate array of values) and Click-through-Rate

For the beautiful depiction of this wonderland of data & architectural details: https://wiki.mozilla.org/User:Mconnor/Current/Snippets_Service
Product: Firefox for Android → Mozilla Services
Version: Trunk → unspecified
Whiteboard: [snippets]
Looking at the mock-up of the web-tool, I had a few comments/questions:

1) I should be able to create multiple campaigns at the same time. For example, I may want to send out three different messages in the US: 1)users who have been inactive for 15+ days, 2) users who have been inactive for 14-02 days, 3) users who have been inactive for 1 day only. Based on this tool mock-up, I'm not sure if I'll be able to do that. 
2) Targets --> For the MVP, I'm not concerned about the ability to send messages to any other channel than "release." It may be part of the implementation process to include Beta, Aurora, and Nightly, but when we're talking about ADIs only GA is important. 
3) Message Details --> we need a max character limit for the Subject and Message based on the design that we land on.
(In reply to Sam Mott from comment #1)
> Looking at the mock-up of the web-tool, I had a few comments/questions:
> 
> 1) I should be able to create multiple campaigns at the same time. For
> example, I may want to send out three different messages in the US: 1)users
> who have been inactive for 15+ days, 2) users who have been inactive for
> 14-02 days, 3) users who have been inactive for 1 day only. Based on this
> tool mock-up, I'm not sure if I'll be able to do that. 

This is for creating a single campaign.  There's another mockup floating around that covered visibility of multiple campaigns.

What you're effectively saying is that you want to have an upper bound for idle, not just a lower bound?  We can accomodate that, certainly.

> 2) Targets --> For the MVP, I'm not concerned about the ability to send
> messages to any other channel than "release." It may be part of the
> implementation process to include Beta, Aurora, and Nightly, but when we're
> talking about ADIs only GA is important.

Once we're targeting channels, it's easier than not to support all channels.

> 3) Message Details --> we need a max character limit for the Subject and
> Message based on the design that we land on.

I'm assuming the limits will be driven more by the display limitations of the OS.  Karen's POV was that we're unlikely to special-case Jellybean and up at this time, so both title and message need to be short to fit "standard" Android.
> This is for creating a single campaign.  There's another mockup floating
> around that covered visibility of multiple campaigns.

Good to know! Thanks. 
> 
> What you're effectively saying is that you want to have an upper bound for
> idle, not just a lower bound?  We can accomodate that, certainly.

Yup. This will help us target specific cohorts based on ADI usage. Can be pretty valuable. 


> Once we're targeting channels, it's easier than not to support all channels.

Win-win!


> I'm assuming the limits will be driven more by the display limitations of
> the OS. 
Absolutely. We just need to make sure those limits are clear--otherwise we open ourselves up to poorly formatted messages.

This discussion also brought up something else we should be able to do: sent a test message. For instance, I may want to target my specific device in order to ensure that the message looks like I want it to. Is this something we could do?
Note that it's impossible to give a simple character count limit, because Android uses variable-width fonts.

On my phone, you can fit approximately 30 Latin characters — five or so English words — in the title, and maybe double that in the description. This is not a big space.

Expanded Jelly Bean notifications could include more verbiage at the risk of appearing to abuse the notifications system, and thus generating negative tweets and blog posts.

Worth reading:

http://developer.android.com/design/patterns/notifications.html

(Of academic interest: this whole feature violates half of "When not to display a notification"…)


> This discussion also brought up something else we
> should be able to do: sent a test message.
> For instance, I may want to target my specific device
> in order to ensure that the message looks like I want
> it to. Is this something we could do?

Absolutely not.

The right approach to this is to use a staging setup (which we'll have for QA regardless), or to simulate a device.
(In reply to Richard Newman [:rnewman] from comment #4)

> > This discussion also brought up something else we
> > should be able to do: sent a test message.
> > For instance, I may want to target my specific device
> > in order to ensure that the message looks like I want
> > it to. Is this something we could do?
> 
> Absolutely not.
> 
> The right approach to this is to use a staging setup (which we'll have for
> QA regardless), or to simulate a device.

To clarify this, I think it would be extremely problematic from a privacy/user benefit perspective to be able to do device-specific targeting like this.  We'll have a staging version that we can use to test campaigns, just as we test all of our engagement sites.
Attached image CM front page
This is a first crack.
Blocks: 789296
Summary: Implement Campaign Manager for Android Snippets → Implement Campaign Manager for Fx for Android Product Announcements
Just noticed that this was hanging out in the ether.
Assignee: nobody → jrconlin
Status: NEW → ASSIGNED
For reference:

https://github.com/jrconlin/campaign_manager
Summary: Implement Campaign Manager for Fx for Android Product Announcements → Implement Campaign Manager for Firefox for Android Product Announcements
Blocks: 806024
New component! \o/
Component: General → Server: Product Announcements Campaign Manager
Depends on: 811848
per discussion with telliot, I regretably don't have time to qa this. Marking qa-
Whiteboard: [snippets] → [snippets][qa-]
jrgm, I own this feature for Fx.  It's been vollyballing between Dev and QA for a couple weeks now. :-) I've been testing the full process against a dev/stage environment.

As of the equirements per Sam

1) I'm just now figuring out the idle time requirement testing this real time is... slow, since the variable is in days.
2) We can push to any channel or all. Version granularity is also available.
3) Messages aren't usefully limited by the manager.  Unfortunately, length of message devices can display is quite short. Please keep them very concise and put all the useful information in the linked to page.
QA Contact: twalker
Whiteboard: [snippets][qa-] → [snippets]
jrconlin: RESOLVED FIXED?
Depends on: 823561
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
QA Contact: twalker
You need to log in before you can comment on or make changes to this bug.