Closed Bug 630872 Opened 14 years ago Closed 10 years ago

Improve admin UI for about:home snippets server

Categories

(Snippets Graveyard :: General, defect)

x86
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: lorchard, Assigned: osmose)

Details

Copy/paste of email from lforrest:
---

Client Match Rules
-Consider adding in menu drop-downs instead of open fields to decrease chances for human error and increase usability (High priority)
-Use of regex will be handy in many instances but if the end user of this tool is marketing folks it would be even better if regex didn't have to be used, and fields like "and", "or", "excluding" could be selected
-Would be useful in the future to view all snippets by Client Match Rule. Maybe include a link to "see all snippets" associated with that rule on the Match Rules overview page
-Not sure if it can, but would be good to have it contain logic that can detect errors in the rules, or duplicate rules created and give the user error warnings

Snippets
-Would be great to have more of a hierarchy here like http://google_snippets.stage.mozilla.com. Otherwise all the snippets from each locale will show at once and quickly become overwhelming and hard to work with. (Very High priority)
-Love, love, love having a start and end time we can control!

 Change Snippet
-The Content Body is unwieldy. Can we tease that out a bit, and have three other fields on top that ask for text, link, and a graphic (upload) and then that content block will be generated? Maybe there's a fourth field where we insert all the other custom code functionality like layout specifics. (Very High priority)
-Increase the width and height of the Client Match Rules field. Once there are over 4 Client Match Rules that field will be pretty crowded and very hard to navigate
-How exactly does Sort Order Priority work? Can each snippet be ranked? Or does one enter a percentage that snippet will be shown combined with others currently assigned to each rule?

Other
-Would be nice to have a staging environment to test and preview snippet content on
-In general I wonder how conflicting rules are resolved. For example, if two different snippets are set to serve 100% against the same Rule, what ends up happening? Is there a way to break this tool? Are there any bugs that will creep out when there's human error like this?
-Is there a way to serve blank content? For example, sometimes with our current snippets we fill 4/5 spots leaving one blank since this increases the clickthrough on the snippets that are shown.
-Would be good to have our metrics tool integrated into this. For example, show the list of snippets and then the amount of impressions, clicks, and clickthrough each has received against a designated time period.
Some comments on the feedback... at some point, each of these should be turned into bugs blocking this one, to track as action items.

(In reply to comment #0)

> Client Match Rules
> -Consider adding in menu drop-downs instead of open fields to decrease chances
> for human error and increase usability (High priority)

We can probably do this for some fields, but the main issue is finding the list of options for each field. We probably have things like "product version" and "build ID" somewhere in our release system, but I'm not sure how to get at it

> -Use of regex will be handy in many instances but if the end user of this tool
> is marketing folks it would be even better if regex didn't have to be used, and
> fields like "and", "or", "excluding" could be selected

Regex was the simplest thing that should work for an initial release of this thing, assuming a webdev assists in getting snippets launched. 

I'm not entirely sure *who* should be the the ultimate end user of this thing. But, if it's eventually marketing folks, then yeah - there are a lot of spots where more intuitive UI should be worked out. Match rules are unfriendly, as is HTML for snippets

> -Would be useful in the future to view all snippets by Client Match Rule. Maybe
> include a link to "see all snippets" associated with that rule on the Match
> Rules overview page

+1

> -Not sure if it can, but would be good to have it contain logic that can detect
> errors in the rules, or duplicate rules created and give the user error
> warnings

+1

> -Would be great to have more of a hierarchy here like
> http://google_snippets.stage.mozilla.com. Otherwise all the snippets from each
> locale will show at once and quickly become overwhelming and hard to work with.
> (Very High priority)

Would this be like viewing snippets by match rule? The hierarchy there just looks like locales to me.

> -Love, love, love having a start and end time we can control!
> 
>  Change Snippet
> -The Content Body is unwieldy. Can we tease that out a bit, and have three
> other fields on top that ask for text, link, and a graphic (upload) and then
> that content block will be generated? Maybe there's a fourth field where we
> insert all the other custom code functionality like layout specifics. (Very
> High priority)

Assuming a webdev will be involved at first in pushing snippets, this is another thing that I kept simple tech-wise. I wasn't sure what the content model for snippets would look like (eg. title / icon / blurb? rotating snippets? interactive items? metrics JS includes?)

As we figure out what snippet content items look like, I would like to develop further fill-in-the-blank forms that result in templated HTML content. It's barebones now, but I think the admin code will let us do that over time.

Then again, if snippet content is changed relatively infrequently, it might make sense to keep webdevs in the loop rather than over-engineer things.

> -Increase the width and height of the Client Match Rules field. Once there are
> over 4 Client Match Rules that field will be pretty crowded and very hard to
> navigate

+1

> -How exactly does Sort Order Priority work? Can each snippet be ranked? Or does
> one enter a percentage that snippet will be shown combined with others
> currently assigned to each rule?

When the set of rules matching a request from a client results in multiple snippets, they're all sorted based on the number in Sort Order Priority. So, for example, -9999 shows up first in the set and 9999 shows up last.

> -Would be nice to have a staging environment to test and preview snippet
> content on

That environment should be http://snippets.stage.mozilla.com/admin/

The front page there shows snippets for one hypothetical browser, but that's not super helpful. You can also switch snippet servers in Firefox using a preference under about:config (ie. browser.aboutHomeSnippets.updateUrl, per bug 603674).

Of course, that preference is not obvious / intuitive, so it might help if I (or someone) carved out some time to throw together a Jetpack / add-on to manage that switch with a button or two.

> -In general I wonder how conflicting rules are resolved. For example, if two
> different snippets are set to serve 100% against the same Rule, what ends up
> happening? Is there a way to break this tool? Are there any bugs that will
> creep out when there's human error like this?

This is another spot where webdev help is needed to publish snippets.

Right now, the match system is very dumb. All matching snippets get assembled, and sorted by the priority number. That gets served out as one big block of HTML content. A webdev will need to include JavaScript code and CSS (also in a snippet) to manage what happens once the payload reaches a browser.

So, say we have 3 snippets to display to en-US users in random rotation. The snippet service would ship all three to the browser, along with a 4th snippet containing JS and CSS code to manage the display of the other three.

> -Is there a way to serve blank content? For example, sometimes with our current
> snippets we fill 4/5 spots leaving one blank since this increases the
> clickthrough on the snippets that are shown.

I'm not sure I understand this. Do you mean 1/5 of the time, no content should appear? I'm not at all familiar with how the current snippets work

> -Would be good to have our metrics tool integrated into this. For example, show
> the list of snippets and then the amount of impressions, clicks, and
> clickthrough each has received against a designated time period.

From our last call, metrics integration sounds like a bit of an unknown. I wouldn't want to try building a metrics system myself from scratch, so we should see what tools we have available as options. The admin stuff can be pretty flexible, so data pulled from an external metrics service could be included in the views.
(In reply to comment #1) 
> > -Would be nice to have a staging environment to test and preview snippet
> > content on
> 
> That environment should be http://snippets.stage.mozilla.com/admin/
> 
> The front page there shows snippets for one hypothetical browser, but that's
> not super helpful. You can also switch snippet servers in Firefox using a
> preference under about:config (ie. browser.aboutHomeSnippets.updateUrl, per bug
> 603674).
> 
> Of course, that preference is not obvious / intuitive, so it might help if I
> (or someone) carved out some time to throw together a Jetpack / add-on to
> manage that switch with a button or two.

To follow up on this, I've started hacking together an add-on to help switch snippet services used on about:home. The source and a relatively current download will be here:

https://github.com/lmorchard/home-snippets-switcher

That add-on will let you change the URL of the service used by about:home (eg. between prod, staging, or a dev instance of the service), as well as force the page to reload snippets (since it only checks once per day otherwise)
Were these changes addressed in the recent snippets service upgrade? Is it safe to close this?
mkelly: can you review everything in here and let us know if this has all been covered in your other Snippet bugs?
Assignee: nobody → mkelly
There's still a few items that haven't been addressed from this bug.

Here's a list of the items that have yet to be covered (also removed questions that Les answered) along with some feedback:

> Client Match Rules
> -Consider adding in menu drop-downs instead of open fields to decrease
> chances for human error and increase usability (High priority)
Still an issue, although this will become a bit easier now that we can create many individual rules and put them together rather than re-making the same combinations of rules over and over.

> -Use of regex will be handy in many instances but if the end user of this
> tool is marketing folks it would be even better if regex didn't have to be
> used, and fields like "and", "or", "excluding" could be selected
>
> -Not sure if it can, but would be good to have it contain logic that can
> detect errors in the rules, or duplicate rules created and give the user
> error warnings
>
> Other
> -Is there a way to serve blank content? For example, sometimes with our
> current snippets we fill 4/5 spots leaving one blank since this increases
> the clickthrough on the snippets that are shown.
This still needs to be clarified. Is this assuming that a certain number of snippets are always sent?

> -Would be good to have our metrics tool integrated into this. For example,
> show the list of snippets and then the amount of impressions, clicks, and
> clickthrough each has received against a designated time period.
Metrics for snippets using iframes is being handled by Webtrends currently, but we have yet to test using Webtrends inside a local snippet.
Component: Webdev → General
Product: mozilla.org → Snippets
QA Contact: webdev → general
Version: other → unspecified
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WONTFIX
Product: Snippets → Snippets Graveyard
You need to log in before you can comment on or make changes to this bug.