有一种方法可以查看有多少人下载了你的扩展,那就是查看Chrome网络商店的统计数据。另一种方法是在background.js中添加chrome.runtime.onInstalled.addListener,并在每次有人安装扩展时在服务器上发送信息。
我的问题是,通过这两种方式收集的信息并不相似。
在Chrome webstore中显示的下载量少于通过第二种方式收集的安装量(对于唯一的ip地址)。为什么?有人能解释一下吗?
发布于 2016-06-06 21:04:12
chrome store也会考虑卸载次数,而你的方法只计算安装次数。
您还可以通过将url设置为在卸载时打开并在您的服务器上对其进行计数来检测卸载。请参阅https://developer.chrome.com/extensions/runtime#method-setUninstallURL
这样,数字将更接近匹配。仍然不完美,因为商店有时需要几个星期才能添加一天的统计数据。
发布于 2016-06-07 05:25:12
对于用户来说,唯一IP地址的数量不是一个可靠的指示器,因为用户可能正在使用动态地址(而不是不变的静态IP地址),并且多个用户可能共享一个IP地址(在NAT或代理之后)。chrome.runtime.onInstalled不仅会在新安装的扩展上触发,还会在浏览器/扩展更新时触发。
因此,您统计唯一用户的方法是有缺陷的(考虑到用户数量很少,您的方法很可能高估了用户数量)。
Chrome Web Store仪表板(仅限开发人员)提供每日安装的数量(可能通过计算按需CRX下载的数量来衡量)。
Chrome Web Store公开显示每周用户数量(measured by counting the number of update checks per week)。这个数字是 active每周用户的数量,并且可能高估了实际用户的数量。例如,我有一个曾经有1.7k用户的扩展。因为这个扩展已经过时了,所以我发布了一个更新,它向我的服务器发送了一个ping并删除了这个扩展本身(使用chrome.management.uninstallSelf)。每周,我最多收到几个ping,但CWS声称该扩展每周有400名用户(这些用户可能禁用了我的扩展;因此,该扩展无法自行删除,但Chrome仍会检查更新)。
准确统计用户数
如果您想知道安装的数量,请查看CWS仪表板。如果你想继续使用onInstalled方法,至少要检查details.reason === 'install'。
如果您想拥有最可靠的“用户”指示器,则生成一个随机标识符并将其存储在chrome.storage.sync中。在对服务器的请求中包含此ID (有关示例代码,请参阅Getting unique ClientID from chrome extension?)。
最近,我在我的一个扩展中引入了server-ping,以测量在给定的一天/一周内每个Chrome版本的用户数。在这项工作中,我优先考虑用户的隐私,而不是统计数据的准确性(通过将随机ID存储在localStorage中(不同步),并在每次重大浏览器更新时刷新此ID )。
如果您想了解更多关于它背后的代码,请参阅https://github.com/Rob--W/pdfjs-telemetry。
https://stackoverflow.com/questions/37656276
复制相似问题