Page MenuHomePhabricator

[Spike 2 days] Identify delivery mechanism pt 2
Closed, ResolvedPublic3 Estimated Story PointsDesign

Description

Background

  • We would like to run an experiment on the UI of the empty state of search. This ticket will cover investigating different options for the set up for this experiment and making a recommendation for the best option

User story

  • As a developer, I would like to know what the best way to deliver an experimental version of the empty search state is so that I can understand whether the empty state of search is an effective placement for recommendations

Requirements

Metrics requirements

The experiment designed should allow us to track the following (or as much as the following as possible)
Quantitative metrics - high priority

  • Search sessions initiated
  • Impressions of search suggestion
  • Clicks on suggestions
  • Text types into search - i.e. we would want some way to know whether a session was completed using a suggestion, completed using search (they began typing and selected a result), or abandoned

Qualitative metrics - nice to have

  • Overall interest in search suggestions
  • Overall satisfaction with UI of feature
  • Ease of use of functionality itself

Other constraints

  • The experiment should take no more than 2 weeks to build and set up
  • The experiment cannot run for more than 2 weeks
  • Nice to have - a group large enough to test on as to render the results statistically significant
  • Nice to have - the ability to compare the results to similar results from features such as related pages
  • Nice to have - the ability to measure external referrals for the pages of the test

Acceptance criteria

Communication criteria - does this need an announcement or discussion?

  • Define communication criteria for experiment

Rollback plan

  • What is the rollback plan in production for this task if something goes wrong?

This task was created by Version 1.2.0 of the Web team task template using phabulous

Event Timeline

ovasileva renamed this task from [Spike to [Spike] Identify delivery mechanism pt 2.
ovasileva triaged this task as High priority.
ovasileva renamed this task from [Spike] Identify delivery mechanism pt 2 to [Spike 2 days] Identify delivery mechanism pt 2.Jul 29 2024, 5:56 PM
ovasileva set the point value for this task to 3.

Change #1059437 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/Vector@master] Allow gadget/browser extension extensibility of empty search state

https://gerrit.wikimedia.org/r/1059437

@bwang something like the above hook is probably a good idea to support however we decide to run this experiment. This would allow us to avoid having to use MutationObserver is unpredictable ways when building out a <banner/gadget/browser extension/WikimediaEvents/insert type here> experiment.

@bwang something like the above hook is probably a good idea to support however we decide to run this experiment. This would allow us to avoid having to use MutationObserver is unpredictable ways when building out a <banner/gadget/browser extension/WikimediaEvents/insert type here> experiment.

Yes me and @Jdrewniak discussed this as well, your patch seems like the right idea to me, given we are mainly worrying about the empty state.

Me and @Jdrewniak met to discuss the list of options from part 1 of this spike, which also includes notes on pro/cons for each option.

The first consideration is whether or not a delivery mechanism is subject to the train, which would be an obstacle with the 2 week build/setup constraint. This automatically means production A/B test, production Beta feature, production interactive survey and MediaWiki Extension arent feasible.

Patchdemo is a quick and easy way to get a realistic mediawiki environment, but wouldnt be good for getting accurate quantitative data, as people wont be able to actually browse/search on it realistically. A standalone webpage has the same issues with quantitative data, except it does a worse job of mimicking mediawiki than patchdemo.

QuickSurveys and CentralNotice both arent well suited for this kind of experiment and would likely be more trouble to work around.

That leaves our number 1 and 2 candidates, browser extension and gadgets!
Browser extension is most the promising, as it has relatively minimal overhead and only requires some familiarity with chrome extension store. The main downside to it is that our audience is limited and that we cant test mobile. Gadgets allow us to reach more people, but potentially come with community concerns, and might require approval. It would also be riskier and they presumably would have to be enabled by default on a smaller wiki if we want anon users. Both browser extensions and gadgets need a workaround for languages. We could access and use mediawiki messages for both, or directly access translate wiki pages.

Jan and I also discussed the metrics, we believe most of them should already be tracked by the Search team, as the ones listed in the description are related to after the user already types into search, and is no longer seeing the empty search state. We want to confirm with the search team that these can be tracked for our experiement

bwang removed bwang as the assignee of this task.Aug 7 2024, 3:52 PM
bwang subscribed.

Gadgets allow us to reach more people, but potentially come with community concerns, and might require approval.

Did you consider banners? It's a bit of an unconventional use of them, but it could also be used as a delivery mechanism without those same community concerns.

Jan to setup a meeting to make a decision.

@Jdlrobson

Did you consider banners? It's a bit of an unconventional use of them, but it could also be used as a delivery mechanism without those same community concerns.

We did consider a banner as one of the options, but I think there are some complexities regarding the interaction of the banner and the campaign, as well as what happens when running multiple campaigns simultaneously. For example, CentralNotice can target user languages, but not wikis, so that logic has to live in the banner. Previously when we used CentralNotice to show the dark mode launch notification, we housed the 'real' banner code in the Minerva repo, and used the banner as a script loader. I'm not sure if that was a good idea or if it would be better to keep the experiment code in the on-wiki banner page itself (combined with the styles I guess?). Banner persistence might also be an issue if cookies are disabled.

These are all open questions that would need further investigation, so although CentralNotice does have potential for this use-case, the browser extension seems like a more straight-forward way of injecting code onto the page at this time. We did discuss CentralNotice during the sprint-kickoff meeting today though, e.g. if we deployed the experiment as a gadget, we could create a CentralNotice campaign that enables the experiment via clicking a banner.

Discussed in separate meeting and identified next steps. We will be moving forward with a browser extension as our top option. See task graph for details.

Change #1059437 merged by jenkins-bot:

[mediawiki/skins/Vector@master] Allow gadget/browser extension extensibility of empty search state

https://gerrit.wikimedia.org/r/1059437