[开源漫谈] 一款统计上网时间的浏览器扩展,用爱发电三年,我是如何让它的用户评分持续几近满分 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
sheepzh
V2EX    分享创造

[开源漫谈] 一款统计上网时间的浏览器扩展,用爱发电三年,我是如何让它的用户评分持续几近满分

  •  3
     
  •   sheepzh
    sheepzh 2024-06-25 00:47:18 +08:00 2401 次点击
    这是一个创建于 493 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写在前面

    扩展名称叫 [网费很贵] 。简单来说,它是一个开源、免费无广告、用户友好的,集上网时间追踪,数据报表分析,以及成瘾行为控制于一身的浏览器扩展。

    两年前我也在 v 站发过贴(传送门),当时功能还比较简单。大家现在也可以直接访问 GitHub 主页,或者官网安装页面

    因为我完全把这个项目视作业余爱好,所以到目前为止,Chrome 、Edge 、Firefox 三个商城总共的活跃用户数只有 9k 左右,不是很多。可能这也跟我比较佛系有关,毕竟上次亲自宣传也就是两年前。

    说说目前的用户反馈情况。Chrome 共 51 个有效评分,平均 4.92 ,只有 2 个不是满分。Edge 78 个和 Firefox 20 个全是 5 星满分,总评分在 4.97 左右

    做好用户体验的一些心得

    1. 清楚产品的上限,不过分追求指标值,更加专注产品功能本身

    其实这个扩展刚开始的一年,我基本不关注用户量啥的,因为我自己本身就对量化生活特别感兴趣,所以做的功能都是为了服务我自己。

    直到有一天,抱着试一试的态度,我第一次在小众软件论坛发帖宣传后,用户量瞬间暴涨,后面就有了源源不断的用户诉求,扩展的功能也越来越完善。

    但是不得不提的是,这个扩展所提供的功能并不是大多数人的硬性诉求,对于绝大多数人来说,它真的很鸡肋。所以它的用户群体并不大。哪怕在同类产品中,已经全球成名多年的 webtime tracker 也只有几万用户(它只在 Chrome 发布)。

    所以,作为一个究极后来者,打磨产品功能更加重要。在此之后,不少用户从其他扩展迁移了过来,为此我还特地实现了导入其他扩展数据的功能。

    2. 收敛你的产品表达,为用户创造更多的探索机会

    作为成长于千禧年的一代,我们从小到大已经接触了太多电子产品,从最早的 PC 、九键手机到现在的各种移动终端、智能外设,我们已经接触了成千上万产品的用户故事,或者说是新手引导。电子设备的交互模式早已经深入人心。

    所以,我在设计功能的操作路径的时候,总是希望用最朴素的方式进行表达。实用的界面,适当的省略总是要比繁复密集的用户引导更有效果。秉承最 base 的一个原则,如果我想到的功能交互不够新颖,那我就没有必要将它强行 push 到用户眼前。

    关于新颖,举个例子,之前有一段时间,扩展使用了面包多的趣味打赏功能,有点像国内版的 Buy Me A Coffee ,用户在面包多的项目主页里,可以为作者捐赠食物,撰写产品评论。所以我想到一个点子,在用户访问最频繁的 UI 界面,只有在饭点时间展示打赏链接,并添加食物相关的文案。尽管后来,面包多这个功能因为众所周知内容审查的原因,被整体关停了。但是开通的一年之内,从主页收到的几十笔打赏,和所有都是积极的用户反馈来看,他们的参与热情的确很高,甚至以为这是产品功能的一部分。

    所以发布至今,除了官网上有一个静态的用户手册之外,我还没有针对某项新功能添加过新手引导。不过倒是经历了超多次的功能重构,将版本兼容的复杂度留给自己,把清爽的功能直接展现给用户也蛮重要。

    3. 积极看待用户的问题和建议,并做出正面回应,调动用户参与度

    这一点非常有助于提升用户的忠诚度。如何回应用户这个就比较老生常谈了,包括及时性,行文态度,内容是否精简有效等等多方面的细节。我自己的经验并一定是完全可复制的。

    首先我为这个插件建立了几个反馈通道:日常反馈问卷,用户卸载时的意见收集,兔小槽用户社区,GitHub issues 。用户也可以通过产品页面里的作者邮箱,直接给我发邮件。

    因为我平时在工作中与同事沟通时,喜欢使用长篇富文本全面地描述所遇到的问题,包括症状、原因、历史来由、解决方案与后续规划排期等内容。所以我在回复用户时也会保持这样的风格,回复中文外其他语种的用户就使用英文。长文本带来的审慎细致的态度,确实会增加用户好感,以至后续出现了测试遗漏的小 bug 时,曾经回复过的用户都会主动找我上报,并且给与的是鼓励而不是谴责。

    除了回应之外,让用户参与到功能建设中也很有用,在用户提交新的 request 之后,如果是很好的 idea ,我一般会直接联系到他,深度了解一下他的想法,有些用户还会给出竞品甚至产品原型。这里就需要衡量一个度,我们可以与用户做朋友,了解他真实的想法,并给出反馈,但决不能给到用户任何方面的压力或者叨扰。

    同样的,在文案翻译方面,我也完全让用户参与了进来,直接将 Crowdin 集成到了扩展中。目前它已经支持 8 种语言,除了中英文之外,其他所有语言都是先由用户翻译到一定进度,然后再导出文案打包发布。甚至有一位乌克兰用户,会定期检查文案并主动补全缺失项。

    4. 最后一点,关于用户声音收集

    因为之前我在公司负责了一年多某业务线的用户体验治理平台,对用户评论产品的时机比较敏感。首先说下前提,这个产品不需要做完整的科学量化分析,比如说 NPS 或者满意度之类的,就不需要保证评论的回收量,当然更多更好。

    所以我几乎不会主动引导用户评论,更不会因此阻断用户的任何操作,只是把打分链接放在了页面不起眼的小角落里,而将反馈通道静态前置到显眼的位置。这样做除了交互更加友好之外,还会带来一个显著好处,如果用户愿意跳转商城区公开评论,说明他是一个忠诚用户,忠诚用户的友好评论会带来更好的流量,形成一个正循环。而更有意见性的中性评论或者负反馈,则会直接快速地进到我这里来,点对点的私下沟通能够更好的做出回应,及时纠正用户的感观。

    P.S.

    因为我没有图床,所以全是文字,比较干巴,感谢大家阅读至此 QWQ

    13 条回复    2024-12-08 17:41:28 +08:00
    brcefy
        1
    brcefy  
       2024-06-25 08:58:42 +08:00   1
    非常好的产品,已经 Star ,像 OP 这样个人开发者的产品思路是很值得学习的
    qingchengdyr
        2
    qingchengdyr  
       2024-06-25 11:14:12 +08:00
    看了下非常不错啊,点赞点赞.
    sucaiking
        3
    sucaiking  
       2024-06-25 11:37:19 +08:00
    正在使用了,拿它记录自己浏览器的使用情况。优点很多不赘述了,我聊聊个人想法:

    对网站名称的抓取上,有不少网站还是抓取不到,也许对于难以直接抓取的一些域名,建立数据表?

    感觉时间限制的前两步可以合到一步,它们之间好像没有必须的前后关系;

    扩展选项的时间设置里面最好提供一个测试按钮,测试时间限制触发后应该如何解锁;

    其它都很好用,感谢作者。
    sheepzh
        4
    sheepzh  
    OP
       2024-06-25 12:45:36 +08:00 via Android
    @sucaiking 非常感谢您的建议,确实很有建设性。

    网站名称直接使用正则匹配的,这个功能很久没维护了,内置数据表是个不错的方向。

    时间限制的交互形式,我确实没想太清楚,考虑到这个功能后续会逐渐丰富和完善,配置项会越来越多,估计我会去掉步骤条,改成大表单的填写方式。交互更加灵活,逻辑更加清晰。

    全局配置增加测试功能确实是个不错的点,马上加入 todo
    wusheng0
        5
    wusheng0  
       2024-06-25 13:02:36 +08:00 via Android
    感谢分享
    sucaiking
        6
    sucaiking  
       2024-06-25 13:39:48 +08:00
    @sheepzh 追加一些个人性很强的意见以及问题。

    单次访问时间只要一刷新就可以重新开始计时了,那意义是什么……可能需要锁一段时间(可以自定义?)之后再打开。顺带地,插件作者需要考虑到用户卡点刷新以规避单次时间锁这回事吗?

    有的时候,我会希望插件温和地提醒一下某(规则下的)网站今天已经浏览了多少时间而不是上一个全屏锁阻止我继续用。比如说我上维基百科查资料什么的,过了一段时间插件提醒我“今天累计用了 xx 时,本次打开用了 yy 时”这种。您觉得这个功能有意义吗?

    顺带报 bug ,时间限制里面的表格左右宽度比较小有个滚动条,而这张表格显然有个上下滚动的行为。导致“再看五分钟”按钮时常处于被挡住的状态。
    sheepzh
        7
    sheepzh  
    OP
       2024-06-25 14:59:27 +08:00 via Android
    @sucaiking 单次限时目前针对的是成瘾性行为比较重的视频流网站,阻断用户继续观看。至于用户可以通过刷新来绕过,这应该算一个产品缺陷。当然解决方案可以是你提到的强制等待时长,或者也可以直接屏蔽掉刷新。至于提醒方式应该也可以做成配置式的。
    psychosispy
        8
    psychosispy  
       340 天前
    「报表明细」没有一个显示所有的选项吗,最高只有 6 个月,没办法快速查看自安装以来的数据
    k1rin
        9
    k1rin  
       339 天前
    感谢老哥开发,打开仪表盘才发现已经用了 648 天了,从那时起就是浏览器必装插件了。
    sheepzh
        10
    sheepzh  
    OP
       334 天前
    @psychosispy 时间筛选项有一个清空图标,点它就会删掉时间筛选,展示所有数据
    sheepzh
        11
    sheepzh  
    OP
       334 天前
    sheepzh
        12
    sheepzh  
    OP
       334 天前
    @psychosispy 当然谢谢您的反馈,我也会在弹窗中添加所有时间的快捷选项
    psychosispy
        13
    psychosispy  
       327 天前
    @sheepzh 用了这么久居然没发现,谢谢了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1469 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 16:38 PVG 00:38 LAX 09:38 JFK 12:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86