如何跟踪我的Greasemonkey脚本多少自动升级下载了?(How to track how ma

2019-10-20 06:34发布

我有一个网页的一系列链接的Greasemonkey userscripts。 该userscripts已经@updateURL参数进行设置,这样,当我上传新版本页面的人谁安装脚本要么有自己的版本,它会自动更新,或者是问他们是否要升级。

这一切工作正常。 我已经安装了托管网页上谷歌分析,这样我就可以看到页面多少命中得到,但我想知道的是有多少人得到了更新。
正常的分析是行不通的,因为它们都依赖于人点击一个链接,但Greasemonkey的下载更新文件,而无需点击任何东西(或者,据我所知,触发页面中分析命中)。

我假设我需要一个服务器端的解决方案,但我不知道它会是什么样子。 也许所有关于GM以上是无关紧要的,而简单的问题是:
如何跟踪(不依赖于下载链接的点击计数)多少次文件是从我的服务器下载?

[ 关于进一步信息编辑 ]

@Brock亚当斯谢谢你的答案 - 这是非常详细,正是我一直在寻找。 我不知道独立的meta.js选项,但阅读一点点进去我看到这是一个好主意,无论如何,因为它意味着只有meta.js文件已被下载(相对于整个user.js检查更新时文件)。 当我对此进行设置,自动更新是一种新的和周围没有太多的文档他们。 我仍然无法找到太多,所以我不知道,如果你能澄清一下。 在主要的元数据user.js文件保持不变,只是一个指向meta.js@updateURL并没有版本号,即:

// ==UserScript==
// @namespace   http://namespace.com/userscripts
// @description some description. 
// @downloadURL https://namespace.com/userscripts/example.user.js
// @updateURL   https://namespace.com/userscripts/example.meta.js
// @include     https://example.com/*
// @grant       none
// ==/UserScript==

然后将所有example.meta.js必须有是

// ==UserScript==
// @version 2.1
// ==/UserScript==

那是对的吗? 再次感谢。

Answer 1:

要做到这一点的唯一方法是处理您的HTTP服务器日志(被Apache,Nginx的,等的存放)。 谷歌分析不能做到这一点,因为它依赖于运行其自己的JavaScript - 这是在脚本更新和直接下载旁路。

您可以从您的主机控制面板或通过FTP访问您的原始HTTP日志。 请参阅您的主机公司的更多信息。

在原始日志,直接下载通常是这样的:

107.178.216.165 - - [12/Jun/2014:17:22:35 -0500] "GET /test/Alert.user.js HTTP/1.1" 200 37 "-" "Mozilla/5.0 {redacted} Firefox"

注意缺少引用的(在"_"之前的浏览器信息栏),而这些往往是从给定的IP地址,该会话的唯一请求,而典型的页面请求GET每个会话多个文件。

不幸的是,标准的日志分析程序,大多数主机提供了Webalizer的Awstats的 。 这些没有一个会帮助你跟踪下载原样。 但是,你可以设置自定义的AWStats配置文件和配置它来查看*.user.js文件,下载(见一个可能的食谱这个答案 )。


重要提示: 当更新Greasemonkey的检查,它通过下载指定的文件@updateURL (或@downloadURL如果@updateURL未指定) -只是为了比较的版本号。

因此,追踪真正的下载,总是使用一个单独的*.meta.js文件的@updateURL指令。 这将避免具有算作下载例行检查。



文章来源: How to track how many automatic-upgrade downloads my Greasemonkey script has?