要查看 - 有多少人下载了您的扩展程序 - 的一种方法是查看Chrome网上应用店中的统计信息。 另一种方法是在chrome.runtime.onInstalled.addListener中添加chrome.runtime.onInstalled.addListener内部的background.js,并在每次有人安装扩展时在服务器上发送信息。
我的问题是,通过这两种方式收集的信息并不相似。
Chrome网上商店中显示的下载次数少于第二种方式(对于唯一的IP地址)收集的安装次数。 为什么?任何人都可以解释一下吗?
答案 0 :(得分:1)
chrome store也考虑了卸载,而您的方法只计算安装次数。
您还可以通过将网址设置为在卸载时打开并在服务器上计算来检测卸载。见https://developer.chrome.com/extensions/runtime#method-setUninstallURL
这样,数字将更接近。仍然不完美,因为商店有时需要数周才能添加一天的统计数据。
答案 1 :(得分:1)
唯一IP地址的数量不是用户的可靠指标,因为用户可能正在使用动态地址(而不是不会更改的静态IP地址),并且多个用户可能正在共享IP地址(在NAT或代理)。
并且chrome.runtime.onInstalled
不仅会在新安装扩展程序时触发,而且还会在更新浏览器/扩展程序时触发。
因此,您计算唯一身份用户的方式存在缺陷(如果用户数量较少,则可能是您的方法过高估计了用户数量。)
Chrome网上应用店信息中心(仅限开发人员)提供每日安装的数量(可能通过计算按需CRX下载次数来衡量)。
Chrome网上应用店公开显示每周用户数(measured by counting the number of update checks per week)。
此数字不 有效每周用户数,可能高估了实际用户数。
例如,我有一个曾经拥有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?)。
最近,我在其中一个扩展程序中引入了服务器ping,以衡量每天/每周每个Chrome版本的用户数。在这项工作中,我优先考虑用户的隐私而不是统计的准确性(通过将随机ID存储在localStorage
(未同步)并在每次主要浏览器更新时刷新此ID。)
如果您想了解有关其背后代码的更多信息,请参阅https://github.com/Rob--W/pdfjs-telemetry。