损坏 chrome 扩展和用户保留

Corrupt chrome extensions and user retention

我有一个相当受欢迎的 Chrome 扩展,昨天我不小心发布了它的一个损坏版本,而且 10 个小时都没有找到它。在这 10 小时内,扩展程序针对大多数用户进行了更新,根据我的 Google 分析报告,我在一夜之间失去了大约一半的用户(我每 30 分钟有大约 600 次网页浏览,现在我只有 285 次) .当我发现我的错误时,我很快恢复到可以使用的旧版本,但现在,在修复损坏的更新后大约 30 小时,我的网页浏览量仍然相同。

我的问题是:

任何见解都会很棒。可以想象,因为一行代码而在一夜之间失去一半的用户是很难处理的。

可能发生了什么?

嗯,这不是一个非常明确的情况,但是,根据您的信息,有几种可能的情况:

  1. 您的用户已卸载您的扩展程序 因为这个损坏的版本。不幸的是,在这种情况下(最糟糕的情况),不可能让您的用户回头

  2. 您的 "corrupted" 版本在更新处理方面存在问题。例如 chrome.runtime.onInstalled 检查更新和添加新功能的问题,或者分析部分的问题。这意味着:

    1. 您的扩展程序在更新前运行良好。
    2. 它已经更新了一个损坏的更新处理 function/method。
    3. 新更新(回滚到工作版本)没有解决任何问题,因为您已经损坏的扩展现在无法应用更新and/or将页面浏览量发送到分析.
  3. 您的用户禁用了您的扩展程序以试图缩小问题范围(这种情况非常罕见,属于边缘情况)。

  4. 您的用户还没有得到新的更新(三十小时后也很罕见)。

你能做什么?

再次,让我们把情况分开:

  1. 在第一种情况下,不幸的是,您实际上无能为力。那是一个严重的错误!从中吸取教训,在推送更新之前总是测试一千次

  2. 考虑第二种情况?您应该在您的机器上测试您损坏的版本,也许使用Chrome Canary 来加快速度。这显然意味着您应该将以前的版本存储在某个地方;如果您还没有得到它们,那就很难了,为了将来:始终保留以前版本的备份。安装旧版本,然后手动更新到损坏的版本,最后更新到最后一个版本,确实可以帮助您了解发生了什么。你应该仔细检查更新方法,看看是否有问题。

    注意:如果您没有收听 chrome.runtime.onUpdateAvalilable and manually calling chrome.runtime.reload() 立即更新您的扩展程序,可能需要 Chrome 重新启动才能更新。

  3. 稍等,虽然这种情况很少见,但这也是你唯一能做的事情。

  4. 好吧,与案例 #3 相同。


If an extension is corrupt does it still check for updates or do the users have to press repair?

嗯,没有 "corrupted extension" 这样的东西。 Chrome 将始终检查更新(至少如果用户没有在 chrome://flags 中禁用它们),即使您的扩展只是一堆 SyntaxError。不用担心这个。

极度修复

如果您不确定要做什么,重新设计您的扩展程序彻底清除所有待办事项和坏习惯总是一件好事。只需先备份您以前的版本,然后开始使用 2.0 测试版!更新和改进扩展可能会带来更多的用户,而不仅仅是解决现有问题。就我个人而言,我几乎总是经历过安装增加,执行剧烈的重新设计和从头开始重新编写更好的代码。


希望您尽快找到问题并恢复您的用户。

As you can imagine, losing half your users over night because of 1 line of code is difficult to process.

是的,我想。作为一名扩展开发人员,我在学习更新处理时确实犯过类似的错误。所以……好吧,打断一条腿!祝你一切顺利。