Opened 7 weeks ago

Last modified 3 weeks ago

#31109 new enhancement

Better gamify the UX for snowflake extension

Reported by: cohosh Owned by:
Priority: Medium Milestone:
Component: Circumvention/Snowflake Version:
Severity: Normal Keywords: snowflake-webextension, ux-team, anti-censorship-roadmap-october
Cc: arlolra, cohosh, phw, dcf Actual Points:
Parent ID: Points: 2
Reviewer: Sponsor: Sponsor28

Description (last modified by cohosh)

How do we make sure that users don't uninstall the extension if it seems like it isn't being used?

Sometimes usage is low due to bugs but other times it could be due to very few clients using the system. Is there a way to reassure people that the extension is still working or will be useful in the future?

Related comments:

Child Tickets

Change History (10)

comment:1 Changed 7 weeks ago by cohosh

Description: modified (diff)

comment:2 Changed 7 weeks ago by cohosh

From teor:

  • on relay search, we highlight consensus weight and bandwidth. And most other tools and ISPs make it easy to measure bandwidth. So relay operators try to maximise those numbers. No matter how many times we tell them that latency and reliability are also good for users.
  • we also show flags on Relay Search, which encourages operators to collect them all. That's good for our Exit capacity, but confuses people a bit about FallbackDir, because we rotate FallbackDirs every few releases

From arma:

  • giving me some solid indication that it's working would be great. right now i have only one metric -- whether the number changes from 0. so if there is something else, like whether i am successfully telling the broker that i exist, that could be useful.
  • whatever we show the users is our chance to steer them toward prioritizing what we want them to prioritize. that is, if we give them a number, they will naturally want that number to go up as high as possible
  • for example, showing them how many other people are running snowflakes right now. that's a number that could go up, and represents...something relevant here.
Last edited 7 weeks ago by cohosh (previous) (diff)

comment:3 Changed 7 weeks ago by arma

Keywords: ux-team added

The interface is where we gamify running the extension. That is, where we involve the user in knowing that they're being helpful, and knowing what being helpful actually means.

To start, giving me some solid indication that it's working would be great. Right now I have only one metric -- whether the number changes from 0. So if there is something else we can check, and display, like whether I am successfully telling the broker that I exist, that could be useful. Or a "self-test" button that I press if I'm worried, and it checks some stuff and tells me I'm good to go.

More broadly, whatever we show the users is our chance to steer them toward prioritizing what we want them to prioritize. That is, if we give them a number, they will naturally want that number to go up as high as possible. So let's try to give them some things that can show that they're being valuable. And the corollary is that if we show them a number that they can't influence and makes them depressed and feel unuseful, we're doing it wrong.

Taking a step back: I suggest making a list of the behaviors that we want in our extension users ("install the extension and leave it alone", "tell their friends to install it", etc), and then making a list of what understanding and intuitions we want to reinforce ("the more snowflakes running, the better", "it's ok if your snowflake doesn't have a user right now", "the more total censored people using snowflakes, the better", etc), and then figure out what data we have that we can show the user to reinforce these understandings and get them to do the actions we want most. (And if we don't have data for something, that's ok too -- a picture or whatever with little spinning things could conceivably be just as good.)

tagging as ux because this is totally a ux ticket

comment:4 Changed 7 weeks ago by arlolra

Keywords: snowflake-webextension added; snowflake-extension removed

comment:5 Changed 6 weeks ago by cypherpunks

Another consideration: When the extension tells us that WebRTC is off there needs to be (1) a link to some resource that explains to the user how to enable WebRTC, (2) a way to let the user force a recheck of the status of WebRTC by the extension, since after enabling WebRTC the extension needs to be reloaded in order to make it proceed with its job (or make the check automatic, e.g. every some interval of time, whenever the user clicks on the Snowflake addon icon...).

Edit: One of the user reviews of the extension in Mozilla's addons page points this out:

I did notice an odd behavior: before installing I had WebRTC disabled ("media.peerconnection.enabled = false"). After installing the extension, I then set "media.peerconnection.enabled = true" but I also had to disable and then re-enable the extension from about:addons for Snowflake to detect that WebRTC was now enabled in my browser.

https://addons.mozilla.org/en-US/firefox/addon/torproject-snowflake/reviews/1390659/

Last edited 5 weeks ago by cypherpunks (previous) (diff)

comment:6 Changed 5 weeks ago by gaba

Keywords: anti-censorship-roadmap-october added
Points: 2

comment:7 Changed 4 weeks ago by antonela

I think that could be helpful to discuss the scope for this ticket. Gamify is a very ambitious word, and maybe is something we could achieve in the long future.

As my understanding, the short term iterations we could do are related to the information we currently have. So, for example, a regular user has been using snowflake and always got a "0 clients connected". If there is no real-time feedback on it, maybe we should keep the explainer line ("Your snowflake has helped four users circumvent censorship in the last 24 hours.") and hide the clients' qty line.

Seems like the experience described by arma at comment:3 happens on the first-time user's flow. If that is the case, then we can map that user flow and design a better onboarding experience. It could involve the idea about to have a checklist like, share with friends, x days using snowflake, qty of data transferred, and so on. Creating a blank state doorhanger can be the first step for it.

comment:8 in reply to:  7 ; Changed 4 weeks ago by phw

Replying to antonela:

So, for example, a regular user has been using snowflake and always got a "0 clients connected". If there is no real-time feedback on it, maybe we should keep the explainer line ("Your snowflake has helped four users circumvent censorship in the last 24 hours.") and hide the clients' qty line.


Agreed. If the numbers are 0, we should not show them. Instead of "Your snowflake has helped 0 users circumvent censorship in the last 24 hours." we may want to say something like "Your snowflake is ready to help users circumvent censorship!"

comment:9 in reply to:  8 Changed 4 weeks ago by cypherpunks

Replying to phw:

Agreed. If the numbers are 0, we should not show them. Instead of "Your snowflake has helped 0 users circumvent censorship in the last 24 hours." we may want to say something like "Your snowflake is ready to help users circumvent censorship!"

+1

comment:10 in reply to:  8 Changed 3 weeks ago by cohosh

Replying to phw:

Replying to antonela:

So, for example, a regular user has been using snowflake and always got a "0 clients connected". If there is no real-time feedback on it, maybe we should keep the explainer line ("Your snowflake has helped four users circumvent censorship in the last 24 hours.") and hide the clients' qty line.


Agreed. If the numbers are 0, we should not show them. Instead of "Your snowflake has helped 0 users circumvent censorship in the last 24 hours." we may want to say something like "Your snowflake is ready to help users circumvent censorship!"

I really like both of these ideas to remove all zeros from the user feedback :)

Note: See TracTickets for help on using tickets.